![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
kr3v3tkus |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 111 Пол: Мужской Реальное имя: Рома Репутация: ![]() ![]() ![]() |
вот такая задачка
Разделить экран перегородкой по вертикали на полэкрана. Перегородка движется сама вверх и вниз. Двигать минимальный прямоугольник. как ни странно, несмотря на лёгкость не могу сделать ( чтото не так, когда перемещаешься на (80,25) начинается ахинея, да и когда полоска доходит до верха и низа тоге не фонтан, вощем плз укажите ошибку Код uses crt; var x, y, a, b: integer; ch : char; procedure down (var x,y : integer); var i : integer; begin i := 12; gotoxy (x,y); textcolor (black); write ('Ы'); textcolor (white); while i <> 0 do begin gotoxy (x,y+i); write ('Ы'); dec(i); end; gotoxy (x,y); end; procedure up (var x,y : integer); var i : integer; begin gotoxy (x,y); textcolor (white); for i := 1 to 12 do begin gotoxy (x,y+i); write ('Ы'); end; gotoxy(x,y+13); textcolor (black); write ('Ы'); gotoxy (x,y); end; procedure pres (var a,b : integer; ch : char); var q, k: integer; begin case ch of #72 : if (b <> 1) then begin gotoxy(a,b); textcolor (black); write ('Ы'); textcolor (white); dec (b); gotoxy (a,b); write ('Ы'); gotoxy(a,b); end; #80 : if (b <> 25) then begin gotoxy(a,b); textcolor (black); write ('Ы'); textcolor (white); inc (b); gotoxy (a,b); write ('Ы'); gotoxy(a,b); end; #75 : if (a <> 1) then begin gotoxy(a,b); textcolor (black); write ('Ы'); textcolor (white); dec (a); gotoxy (a,b); write ('Ы'); gotoxy(a,b); end; #77 : if (a <> 80) then begin gotoxy(a,b); textcolor (black); write ('Ы'); textcolor (white); inc (a); gotoxy (a,b); write ('Ы'); gotoxy(a,b); end; end; end; begin clrscr; x := 40; y := 1; a := 25; b := 13; repeat repeat textcolor(white); gotoxy (a,b); write('Ы'); down (x,y); inc (y); if keypressed then begin ch := readkey; pres (a,b,ch); end; delay (55000); until y = 13; repeat textcolor(white); gotoxy (a,b); write('Ы'); up (x,y); dec (y); if keypressed then begin ch := readkey; pres (a,b,ch); end; delay (55000); until y = 0; until ch=#27; end. -------------------- Цитата . . \__/ (**) (>:=:=:~~ ^ ^ ^ ^ Креветка присваивания :DDD |
![]() ![]() |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Хм у меня твоя программа вообще ничего неделает (рисует перегородку и отделюную точку и все)
Объясни пожалуйста по подробней, по поводу перегородки я понял, она должна двигаться вверх - вниз, а вот вторая часть задания ? -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
klem4 |
![]()
Сообщение
#3
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
В общем вот набрасал быстренько ... если что я думаю подправишь сам, будут вопросы, спрашивай.
uses crt; -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
kr3v3tkus |
![]()
Сообщение
#4
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 111 Пол: Мужской Реальное имя: Рома Репутация: ![]() ![]() ![]() |
klem4 тенкс
![]() -------------------- Цитата . . \__/ (**) (>:=:=:~~ ^ ^ ^ ^ Креветка присваивания :DDD |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
А напрямую писать в видеопамять не хочешь попробовать?
![]() Тогда глюков с 80/25 точно не будет ... |
APAL |
![]()
Сообщение
#6
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
klem4 тенкс ![]() Попробуй для вывода использовать видеопамять. Код Var Ma : Ekr absolute $B800:$0000; Type St80 = string[80]; Ekr = array[1..4000] of Byte; Procedure W(x,y : Byte; St : St80); Var is : Byte; Begin For is:=x to Length(St)+x-1 do Ma[2*is+(y-1)*160-1]:=Ord(St[is]); GoToXY(x+Length(St),y); End; P.S.: Volvo, как обычно - опередил... ;) Сообщение отредактировано: APAL - 22.05.2006 22:32 -------------------- |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 6:25 |