Feeds:
Posturi
Comentarii

rezolvari

Am postat un document cu probleme rezolvate la programare. Pe masură ce mai rezolv mai adaug în fişier. Este o variantă de rezolvare.

Simularea probei de evaluare a competențelor digitale se va desfășura în 1473 de unități de învățământ liceal, din toată țara, în data de 20 ianuarie 2010. În data de 25 ianuarie 2010, se va finaliza corectarea lucrărilor, centralizarea rezultatelor și transmiterea lor la CNEE.
Elevii care vor participa la simulare vor avea la dispoziție maximum 90 de minute pentru rezolvarea cerințelor probei de evaluare. Elevii vor avea de rezolvat aproximativ 15-20 de itemi care vizează competențe în următoarele domenii:
-      Concepte de bază privind sistemul de calcul
-      Utilizarea computerului și organizarea fișierelor. Sisteme de operare
-      Procesoare de texte
-      Procesoare de calcul tabelar
-      Prezentări
-      Baze de date
-      Mijloace moderne de comunicare. Rețeaua internet.

(Sursa: www.edu.ro)

1.În declararea alăturată, câmpurile x şi y ale înregistrării pot memora coordonatele  carteziene ale unui punct din planul xOy. Scrieţi o secvenţă de instrucţiuni prin executarea căreia se calculează şi se afişează pe ecran distanţa dintre două puncte ale căror coordonate sunt memorate de variabilele A şi B.

type punct=record

x,y:real

end;

var A,B:punct;

d:real;

d:=sqrt(sqr(b.x-a.x)+sqr(b.y-a.y));

writeln(d:2:2);

3.În declararea alăturată, câmpurile x şi y ale înregistrării pot memora numărătorul, respectiv numitorul unei fracţii. Scrieţi secvenţa de instrucţiuni prin executarea căreia se construieşte în variabila f o fracţie obţinută prin însumarea fracţiilor memorate în variabilele f1 şi f2.

type fractie =record

x,y:integer

end;

var f,f1,f2:fractie;

f.x:=f1.x*f2.y+f2.x*f1.y;

f.y:=f1.y*f2.y;

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.

Grile record

Un set de probleme grila referitoare la tipul de date record luate din variantele de bac:

grile_bac_rec

Php continuare

Anunt cerc info

Ne vedem luni 11 decembrie 2010 in laboratorul de informatica – Multimedia.

Probleme record: TIPUL RECORD culcluj

Articole mai vechi »