impressive_i

Array Dynamic Addition

Apr 15th, 2020
531
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.76 KB | None | 0 0
  1. program ArrayDynamic;
  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.
Advertisement
Add Comment
Please, Sign In to add comment