Русский язык (Определение главной информации текста)
Результаты теста
Затрачено времени:
10:03:45
Вопрос 25
Опишите на русском языке или одном из языков программирования алгоритм вычисления разности максимального среди элементов, имеющих чётные значения, и максимального среди элементов, имеющих нечётные значения, в заданном целочисленном массиве из 30 положительных элементов (в предположении, что в массиве есть и чётные, и нечётные элементы).
Пояснение
uses crt;
const N=30;
var a:array[1..N] of integer;
i,max1,max2:integer;
Begin
for i:=1 to n do
readln(a[i]);
max1:=0;
max2:=0;
for i:=1 to n do begin
if (a[i] mod 2=0) and (a[i]>=max1) then max1:=a[i];
if (a[i] mod 2<>0) and (a[i]>=max2) then max2:=a[i]
end;
write('Raznost= ',max1─max2);
End.
Ваш ответ:
Вы пропустили вопрос
Вопрос 25
Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от −1000 до 1000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести минимальное значение среди положительных элементов массива, не кратных 3. Если в исходном массиве нет элемента, значение которого положительно и не делится на 3, то вывести сообщение «Не найдено».
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
Бэйсик | Паскаль |
N = 20
DIM A(N) AS INTEGER
DIM I, J, MIN AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I
...
END
|
const
N = 20;
var
a: array [1..N] of integer;
i, j, min: integer;
begin
for i := 1 to N do
readln(a[i]);
...
end.
|
Си++ | Алгоритмический язык |
#include <iostream>
using namespacestd;
#define N 20
int main() {
int a[N];
int i, j, min;
for (i = 0; i < N; i++)
cin >> a[i];
...
}
|
алг
нач
цел N = 20
целтаб a[1:N]
цел i, j, min
нц для i от 1 до N
ввод a[i]
кц
...
кон
|
Естественный язык |
Объявляем массив А из 20 элементов.
Объявляем целочисленные переменные I, J, MIN.
В цикле от 1 до 20 вводим элементы массива А с 1-го по 20-й.
|
Python |
// допускается также использовать
// целочисленные переменные j, min
a = []
n = 20
for i in range(0, n):
a.append(int(input()))
|
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Пояснение
На языке Паскаль
min := 1001;
for i := 1 tо N do
if (a[i] > 0) and (a[i] mod 3<>0) and (a[i] < min) then min := a[i];
if min < 1001
then writeln(min)
else
writeln('He найдено');
На алгоритмическом языке
min 1001 нц для i от 1 до N
если а[i] > 0 и mod(a[i], 3)<>0 и a[i] < rain то
min := a[i]
все
кц
если min < 1001
то
вывод mm
иначе
вывод "Не найдено"
все
На языке Бейсик
MIN - 1001 FOR I = 1 ТО N
IF А(1)>0 AND А(I) MOD 3<>0 AND A(I)MIN - A(I) END IF NEXT I
IF MIN < 1001 THEN PRINT MIN
ELSE
PRINT "He найдено"
END IF
На языке Си
min = 1001;
for (i - 0; i < N; i++)
if (a[i]>0 && a[i]%3 != 0 && a[i]<min) min="a" [i];<p=""> if (min < 1001)
cout « min « endl;
else
cout << He найдено;
Ваш ответ:
Вы пропустили вопрос
Вопрос 25
Дан массив, содержащий 2018 положительных целых чисел, не превышающих 30 000. Необходимо найти в этом массиве количество элементов, которые кратны 7, а их десятичная запись заканчивается цифрой 3, и заменить каждый из таких элементов на это количество.
Напишите на одном из языков программирования программу для решения этой задачи. В качестве результата программа должна вывести изменённый массив, по одному элементу в строке. Например, для исходного массива из 5 элементов 14 13 63 203 49 программа должна вывести числа 14 13 2 2 49, по одному числу в строке.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.
Бейсик | Python |
CONST N=2018
DIM A(N) AS INTEGER
DIM I, K, M AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I
…
END
|
# кроме уже указанных
# допускается использование
# целочисленных переменных
# k, m
a = []
n = 2018
for i in range(0, n):
a.append(int(input()))
…
|
Паскаль | Алгоритмический язык |
const
N=2018;
var
a: array [1..N] of integer;
i, k, m: integer;
begin
for i:=1 to N do
readln(a[i]);
…
end.
|
алг
нач
цел N=2018
целтаб a[1:N]
цел i, k, m
нц для i от 1 до N
ввод a[i]
кц
…
кон
|
С++ |
#include <iostream>
using namespacestd;
const int N=2018;
int main(){
int a[N];
int i, k, m;
for (i=0; i<N; ++i)
cin >> a[i];
…
return 0;
}
|
Пояснение
Задача решается в два прохода: на первом проходе подсчитывается количество удовлетворяющих условиям элементов, на втором каждый такой элемент заменяется на найденное количество и выводится. Возможно решение в три прохода, когда на втором проходе выполняется только замена значений, а на третьем — вывод.
Пример правильной программы на языке Паскаль:
Паскаль |
k :=0;
for i:=1 to N do begin
if (a[i] mod 7 = 0) and (a[i] mod 10 = 3)
then k := k + 1;
end;
for i:=1 to N do begin
if (a[i] mod 7 = 0) and (a[i] mod 10 = 3)
then a[i] := k;
writeln(a[i])
end;
|
При использовании языка Python первый проход можно записать в одну строку, используя специальные средства этого языка.
Python |
k = sum (1 for m in a if m%7 == 0 and m%10 == 3)
for i in range(0, n):
if a[i]%7 == 0 and a[i]%10 == 3:
a[i] = k
print(a[i])
|
Использовать описанную выше возможность не обязательно, на языке Python допустимо описывать развёрнутый алгоритм решения, аналогичный приведённой выше программе на языке Паскаль.
Ваш ответ:
Вы пропустили вопрос
Вопрос 25
Дан целочисленный массив из 40 элементов. Элементы массива могут принимать произвольные значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит значение 3-го положительного элемента массива (если из массива вычеркнуть все неположительные элементы, этот элемент стоял бы в получившемся массиве на третьем месте). Если в массиве меньше, чем три положительных элемента, вывести об этом сообщение.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль | Бейсик |
const
N = 40;
var
a: array [l..N] of integer;
i, j, k: integer;
begin
for i:=1 to N do
readln(a[i]);
...
end.
|
N = 40
DIM A (N) AS INTEGER
DIM I, J, К AS INTEGER
FOR I = 1 TO N
INPUT A (I)
NEXT I
...
END
|
Си++ | Алгоритмический язык |
#include <iostream>
using namespacestd;
#define N 40
int main(void)
{int a [N] ;
int i, j, k;
for (i = 0; i < N; i + +)
cin >> a[i];
...
}
|
алг
нач
цел N = 40
целтаб а[1:N]
цел i, j, k
нц для i от 1 до N
ввод a[i]
кц
...
кон
|
Естественный язык |
Объявляем массив А из 40 элементов.
Объявляем целочисленные переменные I, J, К.
В цикле от 1 до 40 вводим элементы массива А с 1-го по 40-й.
...
|
Python |
//допускается также использо-
// вание целочисленных
// переменных j, k
a = []
N = 40 // менять значение N
нельзя
for i in range(0, n):
a.append(int(input()))
…
|
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Пояснение
ПАСКАЛЬ |
БЕЙСИК |
k : = 0;
for i : = 1 to N do
if a[i] > 0 then
begin
k := k + 1;
if k = 3 then
j=a[i];
end;
if k < 3 then
writeln('нет такого')
else
writeln(j);
|
К = 0
FOR I = 1 ТО N
IF А (I) > 0 THEN
К = К + 1
IF К = 3 THEN
J = A (I)
ENDIF
ENDIF
NEXT I
IF К < 3 THEN
PRINT "нет такого"
ELSE
PRINT J
ENDIF
|
СИ |
Алгоритмический язык |
k = 0;
for(i = 0; i < N; i++)
if (a[i] > 0)
{
k++;
if(k == 3)
j = a[i];
}
if(k < 3)
cout << "нет такого";
else
printf("%d", j) ;
|
k := 0
нц для i от 1 до N
если а[i] > 0
то
k := k + 1
если k = 3
то
j := a[i]
все
все
кц
если к < 3
то
вывод "нет такого"
иначе
вывод J
все
|
Естественный язык |
Записываем в переменную К начальное значение, равное нулю. В цикле перебираем все элементы с 1-го до 40-го. Если значение текущего элемента массива оказывается больше нуля, то: увеличиваем значение переменной К на 1; если значение переменной К стало равно 3, в переменную J записываем значение элемента a[I].
После окончания цикла: если значение переменной К оказалось меньше 3, то выводим сообщение, что искомого элемента в массиве нет. Иначе, выводим значение переменной J.
|
Ваш ответ:
Вы пропустили вопрос
Вопрос 25
Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от –10 000 до 10 000 включительно. Опишите
на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, в которых хотя бы одно число делится на 13. В данной задаче под парой подразумевается два подряд идущих элемента массива. Например, для массива из пяти элементов: 6; 2; 13; –26; 14 — ответ: 3.
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается
не использовать некоторые из описанных переменных.
Бейсик | Python |
CONST N AS INTEGER = 20
DIM A (1 TO N) AS INTEGER
DIM I AS INTEGER,
J AS INTEGER,
K AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I
...
END
|
# допускается также
# использовать две
# целочисленные переменные j и k
a = []
n = 20
for i in range(0, n):
a.append(int(input()))
...
|
Паскаль | Алгоритмический язык |
const
N = 20;
var
a: array [1..N] of integer;
i, j, k: integer;
begin
for i := 1 to N do
readln(a[i]);
...
end.
|
алг
нач
цел N = 20
целтаб a[1:N]
цел i, j, k
нц для i от 1 до N
ввод a[i]
кц
...
кон
|
Си | Естественный язык |
#include
#define N 20
int main() {
int a[N];
int i, j, k;
for (i = 0; i < N; i++)
cin >> a[i];
...
return 0;
}
|
Объявляем массив A из 20 элементов.
Объявляем целочисленные переменные I, J, K.
В цикле от 1 до 20 вводим элементы массива A с 1-го по 20-й.
…
|
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Пояснение
Паскаль |
k := 0;
for i := 1 to N-1 do
if (a[i] mod 13=0) or (a[i+1] mod 13=0) then
inc(k);
writeln(k);
|
Алгоритмический язык |
k := 0;
нц для i от 1 до N-1
если mod(a[i],13)=0 или mod(a[i+1],13)=0
то
k := k+1
все
кц
вывод k
|
Бейсик |
K = 0
FOR I = 1 TO N-1
IF (A(I) MOD 13 = 0) OR (A(I + 1) MOD 13 = 0) THEN
K = K+1
END IF
NEXT I
PRINT K
|
Python |
k = 0
for i in range(0, n – 1):
if (a[i] % 13 == 0 or a[i + 1] % 13 == 0):
k +=1
print(k)
|
Си |
k = 0;
for (i = 0; i < N-1; i++)
if (a[i]%13 == 0 || a[i+1]%13 == 0)
k++;
cout « k « endl;
|
Естественный язык |
Записываем в переменную K начальное значение, равное 0. В цикле от первого элемента до предпоследнего находим остаток от деления текущего и следующего элемента массива на 13. Если первый или второй из полученных остатков равен 0, увеличиваем переменную K на единицу. После завершения цикла выводим значение переменной K |
Ваш ответ:
Вы пропустили вопрос
Вопрос 25
Дан массив, содержащий 2019 положительных целых чисел, не превышающих 15 000. Необходимо найти сумму минимального чётного и минимального нечётного элементов (если в массиве нет чётных или нечётных элементов, соответствующий минимум считается равным нулю), увеличить все элементы, которые меньше этой суммы, на её значение и вывести изменённый массив. Например, для исходного массива из пяти элементов — 30, 99, 27, 90, 42 — программа должна вывести числа 87, 99, 84, 90, 99 (сумма минимумов равна 57, все элементы, меньшие 57, увеличены на 57).
Напишите на одном из языков программирования программу для решения этой задачи.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.
Бейсик | Python |
CONST N=2019
DIM A(N) AS INTEGER
DIM I, K, M AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I
…
END
|
# кроме уже указанных
# допускается использование
# целочисленных переменных
# k, m
a = []
n = 2019
for i in range(0, n):
a.append(int(input()))
…
|
Паскаль | Алгоритмический язык |
const
N=2019;
var
a: array [1..N] of integer;
i, k, m: integer;
begin
for i:=1 to N do
readln(a[i]);
…
end.
|
алг
нач
цел N=2019
целтаб a[1:N]
цел i, k, m
нц для i от 1 до N
ввод a[i]
кц
…
кон
|
С++ |
#include <iostream>
using namespacestd;
const int N=2019;
int main(){
int a[N];
int i, k, m;
for (i=0; i<N; ++i)
cin >> a[i];
…
return 0;
}
|
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.
Пояснение
Задача решается в два прохода: на первом проходе определяются минимумы, на втором производится корректировка и вывод элементов. Возможно решение в три прохода, когда на втором проходе выполняется только замена значений, а на третьем — вывод
Пример правильной программы на языке Паскаль:
Паскаль |
m := 15001; k:=15001;
for i:=1 to N do begin
if (a[i] mod 2 = 0) and (a[i] < m) then m := a[i];
if (a[i] mod 2 = 1) and (a[i] < k) then k := a[i];
end;
if m > 15000 then m := 0;
if k > 15000 then k := 0;
m := m + k;
for i:=1 to N do begin
if a[i] < m then a[i] := a[i] + m;
writeln(a[i])
end;
|
При использовании языка Python первый проход можно записать в одну строку, используя функцию min. При этом обязательно нужно использовать параметр default (доступен, начиная с версии Python 3.4) или другим способом обеспечить обработку ситуации, когда в массиве нет чётных или нечётных элементов
Python |
m = min((k for k in a if k%2 == 0), default = 0) +
min((k for k in a if k%2 == 1), default = 0)
for i in range(0,N):
if a[i] < m:
a[i] += m
print(a[i])
|
Использовать описанную выше возможность не обязательно, на языке Python допустимо описывать развёрнутый алгоритм решения, аналогичный приведённой выше программе на языке Паскаль.
Ваш ответ:
Вы пропустили вопрос
Вопрос 25
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от -10 000 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, в которых хотя бы одно число не делится на 7. В данной задаче под парой подразумевается два подряд идущих элемента массива. Например, для массива из пяти элементов: 13; 7; 26; -1; 9 — ответ: 4.
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
Бейсик | Паскаль |
CONST N AS INTEGER = 30
DIM A (1 TO N) AS INTEGER
DIM I AS INTEGER,
J AS INTEGER,
K AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I
...
END
|
const
N = 30;
var
a: array [1..N] of integer;
i, j, k: integer;
begin
for i := 1 to N do
readln(a[i]);
...
end.
|
Си | Алгоритмический язык |
#include <iostream>
using namespacestd;
#define N 30
int main() {
int a[N];
int i, j, k;
for (i = 0; i < N; i++)
cin >> a[i];
...
return 0;
}
|
алг
нач
цел N = 30
целтаб a[1:N]
цел i, j, k
нц для i от 1 до N
ввод a[i]
кц
...
кон
|
Python | Естественный язык |
# допускается также
# использовать две
# целочисленные переменные j и k
a = []
n = 30
for i in range(0, n):
a.append(int(input()))
...
|
Объявляем массив A из 30 элементов.
Объявляем целочисленные переменные I, J, K.
В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.
…
|
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Пояснение
Паскаль |
k := 0;
for i := 1 to N − 1 do
if (a[i] mod 7 <> 0) or (a[i+1] mod 7 <> 0) then
inc(k);
writeln(k);
|
Алгоритмический язык |
k := 0;
нц для i от 1 до N − 1
если mod(a[i], 7) <> 0 или mod(a[i+1],7) <> 0
то
k := k + 1
все
кц
вывод k
|
Бейсик |
K = 0
FOR I = 1 TO N − 1
IF (A(I) MOD 7 <> 0) OR (A(I + 1) MOD 7 <> 0) THEN
K = K + 1
END IF
NEXT I
PRINT K
|
Python |
k = 0
for i in range(0, n – 1):
if (a[i] % 7 != 0 or a[i + 1] % 7 != 0):
k += 1
print(k)
|
Си |
k = 0;
for (i = 0; i < N − 1; i++)
if (a[i]%7 != 0 || a[i+1]%7 != 0)
k++;
cout « k « endl;
|
Естественный язык |
Записываем в переменную K начальное значение, равное 0. В цикле от первого элемента до предпоследнего находим остаток от деления текущего и следующего элемента массива на 7. Если первый или второй из полученных остатков равен 0, увеличиваем переменную K на единицу.
После завершения цикла выводим значение переменной K
|
Ваш ответ:
Вы пропустили вопрос
Вопрос 25
Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 10000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм,
позволяющий найти и вывести максимальное значение среди трёхзначных элементов массива, не делящихся на 9. Если в исходном массиве нет элемента, значение которого является трёхзначным числом и при этом не кратно 9, то выведите сообщение «Не найдено».
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
Бейсик | Паскаль |
N = 20
DIM A(N) AS INTEGER
DIM I, J, MAX AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I
...
END
|
const
N = 20;
var
a: array [1..N] of integer;
i, j, max: integer;
begin
for i := 1 to N do
readln(a[i]);
...
end.
|
Си++ | Алгоритмический язык |
#include <iostream>
using namespacestd;
#define N 20
int main() {
int a[N];
int i, j, max;
for (i = 0; i < N; i++)
cin >> a[i];
...
}
|
алг
нач
цел N = 20
целтаб a[1:N]
цел i, j, max
нц для i от 1 до N
ввод a[i]
кц
...
кон
|
Eстественный язык |
Объявляем массив A из 20 элементов.
Объявляем целочисленные переменные I, J, MAX.
В цикле от 1 до 20 вводим элементы массива A с 1-го по 20-й.
...
|
Python |
# допускается также
# использовать две
# целочисленные переменные j, max
a = []
n = 20
for i in range(0, n):
a.append(int(input()))
...
|
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Пояснение
Содержание верного ответа
(допускаются иные формулировки ответа, не искажающие его смысла)
На языке Паскаль
max := 99;
for i := 1 to N do
if (a[i]>=100) and (a[i]<=998) and (a[i] mod 9<>0) and
(a[i]>max) then
max := a[i];
if max > 99 then writeln(max) else writeln(Не найдено);
На алгоритмическом языке
max := 99
нц для i от 1 до N
если a[i]>=100 и a[i]<=998 и mod(a[i],9)<>0 и a[i]>max
то
max := a[i]
все
кц
если max > 99
то
вывод max
иначе
вывод "Не найдено"
все
На языке Бейсик
MAX = 99
FOR I = 1 TO N
IF A(I)>=100 AND A(I)<=999 AND A(I) MOD 9<>0 AND A(I)>MAX THEN
MAX = A(I)
END IF
NEXT I
IF MAX > 99 THEN
PRINT MAX
ELSE
PRINT "Не найдено"
END IF
На языке Си
max = 99;
for (i = 0; i<n; i++)="" <p="">if (a[i]>99 && a[i]<999 && a[i]%9!=0 && a[i]>max)
max = a[i];
if (max>99)
cout << max;
else
cout << "Не найдено";
На естественном языке
Записываем в переменную MAX начальное значение, равное 99. В цикле от 1-ого элемента до 20-ого находим остаток от деления элемента исходного массива на 9. Если значение данного остатка не равно 0 и значение текущего элемента массива больше 99 и меньше 1000, то сравниваем значение текущего элемента массива со значением переменной MAX. Если текущий элемент массива больше MAX, то записываем в MAX значение этого элемента массива.
Переходим к следующему элементу.
После завершения цикла проверяем значение переменной MAX. Если оно больше 99, то выводим его, иначе выводим сообщение «Не найдено»
Ваш ответ:
Вы пропустили вопрос
Вопрос 25
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести произведение всех двузначных элементов массива с нечётной суммой цифр. Гарантируется, что в исходном массиве есть хотя бы один элемент, значение которого является двузначным числом, и при этом сумма его цифр нечётна. Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных. Исходные данные всегда подобраны так, что результат произведения не выходит за пределы объявленных типов данных.
Бейсик | Паскаль |
N = 30
DIM A(N) AS LONG
DIM I, J, P AS LONG
FOR I = 1 TO N
INPUT A(I)
NEXT I
...
END
|
const
N = 30;
var
a: array [1..N] of longint;
i, j, p: longint;
begin
for i := 1 to N do
readln(a[i]);
...
end.
|
Си++ | Алгоритмический язык |
#include <iostream>
using namespacestd;
#define N 30
int main() {
long a[N];
long i, j, p;
for (i = 0; i < N; i++)
cin >> a[i];
...
}
|
алг
нач
цел N = 30
целтаб a[1:N]
цел i, j, p
нц для i от 1 до N
ввод a[i]
кц
...
кон
|
Eстественный язык |
Объявляем массив A из 30 элементов.
Объявляем целочисленные переменные I, J, P.
В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. …
|
Python |
# допускается также
# использовать две
# целочисленные переменные j, p
a = []
n = 30
for i in range(0, n):
a.append(int(input()))
...
|
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Пояснение
Содержание верного ответа (допускаются иные формулировки ответа, не искажающие его смысла).
Бейсик |
Паскаль |
P = 1
FOR I = 1 TO N
IF A(I) >= 10 AND A(I) <= 99 AND (A(I) MOD 10 + A(I) DIV 10) MOD 2 <> 0 THEN
P = P * A(I)
END IF
NEXT I
PRINT P
|
p := 1;
for i := 1 to N do
if (a[i] >= 10) and (a[i] <= 99) and ((a[i] mod 10 + a[i] div 10) mod 2 <>0) then
p := p * a[i];
writeln(p);
|
Си |
Алгоритмический язык |
p = 1;
for (i = 0; i<n; i++)="" <p=""> if (a[i]>=10 && a[i]<=99 && (a[i]%10+a[i]/10)%2 != 0)
p*= a[i];
cout << p;
|
p := 1
нц для i от 1 до N
если a[i]>=10 и a[i]<=99 и mod(mod(a[i],10)+div(a[i],10),2)<>0
то p := p * a[i]
все
кц
вывод p
|
Eстественный язык |
Записываем в переменную P начальное значение, равное 1. В цикле от первого элемента до тридцатого находим целую часть и остаток от деления элемента исходного массива на 10. Теперь находим остаток от деления суммы полученных двух значений на 2. Если результат не равен 0 и значение текущего элемента массива больше 9 и меньше 100, то считаем произведение данного элемента массива и значения переменной P. Результат умножения сохраняем в переменную P. Переходим к следующему элементу массива. После завершения цикла выводим значение переменной P.
|
Ваш ответ:
Вы пропустили вопрос
Вопрос 25
Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 10000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести максимальное значение среди трёхзначных элементов массива, оканчивающихся на 0. Если в исходном массиве нет элемента, значение которого является трёхзначным числом и при этом не оканичается на 0, то вывести сообщение «Не найдено».
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
Бэйсик | Паскаль |
N = 20
DIM A(N) AS INTEGER
DIM I, J, MAX AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I
...
END
|
const
N = 20;
var
a: array [1..N] of integer;
i, j, max: integer;
begin
for i := 1 to N do
readln(a[i]);
...
end.
|
Си++ | Алгоритмический язык |
#include <iostream>
using namespacestd;
#define N 20
int main() {
int a[N];
int i, j, max;
for (i = 0; i < N; i++)
cin >> a[i];
...
}
|
алг
нач
цел N = 20
целтаб a[1:N]
цел i, j, max
нц для i от 1 до N
ввод a[i]
кц
...
кон
|
Естественный язык |
Объявляем массив А из 20 элементов.
Объявляем целочисленные переменные I, J, MAX.
В цикле от 1 до 20 вводим элементы массива А с 1-го по 20-й.
|
Python |
// допускается также использовать
// целочисленные переменные j, max
a = []
n = 20
for i in range(0, n):
a.append(int(input()))
|
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Пояснение
Допускаются иные формулировки ответа, не искажающие его смысла.
На языке Бейсик | На языке Паскаль |
МАХ =99
FOR I = 1 ТО N
IF А(I)>=10 0 AND А(I)<= 9 9 9 AND A(I) MOD 10 = 0 AND А(I)>МАХ THEN
MAX = A(I) END IF NEXT I
IF MAX >99 THEN PRINT MAX
ELSE
PRINT "He найдено" END IF
|
max := 99;
for i := 1 to N do
if (a[i]>=10 0) and (a[±]<= 990) and (a[i] mod 10=0) and (a[i]>max) then
max := a[i];
if max > 99 then writeln (max) else writeln('He найдено');
|
На языке Си | На алгоритмическом языке |
max = 99;
for (i = 0; i<n; i++)<p="">if (a[i]>99 && a[i]<991 && a[i]% 10==0 && a[i]>max) max = a[i] ; if (max>99)
cout « max « endl;
else
cout << "He найдено";
|
max := 99
нц для i от 1 до N
если а[±]>=100 и а[i]<= 990 и mod(а[i],10)=0 и a[i]>max то
max := а[i]
все
кц
если max > 99 то
вывод max иначе
вывод "Не найдено"
все
|
На естественном языке |
|
Записываем в переменную МАХ начальное значение, равное 99. В цикле от первого элемента до двадцатого находим остаток от деления элемента исходного массива на 10. Если значение данного остатка равно 0 и значение текущего элемента массива больше 99 и меньше 1000, то сравниваем значение текущего элемента массива со значением переменной МАХ. Если текущий элемент массива больше МАХ, то записываем в МАХ значение этого элемента массива. Переходим к следующему элементу. После завершения цикла проверяем значение переменной МАХ. Если оно больше 99, то выводим его, иначе выводим сообщение «Не найдено».
|
|
Ваш ответ:
Вы пропустили вопрос