Паскаль. Списки. Формировать списки из N элементов. Добавить элемент А после второго кратного 3м
элемента списка (1, 6, 7, 3*, 5). Удаление первого кратного 3м элемента списка (1,7,3,А,5). Выполнить сортировку списка по убыванию. После выполнения каждой операции выводить список на экран.Ответы на вопрос
// PascalABC.NET 3.4.2, сборка 1790 от 15.09.2018
// Внимание! Если программа не работает, обновите версию!
begin
var L := new List<integer>;
L.AddRange(Seq(1, 6, 7, 3, 5));
L.Println;
var A := ReadInteger('A=');
var s := L.ToArray.IndexesOf(t -> t mod 3 = 0);
var i2 := s.Skip(1).First;
L.Insert(i2 + 1, A);
L.Println;
L.RemoveAt(s.First);
L.Println;
L := L.SortedDescending.ToList;
L.Println
end.

Для выполнения указанных операций в Pascal, вам потребуется использовать массивы (списки в Pascal представлены в виде динамических массивов). Вот пример кода, выполняющего описанные операции:
pascalprogram ListOperations; const N = 5; // Количество элементов в списке var myList: array of Integer; // Динамический массив для хранения списка i, count, aPosition: Integer; // Процедура для вывода списка на экран procedure PrintList(list: array of Integer); var i: Integer; begin for i := 0 to High(list) do Write(list[i], ' '); Writeln; end; begin // Формирование списка из N элементов SetLength(myList, N); Writeln('Введите ', N, ' элементов списка:'); for i := 0 to N - 1 do ReadLn(myList[i]); // Вывод списка на экран Writeln('Список:'); PrintList(myList); // Добавление элемента А после второго кратного 3м элемента списка count := 0; aPosition := -1; for i := 0 to High(myList) do begin if myList[i] mod 3 = 0 then begin Inc(count); if count = 2 then begin aPosition := i + 1; Break; end; end; end; if aPosition <> -1 then begin SetLength(myList, Length(myList) + 1); for i := High(myList) downto aPosition + 1 do myList[i] := myList[i - 1]; myList[aPosition] := A; end else Writeln('В списке нет второго кратного 3м элемента.'); // Вывод списка на экран после добавления элемента А Writeln('Список после добавления элемента А:'); PrintList(myList); // Удаление первого кратного 3м элемента списка for i := 0 to High(myList) do begin if myList[i] mod 3 = 0 then begin for count := i to High(myList) - 1 do myList[count] := myList[count + 1]; SetLength(myList, Length(myList) - 1); Break; end; end; // Вывод списка на экран после удаления первого кратного 3м элемента Writeln('Список после удаления первого кратного 3м элемента:'); PrintList(myList); // Выполнение сортировки списка по убыванию for i := 0 to High(myList) do begin for count := i to High(myList) do begin if myList[i] < myList[count] then begin A := myList[i]; myList[i] := myList[count]; myList[count] := A; end; end; end; // Вывод списка на экран после сортировки Writeln('Список после сортировки по убыванию:'); PrintList(myList); end.
Пожалуйста, обратите внимание, что в данном примере мы предполагаем, что элемент А уже определен до начала программы, чтобы его можно было добавить в список. Вы можете задать его значение до начала выполнения программы. Также обратите внимание, что в коде не предусмотрено контроля над вводом, что делает его упрощенным. В реальной программе нужно предусмотреть проверки на корректность вводимых данных.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
