przyklady c++.pdf

(143 KB) Pobierz
74372885 UNPDF
Podstawyj¦zykaCwprzykładach
TomaszChwiej
30listopada2005
1
Spistre±ci
1PierwszyprogramwC 3
2P¦tleiinstrukcjesteruj¡ce 4
2.1Instrukcjesteruj¡ce.................................. 5
3Tablice
10
4Funkcje
11
5Wska¹niki
12
6Obsługaplików 16
7Argumentywywołaniaprogramu,instrukcja switch 17
2
1PierwszyprogramwC
Abynapisa¢działaj¡cyprogramwj¦zykuCnale»y:
a)napisa¢kod¹ródłowyprogramuwedytorzetekstuinada¢murozszerzenie’c’np.:prog.c
b)abyskompilowa¢programwLinuxienale»ywyda¢polecenie: gccprog.c -wówczasje±li
wszystkopójdziedobrzetozostanieutworzonyplikwykonywalny a.out
c)je±liwprogramiejestbł¡dwówczaskompilatorwy±wietliinformacj¦orodzajubł¦du(np.
syntaxerror-bł¡dskładni)ipodanumerlinii,wktórejonwyst¦puje
d)abywykona¢programnale»ywpisa¢polecenie: ./a.out
Najprostszyprogramwygl¡datak:
1 #include<stdio.h>
2 main()
3 {
4 printf("halo");
5 /*atojestkomentarzniewidocznydlakompilatora*/
6 }
Uwagi:
wpierwszejlinijcedoł¡czamystandardow¡bibliotek¦wej±cia-wyj±ciatextbfstdio.h
wdrugiejlinijcezaczynasi¦funkcjamain,któramusiznajdowa¢si¦wka»dymprogramie
(imo»ewyst¡pi¢wnimtylkoraz)-programwykonujewszystkieinstrukcjezawarte
pomi¦dzynawiasamioraz
wczwartejliniiznajdujesi¦instrukcja printf (”halo”),którawy±wietlanapishalona
standardowewyj±cie(np.ekran)
ka»dainstrukcjamusiko«czy¢si¦±rednikiem’;’
w5liniizamieszczonyjestkomentarz,czylitekstpomi¦dzy /*tre±¢komentarza*/
Iniecozmodyfikowanyprogram:
1 #include<stdio.h>
2 main()
3 {
4 inti,j,k;
5 floatd,e;
6 i=0;
7 j=234;
8 k=-123;
9 d=12.13240987;
10 e=234;
11 printf("halo\n");
12 printf("%5d%5d%5d\n",i,j,k);
13 printf("%7.2f%7.5f%7.2f\n",d,d,e);
14 }
3
Uwagi:
wlinijce4podanodekalaracjetypówzmiennych inti,j,k; -intoznaczatypcałkowity
wlinijce5podanodekalaracjetypówzmiennych floatd,e; -floatoznaczazmienn¡rze-
czywist¡
warto±cizmiennychmusz¡by¢okre±loneprzedpierwszymichu»yciem(wewn¡trzfunkcji
main)
wfunkcjiprintfmo»emysformatowa¢sposóbwy±wietlaniazmiennych:formatujemyzmien-
n¡całkowit¡(typint)a
s¡przeznaczonenacyfryznajduj¡cesi¦pokropce(zapisanglosaski)
je±lizmiennazajmujemniejmiejsctojestonadosuwanadolewejstrony
wlinijce11wfuncjiprintf();wewn¡trzpolaokre±laj¡cegoformatwypisywanychzmien-
nychpojawiłsi¦ ’\n’ którywymuszaprzej±ciedonowejlinii
Zadanie: Sprawd¹corobitenprogram-porównajjakies¡warto±cizmiennychcałkowitych
irzeczywistych(wprogramie)ztymcowypisujeprogramnaekran.Zmie«formatwy±wietla-
nychdanychisprawd¹czymo»naspowodowa¢wy±wietlenienieprawidłowejwarto±cipoprzez
ograniczanieliczbypólprzeznaczonychdowy±wietlenia.
2P¦tleiinstrukcjesteruj¡ce
Pierwsz¡omawian¡p¦tl¡jestp¦tla while .Jejskładniajestnast¦puj¡ca:
1 while(warunek)
2 {
3 instrukcje;
4 }
Instrukcjewen¡trzp¦tlis¡wykonywanedopókiwarunekjestspełniony.Prostyprogram
wykorzystuj¡cyp¦tl¦while:
1 #include<stdio.h>
2 main()
3 {
4 inti=0,k=0;
5 while(i<=20)
6 {
7 k=i*i;
8 printf("%5d%5d%5d\n",i,k,5*i);
9 i=i+1;
10 }
11
12 }
4
Programwypisujewtrzechkolumnachliczby.Ostatnimzargumentówfunkcjiprintfjestwyra-
»enie5*i.P¦tlawilewykonujeinstrukcjezawartewewn¡trzniejdopókiijestmniejszelubrówne
20.Wewn¡trzp¦tliznajdujesi¦instrukcjazwi¦kszaj¡cawka»dymkrokuwarto±¢zmiennejio1
tj.i=i+1.
Kolejn¡p¦tl¡jestp¦tla for() ,którejskładniajestnast¦puj¡ca:
1 for(warunek_pocz¡tkowy;warunek_zako«czenia;przysrost)
2 {
3 instrukcje;
4 }
lub
1 for(warunek_pocz¡tkowy;warunek_zako«czenia;przyrost)pojedyncza_instrukcja;
Napiszmypoprzedniprogramu»ywaj¡cp¦tli for ()zamiast while ():
1 #include<stdio.h>
2 main()
3 {
4 inti=0,k=0;
5 for(i=0;i<=20;i=i+1)
6 {
7 k=i*i;
8 printf("%5d%5d%5d\n",i,k,5*i);
9 }
10 }
Uwagi:
kolejneargumentyp¦tli for ()musz¡by¢oddzielone±rednikami
warunekpocz¡tkowy,zako«czeniaiprzyrostuznajduj¡s¡argumentami-niedopuszczal-
najestjakakolwiekzmianawarto±cizmiennejsteruj¡cejiwewn¡trzblokuzawieraj¡cego
instrukcjejaktomiałomiejscewp¦tli while
2.1Instrukcjesteruj¡ce
Instrukcja if :
1 if(wyra»enie)instrukcja;
lub
1 if(wyra»enie)
2 {
3 ci¡gwieluinstrukcji;
4 }
5
Zgłoś jeśli naruszono regulamin