4.Pentru cei n elevi ai unei clase se cunosc următoarele date: numele, prenumele, numărul de absenţe, media generală. Să se scrie un program care citeşte aceste informaţii, calculează media generală a clasei şi afişează toate informaţiile în ordinea descrescătoare a mediei generale.
type elev=record
nume, prenume:string[50];
nrabs:byte;
media:real;
end;
var v:array[1..30] of elev;
n,i:byte; s:real; aux:elev; ordonat:boolean;
begin
write(‘n=’); readln(n);
for i:=1 to n do
with v[i] do
begin
writeln(‘Datele elevului ‘,i);
write(‘Nume:’); readln(nume);
write(‘Prenume:’); readln(prenume);
write(‘Numarul de absente:’); readln(nrabs);
write(‘Media generala:’); readln(media)
end;
s:=0;
for i:=1 to n do
s:=s+v[i].media;
writeln(‘Media generala a clasei: ‘,s/n:2:2);
repeat
ordonat:=true;
for i:=1 to n-1 do
if v[i].media<v[i+1].media then begin
aux:=v[i];
v[i]:=v[i+1];
v[i+1]:=aux;
ordonat:=false
end
until ordonat;
for i:=1 to n do
writeln(v[i].nume,’ ‘,v[i].prenume,’ ‘,v[i].nrabs,’ ‘,v[i].media);
end.
6.Pentru elevii clasei a IX-a profesorul diriginte are nevoie de următoarele informaţii: numele, prenumele, numărul de absenţe, numărul de absente nemotivate, media la purtare.Dintre aceste informaţii, numele, prenumele, numărul de absenţe şi absenţele nemotivate se preiau din catalog (se cunosc), iar media la purtare se calculează în funcţie de absenţele nemotivte astfel:
– între 0-9 absenţe nota 10
– între 10-20 absenţe nota 9
– între 21-27 absenţe nota 8
– între 28-35 absenţe nota 7
– între 36-42 absenţe nota 6
– între 43-50 absenţe nota 5
– peste 50 absenţe nota 4
Să se scrie un program care calculează notele la purtare ale elevilor, le afişează, apoi afişează o listă a elevilor ordonată după numărul total de absenţe.
type elev=record
nume, prenume:string[50];
nrabs, nrabsn,mp:byte
end;
var v:array[1..30] of elev;
n,i:byte; aux:elev; ordonat:boolean;
begin
write(‘n=’); readln(n);
for i:=1 to n do
with v[i] do
begin
writeln(‘Datele elevului ‘,i);
write(‘Nume:’); readln(nume);
write(‘Prenume:’); readln(prenume);
write(‘Numarul de absente:’); readln(nrabs);
write(‘Numarul de absente nemotivate:’); readln(nrabsn);
case nrabsn of
0..9 : mp:=10;
10..20: mp:= 9;
21..27 : mp:=8;
28..35 :mp:= 7;
36..42: mp:= 6;
43..50:mp:= 5
else mp:= 4
end;
writeln(‘Media la purtare: ‘,mp)
end;
repeat
ordonat:=true;
for i:=1 to n-1 do
if v[i].nrabs>v[i+1].nrabs then begin
aux:=v[i];
v[i]:=v[i+1];
v[i+1]:=aux;
ordonat:=false
end
until ordonat;
for i:=1 to n do
writeln(v[i].nume,’ ‘,v[i].prenume,’ ‘,v[i].nrabs,’ ‘,v[i].nrabsn,’ ‘,v[i].mp);
end.
9.Pentru a scrie catalogul, dirigintele are nevoie de numele şi prenumele elevilor.Se citeşte n (numărul elevilor) apoi n perechi de date.Să se ordoneze alfabetic, după nume, iar pentru elevii cu acelaşi nume să se ordoneze alfabetic după prenume.
type elev=record
nume, prenume:string[50];
end;
var v:array[1..30] of elev;
n,i:byte; aux:elev; ordonat:boolean;
begin
write(‘n=’); readln(n);
for i:=1 to n do
with v[i] do
begin
writeln(‘Datele elevului ‘,i);
write(‘Nume:’); readln(nume);
write(‘Prenume:’); readln(prenume);
end;
repeat
ordonat:=true;
for i:=1 to n-1 do
if v[i].nume>v[i+1].nume then begin
aux:=v[i];
v[i]:=v[i+1];
v[i+1]:=aux;
ordonat:=false
end
else if v[i].nume=v[i+1].nume then
if v[i].prenume>v[i+1].prenume then
begin
aux:=v[i];
v[i]:=v[i+1];
v[i+1]:=aux;
ordonat:=false
end
until ordonat;
for i:=1 to n do
writeln(v[i].nume,’ ‘,v[i].prenume);
end.
10.N ferme au găini, raţe, porci, vaci şi cai.Se citeşte n, apoi n mulţimi de numere reprezentând numărul găinilor, raţelor, porcilor, vacilor şi al cailor.Să se afişeze ferma care are cele mai multe găini, raţe, porci, vaci, cai şi care are cele mai multe animale.
type ferma=record
nrgaini, nrrate, nrporci, nrvaci, nrcai:integer;
end;
var v:array[1..30] of ferma;
n,i:byte;
begin
write(‘n=’); readln(n);
for i:=1 to n do
with v[i] do
begin
writeln(‘ Numarul animalelor de la ferma ‘,i);
write(‘Numar gaini:’); readln(nrgaini);
write(‘Numar rate:’); readln(nrrate);
write(‘Numar porci:’); readln(nrporci);
write(‘Numar vaci:’); readln(nrvaci);
write(‘Numar cai:’); readln(nrcai);
end;
maxg:=v[1].nrgaini;
maxr:=v[1].nrrate;
maxp:=v[1].nrporci;
maxv:=v[1].nrvaci;
maxc:=v[1].nrcai;
max:=maxg+maxr+maxp+maxv+maxc;
for i:=2 to n do
begin
if v[i].nrgaini>maxg then maxg:=v[i].nrgaini;
if v[i].nrrate>maxr then maxr:=v[i].nrrate;
if v[i].nrporci>maxp then maxp:=v[i].nrporci;
if v[i].nrvaci>maxv then maxv:=v[i].nrvaci;
if v[i].nrcai>maxc then maxc:=v[i].nrcai;
if v[i].nrgaini+v[i].nrrate+v[i].nrporci+v[i].nrvaci+v[i].nrcai>max then
max:=v[i].nrgaini+v[i].nrrate+v[i].nrporci+v[i].nrvaci+v[i].nrcai;
end;
write(‘Fermele cu nr maxim de gaini: ‘);
for i:=1 to n do
if v[i].nrgaini=maxg then write(i,’ ‘);
writeln;
write(‘Fermele cu nr maxim de rate: ‘);
for i:=1 to n do
if v[i].nrrate=maxr then write(i,’ ‘);
writeln;
write(‘Fermele cu nr maxim de porci: ‘);
for i:=1 to n do
if v[i].nrporci=maxp then write(i,’ ‘);
writeln;
write(‘Fermele cu nr maxim de vaci: ‘);
for i:=1 to n do
if v[i].nrvaci=maxv then write(i,’ ‘);
writeln;
write(‘Fermele cu nr maxim de cai: ‘);
for i:=1 to n do
if v[i].nrcai=maxc then write(i,’ ‘);
writeln;
write(‘Fermele cu nr maxim de animale: ‘);
for i:=1 to n do
if v[i].nrgaini+v[i].nrrate+v[i].nrporci+v[i].nrvaci+v[i].nrcai=max then write(i,’ ‘);
end.
Read Full Post »