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

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

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

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

Programare in limbajul C – Cursul 1Introducere

Prof. univ.dr. Constantin Popescu

Page 2: 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

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

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)

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

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.

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

Ciclul de dezvoltare a unui program C

EditareProgram

CodulSursa

Compilator

CodulObiect

Leaga Codul Obiect Executabil

FisiereBiblioteca

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

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;

}

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

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

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

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ă.

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

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;

}

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

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;

}

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

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);

}

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

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ă.

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

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.

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

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.