rezolvare varianta 12 informatica Pascal
Anca Petrus, iti multumim, din nou.
Subiectul I
1-b           2-c          3-a         4-d            5-a      6-b            7-d          8-d
Subiectul II
1) 3145-se va forma un numar cu cea mai semnificativa cifra din fiecare numar citit, cifre care apar in ordinea invers citirii.
2) 35 214 16 0 (se citesc patru numere, primul incepe cu cifra 3, al doilea cu cifra 2, al treilea cu cifra 1 iar al patrulea sa fie zero).
3)
Program Pascal;
var n,a,p:logint;
begin
read(n);
a:=0; p:=1;
while n<>0 do
begin
while n>9 do
n:=n div 10;
a:=n*p+a;
p:=p*10;
read(n);
end;
write(a);
end.
4)
citeste n {n nr natural}
aâ†0;   pâ†1
¦-daca n≠0 atunci executa
¦    ¦-repeta
¦     ¦      ¦-cat timp n>9 executa
¦      ¦        ¦      nâ†[n/10]
¦      ¦         -▪
¦       ¦         a â†n*p+a                               ¦¦¦¦¦¦¦
¦     ¦      pâ†p*10
¦      ¦        citeste n
¦      -▪ pana cand n=0
-â–ª
Subiectul III
1.Explicatii:
- in max se va pastra cel mai lung cuvant iar in lmax lungimea acestuia; daca se citeste un cuvant mai lung se actualizeaza max si lmax iar daca cuvantul citit are lungimea egala cu lmax se incrementeaza nr (nr va pastra numarul cuvintelor de lungime maxima).
Program Pascal;
var x,max:string;
lmax,nr:word;
f:text;
begin
assign(f,'BAC.TXT');
reset(f);
lmax:=0; nr:=0;
while not eof(f) do
begin
readln(f,x);
if length(x)>lmax then
begin
lmax:=length(x);
max:=x;
nr:=1;
end
else
if length(x)=lmax then
inc(nr);
end;
writeln(max,'Â ',nr);
end.
2. Explicatii:
-pentru fiecare linie se afla elementul maxim si se adauga la suma.
Program Pascal;
var a:integer;
n,m,i,j,max:integer;
s:longint;
begin
readln(m,n);
s:=0;
for i:=1 to m do
begin
read(a);
max:=a;
for j:=2 to n do
begin
read(a);
if a>max then max:=a;
end;
s:=s+max;
end;
writeln(s);
end.
3. Explicatii:
-se insereaza un nou element dupa un element existent in lista apoi se sare peste elementul inserat.
Program Pascal;
type pnod=^nod;
nod=record
info:real;
adr:pnod;
end;
var prim:pnod;
procedure modif (prim:pnod);
var p,q :pnod;
x :real;
begin
p:=prim;
while p^.adr<>nil do
begin
x:=p^.info+p^.adr^.info;
x:=x/2;
new(q);
q^.info:=x;
q^.adr:=p^.adr;
p^.adr:=q;
p:=p^.adr^.adr;
end;
end;
end.
Comentarii
Pentru a adăuga un comentariu, va trebui să vă autentificaţi.
Dacă nu aveţi inca un cont,
Inregistraţi-vă! Durează 30 de secunde!