
Напишите программу для работы со списком из произвольного количества учеников (не больше 50). О
каждом ученике запрашивается Имя, Отчество, Фамилия, возраст, номер и буква класса. По завершении ввода, выводится список учеников (один ученик на строке) упорядоченный в порядке убывания по Имени. Паскаль.

Ответы на вопрос

// PascalABC.NET 3.6
type
TR = record
Имя, Отчество, Фамилия: string;
Возраст, НомерКласса: integer;
БукваКласса: char;
end;
function ПринятьСведения: TR;
begin
Result.Имя := ReadlnString('Имя:');
Result.Отчество := ReadlnString('Отчество:');
Result.Фамилия := ReadlnString('Фамилия:');
Result.Возраст := ReadlnInteger('Возраст:');
Result.НомерКласса := ReadlnInteger('Номер клвсса:');
Result.БукваКласса := ReadlnChar('Буква класса:');
end;
procedure ВывестиСведения(L: List<TR>);
begin
foreach var r in L do
Writeln(r.Имя+' '+r.Отчество+' '+r.Фамилия:40,
r.Возраст:4, r.НомерКласса+r.БукваКласса:4)
end;
begin
var p := new List<TR>;
var n := ReadlnInteger('Сколько учеников добавить?');
loop n do
p.Add(ПринятьСведения);
p := p.OrderByDescending(t -> t.Имя).ToList;
ВывестиСведения(p);
end.



Конечно, вот пример программы на Pascal, которая выполняет описанные вами действия:
pascalprogram StudentList; const MaxStudents = 50; type Student = record FirstName: string; MiddleName: string; LastName: string; Age: integer; ClassNumber: integer; ClassLetter: char; end; var Students: array [1..MaxStudents] of Student; NumStudents: integer; i, j: integer; TempStudent: Student; procedure InputStudent(var s: Student); begin writeln('Введите информацию об ученике:'); write('Имя: '); readln(s.FirstName); write('Отчество: '); readln(s.MiddleName); write('Фамилия: '); readln(s.LastName); write('Возраст: '); readln(s.Age); write('Номер класса: '); readln(s.ClassNumber); write('Буква класса: '); readln(s.ClassLetter); end; procedure SortStudents(); begin for i := 1 to NumStudents - 1 do for j := i + 1 to NumStudents do if Students[i].FirstName < Students[j].FirstName then begin TempStudent := Students[i]; Students[i] := Students[j]; Students[j] := TempStudent; end; end; procedure DisplayStudents(); begin writeln('Список учеников:'); for i := 1 to NumStudents do writeln(Students[i].LastName, ' ', Students[i].FirstName, ' ', Students[i].MiddleName, ', Возраст: ', Students[i].Age, ', Класс: ', Students[i].ClassNumber, Students[i].ClassLetter); end; begin writeln('Введите количество учеников (не более ', MaxStudents, '): '); readln(NumStudents); if (NumStudents > MaxStudents) or (NumStudents <= 0) then begin writeln('Неверное количество учеников.'); exit; end; for i := 1 to NumStudents do InputStudent(Students[i]); SortStudents(); DisplayStudents(); end.
Программа запрашивает информацию об учениках, сохраняет их в массив и сортирует по имени в порядке убывания. Затем выводит отсортированный список.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili