Показать сообщение отдельно
Старый 13.12.2011, 21:59   #1 (permalink)
Ильгиза
Member
 
Регистрация: 08.10.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Pascal ABC, помогите доделать

написать программу , которая вводит все данные об n (n=10) студентах ,и выводит всю информацию на экран в табличном виде. А именно список юношей получивших в сессию более двух двоек. оценки ставятся за четыре экзамена( математика,физика, английский и информатика)


пробую делать, но не получается.

program upr1;
const n=10;
m=5;
type date=record
day:1..31;
month:1..12;
year:integer;
end;
predmet=record
ot:integer;
end;
pupil=record
fam,name:string[15];
p:char;
bd:date;
ch:predmet;
end;
procedure p1( var a:pupil);
begin
with a do
begin
write('фамилия');
readln(fam);
write('имя');
readln(name);
write('пол');
readln(p);
write('дата рождения');
readln(bd.day,bd.month,bd.year);
write('оценки');
readln(ch.ot);
end;
end;
procedure p2( a:pupil);
begin
with a do begin
write(fam,'':15-length(fam));
write(name,'':10-length(name));
with bd do begin
if day<10 then write ('0');
write(day,'.');
if month<10 then write ('0');
write(month,'.');
write(year);
end;
end;
end;
var mas:array[1..n] of pupil;
i,k:integer;
begin
writeln('введите информацию об ',n,'учениках');
for i:=1 to n do p1(mas[i]);
writeln('список учеников:');
writeln('n фио пол дата рождения ');
for i:=1 to n do begin write (i:2,'.');
p2(mas[i]);
writeln('введите оценки ');
for i:=2 to m do write ([i]);
end;
writeln;
i:=1;
while(mas[i].p<>'м') and (i<n) do i:=i+1;
if (mas[i].p='м' ) and (pupil.ot =2)
then begin k:=k+1;
write(k:2,'.');
p1(mas[i]);
end;
writeln('юноша с двойками');
end.
Ильгиза вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070