Īn spiritul celor spuse mai sus, vom introduce acum "īntr-un ritm alert", prin exemple concrete, notiunile elementare de programare īn limbajele Pascal si C (īn paralel). Vom pleca de la prezentarea structurii generale a unui program iar apoi vom trece la prezentarea celor patru structuri-instructiuni elementare continute īn psedo-li 12412s1816m mbajul de descriere a algoritmilor. Vom avea īn plus grija de a precede descrierea fiecarei structuri elementare de liniile de declarare a tipului variabilelor implicate. Peste tot vor apare linii de comentariu (ignorate de compilator). Īn limbajul Pascal comentariile sīnt cuprinse īntre acolade , pe cīnd īn C ele sīnt cuprinde īntre constructia de tipul /* comentariu*/ sau apar la sfīrsitul liniei precedate de doua slash-uri //comentariu.
Structura unui program |
|
Program Nume_de_Program; BEGIN END. (Orice se va scrie dupa punct va fi ignorat de catre compilator) |
// linii de incluziuni de fisiere header // declaratii de variabile si functii externe (globale) void main(void) |
Exemplu : Program Un_Simplu_Test; Const e=2.68; Var x:real; BEGIN x:=1./2+e*(1+e); Writeln('Rezultatul este:',x); END. |
Exemplu : #include <stdio.h> int e=2.68; float x; void main(void) |
Atribuirea : var:=expresie; |
|
Var i,j:integer;perimetrul:real; j:=2000 div 15; i:=i+(j-1)*Sqr(2*j+1); perimetrul:=2*PI*i; |
#include <math.h> // declara constanta M_PI int i,j; float perimetrul; j=2000 / 15; // īmpartire īntreaga implicita !! i+=(j-1)* (2*j+1)*(2*j+1); // īn C avem operatorul // de adunare + īnainte de egal = ; functia putere īn // C este pow(x,y) perimetrul=2*M_PI*i; |
Intrare/Iesire : Citeste var1, var2, var3, .; Scrie var1, var2, var3, .; Sau Scrie expresia1, expresia2, expresia3,.; |
|
Var i,j:integer;perimetrul:real; Readln(i,j); Perimetrul:=2*PI*i; Writeln('Raza=',i:4,' Perimetrul=',perimetrul:6:2,' Aria=', PI*Sqr(i):6:2); |
#include <math.h> // declara constanta M_PI int i,j; float perimetrul; scanf("%i %i",&i,&j); // "%i %i" este descriptorul de format de citire, & este operatorul de adresare perimetrul=2*M_PI *i; printf("Raza=%4i Perimetrul= %6.2f Aria= %6.2f",i,perimetrul,M_PI*i*i); // %6.2f - descriptorul de format de afisare a unei valori reale(flotante) pe 6 pozitii rotunjit la 2 zecimale |
Conditionala : Daca <conditie_logica> atunci instructiune1 [altfel instructiune2]; |
|
Var i,j,suma:integer; If i <= 2*j+1 then suma:=suma+i else suma:=suma+j; |
int i,j,suma; if (i<=2*j+1) suma+=i else suma+=j; |
Ciclul de tipul Repeat-Until: Repeta instructiune1, instructiune2, . pīna cīnd <conditie_logica>; |
|
Var i,j,suma:integer; suma:=0;i:=1; Repeat suma:=suma+i; i:=i+1; Until i>100; |
int i,j,suma; suma=0;i=1; do suma+=i; while (i++<100); |
Ciclul de tipul Do-While: Cīt timp <conditie_logica> executa instructiune; |
|
Var i,j,suma:integer; suma:=0;i:=1; While i<=100 do begin suma:=suma+i; i:=i+1; End; |
int i,j,suma; suma=0;i=1; while (i++<100) suma+=i; |
Ciclul de tipul For (cu contor): Pentru var_contor:=val_initiala pīna la val_finala executa instructiune; |
|
Var i,j,suma:integer; suma:=0; For i:=1 to 100 do Suma:=suma+i; |
int i,j, suma; for(suma=0,i=1;i<=100;i++) suma+=i; |
|