Паскаль, создание списка.
Подскажите, как сделать функцию сортировки учеников по алфавиту, добавление нового ученика в середине программы и как удалять учеников? Желательно более введите кол-во учеников: ');
readln(n);
for i:= 1 to n do
begin
write('введите ФИО:');
readln(k[i]);
end;
end;

procedure out;
var i:integer;
begin
writeln('Список класса:');
for i:= 1 to n do
writeln(k[i]);
end;

procedure menu;
begin
writeln('1, Создание списка класса');
writeln('2, Вывод списка класса');
writeln('6, EXIT');
end;

var
kom: byte;
begin
repeat
menu;
readln(kom);
case kom of
1: creat;
2: out;
//3: sort;
// 4: dobavit;
// 5:delet;
6: exit;
end;
until kom = 6;
end.

poli143 poli143    2   22.04.2020 23:04    0

Ответы
Апслтел Апслтел  13.10.2020 17:33

На PascalABC.NET можно так:

var k: array of string;

procedure CreatOrAdd(add: boolean);

begin

 var i,n: integer;

 write('введите кол-во учеников: ');

 readln(n);

 if (add) then  

   begin

     setlength(k,k.Length+n);

     for i:= 0 to n-1 do  

       begin

       write('введите ФИО:');

       readln(k[k.Length-n+i]);

       end;

   end

 else  

   begin

   setlength(k,n);

   for i:= 0 to n-1 do  

     begin

     write('введите ФИО:');

     readln(k[i]);

     end;

   end;

end;

procedure out;

begin

 try

   writeln('Список класса:');

   for var i:= 0 to k.Length-1 do writeln(k[i]);

 except

   on e: System.Exception do writeln(e.Message);  

 end;

end;

procedure menu;

begin

writeln('1, Создание списка класса');

writeln('2, Добавление');

writeln('3, Удаление');

writeln('4, Вывод списка класса');

writeln('5, EXIT');

end;

procedure delet;

begin

 var n: integer;

 write('введите номер удаляемого ученика: ');

 readln(n);

  try

   if (n<=k.Length) then

   k := k.Where(t -> t<>k[n-1]).ToArray()

   else writeln('Ошибка');

 except

   on e: System.Exception do writeln(e.Message);  

 end;

end;

var

kom: byte;

begin

repeat

menu;

readln(kom);

case kom of

1: creatoradd(false);

2: creatoradd(true);

3: delet;

4: out;

5: exit;

end;

until kom = 5;

end.

Если будут вопросы, спрашивайте.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика