Опишите на русском языке или одном из языков программирования алгоритм подсчета максимального количества подряд идущих элементов, каждый из которых больше предыдущего, в целочисленном массиве длины 30.
Решение. Пример правильного описания алгоритма на русском языке.
Заводим переменную Maxlncr для хранения максимального количества подряд идущих в порядке возрастания элементов и счетчик Numlncr для хранения числа элементов в последней группе возрастающих элементов. Просматривая элементы массива, сравниваем очередной элемент со следующим за ним. Если очередной элемент массива оказывается не меньше следующего, то сравниваем текущее значение счетчика со значением переменной Maxlncr; если он больше, то заменяем значение переменной Maxlncr значением счетчика, при этом значение Numlncr обнуляется. Так повторяем до конца массива. В конце работы нужно еще раз сравнить значение счетчика со значением переменной Maxlncr и переопределить ее, если счетчик больше.
Пример правильной и эффективной программы (на основе алгоритма, использующего однократный проход по массиву):
| ПРОГРАММА НА ПАСКАЛЕ | ПРОГРАММА НА БЕЙСИКЕ |
| Const N = 30; Var A: array [1..N] of integer; maxlncr, numlncr, i:integer; Begin maxlncr:=0; numlncr:=0; For i:= 1 to N-1 do Begin If a[i] < a[i+1] then numlncr:=numlncr+1; Else Begin If numlncr>maxlncr then Maxlncr:=numlncr; numlncr:=0; End; End; If numlncr>maxlncr then maxlncr:=numlncr; Writeln(maxlncr); End. | N = 30 DIM i, Maxlncr, Numlncr, a(N) AS INTEGER Maxlncr=0 Numlncr=0 FOR i = 1 TO N-l |
| Критерии оценивания выполнения задания | Баллы |
|---|---|
| Предложен правильный алгоритм, выдающий верное значение. Допускается запись алгоритма на другом языке, использующая аналогичные переменные. В случае, если язык программирования использует типизированные переменные, описания переменных должны быть аналогичны описаниям переменных на естественном языке. Использование нетипизированных или необъявленных переменных возможно только в случае, если это допускается языком программирования, при этом количество переменных и их идентификаторы должны соответствовать условию задачи. В алгоритме, записанном на языке программирования, допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора программы. | 2 |
| В любом варианте решения может присутствовать не более одной ошибки из числа следующих: 1) не инициализируется или неверно инициализируется переменная; 2) при выводе ответа не учитывается, что требуемого числа в массиве может не быть; 3) отсутствует вывод ответа; 4) в сравнении перепутан знак; 5) неверно осуществляется проверка делимости; 6) на делимость проверяется не значение элемента, а его индекс; 7) в сложном условии вместо логической операции «И» используется логическая операция «ИЛИ»; 8) используется переменная, не объявленная в разделе описания переменных; 9) не указано или неверно указано условие завершения цикла; 10) индексная переменная в цикле не меняется (например, в цикле while) или меняется неверно; 11) неверно расставлены операторные скобки | 1 |
| Ошибок, перечисленных в п. 1–11, две или больше, или алгоритм сформулирован неверно | 0 |
| Максимальный балл | 2 |
PDF-версии: 