После окончания эксперимента передаётся контрольное значение
Условие
По каналу связи передаются положительные целые числа, не превышающие 1000, — результаты измерений, полученных в ходе эксперимента (количество измерений N известно заранее, гарантируется, что N > 2). После окончания эксперимента передаётся контрольное значение — наименьшее число R, удовлетворяющее следующим условиям:1) R — сумма двух различных переданных элементов последовательности («различные» означает, что нельзя просто удваивать переданные числа, суммы различных, но равных по величине элементов допускаются);2) R — чётное число. В результате помех при передаче как сами числа, так и контрольное значение могут быть искажены.
Напишите программу (укажите используемую версию языка программирования, например Free Pascal 2.6.4), которая будет проверять правильность контрольного значения. Программа должна напечатать отчёт по следующей форме:Вычисленное контрольное значение: …Контроль пройден (или Контроль не пройден)Постарайтесь, чтобы программа была эффективной. Программа считается эффективной по времени, если время работы программы пропорционально количеству полученных показаний прибора N, то есть при увеличении N в k раз время работы программы должно увеличиваться не более чем в k раз. Программа считается эффективной по памяти, если размер памяти, использованной в программе для хранения данных, не зависит от числа N и не превышает 1 килобайта.
Перед текстом программы кратко опишите используемый Вами алгоритм решения.
На вход программе в первой строке подаётся количество чисел N (N > 2). В каждой из последующих N строк записано одно натуральное число, не превышающее 1000. В последней строке записано контрольное значение. Пример входных данных:6100835145598492Пример выходных данных для приведённого выше примера входных данных: Вычисленное контрольное значение: 92. Говоря неформально, 4 балла ставится за эффективную и правильно работающую программу, которая, возможно, содержит до трех синтаксических ошибок (описок). 3 балла ставится в случае, когда фактически задача решена, ноколичество описок более трех (но не более пяти) и допущено не более одной содержательной ошибки, не позволяющей усомниться в том, что экзаменуемый правильно придумал алгоритм (список допустимых ошибок приведен ниже). 2 балла ставится, если в дополнение к неточностям, которые перечислены выше, программа работает неэффективно по времени и/или допущено до трех упомянутых выше содержательных ошибок. Количество допустимых описок — до семи. 1 балл ставится, если программа написана неверно, но из описания алгоритма и общей структуры программы видно, что экзаменуемый в целом правильно представляет путь решения задачи. Далее сказанное уточнено.
Формат задания
Решение по шагам
Как рассуждать
Решение. Сумма двух чисел чётна, если они имеют одинаковую чётность (оба чётные или оба нечётные).Программа, вычисляющая контрольное значение, читает все входные данные один раз, не запоминая их в массиве. Для прочитанного фрагмента входной последовательности программа хранит значения двух самых маленьких чётных и двух самых маленьких нечётных чисел: М01 — самое маленькое чётное число;М02 — второе по величине маленькое чётное число;M11 — самое маленькое нечётное число.М12 — второе по величине маленькое нечётное число;После того как все данные прочитаны, искомое контрольное значение вычисляется как меньшая из сумм M01 + M02 и M11 + M12. Поскольку N > 2, обязательно найдётся хотя бы одна пара чисел одинаковой чётности и контрольное значение всегда будет вычислено, но надо отдельно обработать случаи, когда среди данных нет пары чётных или пары нечётных элементов. Эту проверку следует делать очень аккуратно. Например, следующий очень похожий на правильный фрагмент на самом деле ошибочен:if (M12 >
Осталось ещё 1 шаг
or (M01+M02 < M11+M12) then res:=M01+M02else…
Бесплатно · займёт минуту