Перевести код с Си на Pascal
Формулировка задачи:
Не знаю куда именно писать, поэтому решил написать тут, помогите перевести код на Pascal
Листинг программы
- #include <stdio.h>
- #include <time.h>
- #include <stdlib.h>
- #include <iostream.h>
- using namespace std;
- int main()
- {
- const int n=5;
- const int m=4;
- srand( time( NULL ) );
- int a[n][m], max_str[n], min_str[n], max_stolb[m], min_stolb[m], i, j, i_max, i_min;
- /*
- v massive max_str[] hranitsy max znacheniy massiva po strokam
- v massive min_str[] hranitsy min znacheniy massiva po strokam
- v massive max_stolb[] hranitsy max znacheniy massiva po stlobcham
- v massive min_stolb[] hranitsy min znacheniy massiva po stlobcham
- */
- cout<<"Ishodn matr:"<<endl;
- for(i=0; i<n; i++)
- {
- i_max=i_min=0;
- for(j=0; j<m; j++)
- {
- a[i][j]=rand()%10;
- cout<<a[i][j]<<" ";
- if(a[i][j]<a[i][i_min])
- i_min=j;
- if(a[i][j]>a[i][i_max])
- i_max=j;
- }
- cout<<endl;
- max_str[i]=a[i][i_max];
- min_str[i]=a[i][i_min];
- }
- for(j=0; j<m; j++)
- {
- i_min=i_max=0;
- for(i=0; i<n; i++)
- {
- if(a[i][j]<a[i_min][j])
- i_min=i;
- if(a[i][j]>a[i_max][j])
- i_max=i;
- }
- max_stolb[j]=a[i_max][j];
- min_stolb[j]=a[i_min][j];
- }
- cout<<"Index sedl tochek:"<<endl;
- for(i=0; i<n; i++)
- for(j=0; j<m; j++)
- if ((a[i][j]==max_str[i] && a[i][j]==min_stolb[j]) ||
- (a[i][j]==min_str[i] && a[i][j]==max_stolb[j]))
- cout<<i<<" "<<j<<endl;
- return 0;
- }
Решение задачи: «Перевести код с Си на Pascal»
textual
Листинг программы
- const m=5; n=4; W=4;
- var
- a: array [1..m,1..n] of Integer;
- mxr, mnr: array [1..m] of Integer;
- mxc, mnc: array [1..n] of Integer;
- i, j, mx, mn: Integer;
- begin
- Randomize;
- for i:=1 to m do for j:=1 to n do a[i,j]:=Random(10);
- for i:=1 to m do begin
- mx:=1; mn:=1;
- for j:=2 to n do begin
- if a[i,mx]<a[i,j] then mx:=j;
- if a[i,mn]>a[i,j] then mn:=j;
- end;
- mxr[i]:=a[i,mx]; mnr[i]:=a[i,mn];
- end;
- for j:=1 to n do begin
- mx:=1; mn:=1;
- for i:=2 to m do begin
- if a[mx,j]<a[i,j] then mx:=i;
- if a[mn,j]>a[i,j] then mn:=i;
- end;
- mxc[j]:=a[mx,j]; mnc[j]:=a[mn,j];
- end;
- WriteLn('A =');
- for i:=1 to m do begin
- for j:=1 to n do Write(a[i,j]:W); WriteLn;
- end;
- WriteLn('Индексы седловых точек:');
- for i:=1 to m do for j:=1 to n do
- if (a[i,j]=mxr[i]) and (a[i,j]=mnc[j]) or
- (a[i,j]=mnr[i]) and (a[i,j]=mxc[j])
- then WriteLn(i,' ',j);
- end.
Объяснение кода листинга программы
- Объявляются константы
m=5
,n=4
иW=4
- Объявляются массивы:
a
размеромm x n
для хранения целых чиселmxr
иmnr
размеромm
для хранения максимального и минимального элементов в строкахmxc
иmnc
размеромn
для хранения максимального и минимального элементов в столбцахi
,j
,mx
,mn
типа Integer для итерации и хранения временных значений
- Выполняется инициализация генератора случайных чисел
- Заполняется массив
a
случайными значениями в диапазоне от 0 до 9 - Вычисляются максимальные и минимальные значения в строках и сохраняются в массивах
mxr
иmnr
- Вычисляются максимальные и минимальные значения в столбцах и сохраняются в массивах
mxc
иmnc
- Выводится на экран массив
a
- Выводятся индексы седловых точек, то есть точек, которые являются и минимумом в своей строке и максимумом в своем столбце, либо максимумом в своей строке и минимумом в своем столбце.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д