Напишите программу которая последовасти натуральных чисел находит номер последнего...

0 голосов
26 просмотров

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


Информатика (21 баллов) | 26 просмотров
0

У элементов последовательности нет номеров.

0

Номера есть у элементов массива.

0

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

Дан 1 ответ
0 голосов
Правильный ответ

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.


image
(654k баллов)
0

Такова реализация в PascalABC.NET. Вместо последовательности хранится порождающая ее функция, которая при очередном обращении генерирует и возвращает один элемент. Вот он только (и сама функция) память занимают. В С# это же делает yield. Собственно, в PascalABC.NET это тоже делает yield.

0

PascalABC.NET - это совсем не тот Паскаль, который придумал Н.Вирт, не тот, что в 1984 году появился под именем Turbo Pascal и даже не тот Object Pascal, что в 1994 году появился в составе BorlandDelphi. Это язык более нового поколения, такой же, как Питон или .NET языки. Разработчики не стали писать очередной Питон, а использовали все хорошее, что было в Object Pascal и расширили язык, оснастив его всеми современными возможностями.

0

В результате получился немного уcеченный C#, зато дополненный вкусняшками из Питона и Haskell, что делает обучение программированию на нем простым и хорошо понятным даже в школе.

0

Плюс лаконичность кода, ускоряющая разработку программы. И полноценный компилятор, порождающий самостоятельные исполняемые файлы.

0

Получается, она подходит только для мгновенного использования?

0

То есть нельзя создать последовательность, вывести её на экран, затем отсортировать её и снова вывести на экран

0

Не совсем так. Если есть формула для получения членов последовательности, она будет генерироваться сколько угодно раз, но каждый раз просматриваться от начала. Такие последовательности называются в теории немутирующими. Если же последовательность мутирующая, то либо алгоритм должен быть однопроходным, либо ее нужно сохранить в массив. Например, ка в случае использования датчика случайных чисел или клавиатурного ввода.

0

С мутирующими последовательностями поступают так например, как вот я поступил в своем решении.

0

Понятно, спасибо)

0

Пожалуйста