Главная / Задания по информатике / Группа C / 25 (в 2015 - 25, в 2014 - С2) / 25 (в 2015 - 25, в 2014 - С2) Решение и комментарии

25 (в 2015 - 25, в 2014 - С2) Решение и комментарии

Содержание верного ответа и указания по оцениванию

(допускаются иные формулировки ответа, не искажающие его смысла)

Паскаль

k:=0;

for i:=1 to N do begin

if (10<=a[i]) and (a[i]<=99) and

((a[i] mod 10 = 9) or (a[i] div 10=9)) then k:=k+1;

end;

writeln(k);

Бейсик

K = 0

FOR I = 1 TO N

IF 10 <=A(I) AND A(i)<=99 AND (A(I) MOD 10=9 OR A(I)\10=9) THEN

K = K + 1

END IF

NEXT I

PRINT K

Си

k=0;

for (i=0; i<N; i++) {

if (10<=a[i] && a[i]<=99 && (a[i]%10==9 || a[i]/10==9)) ++k;

}

printf("% d", k);

Алгоритмический язык

k:=0

нц для i от 1 до N

если 10<=a[i]<=99 и (mod(a[i],10)=9 или div(a[i],10)=9)

то k:=k+1

все

кц

вывод k

Естественный язык

Записываем в переменную k начальное значение, равное 0. В цикле от первого элемента до тридцатого проверяем каждый элемент. Если его значение попадает в диапазон от 10 до 99 и при этом остаток от деления элемента на 10 или целая часть частного от этого деления равны 9, то увеличиваем значение k на 1. Переходим к следующему элементу массива. После завершения цикла выводим значение переменной k.

Указания по оцениванию

Оценка 2 балла:

Предложен правильный алгоритм, выдающий верное значение.

Допускается запись алгоритма на другом языке, использующая аналогичные переменные. В случае если язык программирования использует типизированные переменные, описания переменных должны быть аналогичны описаниям переменных на естественном языке. Использование нетипизированных или необъявленных переменных возможно только в случае, если это допускается языком программирования, при этом количество переменных и их идентификаторы должны соответствовать условию задачи. В алгоритме, записанном на языке программирования, допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора программы

При определении двузначности допускается начинать диапазон не с 10, а с 19, так как в интервале от 10 до 18 нет чисел, содержащих 9. Допускается использование других правильных способов определения двузначности числа (например, с помощью деления на 10 и/или 100).

Оценка 1 балл:

В любом варианте решения может присутствовать не более одной ошибки из числа следующих:

1)      Не инициализируется или неверно инициализируется переменная k.

2)      Неверно осуществляется проверка двузначности

3)      Неверно проверяется наличие в числе цифры 9.

4)      Двузначность и наличие 9 проверяется правильно, но комбинированное условие неверно (например, перепутаны операции И и ИЛИ, неверно расставлены скобки в логическом выражении).

5)      Вместо значения элемента проверяется его индекс.

6)      Неверно осуществляется подсчет количества элементов (например, вместо количества считается сумма)

7)      Отсутствует вывод ответа.

8)      Используется переменная, не объявленная в разделе описания переменных.

9)      Не указано или неверно указано условие завершения цикла.

10)  Индексная переменная в цикле не меняется (например, в цикле while) или меняется неверно.

 

Оценка 0 баллов:

Ошибок, перечисленных в

 
 

2 Комментов

  1. editor:

    Нет не нарушили. Внутри цикла for находится только один оператор - оператор readln . А дальше нужно писать нужный алгоритм. В нем могут быть свои циклы. И какие-то операторы вне этих циклов.

  2. Максим:

    По условию задачи надо указать код на месте многоточия, а вы добавили код вне цикла for, т.е. нарушали условие задачи.

 
 

Что думаете?

 




 
 

 
 
Яндекс.Метрика