![]() |
![]() |
ilua_great |
![]() ![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Мужской Реальное имя: Илья Репутация: ![]() ![]() ![]() |
Код program maper; uses crt; var f:text; x,y:integer; map: array[1..10,1..10]of integer; begin clrscr; assign(f,'map'); reset(f); {load} writeln('load'); x:=1; y:=1; repeat read(f,map[x,y]); y:=y+1; if y>10 then begin y:=1; x:=x+1; end; until x>10; writeln('load 100%'); close(f); {load} readln; clrscr; {draw} x:=1; y:=1; repeat gotoxy(x,y); write(map[x,y]); y:=y+1; if y>10 then begin y:=1; x:=x+1; end; until x>10; {draw} readln; end. Этот код должен рисовать картинку как в файле Код 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 7 7 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 Но он рисует её перевёрнуто, в чём проблема? ![]() |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Я ж тебе говорю, что индексы X и Y меняются для GotoXY и для Map одинаково, так? У тебя же все обрабатывается в одном цикле. НО... Значения X для GotoXY и для Map - совершенно противоположные...
Пойми, при работе с матрицами первым изменяется самый последний индекс, т.е. сначала ты проходишь по первой строке, и только потом переходишь на вторую, правда? Это достигается изменением в Map[i, j] индекса J быстрее, чем индекса i... Помотри, что у тебя меняется быстрее... Y, не так ли? Переходим теперь к GotoXY... Что означает случай, когда Y меняется быстрее чем X? То, что ты проходишь сначала по первому столбцу, и только потом переходишь ко второму, потому что ОY - это ось вертикальная... Вот тебе и противоречие... Хочешь правильной работы - обращайся к Map[Y, X] ... Сообщение отредактировано: volvo - 1.05.2007 12:03 |
![]() ![]() |
![]() |
Текстовая версия | 15.07.2025 2:07 |