program ideone;
//Метод печати массива на экран
procedure print(arr : array of integer);
var i : integer;
begin
for i := 0 to length(arr)-1 do write(' ', arr[i]);
writeln;
end;
//Процедура сложения массивы
procedure ArrayAddition(var arr_1, arr_2, arr_sum : array of integer; N1, N2 : integer);
var i : integer;
begin
if( N1 = N2) then
begin
for i := 0 to N1 do arr_sum[i] := arr_1[i] + arr_2[i];
print(arr_sum); //Вывод массива arr_sum (cумма массивов arr_1 и arr_2)
end
else //Если N1 не равно N2, то массивы сложить нельзя из-за того что какие-то элементы не имеют пары
write('Невозможно сложить массивы из-за разного размера');
end;
//генерирует числа в диапазоне [first; last]
function getRandomNumber(first, last : integer): integer;
begin
getRandomNumber := random(last - first + 1) + first;
end;
//Объявление динамических массив
var arr_1 : array of integer;
arr_2 : array of integer;
arr_sum : array of integer;
N1 : integer; //размер массива arr_1
N2 : integer; //размер массива arr_2
i : integer; //индекс для массивов
begin
Randomize;
{
write(' Введите размер 1-го массива: '); readln(N1);
write(' Введите размер 2-го массива: '); readln(N2);
}
N1 := 5; N2 := 5;
SetLength(arr_1, N1); //выделяем память под N1 элементов для массива arr_1
SetLength(arr_2, N2); //выделяем память под N2 элементов для массива arr_2
//Ввод массива arr_1
for i := 0 to Length(arr_1) - 1 do begin
// write('arr_1[',i,'] = '); readln(arr_1[i]);
// arr_1[i] := 2 * i + 1;
arr_1[i] := getRandomNumber(-10, 10); //генерируем случайное число в диапазоне -10 до 10
end;
//Ввод массива arr_2
for i := 0 to Length(arr_2) - 1 do begin
// write('arr_2[',i,'] = '); readln(arr_2[i]);
// arr_2[i] := i * i - 2 * i + 2;
arr_2[i] := getRandomNumber(-10, 10); //генерируем случайное число в диапазоне -10 до 10
end;
print(arr_1); //Вывод массива arr_1
print(arr_2); //Вывод массива arr_2
SetLength(arr_sum, N1); //выделяем память под массив суммы
ArrayAddition(arr_1, arr_2, arr_sum, N1, N2); //вызываем метод сложение (может возникнуть fail)
end.