2016-04-26 4 views
-1

Мне нужно создать программу, которая отображает квадратную матрицу (массив) с 20 строками и 20 столбцами, а затем дает максимум и минимум этой матрицы.Создайте квадратный массив с Pascal

Я начал с этим кодом:

program ex2dimarray; 
var 
    a: array [0..20, 0..20] of integer; 
    i, j: integer; 

begin 
    for i := 0 to 3 do 
     for j := 0 to 3 do 
      a[i,j] := i * j; 

    for i := 0 to 3 do 
    begin 
     for j := 0 to 3 do 
      write(a[i,j]:2, ' '); 
     writeln; 
    end; 
end. 
+3

У вас есть конкретный вопрос, кроме * я нужна помощь *? – lurker

+0

Что не так с текущим кодом? Например, вы получаете сообщение об ошибке при попытке скомпилировать его? –

ответ

-1

Вы объявляете массив 20х20, но в своем коде вы используете только 3х3 блок. Кроме того, отсутствует логика для нахождения значений max и min.

Вы можете попробовать что-то вроде этого:

program ex2dimarray; 
const 
    Dim = 20; 

var 
    a: array [0..Dim, 0..Dim] of integer; 
    i, j, min, max: integer; 

begin 
    // initialize the array 
    for i := 0 to Dim do 
    begin 
     for j := 0 to Dim do 
      a[i,j] := i * j; 
    end; 

    // search for max and min. You can initialize both to a[0,0] 
    min:= maxint; 
    max:= -maxint; 

    for i := 0 to Dim do 
    begin 
     for j := 0 to Dim do 
     begin 
      if (a[i,j] > max) then 
       max := a[i,j]; 

      if (a[i,j] < min) then 
       min := a[i,j]; 
     end; 
    end; 

    // print out the values 
    for i := 0 to Dim do 
    begin 
     for j := 0 to Dim do 
      write(a[i,j]:3, ' '); 
     writeln; 
    end; 
    writeln; 
    write('Max: ', max, '  Min: ', min); 
    writeln; 
    readln; 
end. 
+0

I Получить сообщение об ошибке в строке 9 и 10 Fatal: Ошибка синтаксиса; Ожидается, но = найдено –

+0

@HamzaBounezra Какой компилятор и какая версия вы используете? –

+0

Я использую Dev-Pascal 1.9.2 Я попробовал Free pascal и ту же ошибку –

0
program ex2dimarray; 

var 
a: array [0..20, 0..20] of integer; 
m, i, j: integer; 

begin 

//filling the array, in any way you like 

for i := 0 to 19 do 
    for j := 0 to 19 do 
     a[i,j] := i * j; 


//scanning for max value 

m :=0; 
for i := 0 to 19 do 
    for j := 0 to 19 do 
     if m<=a[i,j] then m:=a[i,j] ; 

//print the array 

for i := 0 to 19 do 
begin 
    for j := 0 to 19 do 
     write(a[i,j]:2, ' '); 
    writeln; 
end; 

//print the max value 

writeln('Maximum is ',m); 

end. 
+0

ошибка, если m <= a [i, j], тогда m: = a [i.j]; –

+0

Какое сообщение об ошибке? – DrWael

+0

его хорошо сейчас спасибо вам очень mach –