Предмет: Информатика,
автор: tymoyalalka
Паскаль. Списки. Формировать списки из N элементов. Добавить элемент А после второго кратного 3м элемента списка (1, 6, 7, 3*, 5). Удаление первого кратного 3м элемента списка (1,7,3,А,5). Выполнить сортировку списка по убыванию. После выполнения каждой операции выводить список на экран.
Ответы
Автор ответа:
1
// 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.
Приложения:
Аноним:
И ввести сначала количество элементов, нажать Enter, затем сами элементы через пробел
Спасибо большое!!!
у меня еще вопросик. Как называется такой вид программирования в паскале, не используя стандартные операторы?
Я не знаю, что Вы называете "стандартными операторами". В языке PascalABС.NET я не использовал ничего "нестандартного" - посмотрите код: так нет ни одного uses или #include для подключения каких-то библиотек или внешних исходных текстов. Это нормальный современный стиль программирования, а вот от того, как писали на Free Pascal или Turbo Pascal - да, этот код ушел далеко. Но Вы же сами написали про PascalABC
Если Вы имели в виду название парадигмы программирования, когда множество операций сцепляется через точку - это цепочки, пришедшие из функционального программирования (представитель - язык Хаскель).
PascalABC.NET - это современный язык платформы Microsoft .NET Framework и ему доступно все, что есть в .NET. В частности, стандартная коллекция List - односвязный список со всеми его свойствами и методами.
Поэтому не надо корячится, изобретая "велосипед" - строить собственный класс List и описывать для него набор необходимых методов, а если не использовать объектно-ориентированное программирование - и того хуже - маяться с дурацкими указателями, изображая чуть ли не ассемблер.
Да, совсем забыл, если вводить с клавиатуры, то также не нужны строки L.AddRange(Seq(1, 6, 7, 3, 5)); и L.Println;
Спасибо большое, правда,очень помогли!
Пожалуйста...
Похожие вопросы
Предмет: Химия,
автор: Demidovaalla
Предмет: Қазақ тiлi,
автор: indirakurbanova62
Предмет: МХК,
автор: rysbekovnacolpona
Предмет: Математика,
автор: HЕLPЕR