IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> задачка в текстовом режиме, пожалуйста подправьте, завтра зачёт :)
kr3v3tkus
сообщение 22.05.2006 19:31
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 111
Пол: Мужской
Реальное имя: Рома

Репутация: -  0  +


вот такая задачка
Разделить экран перегородкой по вертикали на полэкрана. Перегородка движется сама вверх
и вниз. Двигать минимальный прямоугольник.
как ни странно, несмотря на лёгкость не могу сделать ( чтото не так, когда перемещаешься на (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
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 2:51
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"