![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Чужак |
![]()
Сообщение
#1
|
![]() меркантильный ![]() ![]() ![]() Группа: Пользователи Сообщений: 161 Пол: Мужской Репутация: ![]() ![]() ![]() |
Есть программа, делающа непрерывную отрисовку
с помощью repeat. Если используется структура
....
repeat
....
until Keypressed;
на экраине идет непрерывная отрисовка, до нажатия любой клавиши. Но если поменять на
....
repeat
....
until Readkey='q';
Программа выходит по нажатию клавиши q, но работает только при нежатии любой другой клавиши(нажал и не отпускаешь). Как совместить непрерывность отрисовки с управлением с клавиатуры? -------------------- Смысл откроется тебе. Красками играя
Жизнь предстанет как поток без конца и края. В этом мире порой разбиваютсямечты Но чтобы он стал другой Вдруг в него приходишь ТЫ... После странствий и скитаний настают другие времена. Старая волна уходит и приходит новая волна. |
![]() ![]() |
Чужак |
![]()
Сообщение
#2
|
![]() меркантильный ![]() ![]() ![]() Группа: Пользователи Сообщений: 161 Пол: Мужской Репутация: ![]() ![]() ![]() |
Показать кусок кода, что именно у тебя там происходит, КАК собственно меняется значение и КОГДА ты хочешь его выводить (и перестать делать заключение, что вокруг тебя находятся одни телепаты)... Сейчас покажу. В теме "Графика. Двужущаяся точка. Точка совершает колебания" я приводил программу
program VisualSinusoid;
Uses Crt, Graph;
Const r = 80;
Label 1;
Var gd, gm: Integer; t,X,Y: Real;
Begin
InitGraph(gd,gm,''); t:=0;
1: X:=280;
SetColor(15);
Circle(120,240,r);
SetColor(2);
Line(120, 240, Round(120+r*cos(t)), Round(240+r*sin(t)));
Line(Round(120+r*cos(t)), Round(240+r*sin(t)),
280, Round(240+r*sin(t)) );
X:=X+1; Y:=240+r*sin(t);
PutPixel(Round(X), Round(Y), 11);
Delay(300);
SetColor(0);
Line(120, 240, Round(120+r*cos(t)), Round(240+r*sin(t)));
Line(Round(120+r*cos(t)), Round(240+r*sin(t)),
280, Round(240+r*sin(t)));
t:=t+0.05;
if X>600 then begin ClearDevice; goto 1; end
until KeyPressed;
CloseGraph
End.
теперь её усложняю. Вместо
program VisualSinusoid;
Uses Crt, Graph;
Const r = 80;
Label 1;
Var gd, gm: Integer; t,X,Y: Real;
Begin
InitGraph(gd,gm,''); t:=0;
r становится переменной:
program VisualSinusoid;
Uses Crt, Graph;
Label 1;
Var gd, gm,r: Integer; t,X,Y: Real;
ch:char;
Begin
InitGraph(gd,gm,''); t:=0; r = 80;
и появляется процедура:
Procedure Upravlenie;
Begin {procedure}
ch:=#0;
if keypressed then begin
ch:=readkey;
case ch of
'i': r:=r+1;
'e': r:=r-1;
....
end; {case}
end; {if}
End;{procedure}
она вызывается из тела программы (из цикла). Все работает, но как выводить на экран значение r? Сообщение отредактировано: Чужак - 15.01.2008 21:19 -------------------- Смысл откроется тебе. Красками играя
Жизнь предстанет как поток без конца и края. В этом мире порой разбиваютсямечты Но чтобы он стал другой Вдруг в него приходишь ТЫ... После странствий и скитаний настают другие времена. Старая волна уходит и приходит новая волна. |
![]() ![]() |
![]() |
Текстовая версия | 10.08.2025 4:03 |