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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2009, 15:48   #1
gnom63
Пользователь
 
Регистрация: 08.03.2009
Сообщений: 12
Вопрос ЗАПИСИ

вот КОД

Program Lab8;
type
stud=record
fam:string[12];
b1,b2,b3,b4:2..5;
Sb:real
end;
var
tbl:array[1..15] of stud;
i,n:integer;
begin
WriteLn('введите число студентов');
ReadLn(n);
WriteLn('введите фамилию');
for i:=1 to n do
with tbl[i] do
begin
WriteLn('фамилия ', i);
Read(fam);
WriteLn('введите оценки по информатике физике математике и химии');
ReadLn(b1,b2,b3,b4);
end;
for i:=1 to n do
with tbl[i] do
Sb:=(b1+b2+b3+b4)/4;
for i:=1 to n do
With tbl[i] do
WriteLn(fam:12, sb:6:3);
WriteLn('------------------------------------');
WriteLn('| студ | предмет |');
WriteLn('|----------------------------------|');
WriteLn('| фам | инф| физ| мат| хим| ср.бал |');
WriteLn('|----------------------------------|');
for i:=1 to n do
with tbl[i] do
WriteLn('|',fam:8,'| ', b1,' ':2,'| ',b2,' ':2,'| ',b3,' ':2,'| ',b4,' ':2,'|',sb:2:2, ' |');
WriteLn('|--------|----|----|----|----|-----|');
end.{LAb7}

=================
сделайте пожалуйста что бы
таблица заполнялась по убыванию среднего бала
т.е. от самого большого бала к самому маленькому
gnom63 вне форума Ответить с цитированием
Старый 10.03.2009, 15:52   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Сделайте сортировку(какую знаете) по искомому полю

Как вариант(самая простая сортировка):
Код:
Program Lab8;
type
stud=record
fam:string[12];
b1,b2,b3,b4:2..5;
Sb:real
end;
var
tbl:array[1..15] of stud;
i,j,n:integer;
temp:stud;
begin
WriteLn('введите число студентов');
ReadLn(n);
WriteLn('введите фамилию');
for i:=1 to n do
with tbl[i] do
begin
WriteLn('фамилия ', i);
Read(fam);
WriteLn('введите оценки по информатике физике математике и химии');
ReadLn(b1,b2,b3,b4);
Sb:=(b1+b2+b3+b4)/4;
end;
  for i:=2 to n do
    for j:=n downto i do
      if tbl[j-1].sb>tbl[j].sb then
        begin
          Temp:=tbl[j-1];
          tbl[j-1]:=tbl[j];
          tbl[j]:=temp;
        end;
for i:=1 to n do
With tbl[i] do
WriteLn(fam:12, sb:6:3);
WriteLn('------------------------------------');
WriteLn('| студ | предмет |');
WriteLn('|----------------------------------|');
WriteLn('| фам | инф| физ| мат| хим| ср.бал |');
WriteLn('|----------------------------------|');
for i:=1 to n do
with tbl[i] do
WriteLn('|',fam:8,'| ', b1,' ':2,'| ',b2,' ':2,'| ',b3,' ':2,'| ',b4,' ':2,'|',sb:2:2, ' |');
WriteLn('|--------|----|----|----|----|-----|');
end.
P.S. Пользуйтесь поиском.
P.P.S. Зачем заводить поле, которое можно вычислить из предыдущих???Имхо
Да и к тому же вычисление среднего балла можно было сделать в цикле ввода данных, а не организовывать отдельный цикл
Нормальное состояние техники - нерабочее, все остальное частный случай.

Последний раз редактировалось alex_fcsm; 10.03.2009 в 15:59.
alex_fcsm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записи Rio309 Помощь студентам 1 15.03.2008 22:23
Записи Xeon332 Помощь студентам 5 12.01.2008 23:17
Записи RECREATOR Помощь студентам 3 25.12.2007 10:58
записи 11111 Паскаль, Turbo Pascal, PascalABC.NET 2 29.11.2007 15:28
Записи zzzzz Помощь студентам 1 25.05.2007 16:26