Vinnaren i pepparkakshustävlingen!
2021-02-04, 19:12
  #61
Medlem
Citat:
Ursprungligen postat av Tigaz
Hej alla! Jo, jag har börjat en utbildning, jag är 35 går från ett industrijobb som jag haft i 14 år, har alltid velat komma bort därifrån och valde att satsa på studier, en vän sa att han tyckte jag skulle kika på ett program som "mjukvaruutvecklare inom industriell iot" eftersom han tyckte jag passade som det(har intresse för datorer, men aldrig kodat) eller jo! För 18 år sedan när jag gick programmering a och b(pascal tiden) dock kikade jag på min kompis och fattade inte något, och fick ändå g.. Sjukt. Men iaf, redo att prova och första kursen var skitlätt(projektkunskap 50p av 50 möjliga) nu har jag börjat med c och visst har jag gjort framsteg, men jag fattar ändå NOLL känns det som. Detta får mig att börja tvivla på mig väldigt mycket "gör en funktion som säger jämför en char[] och skriver ut om det är en palidrom(namn som skrivs baklänges blir lika som framlänges.. Ja jag vet inte, jag är helt nollad, just nu känns det som att alla kan allt i kursen, jag är sämst jag fattar noll kan ingenting. (har suttit och programmerat 210 timmar på 3 veckor. Varje dag minst tio timmar/dag har 3 barn och är helt slut på kvällarna, ska det vara såhär svårt? Mvh mig.

Jag vill inte krossa dina drömmar, men om du suttit i 230 timmar (geniunt 230 timmar?) och inte lyckats med detta så tycker jag du ska titta på andra yrken. Men visst med lite mer effort så kanske det lossnar.

Jag har nog kommit upp i 10000 timmar. Den första tiden var jobbig som ny, jag bytte bana jag med till programmering vid 29 år.

Men tycker inte det ska ta 230 timmar att få ihop en funktion som jämför om en char array är ett palindrom. Men om du gjort en del annat så...

Men till ditt försvar, det handlar inte om timmarna alltid, du har bara suttit 3 veckor.
Programmera inte 10 timmar i sträck, vila emllanåt. De flesta problem löser hjärnan undermedvetet efter en god natts sömn. <--- alla programmerare känner till detta fenomen
__________________
Senast redigerad av carlydeveloper 2021-02-04 kl. 19:16.
Citera
2021-02-04, 19:19
  #62
Medlem
Citat:
Ursprungligen postat av grabb1948
Om du är intresserad av USA-valet kan ju detta vara något. Vissa stater är så kallade "toss-up" dvs det kan gå hur som helst-nästan!
Kod:
/* slumptal för toss_up_stater */
#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 

#define IO 6
#define OH 18
#define NC 15
#define GA 16
#define FL 29
#define ME 4
#define NE 5
#define  N  100
#define BIG 100

int main()
{
  int a[N], i,j;
    
  srand(time(NULL));
  for(i=0; i < N; i++) a[i] = rand()%BIG;
  int blue_sum=0, red_sum=0; 

   for(j=0; j< 90; j+=7)
   {
   int blue=0, red=0;

   if (a[0+j]>50) blue=blue+IO; else red=red+IO;
   if (a[1+j]>50) blue=blue+OH; else red=red+OH;
   if (a[2+j]>50) blue=blue+NC; else red=red+NC;
   if (a[3+j]>50) blue=blue+GA; else red=red+GA;
   if (a[4+j]>50) blue=blue+FL; else red=red+FL;
   if (a[5+j]>50) blue=blue+ME; else red=red+ME;
   if (a[6+j]>50) blue=blue+NE; else red=red+NE;

   printf("Blåa laget(DEM) får: %d ", blue);
   printf(" Röda laget(REP) får: %d ", red);
   printf("\n");
   blue_sum=blue_sum+blue;  red_sum=red_sum+red;
   }
  printf("Blåa totalt får: %d ", blue_sum);
   printf(" Röda totalt får: %d ", red_sum);
   printf("\n Är detta slump? \n");
    return 0;
}
 

Vilken fruktansvärd kod, ögonen blöder
Citera
2022-06-10, 10:27
  #63
Medlem
Citat:
Ursprungligen postat av Tigaz
Hej alla! Jo, jag har börjat en utbildning, jag är 35 går från ett industrijobb som jag haft i 14 år, har alltid velat komma bort därifrån och valde att satsa på studier, en vän sa att han tyckte jag skulle kika på ett program som "mjukvaruutvecklare inom industriell iot" eftersom han tyckte jag passade som det(har intresse för datorer, men aldrig kodat) eller jo! För 18 år sedan när jag gick programmering a och b(pascal tiden) dock kikade jag på min kompis och fattade inte något, och fick ändå g.. Sjukt. Men iaf, redo att prova och första kursen var skitlätt(projektkunskap 50p av 50 möjliga) nu har jag börjat med c och visst har jag gjort framsteg, men jag fattar ändå NOLL känns det som. Detta får mig att börja tvivla på mig väldigt mycket "gör en funktion som säger jämför en char[] och skriver ut om det är en palidrom(namn som skrivs baklänges blir lika som framlänges.. Ja jag vet inte, jag är helt nollad, just nu känns det som att alla kan allt i kursen, jag är sämst jag fattar noll kan ingenting. (har suttit och programmerat 210 timmar på 3 veckor. Varje dag minst tio timmar/dag har 3 barn och är helt slut på kvällarna, ska det vara såhär svårt? Mvh mig.


Tror jag gick på exakt samma kurs som du gick på för några år sedan. Antar att han Ronnie fortfarande är ansvarig? Hade lätt för kursen speciellt C, men "industriella molnlösningar" och "enterprise manufacturing solutions" gav mig prostata-cancer. I övrigt så är kursen ganska lätt, men du måste sätta dig in i det. Du kan inte bara stirra på koden och förvänta dig ett svar, utan du behöver aktivt tänka på problemet i hand. Det Engelska ordet: "Immersion" är rätt precist det du vill leta efter.

Det finns olika sätt att lösa problemet på (Vissa använder sig av bland annat getchar om jag inte minns fel). Själv så skapar jag en ny array (wordBackwards) som räknar från c som sitt första index, och därefter jämför i andra for-loopen arrayerna med varandra:


Kod:
word = ['a', 'b', 'c']; 
char wordBackwards= str[sizeof(word) / sizeof(int)]; //sizeof är storleken på word, dvs 3 (eller 2 indenter om man skall vara noga men mer otydlig
int cBoolean = 1; // Integer boolean utav lathet 0 = falskt 1 = sant

// så skriver du en for loop i c på följande sätt:
for(i = (sizeof(word) / sizeof(int)); i > 0; i--) {
    wordBackwards[i] == word[i];
}

// Jämför de två orden med varandra
for(i = 0; i < sizeof(word) / sizeof(int); i++{
    if(word[i] =! wordBackwards[i]) {cBoolean = 0};
} 

printf("The word is a palindrome: 1 = true, 0 = false %d", cBoolean);

// Kompilerade inte koden utan skrev direkt på FB så du för själv lösa kompilations-problemen, men i övrigt så tror jag det ser rätt ut
// Finns många som använder sig utan av snuskiga funktioner (Exempelvis getchar) för detta, men jag anser att detta problemet bäst löses med så tydlig kod som möjligt.
__________________
Senast redigerad av klosor6 2022-06-10 kl. 10:45.
Citera
2022-06-10, 10:30
  #64
Medlem
Citat:
Ursprungligen postat av Tigaz
Shit vilken grejj! Det var smidigt! Jag har väldiga problem med att vet inte hur jag ska förklara det, men förstå hur man tänker som programmerare, lägger upp uppgifter, tänker ut dom, tolka dom osv. Logiskt tänkande.

Tror poängen är att du skall lösa problemet själv, och inte leta efter färdiga lösningar, även om det är vad programmerare oftast gör ute i arbetslivet.
Citera
2024-02-10, 15:34
  #65
Medlem
Jag-ar-en-svamps avatar
Citat:
Ursprungligen postat av Clint Ruin
Typisk nybörjaruppgift. Anropa bara funktionen strrev() för att jämföra:
Kod:
include <stdio.h>
#include <string.h>
int main()
{
  char a[100], b[100];

  printf("Enter a string to check if it's a palindrome\n");
  gets(a);

  strcpy(b, a);  // Copying input string
  strrev(b);  // Reversing the string

  if (strcmp(a, b) == 0)  // Comparing input string with the reverse string
    printf("The string is a palindrome.\n");
  else
    printf("The string isn't a palindrome.\n");

  return 0;
}

Yes.
Eller också så kan man bara köra på en å samma array och jämföra själv, då behövs bara stdio.h.
Då lär man sig mer hur saker fungerar tänker jag. Hur burken tänker.
Kod:
#include <stdio.h>
#define MAX 100
int main() {

        char palindrom0[MAX] = "apa";
        int i;
        for(i = 0; palindrom0[i] != '\0'; i++)
                ;
        i = i - 1;
        int i2 = 0;
        enum palin{NO, YES};
        enum palin test = YES;
        while(i2 < i + 1 && test == YES) {
                if(palindrom0[i2] == palindrom0[i]) {
                        i2++;
                        i--;
                }
                else
                        test = NO;
        }
        if(test == YES)
                printf("%s is a palindrome\n", palindrom0);
        else
                printf("%s is NOT a palindrome\n", palindrom0);
        return 0;
}
__________________
Senast redigerad av Jag-ar-en-svamp 2024-02-10 kl. 16:01.
Citera
2024-02-19, 09:56
  #66
Medlem
Citat:
Ursprungligen postat av Tigaz
Hejsan, det har nu gått nån vecka och jag börjar väl få ett pyttelitet hum om hur det funkar, måste ha suttit för länge när jag skrev det där, kändes bara som att jag backade hela tiden, nu sitter jag från 09 till 12 mat, sen beroende hur jag mår kanske jag chillar lite sen från 14 till 16 ca. Kanske lite på kvällar.
Men jag måste ändå säga, att det kommer inte vara pga min lärare eller Herr Skansholm som jag kommer klara detta, vi har prov vecka nästa vecka där vi får fem uppgifter vi ska göra. Tror inte att det kommer att vara några problem. Men har fortfarande svårt att bryta ner uppgifter och bygga lego.
Jag har precis skummat igenom tråden och det första jag vill säga är att du måste vila om du kör fast. Låt hjärnan koppla av med någonting annat i en halvtimme. Spel, TV eller en bok. Du kan bränna ett X antal timmar till ingen nytta om du halkat in på fel spår. När man vilat, kan man hitta saker man var blind för innan.
Citera
2024-02-19, 12:59
  #67
Medlem
Citat:
Ursprungligen postat av FaderBerg
Jag har precis skummat igenom tråden och det första jag vill säga är att du måste vila om du kör fast. Låt hjärnan koppla av med någonting annat i en halvtimme. Spel, TV eller en bok. Du kan bränna ett X antal timmar till ingen nytta om du halkat in på fel spår. När man vilat, kan man hitta saker man var blind för innan.
Det var 4 år sedan och därefter har TS inte skrivit något om programmering. Inte så konstigt, för man måste vara superentusiast om man fixar att börja med C som första språk. Som att starta bilen i femman. De flesta verkar rekommendera Python som nybörjarspråk idag och det finns antagligen en anledning till det.
Citera
2024-02-19, 15:53
  #68
Medlem
GrillTeknikers avatar
Citat:
Ursprungligen postat av Psychotronix
Det var 4 år sedan och därefter har TS inte skrivit något om programmering. Inte så konstigt, för man måste vara superentusiast om man fixar att börja med C som första språk. Som att starta bilen i femman. De flesta verkar rekommendera Python som nybörjarspråk idag och det finns antagligen en anledning till det.

När jag studerade för 25 år sedan så började vi med C som introduktion till programmering. Inget konstigt med det, går utmärkt att skriva "Hello world" och enklare program i. Minns inte så mycket av exakt vad innehållet i den kursen var, men skulle tro att det gav en bra introduktion till att förstå grundläggande saker som arrayer, minne, etc. Dvs. sånt som många av dagens juniorer aldrig ens har hört talas om, vilket gör dem nästintill oanställbara ute i den bistra verkligheten efter utbildning.
Citera
2024-02-19, 16:13
  #69
Medlem
Citat:
Ursprungligen postat av GrillTekniker
När jag studerade för 25 år sedan så började vi med C som introduktion till programmering. Inget konstigt med det, går utmärkt att skriva "Hello world" och enklare program i. Minns inte så mycket av exakt vad innehållet i den kursen var, men skulle tro att det gav en bra introduktion till att förstå grundläggande saker som arrayer, minne, etc. Dvs. sånt som många av dagens juniorer aldrig ens har hört talas om, vilket gör dem nästintill oanställbara ute i den bistra verkligheten efter utbildning.
Jo, det är konstigt att börja med maskinnära som intro till programmering idag. Som intro till datorteknik kan jag se vitsen med det, men när det gäller programmering är det bättre att lära sig logiskt tänkande först, först därefter kan man börja pyssla med att sitta i debuggern och leta efter typ-fel och vilda pekare.

På Chalmers börjar man (åtminstone för ca 30 år sedan) med funktionell programmering (Haskell) för att lära sig logiken och lite senare lägger man till assembler och CPU-konstruktion inkl micro-kod parallellt. Jag tycker det är en bra uppdelning: högnivå för att lära sig programmering, lågnivå för att lära sig vad som händer under huven.
Citera
2024-02-19, 22:24
  #70
Moderator
Neksnors avatar
Citat:
Ursprungligen postat av Psychotronix
Jo, det är konstigt att börja med maskinnära som intro till programmering idag. Som intro till datorteknik kan jag se vitsen med det, men när det gäller programmering är det bättre att lära sig logiskt tänkande först, först därefter kan man börja pyssla med att sitta i debuggern och leta efter typ-fel och vilda pekare.

På Chalmers börjar man (åtminstone för ca 30 år sedan) med funktionell programmering (Haskell) för att lära sig logiken och lite senare lägger man till assembler och CPU-konstruktion inkl micro-kod parallellt. Jag tycker det är en bra uppdelning: högnivå för att lära sig programmering, lågnivå för att lära sig vad som händer under huven.
Som en sorts imperativ grundkurs med smak av objektorientering serverades Java, med Jan Skansholm, efter Haskell.
Citera
2024-02-19, 22:36
  #71
Medlem
Citat:
Ursprungligen postat av Neksnor
Som en sorts imperativ grundkurs med smak av objektorientering serverades Java, med Jan Skansholm, efter Haskell.
Grattis, då slapp du Ada som var synnerligen osmidigt om man var van vid C++ eller Java. Jag tror Java ersatte Ada några årskullar efter min.
Citera
2024-02-27, 04:36
  #72
Medlem
Citat:
Ursprungligen postat av Tigaz
Hejsan! Har kikat på din kod, intressant. Inte för att jag faktiskt är intresserad av usa och det är ett roligt program, MEN varför gör du inte koden mer lättläslig? Det är exakt det här jag blir galen på med skansholm. Tro mig jag vill inte låta arg eller vara elak men på det här sättet lär du ju kommentera typ varje rad för att nån ska förstå(iaf enligt mig) Lite jag reflekterat över är dina variabler? vad är i? Vad är a? Som det är nu skulle nån som skulle felsöka din kod bli galen på dig. Jag har iaf lärt mig att man ska skriva sina varibler så att man förstår vad det är förnågot. Förstår du vad jag menar?

#define IO 6
#define OH 18
#define NC 15
#define GA 16
#define FL 29
#define ME 4
#define NE 5
#define N 100
#define BIG 100


int main()
{
int a[N], i,j; <- Varför inte deklarera dom så att man förstår vad det hela handlar om?

srand(time(NULL));
for(i=0; i < N; i++) a[i] = rand()%BIG;
int blue_sum=0, red_sum=0;

for(j=0; j< 90; j+=7)
{
int blue=0, red=0;

if (a[0+j]>50) blue=blue+IO; else red=red+IO; <- Borde man inte kunna använda funktion till detta istället?
if (a[1+j]>50) blue=blue+OH; else red=red+OH;
if (a[2+j]>50) blue=blue+NC; else red=red+NC;
if (a[3+j]>50) blue=blue+GA; else red=red+GA;
if (a[4+j]>50) blue=blue+FL; else red=red+FL;
if (a[5+j]>50) blue=blue+ME; else red=red+ME;
if (a[6+j]>50) blue=blue+NE; else red=red+NE;

som sagt jag menar absolut inte att vara elak. Men det är exakt det här jag menar med att det är svårt att lära sig, jag förstår på ett ungefär vad koden gör, Det hade vart kul att förstå exakt vad den gör, men det hade vart så mycket enklare om du hade gjort koden mer lättläst, Det är vad vi har lärt oss iaf och det är exakta motsatsen till vad Skansholm gör i sina exempel, han gör exakt så här


Defines bör man inte använda på detta sättet när det ändå handlar om konstanter som är integers.
Defines är mest avsedda för att underlätta preprocessorns arbete.
Konditionell kompilering tex,
#if defined(WIN32_EXE)
/* kod */
#if defined(WIN64_EXE)
/* kod */

Bara för att ta ett exempel

Citat:
Ursprungligen postat av Psychotronix
Jo, det är konstigt att börja med maskinnära som intro till programmering idag. Som intro till datorteknik kan jag se vitsen med det, men när det gäller programmering är det bättre att lära sig logiskt tänkande först, först därefter kan man börja pyssla med att sitta i debuggern och leta efter typ-fel och vilda pekare.

På Chalmers börjar man (åtminstone för ca 30 år sedan) med funktionell programmering (Haskell) för att lära sig logiken och lite senare lägger man till assembler och CPU-konstruktion inkl micro-kod parallellt. Jag tycker det är en bra uppdelning: högnivå för att lära sig programmering, lågnivå för att lära sig vad som händer under huven.

Typfel ska kompilatorn varna för, eller ge ett felmeddelande.
Ingen idé för kompilatorn att tugga vidare om den hittar sådana typfel.
Att hitta vilda pekare med debuggern är vanligen ett tröstlöst arbete,
som inte alltid ger resultat.
Alltså den pekaren kan peka vart som helst och att man helt enkelt missar den.

I vanliga stora program finns det 100-tals pekare, man kan inte kolla alla i debuggern,
det tar alldeles för lång tid.
Nej debuggern brukar svara på på vilken kodrad i programmet
som ditt program ballar ur helt.
Debuggern har två lägen, dels läget där man ser sin källkod i fönstret och kan
stega igenom varje rad.
Det andra läget visar motsvarande assemblerkod, men den kan skilja sig åt
beroende om kompilatorn har skapat kod för olika CPU-modeller.
Beroende på tex minnesmodell, om den är 32-bit eller 64-bit...
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in