Вывести на экран текстовое окно, границы которого управляются клавишами - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Друзья помогите пожалуйста решить задачу а то препод уже достал а сам я не могу решить её))) Разработать программу, которая при нажатии клавиши <F9> выводит на экран текстовое окно. При нажатии клавиши <влево> сдвигается влево левая рамка окна, при нажатии <вправо> - вправо правая рамка окна, при нажатии <вниз> - вниз нижняя рамка окна, при нажатии <вверх> вверх верхняя рамка окна. Заранее спасибо))

Решение задачи: «Вывести на экран текстовое окно, границы которого управляются клавишами»

textual
Листинг программы
uses crt;
var c,c1,s:char;
    x,y,w,h:byte;
begin
textbackground(0);
textcolor(15);
clrscr;
writeln('Нажмите клавишу F9');
write('Выход-Enter');
c:=readkey;
if c=#0 then c1:=readkey;
if c1=#67 then
 begin
  x:=35;
  y:=11;
  w:=10;
  h:=5;
  window(x,y,x+w,y+h);
  textbackground(7);
  clrscr;
  repeat
  if keypressed then
  begin
  s:=readkey;
  case s of
  #75:begin
      x:=x-1;
      w:=w+1;
      window(x,y,x+w,y+h);
      textbackground(7);
      clrscr;
      end;
  #77:begin
      w:=w+1;
      window(x,y,x+w,y+h);
      textbackground(7);
      clrscr;
      end;
  #72:begin
      y:=y-1;
      h:=h+1;
      window(x,y,x+w,y+h);
      textbackground(7);
      clrscr;
      end;
  #80:begin
      h:=h+1;
      window(x,y,x+w,y+h);
      textbackground(7);
      clrscr;
      end;
  end;
  end;
  until s=#13;
  end;
end.

Объяснение кода листинга программы

  1. Используется библиотека crt для работы с консолью.
  2. Объявлены переменные c и c1 типа char, которые будут использоваться для чтения клавиш.
  3. Функция textbackground(0) устанавливает цвет фона текста на экране в черный.
  4. Функция textbackground(15) устанавливает цвет фона текста на экране в белый.
  5. Функция clrscr() очищает экран.
  6. Строки 'Нажмите клавишу F9' и 'Выход-Enter' выводятся на экран с помощью функции write().
  7. Чтение клавиш происходит с помощью функции readkey().
  8. Переменные x, y, w, h типа byte используются для координат и размеров окна на экране.
  9. Функция window(x,y,x+w,y+h) выводит на экран прямоугольное окно с заданными координатами и размерами.
  10. Строка 'x=x-1; w=w+1; window(x,y,x+w,y+h); textbackground(7); clrscr;' выполняет следующие действия: уменьшает значение переменной x на 1, увеличивает значение переменной w на 1, выводит на экран окно с координатами (x,y) и размерами (x+w, y+h), затем меняет цвет фона текста на белый и очищает экран.
  11. Строка 's:=readkey(); case s of #75:begin x=x-1; w=w+1; window(x,y,x+w,y+h); textbackground(7); clrscr; end;' выполняет следующие действия: считывает клавишу, затем проверяет, является ли она символом '#75'. Если это так, то уменьшает значение переменной x на 1, увеличивает значение переменной w на 1, выводит на экран окно с координатами (x,y) и размерами (x+w, y+h), затем меняет цвет фона текста на белый и очищает экран.
  12. Строка 's:=readkey(); case s of #77:begin w=w+1; window(x,y,x+w,y+h); textbackground(7); clrscr; end;' выполняет аналогичные действия, как и предыдущая строка, но для символа '#77'.
  13. Строка 's:=readkey(); case s of #72:begin y=y-1; h=h+1; window(x,y,x+w,y+h); textbackground(7); clrscr; end;' выполняет аналогичные действия, как и предыдущая строка, но для символа '#72'.
  14. Строка 's:=readkey(); case s of #80:begin h=h+1; window(x,y,x+w,y+h); textbackground(7); clrscr; end;' выполняет аналогичные действия, как и предыдущая строка, но для символа '#80'.
  15. Строка 'until s=#13;' выполняет цикл до тех пор, пока не будет введена клавиша '#13'.
  16. Код написан на языке Turbo Pascal.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.692 из 5
Похожие ответы