По каналу связи передается последовательность положительных целых чисел
Условие
По каналу связи передается последовательность положительных целых чисел … все числа не превышают 1000, их количество заранее неизвестно. Каждое число передается в виде отдельной строки, содержащей десятичную запись числа. Признаком конца передаваемой последовательности является число 0. Участок последовательности от элемента X_T до элемента называется подъемом, если на этом участке каждое следующее число больше предыдущего. Высотой подъема называется разность Напишите эффективную программу, которая вычисляет наибольшую высоту среди всех подъемов последовательности. Если в последовательности нет ни одного подъема, программа выдает 0. Программа должна напечатать отчет по следующей форме:Получено ... чисел Наибольшая высота подъема: … Вам предлагаются два задания, связанные с этой задачей: задание А и задание Б. Вы можете решать оба задания А и Б или одно из них по своему выбору.
Итоговая оценка выставляется как максимальная из оценок за задания А и Б. Если решение одного из заданий не представлено, то считается, что оценка за это задание составляет 0 баллов.
Задание Б является усложненным вариантом задания А, оно содержит дополнительные требования к программе. Перед программой укажите версию языка программирования. А. Напишите на любом языке программирования программу для решения поставленной задачи, в которой входные данные будут запоминаться в массиве, после чего будут проверены все возможные пары элементов.
Обязательно укажите, что программа является решением задания А.Максимальная оценка за выполнение задания А - 2 балла. Б. Напишите программу для решения поставленной задачи, которая будет эффективна как по времени, так и по памяти (или хотя бы по одной из этих характеристик).Программа считается эффективной по времени, если время работы программы пропорционально количеству элементов последовательности N, т. е. при увеличении N в k раз время работы программы должно увеличиваться не более чем в k раз. Обязательно укажите, что программа является решением задания Б. Перед текстом программы кратко опишите используемый вами алгоритм решения задачи.
Пример входных данных:144172737911100Пример выходных данных для приведенного выше примера входных данных:Получено 8 чиселНаибольшая высота подъема: 10 Пояснения для проверяющих.1. Задание Б является усложнением задания А. Если в качестве решения задания Б представлено решение задания А, то согласно приведённым ниже критериям, его оценка будет такой же, как если бы это решение было представлено в качестве решения задания А.2. Два задания и, соответственно, возможность для экзаменуемого представить две программы дают ученику возможность (при его желании) сначала написать менее сложное и менее эффективное решение (задание А), которое даёт ему право получить два балла, а затем приступить к поиску более эффективного решения. 3. Каждая из программ, представленных экзаменуемым (но не более двух), оценивается по нижеследующим критериям. В качестве итоговой оценки берётся наибольшая из двух оценок.
Формат задания
Решение по шагам
Как рассуждать
Решение. Программа читает все входные данные один раз, не запоминая все входные данные в массиве. Во время чтения программа помнит число LMax — высоту самого высокого из уже закончившихся подъемов, а также необходимые сведения о текущем подъеме, например, число L — высоту текущего подъема (то есть разность между последним и первым числом участка) и последнее прочитанное число T (это число — наибольшее из чисел текущего подъема). Прочитав очередное число R, программа сравнивает его с числом T. Если R > T, то значение L увеличивается на R-T. В противном случае фиксируется конец подъема и начало нового участка. То есть, во-первых, значение L сравнивается с LMax и, при необходимости, LMax полагается равным L. Во-вторых, полагаем L =
Осталось ещё 1 шаг
| Пример правильной и эффективной программы…
Бесплатно · займёт минуту