Даны числа n и m. Создайте массив A[n][m] и заполните его, как показано ** примере....

0 голосов
360 просмотров

Даны числа n и m. Создайте массив A[n][m] и заполните его, как показано на примере. Входные данные
Программа получает на вход два числа n и m.

Выходные данные
Программа должна вывести полученный массив.

Примеры
входные данные
4 10
выходные данные
0 1 3 6 10 14 18 22 26 30
2 4 7 11 15 19 23 27 31 34
5 8 12 16 20 24 28 32 35 37
9 13 17 21 25 29 33 36 38 39 PASCAL


Информатика (27 баллов) | 360 просмотров
0

Закономерность в данных неочевидна. Как будет заполнен массив, если ввести 2 11 ?

Дан 1 ответ
0 голосов

Var mas:array[1..100,1..100] of integer; 
           N,M,D,N2,i,C,j,M2,k:integer; 
begin
N:=0;D:=0;k:=0;
write('Введите N = ');Readln(N);
write('Введите M = ');Readln(M);  
For i:= 1 to M do begin         
     M2:=1;        
        For N2:=i downto 1 do begin                 
                 if M2<=N then begin          <br>                       mas[M2,N2]:=k;                   
                       k:=k+1;                 
                       M2:=M2+1;          
                  end;            
               end;   
        end;          
 //после побочной диагонали    
For D:=2 to N do begin   
      M2:=D;         
              For N2:=M downto 1 do begin                  
                    IF (M2<=N) and (N2<=M) then begin            <br>                              mas[M2,N2]:=k;                   
                              k:=k+1;                   
                            M2:=M2+1;                
                     end;         
           end;         
end;       
    For i:=1 to N do begin Writeln();         
           for j:=1 to M do                
          write(mas[i,j],'    ');    
       end;  
end.

(468 баллов)
0

Вы когда пишете решение, почему не запускаете его для проверки? Вот ваш результат:

0

Введите N = 4
Введите M = 10

0 1 3 6 0 0 0 0 0 0
2 4 7 0 0 0 0 0 0 10
5 8 0 0 0 0 0 0 11 19
9 0 0 0 0 0 0 12 20 27

0

согласен вон исправил

0

не все продумал не запускал потом только запустил, теперь проверил)

0

исправил выложил

0

Порой задача кажется легкой пишешь на коленке, не проверяя, потом только запускаешь и видишь блин не верно(

0

но сейчас все случаи учтены

0

А Вы поняли, какая закономерность заложена в данные? Я вот ОДНОЗНАЧНО установить её на смог для произвольных m,n

0

*не смог

0

заполнение до побочной диагонали понятное, вот после ее уже колдовство у меня) в коде