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

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

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

Всем привет! Есть задание: Определить тип данныхзапись, имеющий поля фамилия и оценки по 5 предметам. Определить массив из 10 записей. В программе ввести в массив данные и вывести на экран список студентов по успеваемости. Наваял следующее:
Листинг программы
  1. program main;
  2. Type anketa=record
  3. fam: string[10];
  4. Mining: integer;
  5. Blacksmith: integer;
  6. Riding: integer;
  7. Flying: integer;
  8. firstaid: integer;
  9. end;
  10. var q,i: integer; sr: array [1..10] of integer; student: array [1..10] of anketa;
  11. function write_an: integer;
  12. begin
  13. var tmp: integer;
  14. writeln('');
  15. writeln('Фамилия Физика Русский Матан Уборка История ');
  16. for tmp:=1 to i do
  17. begin
  18. sr[tmp]:=student[tmp].Mining+student[tmp].Blacksmith+student[tmp].Riding+student[tmp].Flying+student[tmp].Firstaid);
  19. writeln(student[tmp].fam, ' ',student[tmp].Mining, ' ', student[tmp].Blacksmith,' ', student[tmp].Riding, ' ', student[tmp].Flying,' ', student[tmp].Firstaid); writeln('');
  20. end;
  21. function read_an: integer;
  22. begin
  23. i:=i+1;
  24. write('Фамилия:');
  25. readln(student[i].fam);
  26. write('Физика:');
  27. readln(student[i].Mining);
  28. write('Русский:');
  29. readln(student[i].Blacksmith);
  30. write('Матан:');
  31. readln(student[i].Riding);
  32. write('Уборка:');
  33. readln(student[i].Flying);
  34. write('История:');
  35. readln(student[i].firstaid);
  36. end;
  37. begin
  38. repeat
  39. writeln('Выберите действие:');
  40. writeln('1 - Ввод нового студента');
  41. writeln('2 - Вывод результатов');
  42. writeln('3 - выход');
  43. readln(q);
  44. case q of
  45. 1: read_an;
  46. 2: write_an;
  47. end;
  48. until (q=3);
  49. end.
Не врубаюсь с сортировкой на выводе, помогите. Заранее, спасибо!

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

textual
Листинг программы
  1. program main;
  2. const n=10;
  3. Type anketa=record
  4.    fam: string[10];
  5.    Mining: integer;
  6.    Blacksmith: integer;
  7.    Riding: integer;
  8.    Flying: integer;
  9.    firstaid: integer;
  10. end;
  11. var student: array [1..n] of anketa;
  12.     sr: array [1..n] of integer;
  13.     q,i,j: integer;
  14.     x:anketa;
  15. begin
  16. writeln('Введите данные студентов');
  17. for i:=1 to n do
  18.  begin
  19.   sr[i]:=0;
  20.   writeln('Студент ',i);
  21.   with student[i] do
  22.    begin
  23.     write('Фамилия: ');readln(fam);
  24.     write('Физика: ');readln(Mining);
  25.     sr[i]:=sr[i]+Mining;
  26.     write('Русский: ');readln(Blacksmith);
  27.     sr[i]:=sr[i]+Blacksmith;
  28.     write('Матан: ');readln(Riding);
  29.     sr[i]:=sr[i]+Riding;
  30.     write('Уборка :');readln(Flying);
  31.     sr[i]:=sr[i]+Flying;
  32.     write('История: ');readln(firstaid);
  33.     sr[i]:=sr[i]+firstaid
  34.    end;
  35.  end;
  36. for i:=1 to n-1 do
  37. for j:=i+1 to n do
  38. if sr[i]<sr[j] then
  39.  begin
  40.   q:=sr[i];
  41.   sr[i]:=sr[j];
  42.   sr[j]:=q;
  43.   x:=student[i];
  44.   student[i]:=student[j];
  45.   student[j]:=x;
  46.  end;
  47. writeln('-------------------------------------------------------');
  48. writeln('|  Фамилия  |Физика|Русский|Матан|Уборка|История|Всего|');
  49. writeln('-------------------------------------------------------');
  50. for i:=1 to n do
  51. with student[i] do
  52.  begin
  53.   write('|',fam:10,' |',Mining:4,'  |',Blacksmith:5,'  |',Riding:3,'  |');
  54.   writeln(Flying:4,'  |',Firstaid:5,'  |',sr[i]:4,' |');
  55.  end;
  56. writeln('-------------------------------------------------------');
  57. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы