Перевести код с Си на 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.

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

  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