fork(1) download
  1. program ideone;
  2.  
  3. //Метод печати массива на экран
  4. procedure print(arr : array of integer);
  5. var i : integer;
  6. begin
  7. for i := 0 to length(arr)-1 do write(' ', arr[i]);
  8. writeln;
  9. end;
  10.  
  11. //Процедура сложения массивы
  12. procedure ArrayAddition(var arr_1, arr_2, arr_sum : array of integer; N1, N2 : integer);
  13. var i : integer;
  14. begin
  15. if( N1 = N2) then
  16. begin
  17. for i := 0 to N1 do arr_sum[i] := arr_1[i] + arr_2[i];
  18. print(arr_sum); //Вывод массива arr_sum (cумма массивов arr_1 и arr_2)
  19. end
  20. else //Если N1 не равно N2, то массивы сложить нельзя из-за того что какие-то элементы не имеют пары
  21. write('Невозможно сложить массивы из-за разного размера');
  22. end;
  23.  
  24. //генерирует числа в диапазоне [first; last]
  25. function getRandomNumber(first, last : integer): integer;
  26. begin
  27. getRandomNumber := random(last - first + 1) + first;
  28. end;
  29.  
  30. //Объявление динамических массив
  31. var arr_1 : array of integer;
  32. arr_2 : array of integer;
  33. arr_sum : array of integer;
  34. N1 : integer; //размер массива arr_1
  35. N2 : integer; //размер массива arr_2
  36. i : integer; //индекс для массивов
  37. begin
  38. Randomize;
  39. {
  40. write(' Введите размер 1-го массива: '); readln(N1);
  41. write(' Введите размер 2-го массива: '); readln(N2);
  42. }
  43. N1 := 5; N2 := 5;
  44. SetLength(arr_1, N1); //выделяем память под N1 элементов для массива arr_1
  45. SetLength(arr_2, N2); //выделяем память под N2 элементов для массива arr_2
  46.  
  47. //Ввод массива arr_1
  48. for i := 0 to Length(arr_1) - 1 do begin
  49. // write('arr_1[',i,'] = '); readln(arr_1[i]);
  50. // arr_1[i] := 2 * i + 1;
  51. arr_1[i] := getRandomNumber(-10, 10); //генерируем случайное число в диапазоне -10 до 10
  52. end;
  53. //Ввод массива arr_2
  54. for i := 0 to Length(arr_2) - 1 do begin
  55. // write('arr_2[',i,'] = '); readln(arr_2[i]);
  56. // arr_2[i] := i * i - 2 * i + 2;
  57. arr_2[i] := getRandomNumber(-10, 10); //генерируем случайное число в диапазоне -10 до 10
  58. end;
  59.  
  60. print(arr_1); //Вывод массива arr_1
  61. print(arr_2); //Вывод массива arr_2
  62. SetLength(arr_sum, N1); //выделяем память под массив суммы
  63. ArrayAddition(arr_1, arr_2, arr_sum, N1, N2); //вызываем метод сложение (может возникнуть fail)
  64. end.
Success #stdin #stdout 0s 4348KB
stdin
Standard input is empty
stdout
 -4 7 0 -1 -3
 -2 10 10 5 5
 -6 17 10 4 2