| free hosting image hosting hosting reseller online album e-shop famous people | ||
![]() ![]() |
||
|
|
Kurs za programirawe vo C
|
|
|
|
Lekcija 2
2-1Primawe na vnes od tastatura
Da vidime eden primer so koj se dobivaat vrednosti od tastatura. Primer 2:
#include <stdio.h> main() { int a,b,c; printf(“Vnesi vrednost za a:”); scanf(“%d”,&a); printf(“Vnesi vrednost za b:”); scanf(“%d”,&b); c=a+b; printf(“a+b=%d”,c); }
Izlezen rezultat:
Vnesi vrednost za a: 10 Vnesi vrednost za b: 20 a+b=30
*Funkcijata scanf samata vnesuva nov karakter vo linijata nie ne treba da vnesuvame vo printf funkciite.
Op{ta forma na scanf funkcijata e:
Scanf(“Format string”,&promenliva,&promenliva,…);
Format string sodr`i mesta za promenlivi koi planirame da gi primime od tastatura.’&’ znakot doa|a pred sekoe ime na promenliva {to doa|a vo listata na promenlivi.Karakterite se isklu~ok od ova pravilo.Tie ne doa|aat so ovoj znak pred niv.]e gi prou~ime karakterite vo ova poglavje.
Ne e dozvoleno da vnesuvate bilo kakov dodaten karakter vo format string osven za~uvuva~i na mesta i nekoi specijalni karakteri.
Vnesuvaj}i duri i prazno mesto ili drug nedozvolen karakter }e pri~ini va{iot program da ne raboti kako {to treba.Za sega vnesuvajte gi karakterite za za~uvuvawe na mesta vo scanf format string.
Sledniov primer dobiva pove}e promenlivi od tastatura.
float a; int n; scanf(“%d%f”,&n,&a);
Obrnete vnimanie deka scanf funkcijata nemo`e da proveruva gre{ki.Programerot e dol`en za validno vnesuvawe podatoci(tip,opseg isl.) i spre~uvawe gre{ki.
2-3 Promenlivi nizi
Nizite se strukturi koi memoriraat pove}e promenlivi od ist tip.Niza od celobron tip dr`i celobrojni vrednosti.
int niza[10]
Nizata “niza” sodr`i niza od 10 celobrojni vrednosti.Mo`eme da go koristime sekoj ~len od nizata so specificirawe na negovata indeksna vrednost.
^lenovite na gornata niza se niza[0],….,niza[9] pa taka mo`eme da rabotime so ovie promenlivi kako i so site drugi promenlivi.
niza[0]=124; niza[8]=1190;
Primer 2:
Vnenete tri ocenki na student od niza i presmetajte go negoviot prosek.
#include <stdio.h> main() { int ocenka[3],suma; float prosek; printf(“Vnesi ja prvata ocenka: ”); scanf(“%d”,&ocenka[0]); printf(“Vnesi ja vtorata ocenka: ”); scanf(“%d”,&ocenka[1]); printf(“Vnesi ja tretata ocenka: ”); scanf(“%d”,&ocenka[2]); suma=ocenka[0]+ocenka[1]+ocenka[2]; prosek=suma/3;
printf(“Sumata e = %d\nProsekot e =%f”,suma,prosek); }
Izlezni rezultati:
Vnesi ja prvata ocenka:12 Vnesi ja vtorata ocenka:14 Vnesi ja tretata ocenka:15 Sumata e =41 Prosekot e =13.000000
2-4Karakteri
Vo programskiot jazik C gi smestuvame imiwata,frazite i sli~no vo karakteri.Karakterni znaci se nizi od karakteri.Sekoj ~len na nizata sodr`i eden karakter vo stringot.
Poglednete go ovoj primer:
main() { char ime[20];
printf(“Vnesi go tvoeto ime:”); scanf(“%s”,ime); printf(“Zdravo, %s , kako si ?”,ime); }
Izlezen rezultat:
Vnesi go tvoeto ime:Dimitar Zdravo, Dimitar, kako si ?
Ako korisnikot vnese “Dimitar” toga{ prviot ~len }e bide ‘D’,vtoriot ‘i’ i takanatamu.
C go nao|a krajot na nizata so vrednost na karakter nula.Ovoj karakter go vikame ‘NULL’ karakter i go prika`uvame so ‘\0’ karakter.
Isto taka mo`eme da ja sostavime taa niza od karakteri so nazna~uvawe na vrednost na sekoj ~len:
Ime[0]=’D’; Ime[1]=’i’; Ime[2]=’m’; Ime[3]=’i’; Ime[4]=’t’; Ime[5]=’a’; Ime[6]=’r’; Ime[7]=0; ili Ime[0]=’\0’;
Kako {to vidovme vo gorniot primer za~uvuva~ot na mesto za string promenlivite e %s. Isto taka nema da koristime ‘&’ znak za primawe na string promenlivite,toa }e go doznaeme vo narednite lekcii.
2-5 Preprocesori
Preprocesorski izrazi se tie koi zapo~nuvaat so znakot ‘#’.Primer e #include <stdio.h> izrazot {to go koristime za da ja vklu~ime stdio.h datotekata vo na{ite programi.
Preprocesorskite izrazi se procesiraat od programot nare~en preprocesor pred kompajliraweto da zapo~ne.Po preprocesorskiot ~ekor kompajlerot ja zapo~nuva svojata rabota.
2-6 #define preprocesorska komanda
#define se koristi za dafinirawe na konstanti i alijasi.Poglednete go ovoj primer:
#include <stdio.h>
#define PI 3.14 #define ERROR_1 “Datotekata ne e najdena.” #define QUOTE “Zdravo Makedonijo!”
main() { printf(“Plostinata na krug = %f * diametar”,PI); printf(“\nGreska : %s”,ERROR_1); printf(“\nKvota : %s”,QUOTE); }
Izlezni rezultati:
Plostina na krug = 3.140000 * diametar Greska : Datotekata ne e najdena. Kvota : Zdravo Makedonijo!
Bidej}i preprocesorskiot ~ekor se izvr{uva pred kompilacijata, kompajlerot programot go ~ita vaka:
#include <stdio.h> main() { printf(“Plostinata na krug = %f * diametar”,3.14); printf(“\nGreska : %s”,”Datotekata ne e najdena.”); printf(“\nKvota : %s”,”Zdravo Makedonijo!”); }
Nakratko #define ni dozvoluva da definirame simboli~ni konstanti.Naj~esto koristime golemi bukvi za promenlivi od tipot na #define.
Zabele`ete deka posle preprocesorski izrazi ne koristime ‘;’.
2-7 Ograni~uvawa kaj promenlivite
Granicata za memorirawe na promenlivi vrednosti e povrzana so koli~estvoto na memoriski prostor {to taa go koristi vo sistemskata memorija. Vo razli~ni operativni sistemi i kompajleri razli~na koli~ina na memorija e vrzana za specifi~en tip na promenliva.Na primer, celobroen tip }e koristi 2 bajti vo DOS no 4 vo Windows okolina.
Ako ne ste sigurni za ograni~uvawata na tipovite na promenlivi vo va{iot sistem mora da gi vidite informaciite vo va{iot kompajler.
Isto taka mo`e da ja koristime sizeof() funkcijata za da odredime golemina na promenliva ili tip na promelniva.
Primer:
main() { int i; float f;
printf(“Celobroen tip koristi %d bitovi od memorijata.”,sizeof(i)); printf(“Realen tip koristi %d bitovi od memorijata.”,sizeof(float)); }
Mo`ete da vidite deka mo`eme da koristime i promenliva i tip na promenliva kako parametar za sizeof() funkcijata. Vo ovaa tabela se dadeni ograni~uvawata na Turbo C i Microsoft C vo DOS operativniot sistem.
Opseg na koristeni bitovi
char 1 256 int 2 65536 short 2 65536 long 2 4 bilioni float 4 6 cifri * 10e38 double 8 10 cifri *10e38
Isto taka imame dva vida na promenlivi od gornive tipovi vo C programskiot jazik.Znakovni i neznakovni.Znakovnite promenlivi podr`uvaat i negativni vrednosti,dodeka neznakovnite samo pozitivni.
Ako se koristi znakovna vrednost gornata vrednost }e se podeli so dva.Na primer znakovniot int opseg e (-32768,+32767).
Mo`ete da deklarirate promenlivi kako znakovni ili neznakovni so dodavawe na “signed” ili “unsigned” klu~en zbor pred tipot na promenlivata. Primer:
signed int a; unsigned int b;
a=32700; b=65000;
Dozvoleno ni e da nazna~ime vrednosti pogolemi od 32676 na promenlivata ‘b’ no ne i na promenlivata ‘a’.C mo`e i da ne se `ali ako napravime taka me|utoa programot nema da raboti kako {to o~ekuvame. Soodvetno mo`e da nazna~ime negativni broevi na ‘a’ no ne i na ‘b’. Predodreden tip za site promenlivi e znakovniot pa taka ne treba da pi{uvame ‘signed’ pred promenlivata. |