Консультация № 158012
18.01.2009, 03:41
0.00 руб.
0 4 2
Люди...помогите пожалуйста с паскаль..мне срочно нужно..(

Нужно вот эту программу сделать так чтобы не просто одним нажатием лесенка переходила вверх...а чтобы много раз нажимать на кнопку "Esc" либо "Home" (эти кнопки для перемещения вверх и вниз) и данная лесенка в программе перемещалась вверх либо вниз по одной клеточке....Помогите кто может как это сделать?

Приложение:
program laba6;
uses crt;
begin
clrscr;
TextBackGround(0); {§ ¤ Ґв 梥в д®­ }
window(30,14,47,23); {гЄ §лў Ґвмбп ®Є­® б Є®а¤Ё­ в ¬Ё}
TextBackGround(0);
clrscr;
Repeat { repeat}
writeln('_____ ');
writeln('| | ');
writeln('| |___ ');
writeln('| | ');
writeln('| |___ ');
writeln('| | ');
writeln('| |___ ');
writeln('| |');
writeln('|_______________|');
if readkey=#71 then
begin
TextBackGround(0);
clrscr;
TextBackGround(0);
window(30,4,47,13);
writeln('_____ ');
writeln('| | ');
writeln('| |___ ');
writeln('| | ');
writeln('| |___ ');
writeln('| | ');
writeln('| |___ ');
writeln('| |');
writeln('|_______________|');
end
else
if readkey=#27 then
begin
TextBackGround(0);
clrscr;
TextBackGround(0);
window(30,14,47,23);
writeln('_____ ');
writeln('| | ');
writeln('| |___ ');
writeln('| | ');
writeln('| |___ ');
writeln('| | ');
writeln('| |___ ');
writeln('| |');
writeln('|_______________|');
end;
UNTIL READKEY=#32;
end.

Обсуждение

Неизвестный
18.01.2009, 03:42
общий
Здесь правда лестница не совсем ровная получилась....Если чтото не понятно будет напишите в личку..Я прошу помогите доработать программу...у меня не получается, учитель у нас очень злой.
Неизвестный
18.01.2009, 21:45
общий
это ответ
Здравствуйте, Валиева Кристина Александровна!
В соответствии с тем, что я понял из вашей формулировки задания, программу можно построить следующим образом(см.приложение). Косметические преобразования доделайте сами.


Приложение:
program m;
uses CRT;
var
x,a,b,a1,b1,c,d:string;
i,t,y1:integer;
begin
t:=0;
a1:='_____';
b1:=' |';
d:=' ';
y1:=45;
ClrScr;
window(20,y1,80,48);
writeln(a1);
writeln(b1);
writeln(b1);

repeat
begin
x:=readkey;
if x=#44 then
begin
ClrScr;
y1:=y1-3;
window(20,y1,80,48);
a:=a1;
b:=b1;
writeln(a);
writeln(b);
writeln(b);
t:=t+1;
for i:=1 to t do
begin
a:=d+a;
b:=d+b;
writeln(a);
writeln(b);
writeln(b);
end;
end;
if x=#46 then
begin
ClrScr;
y1:=y1+3;
window(20,y1,80,48);
a:=a1;
b:=b1;
writeln(a);
writeln(b);
writeln(b);
t:=t-1;
for i:=1 to t do
begin
a:=d+a;
b:=d+b;
writeln(a);
writeln(b);
writeln(b);
end;

end;
end;
until x=#32;
end.
давно
Старший Модератор
31795
6196
21.01.2009, 12:32
общий
это ответ
Здравствуйте, Валиева Кристина Александровна!

Смотрите приложение.
С помощью клавиш "W","A","S","D" Вы перемещаете рисунок по экрану. Выход - пробел.
Лесенка рисуется с помощью символов псевдографики. Вам остается подобрать максимальное значение в строках:
'd','D':if x<100 then inc(x);
's','S':if y<100 then inc(y);

Удачи!

Приложение:
uses
crt;
var
a:string;
x,y:integer;
z:char;
begin
{левый верхний угол}
y:=1;
x:=1;
repeat
{стираем предыдущее окно и создаем новое}
clrscr;
window(x,y,x+15,y+5);
{рисуем лесенку}
a:=chr(205)+chr(205)+chr(184);
writeln(chr(213),a);
a:=chr(212)+a;
writeln(chr(179),a:6);
writeln(chr(179),a:9);
writeln(chr(179),a:12);
a:=chr(192)+chr(196)+chr(196)+chr(196)+chr(196)+chr(196)+chr(196)+chr(196)+chr(196)+chr(196)+chr(196)+chr(196)+chr(217);
writeln(a);
{вводим направление и изменяем координату окна}
z:=readkey;
case z of
'a','A':if x>01 then dec(x);
'w','W':if y>01 then dec(y);
'd','D':if x<100 then inc(x);
's','S':if y<100 then inc(y);
end;
until z=' ';
end.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
21.01.2009, 12:40
общий
Валиева Кристина Александровна:

Думаю "злому" учителю понравится.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа