PDA

View Full Version : Малко помощ по програмиране с Паскал



addicted2him
10-08-2012, 14:36
Здравейте!
Имам задача с три условия, две от които съм направила, но имам проблем с третото.
Задачата ми е:

За група студенти са зададени име, ЕГН, фак. №, оценките по 10 дисциплини, среден успех. Да се създаде програма, използваща подпрограми за:
-създаване на масив с информация за групата студенти, без да се въвежда среден успех;
-изчисляване на средния успех на всеки един от студентите;
-извеждане на фак. № и средния успех на всеки отличник, който има поне една двойка.

Chacho
10-10-2012, 13:24
До кога ти е задачата?

addicted2him
10-10-2012, 19:07
До Петък.. Почти нямам време, но от седмица се опитвам да я направя.. Ще напиша кода на това, което съм направила, ако ще е по-лесно така:

Program KursovaZadacha;
uses dos,crt;
type o=array[1..10] of 2..6;
Stud=record
ime:string;
EGN:string;
FacNo:string;
oc: o;
Su:real;
end;
Var
gr:array[1..50] of stud;
n,i,j,dve :integer;
ch :char;

Procedure ReadStud (var st:stud);
var l,l1:Integer;
begin
writeln;
write('Vavedete imeto na studenta: ');Readln(st.ime);
repeat
write('Vavedete edinen grajdanski nomer: ');Readln(st.EGN);
l:=length(st.EGN);
if (l<>10) then writeln ('Vaveli ste nesushtestvuvashto EGN ');
until (l=10);
repeat
write('Vavedete facultetniq nomer na studenta: ');Readln(st.FacNo);
l1:=length(st.facno);
if (l1<>6) then writeln ('Vaveli ste greshen nomer ');
until (l1=6);
for j:=1 to 10 do
begin
repeat
write('Vavedete [',j,'-ta] ocenka: ');Readln(st.oc[j]);
if (st.oc[j]<2) or (st.oc[j]>6) then writeln('Vaveli ste nevalidna ocenka ');
until (st.oc[j]>=2) and (st.oc[j]<=6)
end;

Procedure izvedi (var st:stud);
begin
writeln;
writeln('Ime:',st.ime);
writeln('EGN:',st.egn);
writeln('Fac.N:',st.FacNo);
writeln ('Ocenki:');
for j:=1 to 10 do
writeln(j,'-ta ocenka e ',st.Oc[j]);
end;

Procedure vhod;
begin
repeat
write('Vavedete broq na studentite: ');readln(n);
if (n<=0) or (n>50) then writeln('Broqt trqbva da e ot 1 do 50 studenta');
until (n>0) and (n<=50);
for i:=1 to n do
begin
readstud(gr[i]);
izvedi(gr[i]);
end;
ch:=readkey;
end;

Function SrAr (var oc: o):real;
var s:real;
begin
s:=0;
for j:=1 to 10 do s:=s+oc[j];
SrAr:=s/10;
end;

Procedure SrUspeh;
begin
for i:=1 to n do
begin
gr[i].su:=SrAr(gr[i].oc);
writeln;
writeln('Sredniq uspeh na ',gr[i].ime, 'e: ',gr[i].su:2:2);
ch:=readkey;
end;
end;