Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 12.05.2015, 12:41   #1 (permalink)
BerGmaN
Новичок
 
Регистрация: 12.05.2015
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Cool Программа на Паскале

Добрый день. помогите написать программу на Паскале с ассемблерными вставками. Суть задачи заключается в том что бы вывести в центре экрана квадрат желтого цвета, который можно было бы перемещать вправо и влево стрелками на клавиатуре. На Turbo Pascal. Заранее спасибо.
BerGmaN вне форума   Ответить с цитированием

Старый 12.05.2015, 12:41
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Решить проблему можно с помощью просмотра схожих обсуждений

Программа на Паскале
Программа на Паскале
Программа на паскале
Программа на Паскале
Программа на Паскале
Программа в Паскале ABC

Старый 12.05.2015, 13:04   #2 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,343
Сказал(а) спасибо: 288
Поблагодарили 507 раз(а) в 165 сообщениях
Репутация: 91953
По умолчанию

Цитата:
Сообщение от BerGmaN Посмотреть сообщение
с ассемблерными вставками.
К сожалению, не владею. Вот если бы без них, то - легко. А так - извините.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 12.05.2015, 13:11   #3 (permalink)
BerGmaN
Новичок
 
Регистрация: 12.05.2015
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Ну да без вставок примерно выходит что то такое.
program kvadrat;
uses graph;
begin
InitGraph(9, 2, 'D:\tp7\bgi');
SetColor(3);
Rectangle(100,100,200,200);
repeat until keypressed;
CloseGraph;
end.
BerGmaN вне форума   Ответить с цитированием
Старый 12.05.2015, 17:07   #4 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,343
Сказал(а) спасибо: 288
Поблагодарили 507 раз(а) в 165 сообщениях
Репутация: 91953
По умолчанию

Цитата:
Сообщение от BerGmaN Посмотреть сообщение
Ну да без вставок примерно выходит что то такое.
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.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 05:33.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.