Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Практична робота №3




ПРАКТИЧНЕ ЗАНЯТТЯ №27

Использование множеств

Наиболее эффективно множество может быть использовано для замены операторов if, например, для проверки наличия некоторого ответа в списке разрешённых. Приведённая ниже программа ввода строки символов, содержащей латинские буквы, цифры и пробелы с контролем правильности введённых символов, может служить примером использования множеств:

program Project1;

{$APPTYPE CONSOLE}

uses SysUtils;

var
str: string;
L: byte;
t: eadln;

begin
Writeln('Enter string');
readln(str);
L:=length(str); // Число введённых символов
t:=L>0; // True, если не пустая строка
while t and (L>0) do // Проверка с конца строки
begin
t:=str[L] in ['0'.. '9', 'a'.. 'z', 'A'.. 'Z']; // Проверка допустимости символа
dec(L); // Предыдущий символ
end;
if t then writeln('True String') // Правильная строка
else writeln('False string]'); // Неправильная строка
Readln;
end.

Пример процедуры выводящей элементы множества с указанием их числа и её реализация (пример приложен к статье):

program Project1;

{$APPTYPE CONSOLE}

uses SysUtils;

var
a: set of char;
s: string[50];
count: integer;
I,l: integer;

procedure Mnogo;
var
ch: char;
begin
for ch:=low(char) to high(char) do
if ch in a then
begin
write(ch, ‘’);
inc(count);
end;
eadln;
eadln(‘Kol-vo eadln: ‘, count);
end;

begin
write(‘Enter the String please: ‘);
eadln(s);
l:=length(s);
for i:=1 to l do a:=a+[s[i]];
mnogo;
readln;
end.

Контрольні питання

1. Надати характеристику поняття множин

2. Навести формат запису множин у Делфі

3. Розглянути поняття пуста множина

4. Навести операції над множинами у Делфі

5. Навести приклади використання множин


АУДИТОРНЕ ЗАНЯТТЯ

ЗМІСТОВИЙ МОДУЛЬ 3: МАСИВИ. ЗАПИСИ ТА МНОЖИНИ

ТЕМА 3.3: МНОЖИНИ

Тема: Пуля (Рух одного об`єкту на зустріч іншому та відозміни останнього)

Мета: Створити програму, у якій по Вашій команді зі стволу буде вилітати пуля, попадати у кулю, яка буде розлітатися на багато маленьких частин

Теоретичні відомості

У процесі виконання лабораторної роботи потрібно створити форму, на якій розташувати синю кулю та частину стволу з якого буде вилітати пуля. У середині кулі розташуйте вісім маленьких кульок різного кольору. Також на формі потрібно розташувати кнопку Пуск, за допомогою якої користувач може повторити дії та кнопку Вогонь, при натисканні на яку пуля буде вилітати зі стволу. На формі потрібні ще два таймери. По першому таймеру пуля буде вилітати, а коли вона до кулі долетить, то вона повинна щезнути. Другий таймер керує рухом маленьких кульок. Кульки повинні розлітатись від того місця, у якому вони знаходились, у різні сторони. Для обох таймерів потрібно написати процедури. Також процедура потрібна для кнопок “Пуск” та “Вогонь”. На форму потрібно ще помістити мітку “Бажаєш іще? Жми сюди!”.

У даній лабораторній роботі описано приклад використання навичків організації руху об`єктів на формі для створення програми, було використано демонструючий вистріл, політ пулі та взрив кульки, у яку попадає пуля. У даній лабораторній роботи потрібно використати навички роботи з умовними реченнями.

Звіт по роботі повинний містити теоретичні відомості зі створення проекту, розміщення на формі кнопок, двох таймерів, також написання процедур для таймерів та обробку дій кнопок. У даній лабораторній роботі користувач повинен використати навички роботи з умовним реченням та навички з роботи з розмалювання графічних фігур.

Звіт також повинен утримувати у собі декілька малюнків форм цієї програми – до виконання вистрілу та після нього

 

Необхідні теоретичні відомості для практичної роботи:

 

У цій вправі Ви використаєте навички організації руху об`єктів на формі для створення програми, напишете процедури які б демонстрували вистріл, політ пулі та взрив кульки, у яку попадає пуля. У даній лабораторній роботи також потрібно використати навички роботи з умовними реченнями.

По вашій команді зі стовбура вилітає пуля, попадає в кульку, яка розлітається на безліч маленьких частин.

Створіть папку «Пуля». Створіть проект. У Рядку заголовка форми запишіть: “Пуля” (властивість Caption). Дайте формі ім'я: FormPulya (властивість Name). Збережіть модуль і проект під іменами UnitPulya і ProjectPulya у папці «Пуля».

На формі розташуйте велику синю кулю і частину стовбура, з якого буде вилітати пуля. У цьому Вам допоможуть компоненти TShape (фігура). Помістіть на форму велику синю кулю так, щоб горизонтально летюча куля (вона буде вилітати зі стовбура) потрапила в середину кулі рис. 2. Пуля буде летіти ліворуч або праворуч, тому стовбур повинний примикати до лівої границі форми. У середині кулі помістіть вісім маленьких кульок різного кольору. Це будуть маленькі шматочки, на які розлетиться велика куля. У початковий момент на формі будуть видні тільки стовбур і велика куля. Для маленьких кульок у властивості Visible (видимий) виберіть: False (неправда).

Рис. 2. Вікно форми «Пуля»

 

Щоб створити пулю виконайте наступні дії: Відкрийте текстовий редактор Microsoft Word. На панелі «Малювання» у «Автофігурах» виберіть одну з фігурних стрілок, найбільш схожу на пулю, і помістіть її в документ Word. Скопіюйте фігуру в Буфер обміну.

Поверніться до проекту у середовище програмування Delphi. У розділі меню Tools (Сервіс) знайдіть програму Image Editor (Графічний редактор) і запустіть її. У розділі меню File (Файл) цієї програми виберіть New - Bitmap File (.bmp) (Створити файл малюнка з розширенням.bmp). Коли відкриється вікно з порожньою заготівлею малюнка, у розділі меню Edit (Виправлення) виберіть команду Paste (Вставити). У заготівлі з'явиться зображення кулі, вставлене туди з Буфера обміну. Зафарбуйте саму кулю в сірий колір, а контур зробіть радикально чорним. Збережіть малюнок у папці «Пуля» під ім'ям «Пуля».

Помістіть на форму компонент TImage (Зображення). Зробивши подвійного щиглика на ньому, виберіть збережений у папці «Пуля» малюнок. У властивості Stretch (розтягання) для об'єкта Imagel виберіть значення: True (істина), для того щоб малюнок цілком розмістився в рамці. Розмістіть кулю і стовбур на формі так, щоб кулю не було видно за стовбуром. Для цього клацніть на об'єкті Imagel правою кнопкою миші і виберіть команду: Send to Back (на задній план). Запустіть проект і переконайтеся, що усе працює нормально.

Пуля по Вашій команді повинна вилетіти зі стовбура і долетіти до кулі. Коли пуля торкнеться кулі, вона повинна зникнути.

Кнопка з назвою «Вогонь» і 1-й таймер допоможуть Вам у цьому. Створіть кнопку і таймер, виключіть таймер. Додайте на форму кнопку «Пуск», ще один таймер і напис: «Хочеш ще? Жми сюди!».

Запишіть у тілі процедури кліка на кнопці «Вогонь» наступні оператори:

BitBtn2.Visible:=False; // кнопка зникає

Tiner.Enabled:=True; // включається 1-й таймер

Timerl.Interval:=10; // інтервал 1-го таймера; включений 1-й таймер працює відповідно до наступної процедури:

procedure TFormPulya.TimerITimer(Sender: TObject);

begin

if Imagel.Left>=Shapel.Left-Imagel.Width then

// перевірка умови

begin

Imagel.Visible:=False; // пуля зникає

Timer2.Enabled:=True; // включається 2-й таймер Timeг2.Interval:=10; // інтервал 2-го таймера Shapel.Visible:=False; // пуля зникає

Tirnerl.Enabled: =False; // виключається 1-й таймер

end

else

Imagel.Left:=Imagel.Left+10; //пуля рухається вправо

end;

Другий таймер керує рухом маленьких кульок. Кульки розлітаються від того місця, у якому вони знаходилися, у різні сторони. Коли вони досягають визначеної відстані від цього місця, вони стають невидимими і займають первісне положення. От як це описується в процедурі для 2-го таймера:

procedure TFormPulya.Timer2Timer(Sender: TObject);

begin

if Shape2.Left>=460 then

// перевірка умови для однієї з кульок

begin // щоб вона не полетіла дуже далеко

Shape2.Visible =False

Shape3.Visible =False

Shape4.Visible =False

Shape5.Visible =False // кульки зникають

Shape6.Visible =False

Shape7.Visible =False

Shape8.Visible=False

Shape.9.Visible =False

Labell.Visible =True; // з'являється запис Bbt_Pusk.

Visible:=True; // з'являється кнопка "Пуск"

Timer2.Enabled =False // виключається 2-й таймер

Shape2.left:=380;

Shape2.Top:=190;

Shape3.left:=380;

Shape3.Top:=190;

Shape4.1eft:=380;

// кульки повертаються на колишнє місце

Shape4.Тор:=190;

Shape5.left:=380;

Shape5.Top:=190;

Shape6.left:=380;

Shape6.Top:=190;

Shape7.left:=380;

Shape7.Top:=190;

Shape8.left:=380;

Shape8.Top:=190;

Shape9.1eft:=380;

Shape9.Top:=190;

end

else

//якщо умова не виконується (кулька полетіла далеко),:

begin

Shape2.Visible =True

Shape3.Visible =True

Shape4.Visible -True

Shape.5Visible =True

Shape6.Visible =True // кульки видимі

Shape7.Visible =True

Shape8.Visible =True

Shape9.Visible =True

Shape2.Left:=Shape2.Left + 7;

Shape3.Left:=Shape3.Left-7;

Shape4.Top:=Shape4.Top+7;

Shape5.Top:=Shape5.Top-7;

// кульки рухаються в різні сторони

Shape6.Left:=Shape6.Left-5;

Shape6.Top:=Shape6.Top+5;

Shape7.Left:=Shape7.Left+5;

Shape7.Top:=Shape7.Top+5;

Shape8.Left:=Shape8.Left-5;

Shape8.Top:=Shape8.Top-5;

Shape9.Left:=Shape9.Left+5;

Shape9.Top:=Shape9.Top-5;

end;

end;

Після закінчення «вибуху» стає видимим запис: «Хочеш ще? Жми сюди!» і кнопка «Пуск». Ця кнопка робить себе і запис невидимими, запускає 1-й таймер, робить видимимою пулю і кулю, і поміщає кулю в початкове положення:

procedure TFormPulya.bbtPuskClick(Sender: TObject);

begin

Labell.Visible:=False;

bbtPusk.Visible:=False;

Timerl.Enabled:=True;

Timer1.Interval:=l;

Image1.Visible:=True;

Shape1.Visible:=True;

Imagel.Left:=0;

end;

Усі процедури написані. Тіло форми зробіть чорним. Тепер можна і постріляти.

 

Контрольні питання:

1. Охарактеризуйте ідентифікатори мови Delphi.

2. Охарактеризуйте типи даних мови Delphi.

3. Опишіть процес використання процедур.

4. Опишіть процес використання функцій.

5. Охарактеризуйте керуючі структури мови Delphi.

6. Опишіть оператор шрифту відображення тексту в компонентах Font.


АУДИТОРНЕ ЗАНЯТТЯ

ЗМІСТОВИЙ МОДУЛЬ 3: МАСИВИ. ЗАПИСИ ТА МНОЖИНИ

ТЕМА 3.4: МНОЖИНИ




Поделиться с друзьями:


Дата добавления: 2014-12-25; Просмотров: 439; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.054 сек.