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

0 голосов

Даны числа 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 баллов) в категории Информатика
оставил комментарий от Архангел (142k баллов)

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

1 Ответ
0 голосов
ответил от Начинающий (468 баллов)

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.

оставил комментарий от Архангел (142k баллов)

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

оставил комментарий от Архангел (142k баллов)

Введите 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

оставил комментарий от Начинающий (468 баллов)

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

оставил комментарий от Начинающий (468 баллов)

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

оставил комментарий от Начинающий (468 баллов)

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

оставил комментарий от Начинающий (468 баллов)

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

оставил комментарий от Начинающий (468 баллов)

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

оставил комментарий от Архангел (142k баллов)

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

оставил комментарий от Архангел (142k баллов)

*не смог

оставил комментарий от Начинающий (468 баллов)

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

...