Вот процедура нахождения произведения цифр четырехзначного числа, написанная на языке Алгол-60
real procedure prodig(n); value n; integer n; begin integer i,p; integer procedure mod(a,b); value a,b; integer a,b; begin mod:=a-a÷b×b end mod; p:=1; for i:=1 step 1 until 4 do begin p:=p×mod(n,10); n:=n÷10; end; prodig4:=p end prodig4;
prokodasha
27.12.2021
Program kurs;
{$APPTYPE CONSOLE
Uses SysUtils;
type //раздел описания типов данных
tArray=array [1..20,1..40] of byte; //описание типа двумерного
//массива 20x40 элементов
tArray2=array [1..400] of byte; // описание типа массива из 400
//элементов
var //раздел объявления переменных
A:tArray; //массив с результатами эксперимента
B:tArray2; //сформированный одномерный массив
n, //количество столбцов массива A
m, //количество строк массива A
k:byte; //размер массива B
d:byte; //количество искомых элементов
S:real; //среднее арифметическое элементов массива В
//
// Функция ввода массива. Возвращает размер массива n, m и //введенный массив Z
Function InputArray(var Z:tArray; var m, n:byte):boolean;
var
i,j:byte; // индексные переменные
begin
//вывод сообщения о вводе n
writeln('Введите размер массива n:');
//вводим n
readln(n);
…
end;
//Процедура вывода одномерного массива Y размерностью k
Procedure OutputArray(Y:tArray2; k:byte);
var i:byte; //индекс массива
begin
…
end;
//Процедура создания одномерного массива Y
//из двумерного Х по заданной схеме
Procedure Create(X:tArray; m:byte; n:byte; var Y:tArray2; var k:byte);
var
i, //индекс массива
j:byte; //индекс массива
l,t:byte; //индексы массива
s:set of byte; //множество элементов массива
f:boolean; //флаг наличия схожего элемента
//в нижней части массива
begin
…
end;
end; //конец процедуры
//Процедура поиска среднего арифметического
Function SrZnach(X:tArray2; n:byte):real;
var
i:byte; //индекс массива
Sr:real; //переменная для подсчета среднего арифметического
begin
…
end;
//Процедура подсчета в массиве Х элементов,
//которые отличаются от значения Sr больше чем на 50%.
//Возвращает количество искомых элементов k
Procedure Calc(X:tArray2; n:byte; Sr:real; var k:byte);
var
i:byte; //индексы массива
begin
i:=1; //задаем начальный индекс массива
k:=0;
…
end;
//начало основной программы
begin
…
end. //конец программы
Анна Елена
27.12.2021
8. Информационный вес одной точки (бит) = объем файла(бит)/кол-во пикселей= (1*1024*1024*8)/(1024*512) = 16 бит
9. Количество пикселей на см: 600/2,54 = 236,22 (в 1 дюйме - 2.54 см) Количество пикселей по высоте: 10*236,22= 2362 (и столько же получится по ширине) Объем файла = общее кол-во пикселей*глубину цвета = 2362*2362*32= 178529408 бит = 22316176 байт = 21793 Кб= 21,28 Мб
real procedure prodig(n);
value n; integer n;
begin integer i,p;
integer procedure mod(a,b);
value a,b; integer a,b;
begin
mod:=a-a÷b×b
end mod;
p:=1;
for i:=1 step 1 until 4 do
begin
p:=p×mod(n,10);
n:=n÷10;
end;
prodig4:=p
end prodig4;