Programare in limbajul C – Cursul 1 Introducere Prof. univ.dr. Constantin Popescu

Post on 14-Jan-2016

38 views 1 download

description

Programare in limbajul C – Cursul 1 Introducere Prof. univ.dr. Constantin Popescu. Agenda. Istoric Argumente in favoarea utilizarii limbajului C Ciclul de dezvoltare a unui program C Exemple de programe C Compilarea unui program C Structura programelor. Istoric. - PowerPoint PPT Presentation

Transcript of Programare in limbajul C – Cursul 1 Introducere Prof. univ.dr. Constantin Popescu

Programare in limbajul C – Cursul 1Introducere

Prof. univ.dr. Constantin Popescu

Agenda

Istoric Argumente in favoarea utilizarii limbajului C Ciclul de dezvoltare a unui program C Exemple de programe C Compilarea unui program C Structura programelor

Istoric C a fost creat de Dennis Ritchie la AT&T Labs in 1972 Initial creat sa proiecteze si sa sustina sistemul Unix. Sunt numai 27 cuvinte cheie in versiunea originala C:

– for, goto, if, else ……

Este usor de construit un compilator pentru C: – Multi programatori au scris compilatoare C

– Compilatoarele C sunt disponibile pentru orice platforma

In 1983 American National Standards Institute (ANSI) a format un comitet pentru a stabili o definitie standard:– Numita ANSI Standard C.

– Diferita de K&R C (aparuta in prima editie a cartii lui Brian Kernighan si Ritchie: The C Programming Language)

Argumente pentru C C este un limbaj pentru programatori

– BASIC a fost un limbaj pentru nonprogramatori sa rezolve probleme simple.

– C a fost creat, influentat si testat de programatori.

C este puternic si eficient:– Se poate eficientiza codul.

– Apelurile sistem si pointerii permit multe facilitati ca si limbajul de asamblare.

C este un limbaj structurat:– Codul poate fi scris si citit mult mai usor.

C este standardizat:– Programele ANSI C sunt compatibile cu orice compilator ANSI C.

Ciclul de dezvoltare a unui program C

EditareProgram

CodulSursa

Compilator

CodulObiect

Leaga Codul Obiect Executabil

FisiereBiblioteca

Exemplul 1 Primul program pe care îl scrie oricine învaţă un nou limbaj

de programare este un program care afişează pe ecran un şir de caractere:

#include <stdio.h>

int main ( )

{

printf ("Hello, World!\n");

return 0;

}

Compilarea programului C Compilarea transforma codul sursa (din fisierul hello.c)

in codul obiect (instructiuni dependente de calculatorul pe care se lucreaza).– Diferente la Java:

Compilatorul javac creaza codul byte Java din programul Java.

Codul byte este apoi executat de masina virtuala Java, astfel este independent de calculator.

Editorul de legaturi va genera fisierul executabil. Exista multe compilatoare C sub Unix:

– SUN are Compilatorul C Workshop, comanda cc– Compilatorul freeware GNU gcc

Exemplul 2#include <stdio.h>/* tipareste cateva numere, pentru a ilustra o bucla*/int main(){ int i; for(i = 0; i < 10; i = i + 1) printf("i este %d\n", i); return 0;}

Primul element nou care apare în textul sursă este:/* tipareste cateva numere, pentru a ilustra o bucla */

Această linie este un comentariu. Tot ceea ce se pune între /* şi */ va fi ignorat de compilator Poate fi util pentru cel care citeşte programul şi încearcă

să-l înţeleagă.

Exemplul 3#include <stdio.h>

int main ()

{

int radius, area;

printf (“Introduce raza (de ex. 10) : ");

scanf ( "%d", &radius);

area = 3.14159 * radius * radius;

printf ("\nSuprafata = %d\n\n", area);

return 0;

}

Exemplul 4#include <stdio.h>

int main ()

{

int i, j;

for (i = 0; i < 10; i++)

{

printf ("\n");

for (j = 0; j < i+1; j++ )

printf ( "A");

}

printf("\n");

return 0;

}

Exemplul 5/* Program ce calculeaza produsul a

doua numere */

#include <stdio.h>

int product(int x, int y);

int main ()

{

int a,b,c;

/* Se introduce primul numar */

printf (“Introduce un numar intre 1 si 100: ");

scanf ("%d", &a);

/* Se introduce al doilea numar */

printf (" Introduce un alt numar intre 1 si 100: ");

scanf ("%d", &b);

/* Calculeaza si afiseaza produsul */

c = product (a, b);

printf ("%d x %d = %d \n", a, b, c);

return 0;

}

/* Functia returneaza produsul celor doua argumente */

int product (int x, int y)

{

return (x*y);

}

Structura programelor

Codul sursă C este format din mai multe elemente lexicale.

Elementele lexicale pot fi:– Cuvinte, cum ar fi for, return, main sau i, care sunt fie

cuvinte cheie ale limbajului (for, return), fie identificatori pe care i-am ales pentru funcţiile şi variabilele noastre (main, i)

– constantele, cum ar fi 1 sau 10 ce introduc noi valori în program

– operatori: =, +, >, care manipulează variabile şi valori– caractere de punctuaţie (numiţi delimitatori) cum ar fi

parantezele rotunde sau acoladele care indică modul în care sunt grupate celelalte elemente ale programului

– toate elementele lexicale pot fi separate prin spaţii albe: spaţiu, tab, linie nouă.

Exemplu 6 Fragmente de cod ce sunt tratate identic

de compilator:for(i = 0; i < 10; i = i + 1)

printf("%d\n", i);for(i = 0; i < 10; i = i + 1) printf("%d\n", i);for(i=0;i<10;i=i+1)printf("%d\n",i);

for(i = 0; i < 10; i = i + 1)printf("%d\n", i);for( i= 0 ;i < 10; i =i + 1) printf ("%d\n" , i) ;

for

(i=0;

i<10;i=

i+1)printf

("%d\n", i);

Toate secvenţele de mai sus sunt tratate identic de compilator.

Bibliografie

C. Popescu, I. Mang, D. Noje, H. Oros, Programarea în limbajul C, Editura Universităţii din Oradea, Oradea, 2002.

B. Kernighan, D. Ritchie, The C Programming Language, Second Edition, Prentice Hall, 1988.