impressive_i

Динамические массивы Pascal

Jan 31st, 2020
69
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. { Сложение двух динамических массивов, сгенерированных рандомно }
  2.  
  3. program ideone;
  4.  
  5. //Метод печати массива на экран
  6. procedure print(arr : array of integer);
  7. var i : integer;
  8. begin
  9.     for i := 0 to length(arr)-1 do write(' ', arr[i]);
  10.     writeln;
  11. end;
  12.  
  13. //Процедура сложения массивы
  14. procedure ArrayAddition(var arr_1, arr_2, arr_sum : array of integer; N1, N2 : integer);
  15. var i : integer;
  16. begin
  17.    if( N1 = N2) then
  18.       begin
  19.         for i := 0 to N1 do arr_sum[i] := arr_1[i] + arr_2[i];
  20.         print(arr_sum);  //Вывод массива arr_sum (cумма массивов arr_1 и arr_2)
  21.       end
  22.     else //Если N1 не равно N2, то массивы сложить нельзя из-за того что какие-то элементы не имеют пары
  23.       write('Невозможно сложить массивы из-за разного размера');
  24. end;
  25.  
  26. //генерирует числа в диапазоне [first; last]
  27. function getRandomNumber(first, last : integer): integer;
  28. begin
  29.   getRandomNumber := random(last - first + 1) + first;
  30. end;
  31.  
  32. //Объявление динамических массив
  33. var    arr_1 : array of integer;
  34.          arr_2 : array of integer;
  35.     arr_sum : array of integer;
  36.              N1 : integer;  //размер массива arr_1
  37.              N2 : integer;  //размер массива arr_2
  38.                 i : integer;   //индекс для массивов
  39. begin
  40.     Randomize;
  41.     {
  42.     write(' Введите размер 1-го массива: '); readln(N1);
  43.     write(' Введите размер 2-го массива: '); readln(N2);
  44.     }
  45.     N1 := 5;  N2 := 5;
  46.     SetLength(arr_1, N1); //выделяем память под N1 элементов для массива arr_1
  47.     SetLength(arr_2, N2); //выделяем память под N2 элементов для массива arr_2
  48.    
  49.     //Ввод массива arr_1
  50.     for i := 0 to Length(arr_1) - 1 do begin
  51.       // write('arr_1[',i,'] = '); readln(arr_1[i]);
  52.       // arr_1[i] := 2 * i + 1;
  53.       arr_1[i] := getRandomNumber(-10, 10); //генерируем случайное число в диапазоне -10 до 10
  54.     end;
  55.     //Ввод массива arr_2
  56.     for i := 0 to Length(arr_2) - 1 do begin
  57.       // write('arr_2[',i,'] = '); readln(arr_2[i]);
  58.       // arr_2[i] := i * i - 2 * i + 2;
  59.       arr_2[i] := getRandomNumber(-10, 10); //генерируем случайное число в диапазоне -10 до 10
  60.     end;
  61.    
  62.     print(arr_1);  //Вывод массива arr_1
  63.     print(arr_2);  //Вывод массива arr_2
  64.     SetLength(arr_sum, N1); //выделяем память под массив суммы
  65.     ArrayAddition(arr_1, arr_2, arr_sum, N1, N2); //вызываем метод сложение
  66. end.
RAW Paste Data