Johdatus ohjelmointiin / Lausekielinen ohjelmointi 1 & 2 Syntaksilomake (22.4.2007) C-kielen standardikirjaston funktioita <stdio.h> gets(merkkijono); scanf("formaatti", &muuttuja1,..., &muuttujan); sscanf(merkkijono, formaatti,&muuttuja1,, &muuttujan); printf("formaatti", muuttuja1,, muuttujan ); fflush(stdin); tiedosto-osoitin = fopen( tiedostonimi, moodi ); fscanf(tiedosto-osoitin, formaatti, &muuttuja1,, &muuttujan); fprintf(tiedosto-osoitin, formaatti, muuttuja1,, muuttujan); fclose(tiedosto-osoitin); <string.h> int strcmp(mjono1,mjono2); Paluuarvo == 0 jos merkkijonot ovat samat Paluuarvo < 0 jos mjono1 on aakkosissa ennen kuin mjono2 Paluuarvo > 0 jos mjono2 on aakkosissa ennen kuin mjono1 strcpy(mjono1, mjono2); int strlen(mjono); strcat(mjono1,mjono2); strchr(mjono,merkki); <stdlib.h> atoi(merkkijono); atof(merkkijono): int rand(void); void srand ( unsigned int seed );
<ctype.h> Paluuarvona on nolla, jos ominaisuutta ei ole, muuten jokin nollasta poikkeava arvo. int isalnum(char c); // onko c alfanumeerinen (A-Z, a-z, 0-9) int isalpha(char c); // onko c kirjain (A-Z, a-z) int isdigit(char c); // onko c numero (0-9) int isupper(char c); // onko c iso kirjain (A-Z) int islower(char c); // onko c pieni kirjain (a-z) int iscntrl(char c); // onko c kontrollimerkki (ASCII 0-31,127) int isprint(char c); // onko c kirjoittuva merkki (ASCII 32-126) int isgraph(char c); // onko c muu kirjoittuva merkki kuin välilyönti char toupper(char c); char tolower(char c); Ohjauskomennot %d int %ld long int %c char %s char[] %f float %e float eksponenttiosan kanssa %g float joko eksponenttiosan kanssa tai ilman sitä riippuen luvun arvosta %lf double %p muistipaikan osoite \a äänimerkki (alarm) \b askelpalautin \r palautus saman rivin alkuun \f sivunvaihto \n rivinvaihto \t vaakatabulaattori \v pystytabulaattori \\ kenoviiva \0 null-arvo \" lainausmerkki \' heittomerkki \? Kysymysmerkki
Tietotyypit unsigned char 8 bits 0 255 char 8 bits -128 127 enum 16 bits -32768 32767 unsigned int 16 bits 0 65535 short int 16 bits -32768 32767 int 16 bits -32768 32767 unsigned long 32 bits 0 4,294,967,295 long 32 bits -2,147,483,648 2,147,483,647 float 32 bits 3.4 * (10**-38) 3.4 * (10**+38) double 64 bits 1.7 * (10**-308) 1.7 * (10**+308) long double 80 bits 3.4 * (10**-4932) 1.1 * (10**+4932) Aritmeettiset operaattorit + yhteenlasku - vähennyslasku * kertolasku / jakolasku % jakojäännös (vain kokonaislukujaossa) Vertailuoperaattorit == yhtäsuuri!= erisuuri < pienempi kuin > suurempi kuin <= pienempi tai yhtä suuri >= suurempi tai yhtä suuri Loogiset operaattorit! ei && ja tai Ehtolause if (lauseke) lause1; else if (lauseke) lause2; else lause n;
Toistolauseet while while (ehto_on_tosi) for for (alkuehto; toistoehto; loppuehto) do-while do while (ehto_on_tosi); Rakenteiset tietotyypit Taulukko tietotyyppi nimi[taulukon_koko]; 2) Taulukon alkioon viittaaminen 1. alkio: nimi[0] 2. alkio: nimi[1] Kaksiulotteinen taulukko tietotyyppi nimi[rivien_lkm][sarakkeiden_lkm]; 2) Taulukon alkioon viittaaminen nimi[rivi_indeksi][sarake_indeksi]; Moniulotteinen taulukko
tietotyyppi nimi[indeksi1_lkm][indeksi2_lkm] [indeksin_lkm]; 2) Taulukon alkioon viittaaminen nimi[indeksi1][indeksi2] [indeksin]; Tietue struct tietotyyppi muuttuja1; tietotyyppi muuttuja2; tietuetyyppi; struct tietuetyyppi tietotyyppi muuttuja1; ; 2) Tietueen kenttään viittaaminen struct tietuetyyppi tietuemuuttuja; tietuemuuttuja.muuttuja1=muuttujan_arvo; Funktiot Arvoparametrillinen funktio: 1) Esittely: tietotyyppi nimi(tietotyyppi, tietotyyppi, ); 2) Määrittely: void nimi(tietotyyppi muuttuja1, tietotyyppi muuttuja2, ) tietotyyppi nimi(tietotyyppi muuttuja1, tietotyyppi muuttuja2, ) return muuttuja;
3) Kutsuminen: nimi(muuttuja1, muuttuja2,...); paluuarvo=nimi(muuttuja1, muuttuja2,...); Muuttujaparametrillinen funktio 1) Esittely: tietotyyppi nimi(tietotyyppi *, tietotyyppi *, ); tietotyyppi nimi(tietotyyppi *muuttuja, tietotyyppi *tietue, tietotyyppi *taulukko, tietotyyppi *tietuetaulukko ); 2) Määrittely: void nimi(tietotyyppi *muuttuja, tietotyyppi *tietue, tietotyyppi *taulukko, tietotyyppi *tietuetaulukko ) tietotyyppi nimi(tietotyyppi *muuttuja, tietotyyppi *tietue, tietotyyppi *taulukko, tietotyyppi *tietuetaulukko ) return muuttuja; 3) Kutsuminen: nimi(&muuttuja, &tietue, taulukko, tietuetaulukko...); paluuarvo=nimi(&muuttuja, &tietue, taulukko, tietuetaulukko...);