Будем считать, что (10) - это кол-во элементов массива. Тогда решение такое:
var A: array[1..10] of integer; k, i: integer;
begin for i := 1 to 10 do begin writeln('Введите числа массива:'); readln(A[i]);
if A[i] > 10 then k := k + 1; end; writeln('Количество элементов, больших 10 - ', k); end.
bronco-s
02.09.2022
В задаче имеется "топорное решение" — посчитать напрямую. Получившееся число будет восьмизначным, что не так уж и страшно, если в голову не приходят другие решения.
Рассмотрим, однако, решение, которое позволит делать подобные задачи без прямого подсчёта. Для этого, прежде всего, переведём всё в степени тройки:
Как представляется число 3n в троичной системе счисления? Давайте подумаем, как мы переводим из десятичной системы в троичную? Сначала делим на 3, затем частное делим на 3, затем новое частное на 3 и т.п. Что получится в случае деления 3n на 3? Очевидно, что 3n-1. А если его поделить дальше на 3, то получится 3n-2. Если так сделать n раз, то в конце останется 30, то есть. Таким образом, это будет число 100..00, где количество нулей равно n.
То есть, например, 8-ая степени тройки в троичной системе представима в виде 1000000003. А 35 — это 1000003.
Вернёмся теперь к нашей сумме. Давайте сначала в столбик сложим 316 и 35 в троичной системе счисления.
Теперь остаётся из этого вычесть 32. Для этого придётся "занять" разряд. Но принцип тут такой же, как и в обычной, десятичной системе счисления, только 0 будут превращаться не в 9, а в 2 (самую большую цифру в троичной системе счисления:
Таким образом, количество двоек в указанной сумме получилось равным 3.
ответ: 3 двойки в троичной записи.
Eduardovich
02.09.2022
1. a; c 2. write(); writeln(). Пример: write(c) /поясняю: ln добавляется для перехода на следующую строку при выводе/ 3. Ошибка - в строке "writeln(введите значения переменных m и n);" не указана переменная k. Так же не нужны кавычки в выводе, а при вводе необходимы. Исправление: program prim_a; var m, n, k: integer;
begin writeln('введите значения переменных m, n и k'); read(m,n, k); writeln((m+n+k)*5); end. 4. a) program plowad; var a, h: real;
begin writeln('Введите основание треугольника и высоту'); readln(a, h); writeln('Площадь треугольника равна ', a*h/2); end. 5. program proizvedenie; var a, b: integer;
begin writeln('Введите двузначное число'); readln(a); b:=a mod 10; a:=a div 10; writeln('Произведение цифр двузначного числа равно ', a*b); end.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Составить программу на языке паскаль. найти количество элементов одномерного массива а (10), больших 10
var
A: array[1..10] of integer;
k, i: integer;
begin
for i := 1 to 10 do
begin
writeln('Введите числа массива:');
readln(A[i]);
if A[i] > 10
then k := k + 1;
end;
writeln('Количество элементов, больших 10 - ', k);
end.