25 (в 2015 - 25, в 2014 - С2) Пример задачи
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество элементов массива, десятичная запись которых содержит ровно 2 цифры, причем хотя бы одна из этих цифр – цифра 9.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль
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.
Бейсик
N=30
DIM A(N) AS INTEGER
DIM I, J, K AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I
…
END
Си
#include
#define N 30
void main(void){
int a[N];
int i, j, k;
for (i=0; i scanf("%d", &a[i]);
…
}
Алгоритмический язык
алг
нач
цел N=30
целтаб a[1:N]
цел i, j, k
нц для i от 1 до N
ввод a[i]
кц
…
кон
Естественный язык
Объявляем массив A из 30 элементов.
Объявляем целочисленные переменные I, J, K.
В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.
…
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.4) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
4 комментария
Наверное так:
If (A[i]>10 and A[i]<99) and (a[i] mod 10 =9 or a[i] div 10 = 9) then S:= S+1
Конечно 🙂 Есть и другие (эквивалентные) варианты
Правильней
If (A[i]>10 and A[i]<100) and (a[i] mod 10 =9 or a[i] div 10 = 9) then S:= S+1,т.к. в программе Святослава не будет посчитано число 99, либо в условии <=99 поставить.
Да. Спасибо!