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

Используя линейный односвязный список найти введённое с клавиатуры число, удалить число стоящий перед найденным за 1 позицию и вставить число, введённый с клавиатуры, перед найденным .pascal.

Ответ:
grigorisinnatal
grigorisinnatal
04.10.2020 09:01
// PascalABC.NET 3.2, сборка 1325 от 19.10.2016
begin
  var L:=new List<integer>;
  Writeln('Вводите целые числа, окончание ввода по -777');
  var n:integer;
  repeat
    n:=ReadInteger;
    if n<>-777 then L.Add(n);
  until n=-777;
  Writeln('Исходный список'); Writeln(L);
  n:=ReadInteger('Введите искомое число:');
  var p:=L.FindIndex(k->k=n); // искомый элемент
  if p<0 then Writeln('Искомый элемент в списке не найден')
  else begin
    Writeln('Элемент ',L.Item[p-2],' удален');
    L.RemoveAt(p-2); Writeln(L); // удалили и убедились
    n:=ReadInteger('Введите число для вставки:');
    L.Insert(p-1,n); Writeln(L)
    end
end.

Пример
Вводите целые числа, окончание ввода по -777
1 6 12 73 -15 34 18 0 24 -777
Исходный список
[1,6,12,73,-15,34,18,0,24]
Введите искомое число: 34
Элемент 73 удален
[1,6,12,-15,34,18,0,24]
Введите число для вставки: 1000
[1,6,12,-15,1000,34,18,0,24]
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?