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

Напишите программу которая последовасти натуральных чисел находит номер последнего элемента оканчивающиеся на цифру 8. Если в последовательности нет таких элементов, то ввести сообщение NO. Последовать формируется в программе посредством генерации случайных чисел. Элементы последовательности принимают значения от 0 до 30000. Количество чисел 100


Аноним: У элементов последовательности нет номеров.
Аноним: Номера есть у элементов массива.
Аноним: Однако, можно говорить о том, каким по порядку рассматривается элемент последовательности.

Ответы

Автор ответа: Аноним
2

PascalABC.NET 3.4.2, сборка 1884 от 24.11.2018

Внимание! Если программа не работает, обновите версию!

begin

 var (i, m):=(1, 0);

 SeqRandom(100, 0, 30000)

     .Foreach(t ->

     begin

       if t mod 10 = 8 then m := i;

       Inc(i);

       t.Print

     end);

 Println;

 Println;

 if m = 0 then Print('NO')

 else m.Print

end.

Приложения:

Аноним: Такова реализация в PascalABC.NET. Вместо последовательности хранится порождающая ее функция, которая при очередном обращении генерирует и возвращает один элемент. Вот он только (и сама функция) память занимают. В С# это же делает yield. Собственно, в PascalABC.NET это тоже делает yield.
Аноним: PascalABC.NET - это совсем не тот Паскаль, который придумал Н.Вирт, не тот, что в 1984 году появился под именем Turbo Pascal и даже не тот Object Pascal, что в 1994 году появился в составе BorlandDelphi. Это язык более нового поколения, такой же, как Питон или .NET языки. Разработчики не стали писать очередной Питон, а использовали все хорошее, что было в Object Pascal и расширили язык, оснастив его всеми современными возможностями.
Аноним: В результате получился немного уcеченный C#, зато дополненный вкусняшками из Питона и Haskell, что делает обучение программированию на нем простым и хорошо понятным даже в школе.
Аноним: Плюс лаконичность кода, ускоряющая разработку программы. И полноценный компилятор, порождающий самостоятельные исполняемые файлы.
Аноним: Получается, она подходит только для мгновенного использования?
Аноним: То есть нельзя создать последовательность, вывести её на экран, затем отсортировать её и снова вывести на экран
Аноним: Не совсем так. Если есть формула для получения членов последовательности, она будет генерироваться сколько угодно раз, но каждый раз просматриваться от начала. Такие последовательности называются в теории немутирующими. Если же последовательность мутирующая, то либо алгоритм должен быть однопроходным, либо ее нужно сохранить в массив. Например, ка в случае использования датчика случайных чисел или клавиатурного ввода.
Аноним: С мутирующими последовательностями поступают так например, как вот я поступил в своем решении.
Аноним: Понятно, спасибо)
Аноним: Пожалуйста
Похожие вопросы
Предмет: Оʻzbek tili, автор: Аноним
Предмет: Геометрия, автор: sanyatverskoy1237
Предмет: Алгебра, автор: Rezn1k
Предмет: Математика, автор: dama87