0% au considerat acest document util (0 voturi)
109 vizualizări41 pagini

Pascal 1

Încărcat de

Galina Vasilache
Drepturi de autor
© Attribution Non-Commercial (BY-NC)
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
109 vizualizări41 pagini

Pascal 1

Încărcat de

Galina Vasilache
Drepturi de autor
© Attribution Non-Commercial (BY-NC)
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd

PROBLEME REZOLVATE Limbajul Turbo Pascal

Program P1; { Suma numerelor ntregi x, y, z } var x, y, z, s : integer; begin writeln('Introducei numerele ntregi x, y, z:'); readln(x, y, z); s:=x+y+z; writeln('Suma numerelor introduse:'); writeln(s); end. Program P2; { Afiarea constantei predefinite MaxInt } begin writeln('MaxInt=', MaxInt); end. Program P3; { Operaii cu date de tipul integer } var x, y, z : integer; begin writeln('Introducei numerele ntregi x, y:'); readln(x,y); writeln('x=', x); writeln('y=', y); z:=x+y; writeln('x+y=', z); z:=x-y; writeln('x-y=', z); z:=x*y; writeln('x*y=', z); z:=x mod y; writeln('x mod y=', z); z:=x div y; writeln('x div y=', z); end. Program P4; { Eroare de depire semnalat n procesul compilrii } var x : integer; begin x:=MaxInt+1; { Eroare, x>MaxInt } writeln(x); end. Program P5; { Eroare de depire semnalat n procesul execuiei } var x, y : integer; begin x:=MaxInt; y:=x+1; { Eroare, y>MaxInt } writeln(y); end. Program P6; { Eroare de depire } var x : integer; begin x:=-2*MaxInt; writeln(x); end.

Program P7; { Eroare de depire } var x, y : integer; begin x:=-MaxInt; y:=x-10; writeln(y); end. Program P8; { Date de tip real } var x, y, z : real; begin x:=1.1; y:=-6.14e8; z:=90.3e-29; writeln('x=',x); writeln('y=',y); writeln('z=',z); end. Program P9; { Operaii cu date de tipul real } var x, y, z : real; begin writeln('Introducei numerele reale x, y:'); readln(x,y); writeln('x=', x); writeln('y=', y); z:=x+y; writeln('x+y=', z); z:=x-y; writeln('x-y=', z); z:=x*y; writeln('x*y=', z); z:=x/y; writeln('x/y=', z); end. Program P10; { Date de tip boolean } var x : boolean; begin x:=false; writeln(x); x:=true; writeln(x); end. Program P11; { Operaii cu date de tipul boolean } var x, y, z : boolean; begin x:=false; y:=false; writeln('x=', x, ' y=', y); z:=not x; writeln('not x = ', z); z:=x and y; writeln('x and y = ', z);

z:=x or y; writeln('x or y = ', z); writeln; x:=false; y:=true; writeln('x=', x, ' y=', y); z:=not x; writeln('not x = ', z); z:=x and y; writeln('x and y = ', z); z:=x or y; writeln('x or y = ', z); writeln; x:=true; y:=false; writeln('x=', x, ' y=', y); z:=not x; writeln('not x = ', z); z:=x and y; writeln('x and y = ', z); z:=x or y; writeln('x or y = ', z); writeln; x:=true; y:=true; writeln('x=', x, ' y=', y); z:=not x; writeln('not x = ', z); z:=x and y; writeln('x and y = ', z); z:=x or y; writeln('x or y = ', z); writeln; end. Program P12; { Date de tip char } var x : char; begin x:='A'; writeln(x); x:='+'; writeln(x); x:=''''; writeln(x); end._____

Program P13; { Citirea i afiarea caracterelor } var x : char; begin readln(x); writeln(x); readln(x); writeln(x); readln(x); writeln(x); end.

Program P14;

{ Studierea funciei ord } var x : char; { caracter } i : integer; { numr de ordine } begin readln(x); i:=ord(x); writeln(i); readln(x); i:=ord(x); writeln(i); readln(x); i:=ord(x); writeln(i); readln(x); i:=ord(x); writeln(i); end.

Program P15; { Studierea funciei chr } var i : integer; { numr de ordine } x : char; { caracter } begin readln(i); x:=chr(i); writeln(x); readln(i); x:=chr(i); writeln(x); readln(i); x:=chr(i); writeln(x); readln(i); x:=chr(i); writeln(x); end. Program P16; { Tipul de date Studii } type Studii=(Elementare, Medii, Superioare); var i : integer; { numr de ordine } begin i:=ord(Elementare); writeln(i); i:=ord(Medii); writeln(i); i:=ord(Superioare); writeln(i); end. Program P17; { Variabile de tip enumerare } type Culoare=(Galben, Verde, Albastru, Violet); Raspuns=(Nu, Da); var x : Culoare; { variabil de tip Culoare } y : Raspuns; { variabil de tip Raspuns } i : integer; { numr de ordine } begin x:=Albastru; i:=ord(x); writeln(i); y:=Nu; i:=ord(y); writeln(i); end. Program P18; type Litere=(A, B, C, D, E, F, G); var x : Litere; y : char; i : integer; begin

x:=A; i:=ord(x); writeln(i); y:='A'; i:=ord(y); writeln(i); end.

Program P19; {Valorile variabilelor de tip subdomeniu } type Indice=1..10; Zi=(L, Ma, Mi, J, V, S, D); ZiDeLucru=L..V; ZiDeOdihna=S..D; var i : Indice; { valori posibile: 1, 2, ..., 10 } z : Zi; { valori posibile: L, Ma, ..., D } zl : ZiDeLucru; { valori posibile: L, Ma, ..., V } zo : ZiDeOdihna; { valori posibile: S, D } begin i:=5; i:=11; { Eroare, i>10 } z:=L; zl:=J; zl:=S; { Eroare, zl>V } zo:=S; zo:=V; { Eroare, zo<S } writeln('Sfrit'); end. Program P20; { Tipul Pozitiv motenete proprietile tipului integer } type Pozitiv=1..32767; var x, y, z : Pozitiv; begin writeln('Introducei numerele pozitive x, y:'); readln(x,y); writeln('x=', x); writeln('y=', y); z:=x+y; writeln('x+y=', z); z:=x-y; writeln('x-y=', z); z:=x*y; writeln('x*y=', z); z:=x mod y; writeln('x mod y=', z); z:=x div y; writeln('x div y=', z); end. Program P21; type Indice=1..10; var i, j, k, m : Indice; begin writeln('Introducei indicii i, j:'); readln(i, j); k:=i+j; writeln('k=', k); m:=i-j; writeln('m=', m);

end. Program P22; { Numerele de ordine ale valorilor de tip ordinal } type T1=(A, B, C, D, E, F, G, H); T2=B..G; begin writeln(ord(-32)); { -32 } writeln(ord(true)); { 1 } writeln(ord('A')); { 65 } writeln(ord(A)); { 0} writeln(ord(B)); { 1} end. Program P23; { Operaii relaionale asupra valorilor de tip ordinal } type Culoare=(Galben, Verde, Albastru, Violet); begin writeln(Verde<Violet); { true } writeln(Verde<=Violet); { true } writeln(Verde=Violet); { false } writeln(Verde>=Violet); { false } writeln(Verde>Violet); { false } writeln(Verde<>Violet); { true } end.

Program P24; { Predecesorii i succesorii valorilor ordinale } begin writeln(pred('B')); { 'A' } writeln(succ('B')); { 'C' } writeln(pred(0)); { -1 } writeln(succ(0)); { 1 } writeln(pred('0')); { '/' } writeln(succ('0')); { '1' } end. Program P25; type Zi=(L, Ma, Mi, J, V, S, D); var z1, z2 : Zi; begin z1:=Ma; writeln(ord(z1)); z2:=pred(z1); writeln(ord(z2)); z2:=succ(z1); writeln(ord(z2)); z1:=Mi; z2:=V; writeln(z1<z2); writeln(z1>z2); writeln(z1<>z2); end.

Program P26; { Eroare } var i : integer; begin i:=MaxInt; writeln(pred(i)); writeln(succ(i)); end. Program P27; { Eroare } var i : integer; x : real; begin i:=1; x:=1.0; writeln(ord(i)); writeln(ord(x)); writeln(pred(i)); writeln(pred(x)); writeln(succ(i)); writeln(succ(x)); end. Program P28; type T1=-100..100; T2='A'..'H'; T3=(A, B, C, D, E, F, G, H); T4=A..E; T5=integer; T6=real; T7=char; T8=boolean; var i : T1; j : T5; k : T2; m : T3; n : T4; p : real; q : T6; r : char; s : T7; t : boolean; z : T8; y : real; begin { ... calcule ce utilizeaz } { variabilele n studiu ... } writeln('Sfrit'); end.

Program P29; type T1=integer; T2=-150..150; T3=1..5; var i : T1; j : T2; k : T3; m : 1..5;

n : (Unu, Doi, Trei, Patru, Cinci); begin { ... calcule ce utilizeaz } { variabilele n studiu ... } writeln('Sfrit') end. Program P30; type T1=integer; Studii=(Elementare, Medii, Superioare); T2=real; Culoare=(Galben, Verde, Albastru, Violet); var x : real; y : T1; i : integer; j : T2; p : boolean; c : Culoare; s : Studii; q : Galben..Albastru; r : 1..9; begin { ... calcule n care se utilizeaz } { variabilele n studiu ... } writeln('Sfrit'); end. Program P31; var i, j : integer; begin i:=1; j:=2; k:=i+j; writeln('k=', k); end. Program P32; { Definiii de constante } const Nmax=40; { Constant de tip integer } Nmin=-Nmax; { Constant de tip integer } Pi=3.14; { Constant de tip real } Separator='\'; { Constant de tip char } Indicator=TRUE; { Constant de tip boolean } Mesaj='Verificai imprimanta'; { ir de caractere } begin writeln(Nmax); writeln(Nmin); writeln(Pi); writeln(Separator); writeln(Indicator); writeln(Mesaj); { ... calcule n care se utilizeaz }

{ constantele n studiu ... end.

Program P33; { Lungimea i aria cercului } const Pi=3.14; var l, s , r :real; begin writeln('Introducei raza r:'); readln(r); l:=2*Pi*r; writeln('Lungimea l=', l); s:=Pi*r*r; writeln('Aria s=', s); end. Program P34; const t='1'; s=-t; begin writeln(s); end. Program P35; const i=1; j=i; k=j; var x, y, z : integer; begin x:=i+1; writeln(x); y:=j+2; writeln(y); z:=k+3; writeln(z); end. Program P36; const a=1; b=2; c=3; d=4; var i, j, k : integer; begin i:=a+1; writeln(i); j:=b+1; writeln(j); k:=c+1; writeln(k); d:=a+1; writeln(d); end. Program P37; const a=1; var i, j : integer; begin writeln('Introducei i=');

readln(i); j:=i+a; writeln(j); writeln('Introducei a='); readln(a); j:=i+a; writeln(j); end. Program P38; { Evaluarea expresiilor } var x, y, z : real; begin writeln('Introducei numerele reale x, y, z:'); readln(x, y, z); writeln(x*y+z); writeln(x+y<z-1.0); end. Program P39; { Compatibilitate din punctul de vedere al atribuirii } type T1=1..10; { subdomeniu de integer } T2=5..15; { subdomeniu de integer } var i : T1; j : T2; k, m, n : integer; x : real; begin write('k='); readln(k); i:=k; { corect pentru 1<=k<=10 } write('m='); readln(m); j:=m; { corect pentru 5<=m<=15 } write('n='); readln(n); i:=n+5; { corect pentru -4<=n<=5 } j:=n+2; { corect pentru 3<=n<=13 } x:=i+j; writeln('x=', x); end. Program P40; var i : -10..+10; j : integer; begin write('j='); readln(j); i:=j+15; writeln('i=', i); end. Program P41; { Afiarea datelor de tip integer } var i : integer; begin i:=-1234; writeln(i); writeln(i:1);

writeln(i:8); writeln(i, i); writeln(i:8, i:8); writeln(i, i, i); writeln(i:8, i:8, i:8); end. Program P42; { Afiarea datelor de tip real } var x : real; begin x:=-1234.567890; writeln(x); writeln(x:20); writeln(x:20:1); writeln(x:20:2); writeln(x:20:4); writeln(x, x, x); writeln(x:20, x:20, x:20); writeln(x:20:4, x:20:4, x:20:4); end. Program P43; { Afiarea datelor de tip boolean } var p : boolean; begin p:=false; writeln(p); writeln(p:10); writeln(p, p); writeln(p:10, p:10); end. Program P44; { Afiarea irurilor de caractere } begin writeln('abc'); writeln('abc':10); writeln('abc', 'abc'); writeln('abc':10, 'abc':10); end.

Program P45; { Citirea datelor numerice de la tastatur } var i, j : integer; x, y : real; begin read(i, j, x, y); writeln('Ai introdus:'); writeln('i=', i); writeln('j=', j); writeln('x=', x);

writeln('y=', y); end.

Program P46; { Apelul procedurii readln } var i, j : integer; x, y : real; begin writeln('Apelul procedurii read'); read(i, j); read(x, y); writeln('Ai introdus:'); writeln('i=', i, ' j=', j, ' x=', x, ' y=', y); writeln('Apelul procedurii readln'); readln(i, j); readln(x, y); writeln('Ai introdus:'); writeln('i=', i, ' j=', j, ' x=', x, ' y=', y); end.

Program P47; var i : integer; c : char; x : real; begin readln(i); readln(c); readln(x); writeln('i=', i); writeln('c=', c); writeln('x=', x); readln; end.

Program P48; { Determinarea maximului a dou numere } var x, y, max : real; begin writeln('Dai dou numere:'); write('x='); readln(x); write('y='); readln(y); if x>=y then max:=x else max:=y; writeln('max=', max); readln; end. Program P49; { Conversia cifrelor romane }

var i : integer; c : char; begin i:=0; writeln('Introducei una din cifrele romane I, V, X, L, C, D, M'); readln(c); if c='I' then i:=1; if c='V' then i:=5; if c='X' then i:=10; if c='L' then i:=50; if c='C' then i:=100; if c='D' then i:=500; if c='M' then i:=1000; if i=0 then writeln(c, ' - nu este o cifr roman') else writeln(i); readln; end. Program P50; var x, y : real; begin write('x='); readln(x); if x>4 then y:=2*sqr(x)+6 else y:=x*x*x-3; writeln('y=', y); readln; end. Program P51; var x, y : real; begin write('x='); readln(x); y:=x; if x>0 then; y:=2*x; writeln('y=', y); readln; end.

Program P52; { Eroare } var x, y : real; begin write('x='); readln(x); if x>4 then y:=2*sqr(x)+6; else y:=x*x*x-3; writeln('y=', y); readln; end.

Program P53; { Conversia cifrelor romane } var i : integer;

c : char; begin i:=0; writeln('Introducei una din cifrele romane I, V, X, L, C, D, M'); readln(c); case c of 'I' : i:=1; 'V' : i:=5; 'X' : i:=10; 'L' : i:=50; 'C' : i:=100; 'D' : i:=500; 'M' : i:=1000; end; if i=0 then writeln(c, ' - nu este o cifr roman') else writeln(i); readln; end.

Program P54; { Simularea unui calculator de buzunar } var a, b : real; c : char; begin write('a='); readln(a); write('b='); readln(b); write('Cod operaie '); readln(c); case c of '+' : writeln('a+b=', a+b); '-' : writeln('a-b=', a-b); '*' : writeln('a*b=', a*b); '/' : writeln('a/b=', a/b); else writeln('Cod operaie necunoscut'); end; readln; end. Program P56; { Eroare } var x : real; begin writeln('x='); readln(x); case x of 0, 2, 4, 6, 8 : writeln('Cifr par'); 1, 3, 5, 7, 9 : writeln('Cifr impar'); end; readln; end.

Program P57; { Eroare }

Var i : 1..4; begin write('i='); readln(i); case i of 1 : writeln('unu'); 2 : writeln('doi'); 3 : writeln('trei'); 4 : writeln('patru'); 5 : writeln('cinci'); end; readln; end.

Program P58; { Eroare } type Semnal=(Rosu, Galben, Verde); Culoare=(Albastru, Portocaliu); var s : Semnal; c : Culoare; begin { ... } case s of Rosu : writeln('STOP'); Galben : Writeln('ATENIE'); Verde : writeln('START'); Albastru : writeln('PAUZ'); end; { ... } end.

Program P59; { Instruciunea for } var i : integer; c : char; begin for i:=0 to 9 do write(i:2); writeln; for i:=9 downto 0 do write(i:2); writeln; for c:='A' to 'Z' do write(c:2); writeln; for c:='Z' downto 'A' do write(c:2); writeln; readln; end. Program P60; { Calcularea factorialului } var n, i, f : 0..MaxInt; begin write('n='); readln(n);

f:=1; for i:=1 to n do f:=f*i; writeln('n!=',f); readln; end.

Program P61; { Calcularea lui x la puterea n } var x, y : real; n, i : 0..MaxInt; begin write('x='); readln(x); write('n='); readln(n); y:=1; for i:=1 to n do y:=y*x; writeln('y=', y); readln; end.

Program P62; { Calcularea sumei 1 + 1/2 + 1/3 + ... + 1/n } var n, i : 1..MaxInt; s : real; begin write('n='); readln(n); s:=0; for i:=1 to n do s:=s+1/i; writeln('s=', s); readln; end.

Program P63; type Zi=(L, Ma, Mi, J, V, S, D); var z : Zi; begin for z:=L to S do writeln(ord(z)); readln; for z:=D downto Ma do writeln(ord(z)); readln; end.

Program P64; { Media aritmetic a n numere } var x, suma, media : real; i, n : integer; begin write('n='); readln(n); suma:=0;

writeln('Dai ', n, ' numere:'); for i:=1 to n do begin write('x='); readln(x); suma:=suma+x; end; if n>0 then begin media:=suma/n; writeln('media=', media); end else writeln('media=*****'); readln; end. Program P65; { Tabelul funciei y=2*x } var x, y, x1, x2, deltaX : real; begin write('x1='); readln(x1); write('x2='); readln(x2); write('deltaX='); readln(deltaX); writeln('x':10, 'y':20); writeln; x:=x1; while x<=x2 do begin y:=2*x; writeln(x:20, y:20); x:=x+deltaX; end; readln; end.

Program P66; { Media aritmetic a numerelor pozitive citite de la tastatur } var x, suma : real; n : integer; begin n:=0; suma:=0; writeln('Dai numere pozitive:'); readln(x); while x>0 do begin n:=n+1; suma:=suma+x; readln(x); end; writeln('Ai introdus ', n, ' numere pozitive.');

if n>0 then writeln('media=', suma/n) else writeln('media=*****'); readln; end.

Program P67; { Tabelul funciei z=x+y } var x, y, z, x1, x2, deltaX, y1, y2, deltaY : real; begin write('x1='); readln(x1); write('x2='); readln(x2); write('deltaX='); readln(deltaX); write('y1='); readln(y1); write('y2='); readln(y2); write('deltaY='); readln(deltaY); writeln('x':10, 'y':20, 'z':20); writeln; x:=x1; while x<=x2 do begin y:=y1; while y<=y2 do begin z:=x+y; writeln(x:20, y:20, z:20); y:=y+deltaY; end; x:=x+deltaX; end; readln; end.

Program P68; { Paritatea numerelor citite de la tastatur } var i : integer; begin writeln('Dai numere ntregi:'); repeat readln(i); if odd(i) then writeln(i:6, ' - numr impar') else writeln(i:6, ' - numr par'); until i=0; readln; end.

Program P69; { Calcularea rdcinii ptrate } var x, epsilon,

y1, y2 : real; begin write('x='); readln(x); write('epsilon='); readln(epsilon); y2:=1; repeat y1:=y2; y2:=y1/2+x/(2*y1); writeln(y2); until abs(y1-y2)<=epsilon; readln; end. Program P70; { Execuia instruciunii goto } label 1, 2; var x, y : real; begin write('x='); readln(x); if x>=0 then goto 1; y:=2*x; writeln('x<0, y=', y); goto 2; 1 : y:=x; writeln('x>=0, y=', y); 2 : readln; end. Program P71; { Excluderea instruciunii goto din programul P70 } var x, y : real; begin write('x='); readln(x); if x>=0 then begin y:=x; writeln('x>=0, y=', y); end else begin y:=2*x; writeln('x<0, y=', y); end; readln; end.

Program P72; { Afiarea formulelor de salut } label 1, 2, 3; var i : 6..23; begin write('Ct e ora?'); readln(i);

if i>12 then goto 1; writeln('Bun dimineaa!'); goto 3; 1:if i>17 then goto 2; writeln('Bun ziua'); goto 3; 2:writeln('Bun seara!'); 3:readln; end. Program P73; { Eroare } label 1; var i : 1..5; begin i:=1; 1:writeln(i); i:=i+1; goto 1; end.

Program P74; { Eroare } label 1; var x: real; begin x:=0; 1:writeln(x); x:=x+1e-30; goto 1; end.

Program P75; { Eroare } label 1; var i : integer; begin i:=1; while i<=20 do begin writeln(i); 1:i:=i+1; end; goto 1; end.

Program P76; { Lungimea arcului de cerc i aria sectorului respectiv } label 1, 2; const Pi=3.141592654;

type grade=0..360; var alfa : grade; raza, lungimea, aria : real; begin write('raza='); readln(raza); if raza<0 then goto 1; write('alfa='); readln(alfa); lungimea:=Pi*raza*alfa/180; writeln('lungimea=', lungimea); aria:=Pi*sqr(raza)*alfa/360; writeln('aria=', aria); goto 2; 1:writeln('Eroare: raza<0'); 2:readln; end.

Program P77; { Suma componentelor variabilei x de tip Vector } type Vector=array[1..5] of real; var x : Vector; i : integer; s : real; begin writeln('Dai 5 numere:'); for i:=1 to 5 do readln(x[i]); writeln('Ai introdus:'); for i:=1 to 5 do writeln(x[i]); s:=0; for i:=1 to 5 do s:=s+x[i]; writeln('Suma=',s); readln; end. rogram P78; { Extinderea domeniului de aplicare a programului P77 } const nmax=100; type Vector=array[1..nmax] of real; var x : Vector; n : 1..nmax; i : integer; s : real; begin write('n='); readln(n); writeln('Dai ', n, ' numere:'); for i:=1 to n do readln(x[i]); writeln('Ai introdus:'); for i:=1 to n do writeln(x[i]); s:=0; for i:=1 to n do s:=s+x[i]; writeln('Suma=', s); readln; end.

Program P79; { Suma componentelor variabilei m de tip Matrice } type Matrice=array[1..3, 1..4] of real; var m : Matrice; i, j : integer; s : real; begin writeln('Dai componentele m[i,j]:'); for i:=1 to 3 do for j:=1 to 4 do begin write('m[', i, ',', j, ']='); readln(m[i,j]); end; writeln('Ai introdus:'); for i:=1 to 3 do begin for j:=1 to 4 do write(m[i,j]); writeln; end; s:=0; for i:=1 to 3 do for j:=1 to 4 do s:=s+m[i,j]; writeln('Suma=', s); readln; end.

Program P80; { iruri de caractere de lungime constant } type Nume=packed array[1..8] of char; Prenume=packed array[1..5] of char; var N : Nume; P : Prenume; begin N:='Munteanu'; P:='Mihai'; writeln(N); writeln(P); readln; end.

Program P81; { iruri de caractere de lungime variabil } type Nume=string[8]; Prenume=string[5]; NumePrenume=string; var N : Nume;

P : Prenume; NP : NumePrenume; L : integer; begin N:='Munteanu'; L:=length(N); writeln(N, L:4); P:='Mihai'; L:=length(P); writeln(P, L:4); NP:=N+' '+P; L:=length(NP); writeln(NP, L:4); N:='Olaru'; L:=length(N); writeln(N, L:4); P:='Ion'; L:=length(P); writeln(P, L:4); NP:=N+' '+P; L:=length(NP); writeln(NP, L:4); readln; end.

Program P82; { Numrul de spaii ntr-un ir de caractere } var S : string; i, j : integer; begin writeln('Dai iruri de caractere:'); repeat readln(S); i:=0; for j:=1 to length(S) do if S[j]=' ' then i:=i+1; writeln('Numrul de spaii=', i); until S='Sfrit'; end.

Program P83; { Eroare } var S : packed array[1..5] of char; begin S:='12345'; writeln(S); S:='Sfat': writeln(S); end.

Program P84; { Date de tipul Elev } type Elev=record Nume : string; Prenume : string; NotaMedie : real end; var E1, E2, E3 : Elev; begin writeln('Dai datele primului elev:');

write('Numele: '); readln([Link]); write('Prenumele: '); readln([Link]); write('Nota medie: '); readln([Link]); writeln('Dai datele elevului al doilea: '); write('Numele: '); readln([Link]); write('Prenumele: '); readln([Link]); write('Nota medie: '); readln([Link]); if [Link] > [Link] then E3:=E1 else E3:=E2; writeln('Elevul cu media mai bun:'); writeln([Link], ' ', [Link], [Link] : 5:2); readln; end.

Program P85; { Tablou cu componente de tipul Elev } type Elev = record Nume : string; Prenume : string; NotaMedie : real end; ListaElev = array[1..40] of Elev; var E : Elev; LE : ListaElev; n : 1..40; i : integer; begin write('n='); readln(n); for i:=1 to n do begin writeln('Dai datele elevului ', i); write('Numele: '); readln(LE[i].Nume); write('Prenumele: '); readln(LE[i].Prenume); write('Nota Medie: '); readln(LE[i].NotaMedie); end; [Link]:=0; for i:=1 to n do if LE[i].NotaMedie > [Link] then E:=LE[i]; writeln('Cel mai bun elev:'); writeln([Link], ' ', [Link], [Link] : 5:2); readln; end.

Program P86; { Date de tip MultimeIndicii } type Indice=1..10; MultimeIndicii=set of Indice; var A, B, C : MultimeIndicii; i : integer; begin A:=[1..5, 8]; { A conine 1, 2, 3, 4, 5, 8 } B:=[1..3, 9, 10]; { B conine 1, 2, 3, 9, 10 } C:=[]; { C este o mulime vid } C:=A+B; { C conine 1, 2, 3, 4, 5, 8, 9, 10 } writeln('Reuniune'); for i:=1 to 10 do if i in C then write(i:3); writeln; C:=A*B; { C conine 1, 2, 3 } writeln('Intersecie'); for i:=1 to 10 do if i in C then write(i:3); writeln; C:=A-B; { C conine 4, 5, 8 } writeln('Diferena'); for i:=1 to 10 do if i in C then write(i:3); writeln; readln; end.

Program P87; { Ciurul (sita) lui Eratostene } const n=50; type MultimeDeNumere=set of 1..n; var Sita, NumerePrime : MultimeDeNumere; i, m : integer; begin {1} Sita:=[2..n]; NumerePrime:=[]; i:=2; repeat {2} while not (i in Sita) do i:=succ(i); {3} NumerePrime:=NumerePrime+[i]; write(i:4); m:=i; {4} while m<=n do begin Sita:=Sita-[m]; m:=m+i; end; {5} until Sita=[]; writeln; readln; end.

Program P88; { Eroare } type Multime=set of integer; var M : Multime; i : integer; begin M:=[1, 8, 13]; for i:=1 to MaxInt do if i in M then writeln(i); end. Program P89; { Crearea unui fiier cu componente de tipul Elev } type Elev=record Nume : string; Prenume : string; NotaMedie : real end; FisierElevi=file of Elev; var FE : FisierElevi; E : Elev; str : string; i, n : integer; begin write('Dai numele fiierului de creat: '); readln(str); assign(FE, str); { asociaz FE cu numele din str } rewrite(FE); { deschide FE pentru scriere } write('Dai numrul de elevi: '); readln(n); for i:=1 to n do begin writeln('Dai datele elevului ', i); { citete cmpurile variabilei E de la tastatur } write('Numele: '); readln([Link]); write('Prenumele: '); readln([Link]); write('Note medie: '); readln([Link]); write(FE, E); { scrie E n FE } end; close(FE); readln; end. { nchide FE }

Program P90; { Citirea unui fiier cu componente de tipul Elev } type Elev=record

Nume : string; Prenume : string; NotaMedie : real end; FisierElevi=file of Elev; var FE : FisierElevi; E : Elev; str : string; begin write('Dai numele fiierului de citit: '); readln(str); assign(FE, str); { asociaz FE cu numele din str } reset(FE); { deschide FE pentru citire } while not eof(FE) do begin read(FE, E); { citete E din FE } writeln([Link], ' ', [Link], [Link] : 5:2); { afieaz E la ecran } end; close(FE); readln; end. { nchide FE }

Program P91; { Eroare } type FisierNumere=file of integer; var FN : FisierNumere; i : integer; r : real; s : string; begin Writeln('Dai numele fiierului de creat: '); readln(s); assign(FN, s); rewrite(FN); i:=1; write(FN, i); i:=10; write(FN, i); r:=20; write(FN, r); close(FN); end.

Program P92;

{ Accesul direct la fiiere de tipul FisierElev } type Elev=record Nume : string; Prenume : string; NotaMedie : real end; FisierElevi=file of Elev; var FE : FisierElevi; E : Elev; str : string; i, n : integer; r : char; begin write('Dai numele fiierului: '); readln(str); assign(FE, str); reset(FE); n:=FileSize(FE); writeln('Fiierul ', str, ' are ', n, ' componente'); writeln('Numeraia componentelor: 0..', n-1); write('Dai numrul componentei: '); readln(i); if i>n-1 then writeln('Eroare: component inexistent') else begin Seek(FE, i); { poziionare pe componenta i } read(FE, E); { citirea componentei selectate } writeln([Link], ' ', [Link], [Link] :5:2); write('Modificm componenta? [d/n]'); readln(r); if r='d' then begin write('Numele: '); readln([Link]); write('Prenumele: '); readln([Link]); write('Note medie: '); readln([Link]); Seek(FE, i); { poziionare pe componenta i } write(FE, E); { scrierea componentei modificate } end; end; close(FE); readln; end. Program P93; { Crearea fiierului text [Link] } var F : text; c : char; begin assign(F, '[Link]'); { asociaz F cu [Link] } rewrite(F); { deschide F pentru scriere } while not eof do { eof(Input) } begin while not eoln do { eoln(Input) } begin

read(c); { citete c din Input } write(F, c); { scrie c n F } end; writeln(F); { scrie EOL n F } readln; { trece la linia urmtoare din Input } end; close(F); { nchide F } end.

Program P94; { Citirea fiierului text [Link] } var F : text; c : char; begin assign(F, '[Link]'); { asociaz F cu [Link] } reset(F); { deschide F pentru citire } while not eof(F) do begin while not eoln(F) do begin read(F, c); { citete c din F } write(c); { scrie c n Output } end; readln(F); { trece la linia urmtoare din F } writeln; { scrie EOL n Output } end; close(F); { nchide F } readln; end. Program P95; { Prelucrarea fiierelor [Link] i [Link] } var F, G : text; a, b, c, p, s : real; str : string; begin assign(F, '[Link]'); { asociaz F cu [Link] } rewrite(F); { deschide F pentru scriere } writeln('Dai numerele reale a, b, c:'); while not eof do begin readln(a, b, c); { citete a, b, c de la tastatur } writeln(F, a:8:2, b:8:2, c:8:2); { scrie a, b, c, n F } end; close(F); { nchide F } reset(F); { deschide F pentru citire } assign(G, '[Link]'); { asociaz G cu [Link] } rewrite(G); { deschide G pentru scriere } while not eof(F) do begin readln(F, a, b, c); { citete a, b, c din F }

write(G, a:8:2, b:8:2, c:8:2); { scrie a, b, c n G } p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); writeln(G, p:15:2, s:15:4); { scrie p, s n G} end; close(F); { nchide F } close(G); { nchide G } reset(G); { deschide G pentru citire } while not eof(G) do begin readln(G, str); { citete str din G } writeln(str); { afieaz str la ecran } end; close(G); { nchide G } readln; end.

Program P96; { Asocierea fiierului FN co consola } type FisierNumere=file of integer; var FN : FisierNumere; i : integer; begin assign(FN, 'CON'); rewrite(FN); i:=1; write(FN, i); i:=2; write(FN, i); i:=3; write(FN, i); close(FN); readln; end.

program P97; { Declararea i utilizarea funciei Putere } type Natural=0..MaxInt; var a : real; b : Natural; c : real; s : integer; t : integer; v : real; function Putere(x : real; n : Natural) : real; { calcularea lui x la puterea n } var p : real; i : integer;

begin p:=1; for i:=1 to n do p:=p*x; Putere:=p; end; { Putere } begin a:=3.0; b:=2; c:=Putere(a, b); writeln(a:10:5, b:4, c:10:5); s:=2; t:=4; v:=Putere(s, t); writeln(s:5, t:4, v:10:5); readln; end.

Program P98; { Eroare } function Factorial(n : 0..7) : integer; var p, i : integer; begin p:=1; for i:=1 to n do p:=p*i; Factorial:=p; end; { Factorial } begin writeln(Factorial(4)); readln; end. Program P99; { Declararea i utilizarea procedurii Lac } var a, b, c, t, q : real; procedure Lac(r : real; var l, s : real); { lungimea i aria cercului } { r - raza; l - lungimea; s - aria } const Pi=3.14159; begin l:=2*Pi*r; s:=Pi*sqr(r); end; { Lac } begin a:=1.0;

Lac(a, b, c); writeln(a:10:5, b:10:5, c:10:5); Lac(3.0, t, q); writeln(3.0:10:5, t:10:5, q:10:5); readln; end. Program P100; { Eroare } var a : real; b : integer; procedure P(x : real; var y : integer); begin { ... } end; { P } begin P(a, b); P(0.1, a); P(1, b); P(a, 1); end.

Program P101; { Parametru valoare i parametru variabil } var a, b : integer; procedure P(x : integer; var y : integer); begin x:=x+1; y:=y+1; writeln('x=', x, ' y=', y); end; { P } begin a:=5; b:=9; P(a, b); writeln('a=', a, ' b=', b); readln; end.

{$f+} Program P102; { Parametru formal funcie } type TF=function(x : real) : real;

var v : TF; function F1(x : real) : real; begin F1:=x end; { F1 } function F2(x : real) : real; begin F2:=3*x+2 end; { F2 } function F3(x : real) : real; begin F3:=sqr(x)+2*x+1 end; { F3 } procedure Tabel(F : TF; x1, x2, dx : real); { Tabelarea funciei F(x) } var a, b : real; begin a:=x1; while a<=x2 do begin b:=F(a); writeln(a:15:5, b:15:5); a:=a+dx; end; end; { Tabel } begin writeln('Tabelul funciei F1'); Tabel(F1, 0, 2, 0.5); writeln('Tabelul funciei F2'); Tabel(F2, 0, 2, 0.5); writeln('Tabelul funciei F3'); v:=F3; Tabel(v, 0, 2, 0.5); readln; end.

Program P103; { Eroare } type TF=function(x : real) : real; function F1(x : real) : real; begin

F1:=sqr(x); end; { F1 } procedure T(F : TF; x : real); begin writeln('x=', x, ' f(x)=', F(X)); end; { T } begin T(F1, 2); T(sqrt, 2); readln; end.

Program P104; { Parametru formal procedur } type TP=procedure(i : integer); var v : TP; procedure P1(j : integer); begin writeln(j+1); end; { P1 } procedure P2(k : integer); begin writeln(k+2); end; { P2 } procedure P3(m : integer); begin writeln(m+3); end; { P3 } procedure T(P : TP; n : integer); begin P(n); end; { T } begin v:=P3; T(v, 1); v:=P2; T(v, 1); T(P1, 1); readln; end.

Program P105; {nivel 0} { Structura de bloc a programului } var a : real; {1} procedure P(b : real); var c : real; {2} {nivel 1}

procedure Q(d : integer); {nivel 2} {3} var c : char; {4} begin c:=chr(d); writeln('n procedura Q c=', c); end; {5} begin writeln('b=', b); c:=b+1; writeln('n procedura P c=', c); Q(35); end; {6} function F(x : real) : real; begin f:=x/2; end; begin a:=F(5); writeln('a=', a); P(a); readln; end {7}. Program P106; { Redefinirea constantelor } const c=1; function F1(x : integer) : integer; begin F1:=x+c; end; { F1 } function F2(c : real) : real; const x=2.0; begin F2:=x+c; end; { F2 } function F3(x : char) : char; {nivel 1}

const c=3; begin F3:=chr(ord(x)+c); end; { F3 } begin writeln('F1=', F1(1)); writeln('F2=', F2(1)); writeln('F3=', F3('1')); readln; end.

Program P107; { Eroare } var a : real; procedure P(x : real); var a : integer; begin a:=3; writeln(x+a); end; { P } begin a:=3.14; P(a); end.

Program P108; { Comunicarea prin variabile globale } var a, { variabil global n P } b : real; { variabil global n P, F } procedure P; var c : integer; { variabil local n P } begin c:=2; b:=a*c; end; { P } function F : real; var a : 1..5; { variabil local n F } begin a:=3; F:=a+b; end; { F } begin a:=1;

P; writeln(b); writeln(F); readln; end.

{ se afieaz 2.0000000000E+00 } { se afieaz 5.0000000000E+00 }

Program P109; { Comunicarea prin variabile globale } var a : integer; procedure P; var b, c, d : integer; procedure Q; begin c:=b+1; end; { Q } procedure R; begin d:=c+1; end; { R } begin b:=a; Q; R; a:=d; end; { P } begin a:=1; P; writeln(a); readln; end. Program P110; { Efect colateral - atribuire la o variabil global } var a : integer; { variabil global } function F(x : integer) : integer; begin F:=a*x; a:=a+1; { atribuire defectuoas } end; { F } begin a:=1; writeln(F(1)); { se afieaz 1 } writeln(F(1)); { se afieaz 2 } writeln(F(1)); { se afieaz 3 }

readln; end. Program P111; { Efect colateral - atribuire la un parametru formal } var a : integer; function F(var x : integer) : integer; begin F:=2*x; x:=x+1; { atribuire defectuoas } end; { F } begin a:=2; writeln(F(a)); writeln(F(a)); writeln(F(a)); readln; end.

{ se afieaz 4 } { se afieaz 6 } { se afieaz 8 }

Program P112; { Efecte colaterale } var a, b : integer; function F(x : integer) : integer; begin F:=a*x; b:=b+1; end; { F } function G(x : integer) : integer; begin G:=b+x; a:=a+1; end; { G } begin a:=1; b:=1; writeln(F(1)); writeln(G(1)); writeln(F(1)); writeln(G(1)); readln; end.

Program P113; { Efecte colaterale } var a : integer; b : real; function F(var x : integer) : integer;

begin F:=x; x:=x+1; end; { F } procedure P(x, y : integer; var z : real); begin z:=x/y; end; { P } begin a:=1; P(F(a), a, b); writeln(a, ' ', b); readln; end. Program P114; { Efecte colaterale } var a, b : real; procedure P(var x, y : real); { Interschimbarea valorilor variabilelor x, y } begin a:=x; x:=y; y:=a; end; { P } begin a:=1; b:=2; P(a, b); writeln(a, b); a:=3; b:=4; P(a, b); writeln(a, b); readln; end. Program P115; { Declaraii anticipate } type Natural=0..MaxInt; function F(x : Natural) : Natural; forward; { declaraia anticipat a funciei F } function G(x : Natural) : Natural; begin if x=0 then G:=2 else G:=x+F(x-1); end; { G } function F; begin { corpul funciei F }

if x=0 then F:=1 else F:=x+G(x-1); end; { F } begin writeln(F(5)); readln; end. Program P116; var x : real; function F(x : real) : real; forward; procedure P(var x : real); forward; procedure Q(var x : real); forward; function F; begin F:=2*x end; procedure P; begin x:=x+1 end; procedure Q; begin x:=x+2 end; begin x:=1; P(x); Q(x); writeln(F(x)); readln; end.

S-ar putea să vă placă și