Предмет: Информатика, автор: udachatheklever

написать программу для Pascal, которая будет удалять номера учеников из массива, средний балл которых меньше 5. нужно использовать команду del_mas​


pb1036: Такой команды в языке Паскаль не существует, но можно написать свою процедуру.

Ответы

Автор ответа: sashok451
0

Ответ:

Объяснение:

program RemoveStudents;

var

 Students: array of record

   Name: string;

   AverageGrade: real;

 end;

 NumStudents, i, NewNumStudents: integer;

begin

 writeln('Введите количество учеников:');

 readln(NumStudents);

 

 SetLength(Students, NumStudents); // Выделяем память под массив

 // Заполняем массив данными

 for i := 0 to NumStudents - 1 do

 begin

   writeln('Введите имя ученика ', i + 1, ':');

   readln(Students[i].Name);

   writeln('Введите средний балл ученика ', i + 1, ':');

   readln(Students[i].AverageGrade);

 end;

 // Создаем новый массив без учеников, средний балл которых меньше 5

 NewNumStudents := 0;

 for i := 0 to NumStudents - 1 do

 begin

   if Students[i].AverageGrade >= 5 then

   begin

     Students[NewNumStudents] := Students[i];

     Inc(NewNumStudents);

   end;

 end;

 SetLength(Students, NewNumStudents); // Устанавливаем новую длину массива

 // Выводим оставшихся учеников

 writeln('Оставшиеся ученики с средним баллом >= 5:');

 for i := 0 to NewNumStudents - 1 do

 begin

   writeln('Имя: ', Students[i].Name, ', Средний балл: ', Students[i].AverageGrade);

 end;

end.

Автор ответа: pb1036
0

type

 Student = record

   fio: string;      // Фамилия, инициалы

   avg: real         // средний балл

 end;

 

procedure del_mas(var x: array of Student) := x := x.Where(r -> r.Avg = 5).ToArray;

 

begin

 var n := ReadlnInteger;                 // Размер массива

 var Stud := new Student[n];             // создаем массив

 for var i := 0 to n - 1 do  Ф            // заполняем массив

 begin

   Stud[i].fio := ReadlnString;          //      ввод фамилии, инициалов

   Stud[i].avg := ReadlnReal;            //      ввод среднего балла

 end;

 del_mas(Stud);

 Stud.Printlines(st -> $'{st.fio.PadRight(20)}  {st.avg}')

end.

Приложения:
Похожие вопросы
Предмет: История, автор: nstar1182