Перевести код с Си на Pascal

Узнай цену своей работы

Формулировка задачи:

Не знаю куда именно писать, поэтому решил написать тут, помогите перевести код на Pascal
Листинг программы
  1. #include <stdio.h>
  2. #include <time.h>
  3. #include <stdlib.h>
  4. #include <iostream.h>
  5. using namespace std;
  6. int main()
  7. {
  8. const int n=5;
  9. const int m=4;
  10. srand( time( NULL ) );
  11. int a[n][m], max_str[n], min_str[n], max_stolb[m], min_stolb[m], i, j, i_max, i_min;
  12. /*
  13. v massive max_str[] hranitsy max znacheniy massiva po strokam
  14. v massive min_str[] hranitsy min znacheniy massiva po strokam
  15. v massive max_stolb[] hranitsy max znacheniy massiva po stlobcham
  16. v massive min_stolb[] hranitsy min znacheniy massiva po stlobcham
  17. */
  18. cout<<"Ishodn matr:"<<endl;
  19. for(i=0; i<n; i++)
  20. {
  21. i_max=i_min=0;
  22. for(j=0; j<m; j++)
  23. {
  24. a[i][j]=rand()%10;
  25. cout<<a[i][j]<<" ";
  26. if(a[i][j]<a[i][i_min])
  27. i_min=j;
  28. if(a[i][j]>a[i][i_max])
  29. i_max=j;
  30. }
  31. cout<<endl;
  32. max_str[i]=a[i][i_max];
  33. min_str[i]=a[i][i_min];
  34. }
  35. for(j=0; j<m; j++)
  36. {
  37. i_min=i_max=0;
  38. for(i=0; i<n; i++)
  39. {
  40. if(a[i][j]<a[i_min][j])
  41. i_min=i;
  42. if(a[i][j]>a[i_max][j])
  43. i_max=i;
  44. }
  45. max_stolb[j]=a[i_max][j];
  46. min_stolb[j]=a[i_min][j];
  47. }
  48. cout<<"Index sedl tochek:"<<endl;
  49. for(i=0; i<n; i++)
  50. for(j=0; j<m; j++)
  51. if ((a[i][j]==max_str[i] && a[i][j]==min_stolb[j]) ||
  52. (a[i][j]==min_str[i] && a[i][j]==max_stolb[j]))
  53. cout<<i<<" "<<j<<endl;
  54. return 0;
  55. }

Решение задачи: «Перевести код с Си на Pascal»

textual
Листинг программы
  1. const m=5; n=4; W=4;
  2. var
  3.   a: array [1..m,1..n] of Integer;
  4.   mxr, mnr: array [1..m] of Integer;
  5.   mxc, mnc: array [1..n] of Integer;
  6.   i, j, mx, mn: Integer;
  7. begin
  8.   Randomize;
  9.   for i:=1 to m do for j:=1 to n do a[i,j]:=Random(10);
  10.   for i:=1 to m do begin
  11.     mx:=1; mn:=1;
  12.     for j:=2 to n do begin
  13.       if a[i,mx]<a[i,j] then mx:=j;
  14.       if a[i,mn]>a[i,j] then mn:=j;
  15.     end;
  16.     mxr[i]:=a[i,mx]; mnr[i]:=a[i,mn];
  17.   end;
  18.   for j:=1 to n do begin
  19.     mx:=1; mn:=1;
  20.     for i:=2 to m do begin
  21.       if a[mx,j]<a[i,j] then mx:=i;
  22.       if a[mn,j]>a[i,j] then mn:=i;
  23.     end;
  24.     mxc[j]:=a[mx,j]; mnc[j]:=a[mn,j];
  25.   end;
  26.   WriteLn('A =');
  27.   for i:=1 to m do begin
  28.     for j:=1 to n do Write(a[i,j]:W); WriteLn;
  29.   end;
  30.   WriteLn('Индексы седловых точек:');
  31.   for i:=1 to m do for j:=1 to n do
  32.     if (a[i,j]=mxr[i]) and (a[i,j]=mnc[j]) or
  33.        (a[i,j]=mnr[i]) and (a[i,j]=mxc[j])
  34.     then WriteLn(i,' ',j);
  35. end.

Объяснение кода листинга программы

  1. Объявляются константы m=5, n=4 и W=4
  2. Объявляются массивы:
    • a размером m x n для хранения целых чисел
    • mxr и mnr размером m для хранения максимального и минимального элементов в строках
    • mxc и mnc размером n для хранения максимального и минимального элементов в столбцах
    • i, j, mx, mn типа Integer для итерации и хранения временных значений
  3. Выполняется инициализация генератора случайных чисел
  4. Заполняется массив a случайными значениями в диапазоне от 0 до 9
  5. Вычисляются максимальные и минимальные значения в строках и сохраняются в массивах mxr и mnr
  6. Вычисляются максимальные и минимальные значения в столбцах и сохраняются в массивах mxc и mnc
  7. Выводится на экран массив a
  8. Выводятся индексы седловых точек, то есть точек, которые являются и минимумом в своей строке и максимумом в своем столбце, либо максимумом в своей строке и минимумом в своем столбце.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.556 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут