Паскаль! Помогите пожалуйста! Дан целочисленный массив из 40 элементов. Элементы массива...

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

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

end.


Информатика (543 баллов) | 205 просмотров
Дан 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<br>
for j := 1 to N  - перебор всех элементов массива
(8 <= a[j]) and (a[j] <= 63) - восьмеричная запись чисел от 8₁₀ до 63₁₀  содержит ровно две цифры <br>(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;<br>writeln('Количество элементов массива, восьмеричная запись которого содержит ровно две цифры, причем первая (старшая) цифра меньше второй (младшей), равно: ',k);
end.
(3.9k баллов)