Тип Д25 C2 № 3636 

Алгоритмы обработки массивов. Другие алгоритмы
i
Опишите на русском языке или на одном из языков программирования алгоритм подсчета произведения всех отрицательных элементов заданного целочисленного массива размером 30 элементов, в предположении, что в массиве есть хотя бы один отрицательный элемент.
Спрятать решениеРешение. Решение на естественном языке:
Объявим константу N, равную числу элементов массива (30), целочисленные переменные р для хранения текущего произведения отрицательных элементов и i для хранения индекса просматриваемого элемента. Ввод значений в массив описывать не требуется, так как он задан. Присвоим р значение единица. В цикле от первого (нулевого) до последнего (N или N - 1) значения индекса совершим следующие действия.
Сравним с нулем значение текущего элемента массива. В случае, если значение текущего элемента меньше нуля, умножим текущее значение переменной р на значение рассматриваемого элемента массива.
По завершении цикла выводим значение переменной р.
ПРОГРАММА НА ПАСКАЛЕ | ПРОГРАММАНА БЕЙСИКЕ | ПРОГРАММА НА СИ |
| const N=30; var a: array [1..N] of integer; p, i: integer; begin p := 1; for i := 1 to N do readln(a[i]); for i:= 1 to N do if a [i] < 0 then p : = p * a [ i ] ; writeln (p); end. | N=30 DIM A(N), Р, I AS INTEGER P = i FOR i TO N INPUT A(i) NEXT i FOR i=1 TO N IF A(I) < 0 THEN P = P * A (I) ENDIF NEXT i PRINT P END | void main(void) { const N=30; int array [N]; int p; p = 1; for (int i = 0; i< N; i++) scanf(array[i]); for (int i=0; i{ if (array [i]<0){ p= p * array[i]; } } printf ("%d", p); } |
Спрятать критерииКритерии проверки:| Критерии оценивания выполнения задания | Баллы |
|---|
| Предложен правильный алгоритм, выдающий верное значение. Допускается запись алгоритма на другом языке, использующая аналогичные переменные. В случае, если язык программирования использует типизированные переменные, описания переменных должны быть аналогичны описаниям переменных на естественном языке. Использование нетипизированных или необъявленных переменных возможно только в случае, если это допускается языком программирования, при этом количество переменных и их идентификаторы должны соответствовать условию задачи. В алгоритме, записанном на языке программирования, допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора программы. | 2 |
| В любом варианте решения может присутствовать не более одной ошибки из числа следующих: 1) не инициализируется или неверно инициализируется переменная; 2) при выводе ответа не учитывается, что требуемого числа в массиве может не быть; 3) отсутствует вывод ответа; 4) в сравнении перепутан знак; 5) неверно осуществляется проверка делимости; 6) на делимость проверяется не значение элемента, а его индекс; 7) в сложном условии вместо логической операции «И» используется логическая операция «ИЛИ»; 8) используется переменная, не объявленная в разделе описания переменных; 9) не указано или неверно указано условие завершения цикла; 10) индексная переменная в цикле не меняется (например, в цикле while) или меняется неверно; 11) неверно расставлены операторные скобки | 1 |
| Ошибок, перечисленных в п. 1–11, две или больше, или алгоритм сформулирован неверно | 0 |
| Максимальный балл | 2 |