Capitolul 1.1. Pornirea

Vezi subiectul anterior Vezi subiectul urmator In jos

Capitolul 1.1. Pornirea

Mesaj  zooky la data de Mier Mar 18, 2009 12:40 am

Singurul mod de a invata un nou limbaj de programare este de a scrie programe in el. Primul program pe care-l vom scrie este acelasi pentru toate limbajele:

Tipariti cuvintele

hello, world

Acesta este primul obstacol; pentru a sari peste el, trebuie sa fiti in stare sa creati undeva textul program, sa-l compilati cu succes, sa-l incarcati, sa-l executati si sa aflati textul tiparit acolo unde este iesirea calculatorului dumneavoastra. In C, programul pentru a tipari "hello, world" este:

main ()
{
printf("hello, world\n");
}

Cum ruleaza acest program, depinde de sistemul pe care-l folositi, Drept exemplu specific, pe sistemul de perare RSX, trebuie sa creati acest program sursa intr-un fisier al carui nume se termina in ".C", de exemplu "hello.C" apoi sa-l compilati cu comenzile:

>cc hello
>as hello

Daca n-ati gresit nimic, de exemplu sa fi uitat un caracter sau sa fi inversat doua caractere, compilarea se va desfasura silentios si va produce un fisier obiect numit "hello.obj". Lansindu-l in executie dupa linkeditare cu comenzile

>tkb hello=hello,lb:[1,1]clib/lb
>run hello

va produce

hello, world

ca iesire a sa. Pe alte sisteme, regulile vor fi diferite; verificati-le cu expertul local.

Exercitiul 1.1. Executati acest program pe sistemul dumneavoastra. Incercati sa vedeti ce mesaje de eroare obtineti, lasind la o parte parti din program.

Si acum citeva explicatii despre programul insusi. Un program C, oricare i-ar fi marimea, consta din una sau mai multe "functii" care specifica operatiile efective de calculat care trebuiesc facute. Functiile din C sint similare cu functiile si subrutinele dintr-un program Fortran sau cu procedurile din PL/1, Pascal,etc.
In exemplul nostru, "main" este o astfel de functie. In mod normal aveti libertatea de a da functiilor ce nume doriti, dar "main" este un nume special - programul dumneavoastra se va executa de la inceputul lui "main". Aceasta inseamna ca fiecare program trebuie sa aibe un "main" undeva, ca "main" va invoca in mod obisnuit alte functii pentru a-si realiza scopul, unele venind din acelasi program iar altele din biblioteci ce contin functii
scrise anterior.

O metoda de a comunica date intre functii este prin argumentele functiilor. Parantezele care urmeaza dupa numele functiei includ lista de argumente. In cazul nostru, "main" este o functie fara argumente ceea ce se indica prin "()". Acoladele "{ }" includ instructiunile care alcatuiesc functia. Ele sint analoage lui "DO-END" din PL/1 sau lui "begin-end" din ALGOL, PASCAL, etc. O functie este apelata prin nume, urmate de o lista de argumente in paranteze.
Nu exista instructiunea CALL ca in FORTRAN sau PL/1. Parantezele trebuie sa fie prezente chiar daca nu exista argumente.

Linia care spune:

printf("hello, world\n");

este un apel de functie, care cheama o functie numita "printf" cu argumentul ("hello, world\n"). "printf" este o functie din biblioteca care tipareste pe terminal (daca nu este specificata o alta destinatie). In acest caz, ea tipareste sirul de caractere care alcatuiesc argumentul.

O secventa alcatuita din orice numar de caractere cuprinse intre doua ghilimele "..." se numeste sir de caractere sau constanta sir. Pentru moment, singura folosire a sirurilor de caractere va fi ca argumentele pentru "printf" si alte functii.

Secventa "\n" din sir este notatia din C pentru caracterul "linie noua", care, cind este tiparit, avanseaza cursorul terminalului la marginea din stinga a urmatoarei linii. Daca uitati "\n" (un experiment care merita facut), veti observa ca iesirea dumneavoastra nu se termina cu o linie noua. Singurul mod de a avea caracterul "linie noua" in "printf" este "\n" ca argument. Daca incercati ceva de tipul

printf("hello, world");

compilatorul C va va tipari un diagnostic neprietenos despre ghilimele absente.

"printf" nu furnizeaza o linie noua in mod automat, asa ca apelurile multiple pot fi folosite pentru a tipari o linie pe etape. Primul nostru program poate fi scris la fel de bine si astfel:

main()
{
printf("hello, ");
printf("world");
printf("\n");
}

pentru a produce o iesire identica.
Sa notam ca "\n" reprezinta un singur caracter. O "secventa escape" ca de exemplu "\n" este in general un mecanism extensibil pentru reprezentarea caracterelor greu de obtinut sau invizibile. Printre alte secvente escape, limbajul C poseda: \t pentru tab, \b pentru backspace, \" pentru apostrof dublu si \\ pentru backspace.
avatar
zooky
Moderator
Moderator

Numarul mesajelor : 147
Data de inscriere : 15/03/2009
Varsta : 24
Localizare : Cernatesti City

Vezi profilul utilizatorului http://e-learning.forumhit.ro

Sus In jos

Vezi subiectul anterior Vezi subiectul urmator Sus


 
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum