Двумерный массис, напечатать |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Двумерный массис, напечатать |
denolend |
Сообщение
#1
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Реальное имя: denis Репутация: 0 |
Задача : Напечатать диагонали таблицы m*n двигаясь от леого нижнего угла к правому верхнему.
я вроде как придумал алгоритм ,но программа почему-то не работает. Подскажите что добавить или исправить плз. код: program napechatat; uses crt; Const n=3; m=3; var a:array[1..m,1..n] of integer; i,j,s,ostatok:integer; begin clrscr; randomize; s:=0; j:=0; i:=0; for i:=1 to n do begin for j:=1 to m do begin s:=s+1; a[i,j]:=s; write(a[i,j]:4); end; writeln; end; writeln; s:=0; for j:=1 to n do begin for i:=1 to s+1 do begin write(a[m-i+j,j]:4); s:=s+1; end; writeln; end; writeln; end. |
Krjuger |
Сообщение
#2
|
Профи Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: 20 |
В теле цикла нельзя менять пределы прохода цикла,вы уходите в бесконечность.А вообще помимо прямого прохода цикла есть и обратный for i:=m downto 1 do вы пройдете с mого элемента до первого.....я думаю правильней его использовать.А вообще задание не совсем корректно,как можно напечатать диагональ неквадратной матрицы???Затем бессмысленно писать randomize; ,если вы его не используете при заполнении матрицы. Сообщение отредактировано: Krjuger - |
IUnknown |
Сообщение
#3
|
Гуру Группа: Пользователи Сообщений: 1 013 Пол: Мужской Ада: Разработчик Embarcadero Delphi: Сторонник Free Pascal: Разработчик Репутация: 627 |
Цитата А вообще задание не совсем корректно,как можно напечатать диагональ неквадратной матрицы??? Опять ты за свое? Я ж тебе уже где-то говорил, что диагональ - это то, что начинается в одном из углов (в зависимости от того - какая именно диагональ), и продолжается не до другого угла, а пока не закончатся строки/стобцы матрицы (что раньше закончится - то и прекращает процесс прохода по диагонали). Просто в случае квадратной матрицы эти 2 условия выполняются одновременно, и диагональ проходит от одного угла до другого. Так что напечатать можно все, что угодно. Для этого даже не надо десяток циклов, достаточно:const, что выводит:
|
denolend |
Сообщение
#4
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Реальное имя: denis Репутация: 0 |
спасибо большое!
|
Текстовая версия | 23.12.2024 21:23 |