Задача №4919

Задания C2 по информатике с ответами

Поиск задачи:

Здесь представлено решение задачи по информатике. Если у вас возникли сложности в решении то вы можете воспользоваться ответами которые размещены на данной странице. Вы конечно можете не согласиться с ответами, но данная информация размещена с целью ознакомления. Списывать с ответов или решать самому выбирать вам. Данная задача по теме ЕГЭ
Решение задачи:

Уважаемые посетители сайта, если вы не согласны с той информацией которая представлена на данной странице или считаете ее не правильной, не стоит попросту тратить свое время на написание негативных высказываний, вы можете помочь друг другу, для этого присылайте в комментарии свое "правильное" решение и мы его скорее всего опубликуем.

Условие задачи:


Задания C2 по информатике
1. Дан целочисленный массив из 30 элементов. Элементы массива могут
принимать значения от –1000 до 1000. Опишите на русском языке или на одном
из языков программирования алгоритм, который позволяет подсчитать и вывести
среднее арифметическое положительных элементов массива. Если в массиве нет
положительных элементов, программа должна вывести сообщение
«положительных элементов нет». Исходные данные объявлены так, как показано
ниже. Запрещается использовать переменные, не описанные ниже, но
разрешается не использовать часть из них.
ПРОГРАММА
НА ПАСКАЛЕ
const
N=30;
var
a: array [1..N] of integer;
i, x, y: integer;
s: real;
begin
for i:=1 to N do readln(a[i]);

end.
ПРОГРАММА
НА БЕЙСИКЕ
N=30
DIM A(N) AS INTEGER
DIM I, X, Y AS INTEGER
DIM S AS SINGLE
FOR I = 1 TO N
INPUT A(I)
NEXT I

END
ПРОГРАММА
НА СИ
#include <stdio.h>
#define N 30
void main(void)
{int a[N];
int i, x, y;
float s;
for (i=0; i<N; i++)
scanf("%d", &a[i]);

}
Естественный язык Объявляем массив A из 30 элементов.
Объявляем целочисленные переменные I, X, Y.
Объявляем вещественную переменную S.
В цикле от 1 до 30 вводим элементы массива A с 1-го по
30-й.


В качестве ответа Вам необходимо привести фрагмент программы (или описание
алгоритма на естественном языке), который должен находиться на месте
многоточия. Вы можете записать решение также на другом языке
программирования (укажите название и используемую версию языка
программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом
случае вы должны использовать переменные, аналогичные переменным,
используемым в алгоритме, записанном на естественном языке, с учетом
синтаксиса и особенностей используемого вами языка программирования.
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
ПРОГРАММА
НА ПАСКАЛЕ
x:=0;
y:=0;
for i:=1 to N do
if a[i]>0 then begin
x:=x+a[i];
y:=y+1;
end;
if y>0 then
writeln(x/y);
else
writeln('положительных элементов нет');
ПРОГРАММА
НА БЕЙСИКЕ
X = 0
Y = 0
FOR I = 1 TO N
IF A(I) > 0 THEN
X = X + A(I)
Y = Y + 1
ENDIF
NEXT I
IF Y>0 THEN
PRINT X/Y
ELSE
PRINT "положительных элементов нет"
ENDIF
ПРОГРАММА
НА СИ
x=0;
y=0;
for (i=0; i<N; i++)
if (a[i]>0) {
x+=a[i];
y++;
}
if (y>0)

printf("%f", (float)x/y);
else
printf("положительных элементов нет");
Естественный язык Записываем в переменные X и Y начальное значение,
равное нулю. В цикле от первого элемента до
тридцатого сравниваем значение элемента исходного
массива с нулем. Если элемент массива больше нуля,
то увеличиваем счетчик суммы X на значение
текущего элемента массива, а счетчик количества Y на
1. Переходим к следующему элементу. После цикла
проверяем значение счетчика Y. Если Y>0, то выводим
частное от деления X на Y, иначе выводим сообщение
«положительных элементов нет».
Указания по оцениванию Балл
Предложен правильный алгоритм, выдающий верное значение. Допускается
запись алгоритма на другом языке, использующая аналогичные переменные.
В случае, если язык программирования использует типизированные
переменные, описания переменных должны быть аналогичны описаниям
переменных на естественном языке. Использование нетипизированных или
необъявленных переменных возможно только в случае, если это допускается
языком программирования, при этом количество переменных и их
идентификаторы должны соответствовать условию задачи. В алгоритме,
записанном на языке программирования, допускается наличие отдельных
синтаксических ошибок, не искажающих замысла автора программы.
2
В любом варианте решения может присутствовать не более одной
ошибки из числа следующих:
1. Значения переменных X и Y находятся верно, однако среднее
арифметическое считается неверно (например, производится действие X/N
или неверно происходит преобразование типов при делении).
2. При сравнении с числом 0 используется операция >=, а не >. 3. Не
инициализируются или неверно инициализируются переменные X и Y.
4. Отсутствует вывод ответа.
5. Используется переменная, не объявленная в разделе описания
переменных.
6. Не указано или неверно указано условие завершения цикла.
7. Индексная переменная в цикле не меняется (например, в цикле while).
8. Неверно расставлены операторные скобки.
Программа неверно работает в случае, когда положительных элементов нет.
1
Ошибок, перечисленных в п. 1-9, две или больше, или алгоритм
сформулирован неверно.
0
Максимальный балл 2

2. Дан целочисленный массив из 30 элементов. Элементы массива могут принимать
значения от –1000 до 1000. Опишите на русском языке или на одном из языков
программирования алгоритм, который позволяет подсчитать и вывести среднее
арифметическое отрицательных элементов массива. Если в массиве нет
отрицательных элементов, программа должна вывести сообщение «отрицательных
элементов нет». Исходные данные объявлены так, как показано ниже. Запрещается
использовать переменные, не описанные ниже, но разрешается не использовать
часть из них.
ПРОГРАММА
НА ПАСКАЛЕ
const
N=30;
var
a: array [1..N] of integer;
i, x, y: integer;
s: real;
begin
for i:=1 to N do readln(a[i]);

end.
ПРОГРАММА
НА БЕЙСИКЕ
N=30
DIM A(N) AS INTEGER
DIM I, X, Y AS INTEGER
DIM S AS SINGLE
FOR I = 1 TO N
INPUT A(I)
NEXT I

END
ПРОГРАММА
НА СИ
#include <stdio.h>
#define N 30
void main(void)
{int a[N];
int i, x, y;
float s;
for (i=0; i<N; i++)
scanf("%d", &a[i]);

}
Естественный язык Объявляем массив A из 30 элементов.
Объявляем целочисленные переменные I, X, Y.
Объявляем вещественную переменную S.
В цикле от 1 до 30 вводим элементы массива A с 1-го
по 30- й.


В качестве ответа Вам необходимо привести фрагмент программы (или описание
алгоритма на естественном языке), который должен находиться на месте
многоточия. Вы можете записать решение также на другом языке
программирования (укажите название и используемую версию языка
программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом
случае вы должны использовать переменные, аналогичные переменным,
используемым в алгоритме, записанном на естественном языке, с учетом
синтаксиса и особенностей используемого вами языка программирования.
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
ПРОГРАММА
НА ПАСКАЛЕ
x:=0;
y:=0;
for i:=1 to N do
if a[i]<0 then begin
x:=x+a[i];
y:=y+1;
end;
if y>0 then
writeln(x/y);
else
writeln('отрицательных
элементов нет');
ПРОГРАММА
НА БЕЙСИКЕ
X = 0
Y = 0
FOR I = 1 TO N
IF A(I) < 0 THEN
X = X + A(I)
Y = Y + 1
ENDIF
NEXT I
IF Y>0 THEN
PRINT X/Y
ELSE
PRINT "отрицательных элементов
нет"
ENDIF
ПРОГРАММА
НА СИ
x=0;
y=0;
for (i=0; i<N; i++)
if (a[i]<0) {
x+=a[i];
y++;
}

if (y>0)
printf("%f", (float)
x/y);
else
printf("отрицательных
элементов нет");
Естественный язык Записываем в переменные X и Y начальное значение, равное
нулю. В цикле от первого элемента до тридцатого сравниваем
значение элемента исходного массива с нулем. Если элемент
массива меньше нуля, то увеличиваем счетчик суммы X на
значение текущего элемента массива, а счетчик количества Y
на
1. Переходим к следующему элементу. После цикла
проверяем значение счетчика Y. Если Y>0, то выводим
частное от деления X на Y, иначе выводим сообщение
«отрицательных элементов нет».
Указания по оцениванию Балл
Предложен правильный алгоритм, выдающий верное значение. Допускается
запись алгоритма на другом языке, использующая аналогичные переменные. В
случае, если язык программирования использует типизированные переменные,
описания переменных должны быть аналогичны описаниям переменных на
естественном языке. Использование нетипизированных или необъявленных
переменных возможно только в случае, если это допускается языком
программирования, при этом количество переменных и их идентификаторы
должны соответствовать условию задачи. В алгоритме, записанном на языке
программирования, допускается наличие отдельных синтаксических ошибок, не
искажающих замысла автора программы.
2
В любом варианте решения может присутствовать не более одной
ошибки из числа следующих:
1. Значения переменных X и Y находятся верно, однако среднее арифметическое
считается неверно (например, производится действие X/N или неверно происходит
преобразование типов при делении).
2. При сравнении с числом 0 используется операция <=, а не <.
3. Не инициализируются или неверно инициализируются переменные X и Y.
4. Отсутствует вывод ответа.
5. Используется переменная, не объявленная в разделе описания переменных.
6. Не указано или неверно указано условие завершения цикла.
7. Индексная переменная в цикле не меняется (например, в цикле while).
8. Неверно расставлены операторные скобки.
9. Программа неверно работает в случае, когда отрицательных элементов нет.
1
Ошибок, перечисленных в п. 1-9, две или больше, или алгоритм сформулирован
неверно.
0
Максимальный балл 2

3. Дан целочисленный массив из 30 элементов. Элементы массива могут
принимать целые значения от –30 до +30 – значение среднесуточной температуры
для каждого из 30 дней некоторого месяца. Опишите на русском языке или на
одном из языков программирования алгоритм, который позволяет найти и
вывести количество дней этого месяца, температура для которых была выше, чем
температура в предыдущий день этого же месяца. Запрещается использовать
переменные, не описанные ниже, но разрешается не использовать часть из них.
ПРОГРАММА
НА ПАСКАЛЕ
Const N=30;
var
a: array [1..N] of integer;
i, j: integer;
begin
for i:=1 to N do readln(a[i]);

end.
ПРОГРАММА
НА БЕЙСИКЕ
N=30
DIM A(N) AS INTEGER
DIM I, J AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I

END
ПРОГРАММА
НА СИ
#include <stdio.h>
#define N 30
void main(void)
{int a[N];
int i, j;
for (i=0; i<N; i++)
scanf("%d", &a[i]);

}
Естественный язык Объявляем массив A из 30
элементов. Объявляем
целочисленные
переменные I, J.
В цикле от 1 до 30 вводим
элементы массива A с 1-го
по 30-й.


В качестве ответа Вам необходимо привести фрагмент программы (или описание
алгоритма на естественном языке), который должен находиться на месте
многоточия. Вы можете записать решение также на другом языке
программирования (укажите название и используемую версию языка
программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом
случае вы должны использовать те же самые исходные данные и переменные,
какие были предложены в условии (например, в образце, записанном на
естественном языке).
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его
смысла)
ПРОГРАММА
НА ПАСКАЛЕ
j:=0;
for i:=2 to N do
if A[i]>A[i-1] then j:=j+1;
WriteLn(j);
ПРОГРАММА
НА БЕЙСИКЕ
J=0
FOR I = 2 to N
IF A(I)>A(I-1) THEN
J=J+1
NEXT I
PRINT J
ПРОГРАММА
НА СИ
j=0;
for(i=1;i<N;i++)
if(a[i]>a[i-1])
j=j+1;
printf("%d", j);
Естественный язык Записываем в переменную J начальное значение,
равное 0. В цикле по переменной I от значения
2 до значения 30 сравниваем значения
элементов массива A*i+ и A [i-1]. Если A[i]>A[i-1], то
увеличиваем значение переменной J на 1. После
завершения цикла выводим значение
переменной J.

Указания по оцениванию Балл
Предложен правильный алгоритм, выдающий верное значение.
Допускается запись алгоритма на другом языке, использующая
аналогичные переменные. В случае, если язык программирования
использует типизированные переменные, описания переменных
должны быть аналогичны описаниям переменных на естественном
языке. Использование нетипизированных или необъявленных
переменных возможно только в случае, если это допускается языком
программирования, при этом количество переменных и их
идентификаторы должны соответствовать условию задачи. В
алгоритме, записанном на языке программирования, допускается
наличие отдельных синтаксических ошибок, не искажающих замысла
автора программы.
2
В любом варианте решения может присутствовать не более одной
ошибки из числа следующих:
1. Не инициализируется или неверно инициализируется
переменная J.
2. В сравнении элементов массива a*i+ и a*i-1+ вместо знака
«больше» используется знак «больше или равно».
3. Отсутствует вывод ответа
4. Используется переменная, не объявленная в разделе описания
переменных.
5. Не указано или неверно указано условие завершения цикла
(например, цикл начинается со значения 1, а не 2, вследствие чего
происходит выход за границы массива)
6. Индексная переменная в цикле не меняется (например, в цикле
while) или меняется неверно.
7. Неверно расставлены операторные скобки.
1
Ошибок, перечисленных в п. 1–7, две или больше, или алгоритм
сформулирован неверно.
0
Максимальный балл 2

4. Дан целочисленный массив из 30 элементов. Элементы массива могут
принимать целые значения от 0 до 100 – баллы учащихся выпускного класса за
итоговый тест по информатике. Учащийся получает за работу оценку «хорошо»,
если он набрал от 70 до 89 баллов (включительно).
Опишите на русском языке или на одном из языков программирования алгоритм,
который позволяет определить и вывести на экран количество учащихся,
получивших оценку «хорошо».
ПРОГРАММА
НА ПАСКАЛЕ
Const N=30;
var
a: array [1..N] of integer;
i, s: integer;
begin
for i:=1 to N do readln(a[i]);

end.
ПРОГРАММА
НА БЕЙСИКЕ
N=30
DIM A(N) AS INTEGER
DIM I, S AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I

END
ПРОГРАММА
НА СИ
#include <stdio.h>
#define N 30
void main(void)
{int a[N];
int i, S;
for (i=0; i<N; i++)
scanf("%d", &a[i]);

}
Естественный язык Объявляем массив A из 30
элементов. Объявляем
целочисленные переменные I,
S. В цикле от 1 до 30 вводим
элементы массива A с 1-го по
30-й.


В качестве ответа Вам необходимо привести фрагмент программы (или описание
алгоритма на естественном языке), который должен находиться на месте
многоточия. Вы можете записать решение также на другом языке
программирования (укажите название и используемую версию языка
программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом
случае вы должны использовать те же самые исходные данные и переменные,
какие были предложены в условии (например, в образце, записанном на
естественном языке).
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
ПРОГРАММА
НА ПАСКАЛЕ
s:=0;
for i:=1 to N do
if (a[i]>=70) and (a[i]<=89)
then
s:=s+1;
writeln(s)
ПРОГРАММА
НА БЕЙСИКЕ
S=0
FOR I = 1 to N
IF A(I)>=70 AND A(i)<=89
THEN
S=S+1
ENDIF
NEXT I
PRINT S
ПРОГРАММА
НА СИ
for(i=0;i<N;i++)
if(a[i]>=70 && a[i]<=89)
s=s+1;
printf("%d",s);
Естественный язык Записываем в переменную S начальное значение,
равное 0. В цикле от первого элемента до тридцатого
сравниваем значение текущего элемента массива с
числами 70 и 89. Если значение текущего элемента
больше или равно 70 и меньше или равно 89,
то увеличиваем значение переменной S на 1. После
окончания цикла выводим значение S.

Указания по оцениванию Балл
Предложен правильный алгоритм, всегда выдающий верный ответ.
Допускается запись алгоритма на другом языке, использующая
аналогичные переменные. В случае если язык программирования
использует типизированные переменные, описания переменных должны
быть аналогичны описаниям переменных на естественном языке.
Использование нетипизированных или необъявленных переменных
возможно только в случае, если это допускается языком
программирования, при этом количество переменных и их
идентификаторы должны соответствовать условию задачи. В алгоритме,
записанном на языке программирования, допускается наличие
отдельных синтаксических ошибок, не искажающих замысла автора
программы.
2
В любом варианте решения может присутствовать не более одной
ошибки из числа следующих:
1) Не инициализируется или неверно инициализируется переменная S, I
2) В сравнении со значениями 70, 89 используется неверный знак
(например, «больше» вместо «больше или равно»).
3) Вместо логической операции AND используется OR.
4) Используется переменная, не объявленная в разделе описания
переменных.
5) Не указано или неверно указано условие завершения цикла
6) Индексная переменная в цикле не меняется (например, в цикле while)
или меняется неверно.
7) Неверно расставлены операторные скобки.
8) Отсутствует вывод ответа.
1
Ошибок, перечисленных в п. 1–8, две или больше, или алгоритм
сформулирован неверно.
0
Максимальный балл 2

5. Дан целочисленный массив из 30 элементов, все элементы которого –
неотрицательные числа, не превосходящие 10000. пишите на русском языке или
на одном из языков программирования алгоритм, который позволяет определить
и вывести на экран наибольшее трехзначное число, записанное в этом массиве.
Если в массиве нет трехзначных чисел, программа должна вывести сообщение
«Трехзначных чисел нет».
ПРОГРАММА
НА ПАСКАЛЕ
Const N=30;
var
a: array [1..N] of integer;
i, s: integer;
begin
for i:=1 to N do readln(a[i]);

end.
ПРОГРАММА
НА БЕЙСИКЕ
N=30
DIM A(N) AS INTEGER
DIM I, S AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I

END
ПРОГРАММА
НА СИ
#include <stdio.h>
#define N 30
void main(void)
{int a[N];
int i, S;
for (i=0; i<N; i++)
scanf("%d", &a[i]);

}
Естественный язык Объявляем массив A из 30
элементов. Объявляем
целочисленные переменные I,
S. В цикле от 1 до 30 вводим
элементы массива A с 1-го по
30-й.

В качестве ответа Вам необходимо привести фрагмент программы (или описание
алгоритма на естественном языке), который должен находиться на месте
многоточия. Вы можете записать решение также на другом языке

программирования (укажите название и используемую версию языка
программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом
случае вы должны использовать те же самые исходные данные и переменные,
какие были предложены в условии (например, в образце, записанном на
естественном языке).
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
ПРОГРАММА
НА ПАСКАЛЕ
s:=0;
for i:=1 to N do
if (a[i]>=70) and (a[i]<=89)
then
s:=s+1;
writeln(s)
ПРОГРАММА
НА БЕЙСИКЕ
S=0
FOR I = 1 to N
IF A(I)>=70 AND A(i)<=89
THEN
S=S+1
ENDIF
NEXT I
PRINT S
ПРОГРАММА
НА СИ
for(i=0;i<N;i++)
if(a[i]>=70 && a[i]<=89)
s=s+1;
printf("%d",s);
Естественный язык Записываем в переменную S начальное значение,
равное 0. В цикле от первого элемента до тридцатого
сравниваем значение текущего элемента массива с
числами 70 и 89. Если значение текущего элемента
больше или равно 70 и меньше или равно 89,
то увеличиваем значение переменной S на 1. После
окончания цикла выводим значение S.

Указания по оцениванию Балл
Предложен правильный алгоритм, всегда выдающий верный ответ.
Допускается запись алгоритма на другом языке, использующая
аналогичные переменные. В случае если язык программирования
использует типизированные переменные, описания переменных должны
быть аналогичны описаниям переменных на естественном языке.
Использование нетипизированных или необъявленных переменных
возможно только в случае, если это допускается языком
программирования, при этом количество переменных и их
идентификаторы должны соответствовать условию задачи. В алгоритме,
записанном на языке программирования, допускается наличие
отдельных синтаксических ошибок, не искажающих замысла автора
программы
2
В любом варианте решения может присутствовать не более одной ошибки
из
числа следующих:
1) Не инициализируется или неверно инициализируется переменная S, I
2) В сравнении со значениями 70, 89 используется неверный знак
(например,
«больше» вместо «больше или равно»).
3) Вместо логической операции AND используется OR.
4) Используется переменная, не объявленная в разделе описания
переменных.
5) Не указано или неверно указано условие завершения цикла
6) Индексная переменная в цикле не меняется (например, в цикле while)
или
меняется неверно.
7) Неверно расставлены операторные скобки.
8) Отсутствует вывод ответа.
1
Ошибок, перечисленных в п. 1–8, две или больше, или алгоритм
сформулирован неверно.
0
Максимальный балл 2

6. Дан целочисленный массив A из 30 элементов. Опишите на русском языке или
на одном из языков программирования алгоритм, который осуществляет
циклический сдвиг элементов массива влево, то есть элементу A*i+ присваивается
значение, которое было записано в элементе A*i+1+ до сдвига, а последнему
элементу массива присваивается значение, которое было записано в первом
элементе до сдвига.
Исходные данные объявлены так, как показано ниже. Запрещается использовать
переменные, не описанные ниже, но разрешается не использовать часть из них.
ПРОГРАММА
НА ПАСКАЛЕ
Const N=30;
var
a: array [1..N] of integer;
i, j, max: integer;
begin
for i:=1 to N do readln(a[i]);

end.
ПРОГРАММА
НА БЕЙСИКЕ
N=30
DIM A(N) AS INTEGER
DIM I, J, MAX AS
INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I

END
ПРОГРАММА
НА СИ
#include <stdio.h>
#define N 30
void main(void)
{int a[N];
int i, j, max;
for (i=0; i<N; i++)
scanf("%d", &a[i]);

}
Естественный язык Объявляем массив A из 30
элементов. Объявляем
целочисленные переменные
I, J, MAX. В цикле от 1 до 30
вводим элементы массива A
с 1-го по 30-й.


В качестве ответа Вам необходимо привести фрагмент программы (или описание
алгоритма на естественном языке), который должен находиться на месте
многоточия. Вы можете записать решение также на другом языке
программирования (укажите название и используемую версию языка
программирования, например, Borland Pascal 7.0) или в виде блок-схемы.
В этом случае вы должны использовать те же самые исходные данные и
переменные, какие были предложены в условии (например, в образце, записанном
на естественном языке).
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
ПРОГРАММА
НА ПАСКАЛЕ
max:=99;
for i:=1 to N do
if (a[i]<1000) and (a[i]>max)
then
max:=a[i];
if max=99 then writeln
('Трехзначных чисел нет') else
writeln(max)
ПРОГРАММА
НА БЕЙСИКЕ
MAX=99
FOR I = 1 to N
IF A(i)<1000 AND A(i)>MAX THEN
MAX=A(i)
ENDIF
NEXT I
IF MAX=99 THEN
PRINT "Трехзначных чисел нет"
ELSE
PRINT MAX
ENDIF
ПРОГРАММА
НА СИ
max=99;
for(i=0;i<N;i++)
if(a[i]<1000 && a[i]>max)
max=a[i];
if(max==99)
printf("Трехзначных чисел
нет");
else
printf("%d",max);
Естественный язык В переменную MAX запишем значение, равное 99. В цикле от
первого элемента до тридцатого проверяем значение
текущего элемента массива. Если текущий элемент массива
больше чем MAX и меньше 1000, то в переменную MAХ
записываем значение текущего элемента массива. После
окончания цикла выводим значение переменной MAX, если
это значение больше 99, иначе выводим сообщение
«Трехзначных чисел нет».

Указания по оцениванию Балл
Предложен правильный алгоритм, всегда выдающий верный ответ.
Допускается запись алгоритма на другом языке, использующая
аналогичные переменные. В случае если язык программирования
использует типизированные переменные, описания переменных должны
быть аналогичны описаниям переменных на естественном языке.
Использование нетипизированных или необъявленных переменных
возможно только в случае, если это допускается языком
программирования, при этом количество переменных и их
идентификаторы должны соответствовать условию задачи. В алгоритме,
записанном на языке программирования, допускается наличие отдельных
синтаксических ошибок, не искажающих замысла автора программы.
Текст сообщений, выводимых программой, может отличаться от
указанных в условии, если это не искажает их смысла.
2
В любом варианте решения может присутствовать не более одной ошибки
из числа следующих:
1) Не инициализируется или неверно инициализируется переменная
MAX.
2) Используется переменная, не объявленная в разделе описания
переменных.
3) Не указано или неверно указано условие завершения цикла.
4) Индексная переменная в цикле не меняется (например, в цикле
while) или меняется неверно.
5) Неверно расставлены операторные скобки.
5) В сравнении с числом 100 используется операция «>» вместо «>=».
7) В сравнении с числом 1000 используется операция «<=» вместо
«<».
8) Отсутствует вывод ответа.
1
Ошибок, перечисленных в п. 1–8, две или больше, или алгоритм
сформулирован неверно.
0
Максимальный балл 2

7. Дан целочисленный массив из 30 элементов. Элементы массива могут
принимать целые значения от 0 до 1000. Опишите на русском языке или на одном
из языков программирования алгоритм, позволяющий найти и вывести сумму
элементов массива, кратных тринадцати. Гарантируется, что в исходном массиве
есть хотя бы один элемент, значение которого делится на тринадцать. Исходные
данные объявлены так, как показано ниже. Запрещается использовать
переменные, не описанные ниже, но разрешается не использовать часть из них.
ПРОГРАММА
НА ПАСКАЛЕ
const
N=30;
var
a: array [1..N] of integer;
i, j, s: integer;
begin
for I := 1 to N do
readln(a[i]);

end.
ПРОГРАММА
НА БЕЙСИКЕ
N=30
DIM A(N) AS INTEGER
DIM I, J, S AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I

END
ПРОГРАММА
НА СИ
#include <stdio.h>
#define N 30
void main(void){
int a[N];
int i, j, s;
for (i=0; i<N; i++)
scanf("%d", &a[i]);

}
Естественный язык Объявляем массив A из 30 элементов.
Объявляем целочисленные переменные I, J, S.
В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.

Алгоритмический язык алг
нач
цел N=30
целтаб a*1:N+
цел i, j, s
нц для i от 1 до N
ввод a*i+
кц
...
кон

В качестве ответа Вам необходимо привести фрагмент программы (или описание
алгоритма на естественном языке), который должен находиться на месте
многоточия. Вы можете записать решение также на другом языке
программирования (укажите название и используемую версию языка
программирования, например, Free Pascal 2.4) или в виде блок-схемы. В этом случае
вы должны использовать те же самые исходные данные и переменные, какие были
предложены в условии (например, в образце, записанном на естественном языке).
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
ПРОГРАММА
НА ПАСКАЛЕ
s:=0;
for i:=1 to N do
if (a[i] mod 13=0) then
s:=s+a[i];
writeln(s);
ПРОГРАММА
НА БЕЙСИКЕ
S = 0
FOR I = 1 TO N
IF A(I) MOD 13=0 THEN
S = S + A(I)
ENDIF
NEXT I
PRINT S
ПРОГРАММА
НА СИ
s=0;
for (i=0; i<N; i++)
if (a[i]%13=0)
s+=a[i];
printf("%d", s);
Естественный язык Записываем в переменную S начальное значение, равное
0. В цикле от первого элемента до тридцатого находим
остаток от деления элемента исходного массива на
тринадцать. Если остаток от деления на тринадцать равен
нулю, то считаем сумму текущего элемента массива и
значения переменной S. Результат сложения сохраняем в
переменную S. Переходим к следующему элементу
массива. После завершения цикла выводим значение
переменной S.
Алгоритмический язык s:=0
нц для i от 1 до N
если mod(a[i],13)=0
то
s:=s+a[i]
все
кц
вывод s

Указания по оцениванию Балл
Предложен правильный алгоритм, выдающий верное значение.
Допускается запись алгоритма на другом языке, использующая
аналогичные переменные. В случае если язык программирования
использует типизированные переменные, описания переменных
должны быть аналогичны описаниям переменных на естественном
языке. Использование нетипизированных или необъявленных
переменных возможно только в случае, если это допускается языком
программирования, при этом количество переменных и их
идентификаторы должны соответствовать условию задачи. В
алгоритме, записанном на языке программирования, допускается
наличие отдельных синтаксических ошибок, не искажающих
замысла автора программы.
2
В любом варианте решения может присутствовать не более одной
ошибки из числа следующих:
1) Не инициализируется или неверно инициализируется
переменная S.
2) Неверно осуществляется проверка на делимость на тринадцать.
3) На делимость на 13 проверяется не значение элемента, а его
индекс.
4) Неверно осуществляется накопление суммы в цикле
(например, s:=a*i+)
5) Отсутствует вывод ответа.
6) Используется переменная, не объявленная в разделе описания
переменных.
7) Не указано или неверно указано условие завершения цикла.
8) Индексная переменная в цикле не меняется (например, в цикле
while) или меняется неверно.
Неверно расставлены операторные скобки.
1
Ошибок, перечисленных в п. 1-9, две или больше, или алгоритм
сформулирован неверно.
0
Максимальный балл 2

8. Дан целочисленный массив из 30 элементов. Элементы массива могут
принимать целые значения от 0 до 1000. Опишите на русском языке или на
одном из языков программирования алгоритм, позволяющий найти и
вывести сумму элементов массива, кратных семнадцати. Гарантируется, что
в исходном массиве есть хотя бы один элемент, значение которого делится
на семнадцать.
Исходные данные объявлены так, как показано ниже. Запрещается
использовать переменные, не описанные ниже, но разрешается не
ПРОГРАММА
НА ПАСКАЛЕ
const
N=30;
var
a: array [1..N] of integer;
i, j, s: integer;
begin
for I := 1 to N do
readln(a[i]);

end.
ПРОГРАММА
НА БЕЙСИКЕ
N=30
DIM A(N) AS INTEGER
DIM I, J, S AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I

END
ПРОГРАММА
НА СИ
#include <stdio.h>
#define N 30
void main(void){
int a[N];
int i, j, s;
for (i=0; i<N; i++)
scanf("%d", &a[i]);

}
Естественный язык Объявляем массив A из 30 элементов.
Объявляем целочисленные переменные I, J, S.
В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.

Алгоритмический язык алг
нач
цел N=30
целтаб a*1:N+
цел i, j, s
нц для i от 1 до N
ввод a*i+
кц
...
кон

В качестве ответа Вам необходимо привести фрагмент программы (или описание
алгоритма на естественном языке), который должен находиться на месте
многоточия. Вы можете записать решение также на другом языке
программирования (укажите название и используемую версию языка
программирования, например, Free Pascal 2.4) или в виде блок-схемы. В этом
случае вы должны использовать те же самые исходные данные и переменные,
какие были предложены в условии (например, в образце, записанном на
естественном языке).
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
ПРОГРАММА
НА ПАСКАЛЕ
s:=0;
for i:=1 to N do
if (a[i] mod 17=0) then
s:=s+a[i];
writeln(s);
ПРОГРАММА
НА БЕЙСИКЕ
S = 0
FOR I = 1 TO N
IF A(I) MOD 17=0 THEN
S = S + A(I)
ENDIF
NEXT I
PRINT S
ПРОГРАММА
НА СИ
s=0;
for (i=0; i<N; i++)
if (a[i]%17=0)
s+=a[i];
printf("%d", s);
Естественный язык Записываем в переменную S начальное значение, равное
0. В цикле от первого элемента до тридцатого находим
остаток от деления элемента
исходного массива на семнадцать. Если остаток от
деления на семнадцать равен нулю, то считаем сумму
текущего элемента массива и значения переменной S.
Результат сложения сохраняем в переменную S.
Переходим к следующему элементу массива. После
завершения цикла выводим значение переменной S.
Алгоритмический язык s:=0
нц для i от 1 до N
если mod(a[i],17)=0
то
s:=s+a[i]
все
кц
вывод s

Указания по оцениванию Балл
Предложен правильный алгоритм, выдающий верное значение.
Допускается запись алгоритма на другом языке, использующая
аналогичные переменные. В случае если язык программирования
использует типизированные переменные, описания переменных
должны быть аналогичны описаниям переменных на естественном
языке. Использование нетипизированных или необъявленных
переменных возможно только в случае, если это допускается языком
программирования, при этом количество переменных и их
идентификаторы должны соответствовать условию задачи. В
алгоритме, записанном на языке программирования, допускается
наличие отдельных синтаксических ошибок, не искажающих
замысла автора программы.
2
В любом варианте решения может присутствовать не более одной
ошибки из числа следующих:
1) Не инициализируется или неверно инициализируется
переменная S.
2) Неверно осуществляется проверка на делимость на семнадцать.
3) На делимость на 17 проверяется не значение элемента, а его
индекс.
4) Неверно осуществляется накопление суммы в цикле
(например, s:=a*i+)
5) Отсутствует вывод ответа.
6) Используется переменная, не объявленная в разделе описания
переменных.
7) Не указано или неверно указано условие завершения цикла.
8) Индексная переменная в цикле не меняется (например, в цикле
while) или меняется неверно.
Неверно расставлены операторные скобки.
1
Ошибок, перечисленных в п. 1-9, две или больше, или алгоритм
сформулирован неверно.
0
Максимальный балл 2

9. Дан целочисленный массив из 30 элементов. Элементы массива могут
принимать целые значения от 0 до 1000. Опишите на русском языке или на одном
из языков программирования алгоритм, позволяющий найти и вывести сумму
элементов массива, не кратных пятнадцати. Гарантируется, что в исходном
массиве есть хотя бы один элемент, значение которого не делится на пятнадцать.
Исходные данные объявлены так, как показано ниже. Запрещается использовать
переменные, не описанные ниже, но разрешается не использовать часть из них.
ПРОГРАММА
НА ПАСКАЛЕ
const
N=30;
var
a: array [1..N] of integer;
i, j, s: integer;
begin
for i:=1 to N do
readln(a[i]);

end.
ПРОГРАММА
НА БЕЙСИКЕ
N=30
DIM A(N) AS INTEGER
DIM I, J, S AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I

END
ПРОГРАММА
НА СИ
#include <stdio.h>
#define N 30
void main(void){
int a[N];
int i, j, s;
for (i=0; i<N; i++)
scanf("%d", &a[i]);

}
Естественный язык Объявляем массив A из 30 элементов.
Объявляем целочисленные переменные I, J, S.
В цикле от 1 до 30 вводим элементы массива A с 1-го
по 30-й.
В качестве ответа Вам необходимо привести фрагмент программы (или описание
алгоритма на естественном языке), который должен находиться на месте
многоточия. Вы можете записать решение также на другом языке 

программирования (укажите название и используемую версию языка
программирования, например, Free Pascal 2.4) или в виде блок-схемы. В этом случае
вы должны использовать те же самые исходные данные и переменные, какие были
предложены в условии (например, в образце, записанном на естественном языке).
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
ПРОГРАММА
НА ПАСКАЛЕ
s:=0;
for i:=1 to N do
if (a[i] mod 15<>0) then
s:=s+a[i];
writeln(s);
ПРОГРАММА
НА БЕЙСИКЕ
S = 0
FOR I = 1 TO N
IF A(I) MOD 15<>0 THEN
S = S + A(I)
ENDIF
NEXT I
PRINT S
ПРОГРАММА
НА СИ
s=0;
for (i=0; i<N; i++)
if (a[i]%15!=0)
s+=a[i];
printf("% d", s);
Естественный язык Записываем в переменную S начальное значение,
равное 0. В цикле от первого элемента до тридцатого
находим остаток от деления элемента
исходного массива на пятнадцать. Если остаток от
деления на пятнадцать не равен нулю, то считаем
сумму текущего элемента массива и значения
переменной S. Результат сложения сохраняем в
переменную S. Переходим к следующему элементу
массива.
После завершения цикла выводим значение
переменной S.

Указания по оцениванию Балл
Предложен правильный алгоритм, выдающий верное
значение.
Допускается запись алгоритма на другом языке, использующая
аналогичные переменные. В случае если язык программирования
использует типизированные переменные, описания переменных должны
быть аналогичны описаниям переменных на естественном языке.
Использование нетипизированных или необъявленных переменных
возможно только в случае, если это допускается языком
программирования, при этом количество переменных и их
идентификаторы должны соответствовать условию задачи. В алгоритме,
записанном на языке программирования, допускается наличие
отдельных синтаксических ошибок, не искажающих замысла автора
программы
2
В любом варианте решения может присутствовать не более
одной ошибки из числа следующих:
1) Не инициализируется или неверно инициализиру-ется
переменная S.
2) Неверно осуществляется проверка на делимость на
пятнадцать.
3) На делимость на пятнадцать проверяется не значение
элемента, а его индекс.
4) Неверно осуществляется накопление суммы в цикле
(например, s:=a[i];)
5) Отсутствует вывод ответа.
6) Используется переменная, не объявленная в разделе
описания переменных.
7) Не указано или неверно указано условие завер-шения цикла.
8) Индексная переменная в цикле не меняется (например, в
цикле while) или меняется неверно.
9) Неверно расставлены операторные скобки
1
Ошибок, перечисленных в п. 1-9, две или больше, или
алгоритм сформулирован неверно.
0
Максимальный балл 2


Категория: по информатике | Добавил: Админ (03.01.2016)
Просмотров: | Теги: ЕГЭ | Рейтинг: 0.0/0


Другие задачи:
Всего комментариев: 0
avatar