Помогитееееееееееееее!!!!!!!! плиз 50 баллов!! Дан целочисленный массив из 40 элементов....

0 голосов
30 просмотров

Помогитееееееееееееее!!!!!!!! плиз 50 баллов!!
Дан целочисленный массив из 40 элементов. Элементы массива могут принимать целые значения от 1 до 10000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество элементов массива, восьмеричная запись которого содержит ровно две цифры, причём первая (старшая) цифра меньше второй (младшей).
const N = 40;
var
a: array [1..N] of integer;
i, j, k: integer;
begin
for i := 1 to N do
readln(a[i]);
...
end.


Информатика (66 баллов) | 30 просмотров
Дан 1 ответ
0 голосов

Всё просто

Алгоритм:

for j := 1 to N do

if (8 <= a[j]) and (a[j] <= 63) and (a[j] div 8 < a[j] mod 8) then k:=k + 1</p>

 

for j := 1 to N  - перебор всех элементов массива

(8 <= a[j]) and (a[j] <= 63) - восьмеричная запись чисел от 8₁₀ до 63₁₀  содержит ровно две цифры </p>

(a[j] div 8 < a[j] mod 8) - первая (старшая) цифра меньше второй (младшей) при восьмеричная запись чисел от 8₁₀ до 63₁₀

k:=k + 1 - счётчик количества элементов массива соответствующих условиям

 

Программа целиком:

const N=40;

var a: array [1..N] of integer;

i, j, k: longint;

begin

for i:=1 to N do

readln(a[i]);

for j := 1 to N do

if (8 <= a[j]) and (a[j] <= 63) and (a[j] div 8 < a[j] mod 8) then k:=k + 1;</p>

writeln('Количество элементов массива, восьмеричная запись которого содержит ровно две цифры, причем первая (старшая) цифра меньше второй (младшей), равно: ',k);

end.

 

 

 

(324 баллов)