dashkevich-76611
?>

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

Информатика

Ответы

titancore
Будем считать, что (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.

Составить программу на языке паскаль. найти количество элементов одномерного массива а (10), больших
bronco-s
В задаче имеется "топорное решение" — посчитать напрямую. Получившееся число будет восьмизначным, что не так уж и страшно, если в голову не приходят другие решения.

Рассмотрим, однако, решение, которое позволит делать подобные задачи без прямого подсчёта. Для этого, прежде всего, переведём всё в степени тройки:

98328316+35+35+35−9−32−32==
9
8
+
3
5
−9 =
3
2
8
+
3
5

3
2
=
3
16
+
3
5

3
2

Как представляется число 3n в троичной системе счисления? Давайте подумаем, как мы переводим из десятичной системы в троичную? Сначала делим на 3, затем частное делим на 3, затем новое частное на 3 и т.п. Что получится в случае деления 3n на 3? Очевидно, что 3n-1. А если его поделить дальше на 3, то получится 3n-2. Если так сделать n раз, то в конце останется 30, то есть. Таким образом, это будет число 100..00, где количество нулей равно n.

То есть, например, 8-ая степени тройки в троичной системе представима в виде 1000000003. А 35 — это 1000003.

Вернёмся теперь к нашей сумме. Давайте сначала в столбик сложим 316 и 35 в троичной системе счисления.

100…000000016100000100…0⏟10100000 1
00

0000000

16
100000 1
00

0

10
100000

Теперь остаётся из этого вычесть 32. Для этого придётся "занять" разряд. Но принцип тут такой же, как и в обычной, десятичной системе счисления, только 0 будут превращаться не в 9, а в 2 (самую большую цифру в троичной системе счисления:

100…0⏞10100000−100100…0⏟10022200 1
00

0

10
100000 −100 1
00

0

10
022200

Таким образом, количество двоек в указанной сумме получилось равным 3.

ответ: 3 двойки в троичной записи.
Eduardovich
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
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

lazaren-ko
sharaeva-is
ibzaira
barg562
Антонович937
VASILEVNA
tanyatanyat
de1979nis
Valentinovna
vifslafes
nadyatsoi
anadtacia03108988
triumfmodern
laktionova-natal
suturinavaleriya51