Ex Programe Pascal

Embed Size (px)

Citation preview

program usor; begin end. Orice program Pascal ncepe cu cuvntul program urmat de numele programului. Orice program Pascal contine cuvintele begin i end. Dup numele programului se pune ; Orice program Pascal se termina cu . Un program Pascal are structura urmtoare: program nume; definiii de constante; definiii de tipuri; declaraii de variabile; declaraii de subprograme; begin instruciuni end. Nu este obligatoriu ca ntr-un program s figureze toate acestea, dar dac ele figureaz, trebuie s apar n aceast ordine. Vocabularul limbajului Turbo Pascal folosete urmtoarele caracterelor: litere : a z, A Z cifre : 0 9 caractere speciale : + - * / @ # $ % ^ & { } Identificatorii Sunt simboluri care desemneaz variabile, proceduri, funcii, constante, tipuri, programe i cmpuri de articole. Un identificator ncepe cu o liter, care poate fi urmat de orice combinaie de litere, cifre sau caracterul de subliniere (_). Lungimea identificatorilor nu este limitat, dar snt semnificative doar primele 63 de caractere. Constantele, numerele Constantele, desemneaz valori ntregi sau reale. Numerele reale se scriu sub forma: partea_ntreag.partea_zecimal adic n locul virgulei zecimale se folosete punctul zecimal. Separarea instruciunilor Este realizat prin caracterul punct i virgul (;). Acest caracter este destinat separrii i nu terminrii unei instruciuni. Prezena lui nu este obligatorie dup fiecare instruciune iar n faa instruciunii End, poate s i lipseasc, iar n faa cuvntului cheie Else, acest caracter este interzis. iruri de caractere Un ir de caractere este o secven de caractere ncadrate ntre dou apostroafe. Dac se dorete ca irul nsui s conin caracterul apostrof, acest caracter trebuie s fie dublat. irul poate s conin zero sau mai multe caractere. Un ir nu poate fi desprit n mai multe linii. Un ir de caractere, care nu conine nici un caracter, se numete ir vid (nul). Exemple de iruri de caractere : Turbo Comentarii Un comentariu este o secven de caractere inserate n program cu scopul facilitrii nelegerii aciunilor sale. Comentariile snt construcii ignorate de compilator i servesc la precizarea observaiilor programatorului, privitor la o seciune din program. Un comentariu ncepe cu caracterul { sau cu perechea de caractere (* i se ncheie cu caracterul } sau cu perechea *). Exemple de comentarii : { Acesta este un comentariu } (* Acesta este un program *) Instructiuni WRITE Este o instruciune pentru afiarea pe ecran a unui text (ir de caractere) sau a valorii unor constante, unor variabile sau unor expresii. Coninutul a ceea ce urmeaz s fie afiat pe ecran

este ncadrat de dou paranteze rotunde. Lista a ceea ce urmeaz s fie afiat pe ecran este desprit prin virgul. Instruciunea WRITELN face aceeai aciune ca i WRITE dar dup afiare mut cursorul la nceputul rndului urmtor al ecranului. Exemplu write ('a=', a); Descriere: afieaz pe ecran irul a= dup care afieaz valoarea variabilei sau constantei a. READ Este o instruciune care citete de la tastatur o variabil, cu excepia tipului boolean. Variabilele se scriu ntre paranteze i, dac sunt mai multe variabile, se despart prin virgul. Instruciunea READLN face acelai lucru ca READ dar ateapt un nainte de a prelucra datele primite. n caz c sunt citite mai multe variabile, introducerea acestora se va face prin separarea valorilor prin spaii albe (, sau ). Exemple write ('Dati x='); readln (x); Descriere: afieaz pe ecran Dati x= dup care citete de la tastatur valoarea variabilei x. readln; Instruciunea de atribuire (asignare) ce urmeaza dupa enuntul readln volum :=lungime*latime*inaltime; se numeste enunt de atribuire intrucat el calculeaza ceva (produsul dintre lungime, latime si inaltime) si atribuie (asigneaza, afecteaza) rezultatul variabilei din stanga simbolului ":=". Partea dreapta a acestui enunt este un exemplu de expresie aritmetica.

Sa se afiseze media aritmetica, geometrica si hiperbolica a trei valori reale. Analiza problemei - elaborarea algoritmului: -trebuie aplicate formulele pentru calculul celor trei medii si trebuie analizate cazurile : cand nu putem calcula media geometrica a trei numere(cand produsul lor este negativ,deci cand avem unul sau trei numere negative) cand nu putem calcula media hiberbolica a numerelor(cand unul dintre numere este egal cu 0 si nu poate fi facuta impartirea cu 0). - in TurboPascal exista o functie pentru calculul radicalului de ordinul 2 (sqrt),dar pentru calculul radicalului de ordinul n nu este implementata o functie de aceea pentru calculul radicalului de ordinul n folosim functia exponentiala ( exp ) pentru a calcula o puterea a lui: a n =exp(n*ln(a)), iar pentru a calcula radical de ordinul n din a: a1/n=exp(1/n*ln(a)) . program medii; var a,b,c,ma,mg,mh:real; BEGIN write('a=');readln(a); write('b=');readln(b); write('c=');readln(c); writeln('ma=',(a+b+c)/3:6:2);if (a=0) or (b=0) or (c=0) then writeln('mg=0')

else if a*b*c>0 then writeln('mg=',exp(1/3*ln(a*b*c)):6:2) else writeln('Nu putem calcula media geometrica ,nr negative .'); if (a=0) or (b=0) or (c=0) then writeln('Nu putem calcula media hiperbolica') else writeln('mh=',3/(1/a+1/b+1/c):6:2); readln; END. // solutia in limbajul C #include #include float a,b,c,ma,mg,mh; void main(void) else

} Sa se determine suma primelor n numere naturale. Analiza problemei - elaborarea algoritmului: -suma primelor n numere naturale poate fi calculata, fara a folosi formula cunoscuta, cu una dintre instructiunile repetitive cunoscute(for,while ,repeat) -indiferent de instructiunea repetitiva folosita trebuie initializata suma cu 0 (s=0) -folosim un contor i (1,n) care la fiecare pas se incrementeaza cu 1 si se aduna la s -ciclul se incheie cand valoarea lui i>n -daca folosim instructiunea for, numarul pasilor este cunoscut, valoarea initiala a contorului fiind 1, iar cea finala fiind n. program suma; var s,i:word; BEGIN writeln('Introduceti limita n=');readln(n); s:=0; for i:=1 to n do s:=s+i; writeln('s=',s); readln; END. // solutia in limbajul C #include unsigned s,i; void main(void)Sa se determine daca trei numere reale pot reprezenta laturile unui triunghi. Daca da, sa se calculeze perimetrul si aria sa.

Analiza problemei - elaborarea algoritmului : -trebuie sa vedem cnd trei numere pot fi lungimile laturilor unui triunghi: cele trei numere trebuie sa fie pozitive si suma a oricare doua dintre ele sa fie mai mare decat a treia latura. -algoritmul poate fi implementat folosind o functie care sa verifice daca cele trei numere indeplinesc conditiile enumerate mai sus.-dupa verificarea celor trei numere calculam perimetrul si aria triunghiului folosind formula lui Heron s=sqrt(p(p-a)(pb)(p-c)), unde semiperimetrul este p=(a+b+c)/2.

program arie; var a,b,c:integer; s,p:real; function laturi_ok:boolean; begin laturi_ok:= (a>0) and (b>0) and (c>0) and (a+b>c) and (a+c>b) and (b+c>a) ; end; BEGIN write('introduceti laturile');readln(a,b,c); P:=(a+b+c)/2; IF laturi_ok then begin s:=sqrt(p*(p-a)*(p-b)*(p-c)); writeln('s=',s:5:2); writeln('p=',p*2:5:2); end else writeln('laturi negative sau prea mari'); readln; END. // solutia in limbajul C #include #include float a,b,c; float s,p; int laturi_ok(void) void main(void) else printf("laturi negative sau prea mari"); }