Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2011, 13:21   #1
Photocor
Новичок
Джуниор
 
Регистрация: 17.12.2011
Сообщений: 2
По умолчанию Pascal ABC

Здравствуйте!
мне необходимо решить такую задачу:известна следующая информация о студентах группы( фамилия имя , дата рождения( число , месяц, год) и 4 оценки ), нужно вычислить средний балл группы и вывести на экран список тех студентов, у кого средний балл выше среднего балла группы.

я написала программу которая определяет лишь средний балл каждого студента и находит наивысший среди них. как можно оформить вычисление среднего балла всей группы???
и в моей программе как то не так выводится таблица с информацией .

program upr1;
const n=2;
type date=record
day:1..31;
month:1..12;
year:integer;
end;
pupil=record
fam,name:string[15];
p:char;
bdate;
b1,b2,b3,b4,b5:2..5;
sb:real;
end;
procedure p1( var aupil);
begin
with a do
begin
write('фамилия:');
readln(fam);
write('имя:');
readln(name);
write('пол:');
readln(p);
write('дата рождения:');
readln(bd.day,bd.month,bd.year);
write('оценки:');
readln(b1,b2,b3,b4,b5);
end;
end;
procedure p2( aupil);
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:integer; sbmax:real; sb1upil;
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:=1 to n do
with mas[i] do
sb:=(b1+b2+b3+b4+b5)/5;
sbmax:=mas[1].sb;
for i:=1 to n do
if mas[i].sb >= sbmax then sbmax:=mas[i].sb;
writeln('самый высокий средний балл');
for i:=1 to n do
if mas[i].sb=sbmax then p2(mas[i]);
readln;
end;
end.
Photocor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
pascal ABC Юся=) Помощь студентам 10 16.12.2011 02:33
PASCAL ABC Damir_MADI Помощь студентам 5 16.12.2011 01:58
Неудобство ABC Pascal и глюк Borland Pascal proser93 Помощь студентам 0 19.11.2011 19:01
Pascal ABC Никол@ Паскаль, Turbo Pascal, PascalABC.NET 1 12.06.2011 10:36
Turbo Pascal or Pascal ABC Ikram Паскаль, Turbo Pascal, PascalABC.NET 0 27.04.2010 13:44