Напишите программу, которая заполняет массив случайными целыми числами - Pascal ABC
Формулировка задачи:
Напишите программу, которая заполняет массив случайными целыми числами, вводит с клавиатуры целое число N и копирует в новый массив все числа из исходного массива, для которых сумма значений всех цифр равна N.
Решение задачи: «Напишите программу, которая заполняет массив случайными целыми числами»
textual
Листинг программы
const nmax=100;
function summa(a:integer):integer;
var b,s:integer;
begin
b:=abs(a);
s:=0;
while b>0 do
begin
s:=s+b mod 10;
b:=b div 10;
end;
result:=s;
end;
var a:array[1..nmax] of integer;
m,n,i,k:integer;
begin
randomize;
repeat
write('Введите размер массива от 2 до ',nmax,' m=');
readln(m);
until m in [2..nmax];
writeln('Массив');
for i:=1 to m do
begin
a[i]:=-99+random(1099);
write(a[i]:4);
end;
writeln;
repeat
write('Введите искомую сумму цифр n>0 n=');
readln(n);
until n>0;
k:=0;
for i:=1 to m do
if summa(a[i])=n then
begin
write(a[i]:4);
k:=1;
end;
if k=0 then write('Нет чисел с такой суммой цифр');
end.
Объяснение кода листинга программы
- Создается константа nmax, которая определяет максимальное количество элементов в массиве.
- Создается функция summa, которая принимает целое число и возвращает сумму его цифр.
- Создается переменная a, которая представляет собой массив для хранения случайных целых чисел.
- Создаются переменные m, n, i и k, которые будут использоваться в цикле.
- Цикл repeat используется для запроса размера массива от пользователя.
- В цикле repeat выполняется запрос размера массива от пользователя.
- Цикл repeat используется для заполнения массива случайными целыми числами.
- В цикле repeat выполняется запрос искомой суммы цифр от пользователя.
- Если сумма цифр равна n, то число добавляется в массив.
- Если цикл закончился и в массиве нет чисел с такой суммой цифр, выводится сообщение
Нет чисел с такой суммой цифр. - Код завершается.