curs01
TRANSCRIPT
Programarea calculatoarelorşi
limbaje de programare 1
Număr de ore
Electronică aplicată (1311) 2C + 2L (5)Energetică industrială (1411) 2C + 3L (6)Sisteme electrice (1511) 2C + 3L (6)Inginerie economică (1611) 2C + 2L (5)
Număr de ore
Evaluare
Examen: proba scrisă (S)proba practică (P)NE =(S+P)/2
Activitate pe parcurs (NP, nr_abs_lab)
notaPCLP1=(NE+NP)/2, dacă NE≥5 şi NP ≥5 şinr_abs_lab=0
Bibliografie
� Herbert Schildt – C – manual complet, Ed.Teora
� Brian W. Kernighan, Dennis M. Ritchie – Limbajul C, Ed.Teora, 2003
� Şt. Ghe. Pentiuc, Cr. Turcu, C. Turcu, G. Mahalu, C. Petrişor – Programarea calculatoarelor, Suceava 1995
� Adina Bărîlă – Programare şi Tehnici de Programare, Îndrumar de laborator, Suceava, 2003
� www.eed.usv.ro/~adina/pclp1.html
Limbaje de programare
Un limbaj de programare este un limbaj
artificial ce constă dintr-un vocabular fixat şi
un set de reguli (numit sintaxă) ce poate fi
folosit la crearea instrucŃiunilor pe care le
poate parcurge un calculator.
Limbaje de programare
de nivel inferior - lucrează cu elemente de nivel hardware, cum ar fi: registru, procesor, locaŃie de memorie, port de I/O, etc. Ex: limbaj maşină
de nivel înalt
– permit programatorilor să scrie programe folosind cuvintelecheie şi sintaxa care seamănă oarecum cu limbajul umannatural
– scutesc programatorul de conceptele de detaliu despre cum va realiza fizic calculatorul acele instrucŃiuni
– fiecare instrucŃiune dintr-un limbaj de nivel înalt corespundemai multor instrucŃiuni în limbaj maşină
Limbaje de programare-exemple
FORTRAN (FORmula TRANslator) - primul limbaj de nivel înalt � a fost dezvoltat între anii 1954 şi 1958 de către o echipă
condusă de Jim Bachus� a introdus şi definit concepte ca variabile, expresii, enunŃuri
iterative, subrutine compilate separat si input/output format.� folosit în domenii ştiinŃifice şi inginereşti� au apărut numeroase standarde ale limbajului: FORTRAN II
(1958), FORTRAN IV (1961), FORTRAN 66 (1966), FORTRAN 77 (1977) , Fortran 90 (1990), Fortran 95 (1995), Fortran 2003 (2003)
Limbaje de programare-exemple
COBOL (COmmon Business-Oriented Language)� a fost dezvoltat între anii 1959-1961� este utilizat în special pentru aplicaŃii cu caracter economic
şi administrativ� a fost initial sustinut de Departamentul de Apărare
American şi ulterior dezvoltat pentru aplicaŃii comerciale.
Limbaje de programare-exemple
BASIC – Beginner’s Allpurpose Symbolic Instruction Code (cod de instrucŃiuni simbolice, de uz general, destinat începătorilor)� creat în 1964 la Darmooth College (SUA)� a cunoscut succesul maxim în anii 80� este
� simplu de învăŃat� neorientat pe un anumit tip de problemă
� un limbaj nestructurat.� au fost implementate noi versiuni de BASIC, diferite de
versiunea standard, care introduc elemente de structurareîn limbaj
Limbaje de programare-exemple
Pascal
� conceptualizat în 1970 de către Niklaus Wirth� poartă numele matematicianului şi filozofului Blaise Pascal
(1623-1662), în semn de recunoaştere a meritelor sale înteoretizarea maşinilor de calcul moderne
� a fost şi este considerat un limbaj modern� a introdus în versiunea sa iniŃială noŃiunea de programare
structurată şi ulterior noŃiunile de date dinamice, date definite de utilizator.
Limbaje de programare
C � a fost creat în 1971 de către Dennis Ritchie şi Brian Kernigham
pentru dezvoltarea sistemului de operare UNIX� Caracteristici:
� este un limbaj structurat de nivel înalt� posedă şi concepte de nivel scăzut, hardware� concizie deosebită a limbajului (set de operatori şi instrucŃiuni foarte
concise)� rutine de conversie a datelor foarte evoluate� tipuri de date definibile de către programator� gestionarea elaborată a datelor de tip dinamic� definirea de noi funcŃii� adresări indirecte ale datelor(pointeri)� recursivitate� set complet de funcŃii matematice� funcŃii pentru realizarea de grafică elementară 2D� funcŃii de apel servicii DOS
Limbajul C – cuvinte cheie
� cuvinte cu înŃeles bine precizat (predefinit)� se scriu cu litere mici şi nu pot fi utilizate în alte
scopuri.
Limbajul C – cuvinte cheie
auto extern sizeofbreak float staticcase for structchar goto switchconst if typedefcontinue int uniondefault long unsigneddo register voiddouble return volatileelse short while
Limbajul C – identificatori (nume)
� o secvenŃă de litere, cifre şi _ (semnul de subliniere), care trebuie să prezinte ca prim simbolo literă sau _
� nu pot fi cuvinte cheie (nume rezervate) ale limbajului
� Alfa şi alfa sunt considerate nume diferite� Exemple:
numarnr_1nr20_litera
Limbajul C – tipuri de date
Un tip de date specifică domeniul de valori pecare o variabilă de acel tip le poate păstra şisetul de operaŃii pe care le poate executaasupra datelor.
tipuri de date definitetipuri de date predefinite - asociate cu
un cuvânt cheie, utilizat în declaraŃie
Limbajul C – tipuri de date
cuv cheie lungime descriere
int 2o valori întregi în intervalul –32768 şi 32767short 2o idemlong 4o valori întregi în intervalul –2147483648 şi
2147483647unsigned 2o valori întregi în intervalul 0 şi 65535char 1o un singur caracter (reprezentat prin codul
ASCII) float 4o numere reale în simplă precizie (6 sau 7 cifre)
din intervalul 3.4E-38 şi 3.4E+37double 8o numere reale în dublă precizie (14 sau 15
cifre) din intervalul 1.7E-308 şi 1.7E+308
Limbajul C – variabile
� nume asociat cu una sau mai multe locaŃii de memorie.
� valoarea păstrată în aceste locaŃii se poate modifica încursul execuŃiei programului
� trebuie declarate – se specifică tipul şi numele� exemple:
int n,i;float x1, x2;char c;long numar;int 1n; INCORECTfloat x 1; INCORECTchar auto; INCORECT
Limbajul C – constantă
are un tip şi o valoare fixă pe toată durata execuŃieiprogramului care o conŃinetipul şi valoarea unei constante se definesc princaracterele care compun constanta respectivă
Limbajul C – constante
� întreagă: şir de cifre precedat, eventual, de semnul minus
Exemplu: 123-17
Limbajul C – constante
� flotantă: are o parte întreagă, care poate fi urmată de o parte fracŃionară şi de un exponent. Partea fracŃionară şi exponentul nu sunt ambele obligatorii, dar cel puŃin una din ele trebuie să fie prezentă
Partea fracŃionară este un şir de cifre zecimale precedate de punct.Exponentul începe cu litera e sau E după care poate urma un semn
opŃional urmat de cifre.
Exemplu Valoare1.25 1,250.47 0,4712e-1 12x10-1 (1,2)12e2 12x102 (1200)
Limbajul C – constante
� caracter – reprezintă un caracter şi are ca valoare codul ASCII al caracterului respectiv
caractere graficecaractere negrafice.
O constantă caracter care reprezintă un caracter grafic se scrieincluzând caracterul respectiv între caractere apostrof.
Exemplu:‘A’‘+’‘2’
Limbajul C – constante
caractere negrafice
revenire cu un pas ‘\b’(backspace)retur de car ‘\r’tab ‘\t’linie nouă ‘\n’NULL ‘\0’
Limbajul C – constante
� Constantă şir sau şir de caractere - un şir de zero sau mai multe caractere delimitate prin ghilimele. Ghilimelele nu fac parte din şirul de caractere.
Exemplu:“ABC”“Dati un numar”
OBS: “A” şi ‘A’ sunt diferite
Limbajul C – comentariu
� constituie doar o explicaŃie pentru programator� începe cu caracterele:
/*şi se termină cu:*/
Exemplu:/* Acesta este
un comentariu */
� sau începe cu // (comentariu pe un rând)Exemplu://Acesta este un comentariu
Limbajul C – structura unui program
Un program în limbajul C se compune din una sau
mai multe funcŃii. Dintre acestea una este funcŃia principală care are
numele main. Un program în C se lansează cu prima instrucŃiune a
funcŃiei main.
Exemplu:#include <stdio.h>
void main(void)
{
printf(“Primul program”);
}
Limbajul C – funcŃia printf
� Este utilizată pentru realizarea ieşirilor cu format. � Se apelează astfel:
printf(control, param1,param2, . . ., paramn);
unde:control conŃine
texte de scrisspecificatori de format pentru datele care se scriu
param1,. . ., paramn sunt expresii. Valorile lor se scriuconform specificatorilor de format prezenŃi în parametrul de control.
Parametrul de control este inclus între ghilimele. Numărul specificatorilor de format coincide cu numărul parametrilor
param1, . . ., paramn.
Limbajul C – funcŃia printf
Specificatori de format: un caracter procent urmat de-un caracter “-“ opŃional-un şir de cifre zecimale opŃional, care defineşte lungimea minimă a câmpului afectat datei respective.-una sau două litere
Litera:d pentru valori de tip into valori în format octalx hexau valori de tip unsignedld long intc chars pentru a afişa un şir de caracteref pentru valori reale (float)e float în format exponentialg alege %f sau %e – cel care se reprezintă pe un nr minim de caractere
Limbajul C – funcŃia printf
Exemple:
printf(“Invat C”);
printf(“Numarul este %d”, n);
printf(“%d + %d = %d”, a, b, a+b);
printf(“Solutia este %f\n”, x);
Limbajul C – funcŃia scanf
� permite citirea datelor sub controlul formatelor. � poate fi apelată prin:
scanf(control, par1, par2. . . ., parn);
undecontrol conŃine specificatori de format
par1, par2, . . . , parn definesc zonele receptoare ale datelor citite prin intermediul funcŃiei scanf. Fiecare paramerureprezintă adresa unei zone receptoare. Acest lucru se indică printr-o construcŃie de forma:
&nume
Limbajul C – funcŃia scanf
specificator de format: caracterul % urmat de- un caracter * (opŃional)- un şir de cifre (opŃional), defineşte lungimea maximă a câmpului
din care se citeşte data sub controlul formatului respectiv- una sau două litere
Câmpul controlat de un specificator de format începe cu primul caracter care nu este alb şi se termină:
� fie la primul caracter alb� fie când se depăşeşte lungimea maximă specificată în specificatorul
de format� fie când apare un caracter care nu corespunde specificatorului de
format.
Limbajul C – funcŃia scanf
Literele care pot fi utilizate într-un specificator de format:
Litera Conversia realizatăd Data de intrare este un şir de cifre zecimale, eventual precedat de un
semn minus şi se converteşte în binar de tip int.o Ca şi în cazul d, cu deosebirea că şirul de cifre este considerat ca
formând un număr octal.x Ca şi în cazul d, cu deosebirea că şirul de cifre se considă ca formează
un număr hexazecimal.u Data de intrare este un şir de cifre zecimale care formează un număr
întreg fără semn şi se converteşte în binar tipul unsigned.c Data se consideră formată din caracterul curent de la intrare şi
parametrului corespunzător i se atribuie codul ASCII al acestui caracter.s Data se consideră un şir de caractere.f Data de intrare reprezintă un număr flotant, eventual precedat de semnul
minus.
Limbajul C – funcŃia scanf
Exemplu:
Fie declaraŃiile:int a;
long numar;
float x;
scanf(“%d %ld %f”, &a, &numar, &x);
Limbajul C – Exemplu
#include <stdio.h>
void main(void)
{
int a,b;
printf(“Introduceti un nr intreg:”);
scanf(“%d”, &a);
printf(“Introduceti inca un nr intreg:”);
scanf(“%d”, &b);
printf(“Numerele sunt: %d si %d”, a, b);
printf(“Suma = %d”, a+b);
}