Вывести на экран список студентов по успеваемости - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Всем привет! Есть задание: Определить тип данныхзапись, имеющий поля фамилия и оценки по 5 предметам. Определить массив из 10 записей. В программе ввести в массив данные и вывести на экран список студентов по успеваемости. Наваял следующее:
Не врубаюсь с сортировкой на выводе, помогите. Заранее, спасибо!

Решение задачи: «Вывести на экран список студентов по успеваемости»

textual
Листинг программы
program main;
const n=10;
Type anketa=record
   fam: string[10];
   Mining: integer;
   Blacksmith: integer;
   Riding: integer;
   Flying: integer;
   firstaid: integer;
end;
var student: array [1..n] of anketa;
    sr: array [1..n] of integer;
    q,i,j: integer;
    x:anketa;
begin
writeln('Введите данные студентов');
for i:=1 to n do
 begin
  sr[i]:=0;
  writeln('Студент ',i);
  with student[i] do
   begin
    write('Фамилия: ');readln(fam);
    write('Физика: ');readln(Mining);
    sr[i]:=sr[i]+Mining;
    write('Русский: ');readln(Blacksmith);
    sr[i]:=sr[i]+Blacksmith;
    write('Матан: ');readln(Riding);
    sr[i]:=sr[i]+Riding;
    write('Уборка :');readln(Flying);
    sr[i]:=sr[i]+Flying;
    write('История: ');readln(firstaid);
    sr[i]:=sr[i]+firstaid
   end;
 end;
for i:=1 to n-1 do
for j:=i+1 to n do
if sr[i]<sr[j] then
 begin
  q:=sr[i];
  sr[i]:=sr[j];
  sr[j]:=q;
  x:=student[i];
  student[i]:=student[j];
  student[j]:=x;
 end;
writeln('-------------------------------------------------------');
writeln('|  Фамилия  |Физика|Русский|Матан|Уборка|История|Всего|');
writeln('-------------------------------------------------------');
for i:=1 to n do
with student[i] do
 begin
  write('|',fam:10,' |',Mining:4,'  |',Blacksmith:5,'  |',Riding:3,'  |');
  writeln(Flying:4,'  |',Firstaid:5,'  |',sr[i]:4,' |');
 end;
writeln('-------------------------------------------------------');
end.

Объяснение кода листинга программы

  1. В начале программы объявляются переменные n, anketa, student, sr, q, i, j, x.
  2. Переменная n представляет собой количество студентов, которые будут введены.
  3. Переменная anketa представляет собой структуру данных, которая содержит информацию о студентах.
  4. Переменная student представляет собой массив, который будет использоваться для хранения информации о студентах.
  5. Переменная sr представляет собой массив, который будет использоваться для хранения суммарных баллов каждого студента.
  6. Переменные q, i, j представляют собой переменные, которые будут использоваться для обмена данными между студентами.
  7. Переменная x представляет собой временную переменную, которая будет использоваться для копирования информации о студенте.
  8. Программа запрашивает у пользователя ввод данных о студентах и сохраняет эти данные в соответствующих переменных.
  9. Затем программа выводит на экран список студентов по успеваемости.
  10. Для каждого студента программа выводит его фамилию, сумму баллов по физике, русскому языку, математике, уборке и истории.
  11. После вывода списка всех студентов программа выводит общую сумму баллов каждого студента.
  12. Наконец, программа выводит итоговую таблицу с фамилиями студентов, их суммарными баллами и общим количеством баллов.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы