Feeds:
Articole
Comentarii

Archive for ianuarie 2010

Subiectele care au fost anul trecut la atestat. Dacă nu are nici un profesor din judeţ alte propuneri, atunci rămân aceleaşi subiecte:

subiecte_atestat_neintensiv – sunt problemele pentru programare

sgbd_Oracle_2010 – sunt problemele pentru baze de date

subiecteATESTAT SO MM – sunt subiectele pentru utilizare

Read Full Post »

noteRECORD

Read Full Post »

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;

Read Full Post »

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 »

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

grile_bac_rec

Read Full Post »

Tutorial: 19034411-Tutorial-PHP

Read Full Post »

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

Read Full Post »

Probleme record: TIPUL RECORD culcluj

Read Full Post »

– accesul simplificat la câmpuri

– vector de înregistrări

1.Se citesc de la tastatură  numere complexe. Să se calculeze şi să se afişeze suma şi produsul cel 2 numere.

type complex=record

re, im:integer;

end;

var x,y:complex;

begin

write(‘Introduceti partea reala a primului numar: ‘); readln(x.re);

write(‘Introduceti partea imaginara a primului numar: ‘); readln(x.im);

write(‘Introduceti partea reala a celui de-al doilea numar: ‘); readln(y.re);

write(‘Introduceti partea imaginara a celui de-al doilea numar: ‘); readln(y.im);

writeln(‘Suma celor 2 numere este: ‘,  x.re+y.re,’+’, x.im+y.im,’i’);

writeln(‘Produsul celor 2 numere este:’, x.re*y.re-x.im*y.im,’+’, x.re*y.im+x.im*y.re,’i’)

end.

Read Full Post »

Record 2

Continuare:

– atribuire la nivel de variabila record

– accesarea unui câmp al unei varaibile de tip record

– citirea unei variabile de tip record

– afişarea unei variabile de tip record

– record-uri imbricate

Read Full Post »

Older Posts »