curs01

34
Programarea calculatoarelor şi limbaje de programare 1

Upload: cristina-ursu

Post on 22-Oct-2015

12 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: curs01

Programarea calculatoarelorşi

limbaje de programare 1

Page 2: curs01

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)

Page 3: curs01

Număr de ore

Page 4: curs01

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

Page 5: curs01

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

Page 6: curs01

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.

Page 7: curs01

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ă

Page 8: curs01

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)

Page 9: curs01

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.

Page 10: curs01

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

Page 11: curs01

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.

Page 12: curs01

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

Page 13: curs01

Limbajul C – cuvinte cheie

� cuvinte cu înŃeles bine precizat (predefinit)� se scriu cu litere mici şi nu pot fi utilizate în alte

scopuri.

Page 14: curs01

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

Page 15: curs01

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

Page 16: curs01

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

Page 17: curs01

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

Page 18: curs01

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

Page 19: curs01

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ă

Page 20: curs01

Limbajul C – constante

� întreagă: şir de cifre precedat, eventual, de semnul minus

Exemplu: 123-17

Page 21: curs01

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)

Page 22: curs01

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’

Page 23: curs01

Limbajul C – constante

caractere negrafice

revenire cu un pas ‘\b’(backspace)retur de car ‘\r’tab ‘\t’linie nouă ‘\n’NULL ‘\0’

Page 24: curs01

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

Page 25: curs01

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

Page 26: curs01

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

}

Page 27: curs01

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.

Page 28: curs01

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

Page 29: curs01

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

Page 30: curs01

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

Page 31: curs01

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.

Page 32: curs01

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.

Page 33: curs01

Limbajul C – funcŃia scanf

Exemplu:

Fie declaraŃiile:int a;

long numar;

float x;

scanf(“%d %ld %f”, &a, &numar, &x);

Page 34: curs01

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

}