DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Створення багатопотокових ужитків

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Факультет комп’ютерних наук
Кафедра:
Кафедра автоматизованих систем управління

Інформація про роботу

Рік:
2009
Тип роботи:
Лабораторна робота
Предмет:
Об’єктно-орієнтоване програмування
Група:
КН-32
Коротко про документ

Про що ця робота

У роботі досліджено створення багатопотокових ужитків за допомогою середовища Delphi 5. Як практичне завдання розроблено модель гри «Пакмен» із використанням окремих потоків.

У роботі розглядаються

  • Об'єктно-орієнтоване програмування
  • Багатопотоковість
  • Програмість у Delphi
  • Керування потоками

Зміст і розділи

  1. Назва роботи
  2. Мета роботи
  3. Порядок роботи
  4. Короткі теоретичні відомості
  5. Алгоритм розв’язку задачі
  6. Тексти відповідних модулів проекту
  7. Аналіз отриманих результатів та висновки
  8. Індивідуальне завдання №12
Для кого:Студенти технічних спеціальностей та вивчаючі об'єктно-орієнтоване програмування.
Викладачі:Викладач кафедри АСУ

Ключові поняття

багатопотоковий ужитокDelphi 5потікмодульформаsynchronizeПакменоб'єктно-орієнтоване програмування

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти та науки України Національний університет “Львівська Політехніка” Кафедра АСУ Лабораторна робота №3 з предмету Об'єктно-орієнтоване програмування на тему: Створення багатопотокових ужитків Мета роботи: Вивчення можливостей системи програмування Delphi 5 по створенню багатопотокових ужитків. Порядок роботи: Користуючись рекомендованою літературою до лабораторної роботи створити відповідний проект. Змінити текст програми так, щоб він відповідав індивідуальному завданню. Оформити звіт для захисту лабораторної роботи за зразком назва роботи мета роботи порядок роботи короткі теоретичні відомості алгоритм розв’язку задачі тексти відповідних модулів проекту аналіз отриманих результатів та висновки Індивідуальне завдання №12 Створити проект - модель гри "Пакмен". Переміщення кульки-Пакмена здійснюється в основному модулі, для відображення появи маленьких кульок, які з’їдає Пакмен, використати окремий потік. Тексти модулів проекту. //-------Progect1.dpr------- program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. //------Unit1.pas--------- unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class(TForm) Shape1: TShape; Shape2: TShape; Shape3: TShape; Timer1: TTimer; Timer2: TTimer; procedure FormCreate(Sender: TObject); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure Timer1Timer(Sender: TObject); procedure Timer2Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} uses Unit2; var MyThread:TMyThread; { MyThread1:TMyThread1; } procedure TForm1.FormCreate(Sender: TObject); begin MyThread:=TMyThread.Create(true); MyThread.FreeOnTerminate:=true; MyThread.Priority:=tpTimeCritical; MyThread.Resume; end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (key=vk_left) then begin dx:=-1; dy:=0; end; if (key=vk_right) then begin dx:=1; dy:=0; end; if (key=vk_up) then begin dx:=0; dy:=-1; end; if (key=vk_down) then begin dx:=0; dy:=1; end; end; procedure TForm1.Timer1Timer(Sender: TObject); begin a:=1+random(3); case a of 1: begin dx1:=-1; dy1:=0; end; 2: begin dx1:=1; dy1:=0; end; 3: begin dy1:=-1; dx1:=0; end; 4: begin dy1:=1; dx1:=0; end; end; end; procedure TForm1.Timer2Timer(Sender: TObject); begin b:=1+random(3); case b of 1: begin dx2:=-1; dy2:=0; end; 2: begin dx2:=1; dy2:=0; end; 3: begin dy2:=-1; dx2:=0; end; 4: begin dy2:=1; dx2:=0; end; end; end; end unit Unit2; interface uses Classes,sysutils; type TMyThread = class(TThread) private procedure move; procedure move1; procedure move2; { Private declarations } protected procedure Execute; override; end; var dx,dy,dx1,dy1,dx2,dy2,a,b:integer; implementation Uses Unit1; procedure TMyThread.move; begin Form1.Shape1.Top:=Form1.Shape1.Top+dy; Form1.Shape1.left:=Form1.Shape1.left+dx; if form1.Shape1.Left=440 then begin dx:=-1; dy:=0; end; if form1.Shape1.Left=0 then begin dx:=1; dy:=0; end; if form1.Shape1.top=440 then begin dy:=-1; dx:=0; end; if form1.Shape1.top=0 then begin dy:=1; dx:=0; end; end; procedure TMyThread.Execute; begin dx:=0; dy:=0; repeat Synchronize(Move); Synchronize(Move1); Synchronize(Move2); until Terminated; end; procedure TMyThread.move1; begin Form1.Shape2.Top:=Form1.Shape2.Top+dy1; Form1.Shape2.left:=Form1.Shape2.left+dx1; if form1.Shape2.Left>=440 then begin dx1:=-1; dy1:=0; end; if form1.Shape2.Left<=0 then begin dx1:=1; dy1:=0; end; if form1.Shape2.top>=440 then begin dy1:=-1; dx1:=0; end; if form1.Shape2.top<=0 then begin dy1:=1; dx1:=0; end; sleep(0); end; procedure TMyThread.move2; begin Form1.Shape3.Top:=Form1.Shape3.Top+dy2; Form1.Shape3.left:=Form1.Shape3.left+dx2; if form1.Shape3.Left>=440 then begin dx2:=-1; dy2:=0; end; if form1.Shape3.Left<=0 then begin dx2:=1; dy2:=0; end; if form1.Shape3.top>=440 then begin dy2:=-1; dx2:=0; end; if form1.Shape3.top<=0 then begin dy2:=1; dx2:=0; end; sleep(1); end; end. Вигляд форми:  Керування Пакменом (жовта кулька) здійснюється кнопками vk_up , vk_down , vk_left , vk_right. Висновок. На цій лабораторній роботі я вивчив можливості системи програмування Delphi 5 по створенню багатопотокових ужитків.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!