170 likes | 345 Views
Uvod u programiranje I. jesen/zima 2008. Naredbe break i continue. break prevremeno prekida izvršavanje petlje ( while, do-while, for ), kao i naredbe switch continue prekida izvršavanje samo aktuelne iteracije petlje U ugnježđenim petljama se odnose samo na petlju u kojoj se nalaze.
E N D
Uvod u programiranje I jesen/zima 2008
Naredbe break i continue • break prevremeno prekida izvršavanje petlje (while, do-while, for), kao i naredbe switch • continue prekida izvršavanje samo aktuelne iteracije petlje • U ugnježđenim petljama se odnose samo na petlju u kojoj se nalaze Uvod u programiranje
Naredbe break i continue /* Demonstracija naredbe break */ #include <stdio.h> main() { int i = 0; while (1) { if (i == 10) break; printf(”%d ”, i); i++; } printf(”\n”); } Uvod u programiranje
Naredbe break i continue /* Demonstracija naredbe continue */ #include <stdio.h> main() { int i; for (i = 1; i <= 10; i++) { if (i%2 != 0) continue; printf(”%d ”, i); } printf(”\n”); } Uvod u programiranje
Ulaz i izlaz znakova • getchar() • čita naredni znak sa ulaza (tastature) • vraća njegov odgovarajući ceo broj (ASCII kôd) • putchar() • prima kao argument ceo broj • upisuje odgovarajući ASCII znak na izlaz (terminal) Uvod u programiranje
Ulaz i izlaz znakova • Primer: eho program /* kopira ulaz na izlaz */ #include <stdio.h> main() { int z; z = getchar(); while (z != EOF) { putchar(z); z = getchar(); } } Uvod u programiranje
Ulaz i izlaz podataka • printf(”string”[,izraz ...]) • printf(”Far. Cel.\n”); • printf(”---- ------\n”); • printf("%4d %6d\n", far, cel); • printf("%4d %6d\n", far, 5*(far-32)/9); Uvod u programiranje
Ulaz i izlaz podataka • Specifikacija formata: %[sirina][.ndec]slovo slovo format d decimalni zapis celog broja o oktalni zapis celog broja x heksadecimalni zapis celog broja c znak f uobičajeni zapis realnog broja e eksponencijalni zapis realnog broja Uvod u programiranje
Ulaz i izlaz podataka • Primeri: • printf(”%c %d %f %e”, ’$’, 17, 1.23, 45.123); $ 17 1.230000 4.512300e+001 • printf(”%3c %4d %6.1f”, ’$’, 17, 1.27); ··$¦·¦··17¦·¦···1.3¦ • Isto važi za scanf Uvod u programiranje
Konverzija podataka • Rezultat svakog izraza ima tip na osnovu tipova operanada • Automatska konverzija • Forsirana konverzija (cast) int m=5, n=3; float x=2.5, y=5.0; x = m + n; /* x = 8.0 */ n = y / 2; /* n = 2 */ x = m / n; /* x = 1.0 */ x = (float) m / n; /* x = 1.666667 */ Uvod u programiranje
Nizovi • Osnovni tipovi podataka • int, float, char, ... • Promenljive osnovnih tipova sadrže samo jednu vrednost • Složeni tipovi podataka • Nizovi, strukture, ... • Promenljive složenih tipova sadrže više od jedne vrednosti
Nizovi • Primer • Rezultati ispita za 100 studenta • int st1, st2, ..., st100; • int st[100]; • st[0], st[1], st[2], ..., st[99] 0 1 2 3 4 98 99 . . . st 89 75 93 68 77 65 92
Nizovi • Pojedinačni podatak niza se naziva element niza • Svaki element niza ima redni broj koji se naziva indeks elementa • Indeksi niza počinju od 0, ne od 1
Nizovi • Definisanje nizova • tip-elem ime-niza[duž-niza] • int st[100]; • char imeprez[30]; • tip-elem : neki od tipova • ime-niza : identifikator • duž-niza : ceo broj
Nizovi • Primer: srednja vrednost ocena na ispitu /* srednja vrednost ocena na ispitu */ #include <stdio.h> main() { int st[200]; /* ocene studenata */ int n; /* broj studenata */ int suma; /* zbir ocena studenata */ int i; /* brojač */
Nizovi printf(”Unesite broj studenata: ”); scanf(”%d”, &n); suma = 0; printf(”Unesite ocene za %d studenta\n”, n); for (i = 0; i < n; i++) { printf(”student %3d > ”, i+1); scanf(”%d”, &st[i]); suma = suma + st[i]; } printf(”Srednja ocena je %6.2f\n”, (float)suma/n); }
Nizovi • Indeks može biti celobrojni izraz • st[(i+1)/2]; • [] je operator kojim se najpre izračunava izraz unutar njega, a zatim se pristupa odgovarajućem elementu niza • Rezultat operatora [] mora biti u granicama niza, inače dolazi do greške • Inicijalizacija niza • int dum[12] = {31,28,31,30,31,30, 31,31,30,31,30,31} /* dum[0]=31, dum[1]=28, ... dum[11]=31 */