Vinnaren i pepparkakshustävlingen!
2020-10-22, 17:33
  #49
Medlem
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;
}
 
Citera
2020-10-23, 21:40
  #50
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;
}
 

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
Citera
2020-10-23, 22:36
  #51
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

Bra att du reagerar. Det är lätt att bli blind för det som bör förklaras!

#define FL 29 /* varje delstat har ett antal elektorer tex 29 för Florida*/
srand(time(NULL)); /*behöver man för att få nya slumptal varje gång man kör*/
int a[N], i,j; /*jag skapar en array (fält på svenska) av slumptal, i och j används bara för stegning */
100 slumptal mellan 0 och 99 blev det
Något annat?

Som du ser slår resultatet ganska kraftigt.
Dessutom måste man ha 51 för att få majoritet men i verkligheten räcker det med 50,1% av rösterna.
Så om man byter #define BIG 100 mot #define BIG 1000 så får man jämföra med 500 i stället.
Alternativ #define MAJORITET 500 för att inte behöva ändra på varje ställe
Jo funktioner är bra men här har varje delstat eget värde så det är ingen större vinst.
Citera
2020-10-24, 08:55
  #52
Medlem
Ny variant som borde vara tydligare:
Kod:
/* Slumptal för toss_up_stater 2020 */

#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 

/* Dessa delstater har olika antal elektorer tex IO (Iowa) har 6 */
#define IO 6
#define OH 18
#define NC 15
#define GA 16
#define FL 29
#define ME 4
#define NE 5

/* Vi skapar 140 slumptal och räknar med promille */
#define  N  140
#define PROMILLE 1000
#define LIKA 500

int main()
{
  int a[N], i,j;
    
  srand(time(NULL)); /* krävs för att få nya slumptal varje körning */
  for(i=0; i < N; i++) a[i] = rand()%PROMILLE; /* slumptalen samlas i a[0]...a[139] */

  /* Det är vanligast på nätet att Demokrater är blå och Republikaner röda */
  int blue_sum=0, red_sum=0, blue_mv=0, red_mv=0; 

   for(j=0; j< 140; j+=7) /* Alla delstater får eget slumptal & sen stegar man med 7 */
   {
   int blue=0, red=0;

   if (a[0+j]>LIKA) blue=blue+IO; else red=red+IO;
   if (a[1+j]>LIKA) blue=blue+OH; else red=red+OH;
   if (a[2+j]>LIKA) blue=blue+NC; else red=red+NC;
   if (a[3+j]>LIKA) blue=blue+GA; else red=red+GA;
   if (a[4+j]>LIKA) blue=blue+FL; else red=red+FL;
   if (a[5+j]>LIKA) blue=blue+ME; else red=red+ME;
   if (a[6+j]>LIKA) 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;
   }
  blue_mv=blue_sum/20;
  red_mv=red_sum/20;
  printf("Blåa medelvärdet: %d ", blue_mv);
  printf(" Röda medelvärdet: %d ", red_mv);
  printf("\n Är detta slump? \n");
  return 0;
}
 
Citera
2020-10-24, 10:13
  #53
Medlem
Citat:
Ursprungligen postat av grabb1948
Ny variant som borde vara tydligare:
Kod:
/* Slumptal för toss_up_stater 2020 */

#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 

/* Dessa delstater har olika antal elektorer tex IO (Iowa) har 6 */
#define IO 6
#define OH 18
#define NC 15
#define GA 16
#define FL 29
#define ME 4
#define NE 5

/* Vi skapar 140 slumptal och räknar med promille */
#define  N  140
#define PROMILLE 1000
#define LIKA 500

int main()
{
  int a[N], i,j;
    
  srand(time(NULL)); /* krävs för att få nya slumptal varje körning */
  for(i=0; i < N; i++) a[i] = rand()%PROMILLE; /* slumptalen samlas i a[0]...a[139] */

  /* Det är vanligast på nätet att Demokrater är blå och Republikaner röda */
  int blue_sum=0, red_sum=0, blue_mv=0, red_mv=0; 

   for(j=0; j< 140; j+=7) /* Alla delstater får eget slumptal & sen stegar man med 7 */
   {
   int blue=0, red=0;

   if (a[0+j]>LIKA) blue=blue+IO; else red=red+IO;
   if (a[1+j]>LIKA) blue=blue+OH; else red=red+OH;
   if (a[2+j]>LIKA) blue=blue+NC; else red=red+NC;
   if (a[3+j]>LIKA) blue=blue+GA; else red=red+GA;
   if (a[4+j]>LIKA) blue=blue+FL; else red=red+FL;
   if (a[5+j]>LIKA) blue=blue+ME; else red=red+ME;
   if (a[6+j]>LIKA) 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;
   }
  blue_mv=blue_sum/20;
  red_mv=red_sum/20;
  printf("Blåa medelvärdet: %d ", blue_mv);
  printf(" Röda medelvärdet: %d ", red_mv);
  printf("\n Är detta slump? \n");
  return 0;
}
 
Det här var så mycket bättre! Tack för din förtydling! Förslag till ännu bättre i, j, vad är dom uppräknade för? Jag skulle döpt dom till (iteraktionFor vad det är på engelska, a hade jag nog döpt fältAvSlumptal på engelska, alternativt kommenterat så som du gjort härvan. Återigen tack för att du förtydligade och för att du inte blev arg.
Citera
2020-10-24, 12:15
  #54
Medlem
Citat:
Ursprungligen postat av Tigaz
Det här var så mycket bättre! Tack för din förtydling! Förslag till ännu bättre i, j, vad är dom uppräknade för? Jag skulle döpt dom till (iteraktionFor vad det är på engelska, a hade jag nog döpt fältAvSlumptal på engelska, alternativt kommenterat så som du gjort härvan. Återigen tack för att du förtydligade och för att du inte blev arg.

Räknare i for-loopar brukar bara döpas till i och j (j används bara vid nästlade loopar), det finns ingen anledning att namnge dessa för någon tydlighets skull.
Däremot håller jag med om att arrayen a hade kunnat ha ett tydligare namn så att det är uppenbart vad den innehåller.

Sedan brukar man heller inte deklarera variabler "globalt" för räknare i for-loopar.
Då de endast hör till loopens scope deklareras de bäst i loopens signatur:
Kod:
for (int i = 0; i < N; i++)
Citera
2020-10-24, 17:52
  #55
Medlem
kaks avatar
Citat:
Ursprungligen postat av grabb1948
Ny variant som borde vara tydligare:
Kod:
/* Slumptal för toss_up_stater 2020 */

#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 

/* Dessa delstater har olika antal elektorer tex IO (Iowa) har 6 */
#define IO 6
#define OH 18
#define NC 15
#define GA 16
#define FL 29
#define ME 4
#define NE 5

/* Vi skapar 140 slumptal och räknar med promille */
#define  N  140
#define PROMILLE 1000
#define LIKA 500

int main()
{
  int a[N], i,j;
    
  srand(time(NULL)); /* krävs för att få nya slumptal varje körning */
  for(i=0; i < N; i++) a[i] = rand()%PROMILLE; /* slumptalen samlas i a[0]...a[139] */

  /* Det är vanligast på nätet att Demokrater är blå och Republikaner röda */
  int blue_sum=0, red_sum=0, blue_mv=0, red_mv=0; 

   for(j=0; j< 140; j+=7) /* Alla delstater får eget slumptal & sen stegar man med 7 */
   {
   int blue=0, red=0;

   if (a[0+j]>LIKA) blue=blue+IO; else red=red+IO;
   if (a[1+j]>LIKA) blue=blue+OH; else red=red+OH;
   if (a[2+j]>LIKA) blue=blue+NC; else red=red+NC;
   if (a[3+j]>LIKA) blue=blue+GA; else red=red+GA;
   if (a[4+j]>LIKA) blue=blue+FL; else red=red+FL;
   if (a[5+j]>LIKA) blue=blue+ME; else red=red+ME;
   if (a[6+j]>LIKA) 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;
   }
  blue_mv=blue_sum/20;
  red_mv=red_sum/20;
  printf("Blåa medelvärdet: %d ", blue_mv);
  printf(" Röda medelvärdet: %d ", red_mv);
  printf("\n Är detta slump? \n");
  return 0;
}
 

Ett problem med din kod är alla "magic numbers".
I detta fall har de dessutom ett inbördes beroende. 7 * 20 = 140.

Finns dessutom ingen anledning att slumpa fram tal i förväg, gör bara koden onödigt komplex. Gör det istället vid behov.
Dessutom hanteras slumptalen dåligt. 0-500 ger röd vinst 501-999 ger blå vinst.
Dessutom ger modulo med 1000 ytterligare fördel för röd.
rand() returnerar ett tal mellan 0 och RAND_MAX. Oftast 0-32767.
Det innebär att i intervallet 32000-32767 tillfaller enbart 327501-32767 blå.

Kod:
/* Slumptal för toss_up_stater 2020 */

#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 
#include <stdbool.h>

/* Dessa delstater har olika antal elektorer tex IO (Iowa) har 6 */
#define IO 6
#define OH 18
#define NC 15
#define GA 16
#define FL 29
#define ME 4
#define NE 5
const int electors[] = { IOOHNCGAFLMENE };
#define ITERATIONS 20
bool blueWins() {
  return 
rand() <= RAND_MAX/2;
}

int main()
{
   
  
srand(time(NULL)); /* krävs för att få nya slumptal varje körning */

  /* Det är vanligast på nätet att Demokrater är blå och Republikaner röda */
  
int blue_sum=0red_sum=0

  for(
int i=0ITERATIONS; ++i) {

    
int blue=0red=0;
    for (
int state 0state sizeof(electors)/sizeof(electors[0]); ++state) {
        if (
blueWins()) {
            
blue += electors[state];
        } else {
            
red += electors[state];
        }
    }
    
printf("Blåa laget(DEM) får: %d "blue);
    
printf(" Röda laget(REP) får: %d  "red);
    
printf("\n");
    
blue_sum += blue;
    
red_sum += red;
  }
  
double blue_mv = (double)blue_sum ITERATIONS;
  
double red_mv = (double)red_sum ITERATIONS;
  
printf("Blåa medelvärdet: %g "blue_mv);
  
printf(" Röda medelvärdet: %g "red_mv);
  
printf("\n Är detta slump? \n");
  return 
0;


Kan provköras här
https://godbolt.org/z/xT1vnM
Citera
2020-10-25, 10:07
  #56
Medlem
Citat:
Ursprungligen postat av kak
Ett problem med din kod är alla "magic numbers".
I detta fall har de dessutom ett inbördes beroende. 7 * 20 = 140.

Finns dessutom ingen anledning att slumpa fram tal i förväg, gör bara koden onödigt komplex. Gör det istället vid behov.
Dessutom hanteras slumptalen dåligt. 0-500 ger röd vinst 501-999 ger blå vinst.
Dessutom ger modulo med 1000 ytterligare fördel för röd.
rand() returnerar ett tal mellan 0 och RAND_MAX. Oftast 0-32767.
Det innebär att i intervallet 32000-32767 tillfaller enbart 327501-32767 blå.

Kod:
/* Slumptal för toss_up_stater 2020 */

#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 
#include <stdbool.h>

/* Dessa delstater har olika antal elektorer tex IO (Iowa) har 6 */
#define IO 6
#define OH 18
#define NC 15
#define GA 16
#define FL 29
#define ME 4
#define NE 5
const int electors[] = { IOOHNCGAFLMENE };
#define ITERATIONS 20
bool blueWins() {
  return 
rand() <= RAND_MAX/2;
}

int main()
{
   
  
srand(time(NULL)); /* krävs för att få nya slumptal varje körning */

  /* Det är vanligast på nätet att Demokrater är blå och Republikaner röda */
  
int blue_sum=0red_sum=0

  for(
int i=0ITERATIONS; ++i) {

    
int blue=0red=0;
    for (
int state 0state sizeof(electors)/sizeof(electors[0]); ++state) {
        if (
blueWins()) {
            
blue += electors[state];
        } else {
            
red += electors[state];
        }
    }
    
printf("Blåa laget(DEM) får: %d "blue);
    
printf(" Röda laget(REP) får: %d  "red);
    
printf("\n");
    
blue_sum += blue;
    
red_sum += red;
  }
  
double blue_mv = (double)blue_sum ITERATIONS;
  
double red_mv = (double)red_sum ITERATIONS;
  
printf("Blåa medelvärdet: %g "blue_mv);
  
printf(" Röda medelvärdet: %g "red_mv);
  
printf("\n Är detta slump? \n");
  return 
0;


Kan provköras här
https://godbolt.org/z/xT1vnM

Tack för dina synpunkter och din variant!
Jag testade med 20 000 iterationer på bägge. Det blir ingen tydlig skillnad- både röda och gröna går mot 46%.
Egentligen borde man väl ha ett undantag (ingen vana att skriva sådana) för lika.
Inga elektorer kan utses -> omval.
Citera
2020-10-25, 19:32
  #57
Medlem
kaks avatar
Citat:
Ursprungligen postat av grabb1948
Tack för dina synpunkter och din variant!
Jag testade med 20 000 iterationer på bägge. Det blir ingen tydlig skillnad- både röda och gröna går mot 46%.
Egentligen borde man väl ha ett undantag (ingen vana att skriva sådana) för lika.
Inga elektorer kan utses -> omval.
Det går inte mot 46%. Det går mot 46 elektorer.
Beträffande lika så är det ju inte antalet elektorer i swing states som avgör utan det totala antalet vunna elektorer. De två partierna har ju inte lika många säkra elektorer från andra stater.
Citera
2020-12-03, 22:33
  #58
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.

Så du har börjat en onlinekurs? Vilken isf? Själv varit intresserad och behöver tips på bra sådana som är ansedda att vara professionella
Citera
2020-12-04, 18:02
  #59
Medlem
AbsurdExistenss avatar
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.

Tycker inte C är svårt utan ett av de bästa sättet att få förståelse för programmering på. Nu vet jag inte exakt vad du tycker är svårt. Du kanske undervärderar din egen förmåga också? Många gånger så vet man inte att man faktiskt har förståelse för något utan den självuppfattningen smyger sig på så småningom. Eftersom C är en väldigt nära abstraktion av den riktiga maskinen tror jag någon form av verktyg som visualiserar minnet du allokerar och använder skulle vara nyttigt. Speciellt om du använder dig av pekare, char arrays osv. Att använda en debugger och stega sig runt i programmet med samtidigt som du undersöker värdet på olika variabler är ett tips.

Jag tror ett problem för nybörjare är att separera språket i sig, kompilatorer, bibliotek och ramverk. Vilka symboler tillhör vad liksom? Och det är något som man inte kommer undan i något språk. Det kan vara nyttigt att förstå C-kompilerings processen också, hur C-preprocessorn tolkar och sätter ihop kodmassan till en exekverbar enhet.

Det skulle vara intressant att veta vad du tycker är svårt med exemplet.

1. Skulle du kunna skapa själva funktions-definitionen i sig, utan att fylla den med logik?
1a) vad har funktionen för invärde?
1b) vad returnerar funktionen?

2. Om en variabel är av typ char[], hur kan du använda den då?

3. Om du har en lista med tecken, hur skulle du göra för att testa om det är ett palindrom?
3a) Om sista och första bokstaven är olika, är det då ett palindrom?

Svara gärna på varje fråga eller säg bara var exakt svårigheten ligger.
Citera
2020-12-09, 08:27
  #60
Medlem
Citat:
Ursprungligen postat av Sacula
Så du har börjat en onlinekurs? Vilken isf? Själv varit intresserad och behöver tips på bra sådana som är ansedda att vara professionella
Hej, nope ingen onlinekurs, kör en yh utbildning mjukvaruutvecklare inom industriell iot.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback