Вывести на экран список студентов по успеваемости - Pascal ABC
Формулировка задачи:
Всем привет! Есть задание:
Определить тип данныхзапись, имеющий поля фамилия и оценки по 5 предметам. Определить массив из 10 записей. В программе ввести в массив данные и вывести на экран список студентов по успеваемости.
Наваял следующее:
Не врубаюсь с сортировкой на выводе, помогите. Заранее, спасибо!
Листинг программы
- program main;
- Type anketa=record
- fam: string[10];
- Mining: integer;
- Blacksmith: integer;
- Riding: integer;
- Flying: integer;
- firstaid: integer;
- end;
- var q,i: integer; sr: array [1..10] of integer; student: array [1..10] of anketa;
- function write_an: integer;
- begin
- var tmp: integer;
- writeln('');
- writeln('Фамилия Физика Русский Матан Уборка История ');
- for tmp:=1 to i do
- begin
- sr[tmp]:=student[tmp].Mining+student[tmp].Blacksmith+student[tmp].Riding+student[tmp].Flying+student[tmp].Firstaid);
- writeln(student[tmp].fam, ' ',student[tmp].Mining, ' ', student[tmp].Blacksmith,' ', student[tmp].Riding, ' ', student[tmp].Flying,' ', student[tmp].Firstaid); writeln('');
- end;
- function read_an: integer;
- begin
- i:=i+1;
- write('Фамилия:');
- readln(student[i].fam);
- write('Физика:');
- readln(student[i].Mining);
- write('Русский:');
- readln(student[i].Blacksmith);
- write('Матан:');
- readln(student[i].Riding);
- write('Уборка:');
- readln(student[i].Flying);
- write('История:');
- readln(student[i].firstaid);
- end;
- begin
- repeat
- writeln('Выберите действие:');
- writeln('1 - Ввод нового студента');
- writeln('2 - Вывод результатов');
- writeln('3 - выход');
- readln(q);
- case q of
- 1: read_an;
- 2: write_an;
- end;
- until (q=3);
- end.
Решение задачи: «Вывести на экран список студентов по успеваемости»
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.
Объяснение кода листинга программы
- В начале программы объявляются переменные n, anketa, student, sr, q, i, j, x.
- Переменная n представляет собой количество студентов, которые будут введены.
- Переменная anketa представляет собой структуру данных, которая содержит информацию о студентах.
- Переменная student представляет собой массив, который будет использоваться для хранения информации о студентах.
- Переменная sr представляет собой массив, который будет использоваться для хранения суммарных баллов каждого студента.
- Переменные q, i, j представляют собой переменные, которые будут использоваться для обмена данными между студентами.
- Переменная x представляет собой временную переменную, которая будет использоваться для копирования информации о студенте.
- Программа запрашивает у пользователя ввод данных о студентах и сохраняет эти данные в соответствующих переменных.
- Затем программа выводит на экран список студентов по успеваемости.
- Для каждого студента программа выводит его фамилию, сумму баллов по физике, русскому языку, математике, уборке и истории.
- После вывода списка всех студентов программа выводит общую сумму баллов каждого студента.
- Наконец, программа выводит итоговую таблицу с фамилиями студентов, их суммарными баллами и общим количеством баллов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д