• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Программа на Паскале

  • Автор темы Автор темы BerGmaN
  • Дата начала Дата начала

BerGmaN

Ученик
Регистрация
12 Май 2015
Сообщения
2
Реакции
0
Баллы
0
Программа на Паскале

Добрый день. помогите написать программу на Паскале с ассемблерными вставками. Суть задачи заключается в том что бы вывести в центре экрана квадрат желтого цвета, который можно было бы перемещать вправо и влево стрелками на клавиатуре. На Turbo Pascal. Заранее спасибо.:tehnari_ru_837::ctivo:
 
Ну да без вставок примерно выходит что то такое.
program kvadrat;
uses graph;
begin
InitGraph(9, 2, 'D:\tp7\bgi');
SetColor(3);
Rectangle(100,100,200,200);
repeat until keypressed;
CloseGraph;
end.
 
Ну да без вставок примерно выходит что то такое.
program kvadrat;
uses graph;
begin
InitGraph(9, 2, 'D:\tp7\bgi');
SetColor(3);
Rectangle(100,100,200,200);
repeat until keypressed;
CloseGraph;
end.
Ну уж, положим, не так просто! А, например, так (за запуск графического режима - не отвечаю, это уж Вы сами):
Код:
Uses CRT, Graph;

Var
 C:Char;
 Color,X1,Y1,X2,Y2:Word;

Procedure Sq(Xc,Yc:Word; Clr:Word);
begin
 SetColor(Clr);
 Rectangle(Xc-50,Yc-50,Xc+50,Yc+50);
end;

Procedure ReDraw(Xold,Yold,Xnew,Ynew:Word);
var Col:Word;
begin
 Col:=GetBkColor;
 Sq(Xold,Yold,Col);
 Col:=14;
 Sq(Xnew,Ynew,Col);
end;

Begin
 InitGraph(9, 2, 'D:\tp7\bgi');
 
 SetTextJustify(CenterText,BottomText);
 OutTextXY((GetMaxX div 2),GetMaxY-6,'Press "Esc" to stop the action');
 SetLineStyle(SolidLn,0,ThickWidth);
 X1:=GetMaxX div 2;
 Y1:=GetMaxY div 2;
 Color:=14;
 Sq(X1,Y1,Color);
 Repeat
  Repeat Until KeyPressed;
  C:=ReadKey;
  Case C of
   #72: begin
         if Y1>54 then
          begin
           X2:=X1;
           Y2:=Y1-5;
          end else
          begin
           X2:=X1;
           Y2:=Y1;
          end;
         Redraw(X1,Y1,X2,Y2);
         X1:=X2;
         Y1:=Y2;
        end;
   #75: begin
         if X1>54 then
          begin
           X2:=X1-5;
           Y2:=Y1;
          end else
          begin
           X2:=X1;
           Y2:=Y1;
          end;
         Redraw(X1,Y1,X2,Y2);
         X1:=X2;
         Y1:=Y2;
        end;
   #77: begin
         if X1<GetMaxX-54 then
          begin
           X2:=X1+5;
           Y2:=Y1;
          end else
          begin
           X2:=X1;
           Y2:=Y1;
          end;
         Redraw(X1,Y1,X2,Y2);
         X1:=X2;
         Y1:=Y2;
        end;
   #80: begin
         if Y1<GetMaxY-74 then
          begin
           X2:=X1;
           Y2:=Y1+5;
          end else
          begin
           X2:=X1;
           Y2:=Y1;
          end;
         Redraw(X1,Y1,X2,Y2);
         X1:=X2;
         Y1:=Y2;
        end;
  end;
 Until C=#27;
 CloseGraph;
End.
 
Назад
Сверху