ТОП 10:

Розробка проекту «Ваша вага»



Завдання. Створити програму, яка буде «ставити діагноз» про відповідність ваги людини до норми ваги: за введеними значеннями ваги та росту програма має вивести на екран висновок: людині треба худнути, набрати вагу, чи, можливо її вага оптимальна.

 

Аналіз проекту

Для розробки проекту треба вміти організувати введення даних у компоненти форми та обробляти їх у програмі.

Для організації введення даних через об’єкти, розміщені на формі, обробки числових величин, виведення на форму результатів роботи програми використовується компонент Edit та функції перетворення рядкових даних на числові та навпаки. Річ у тім, що властивість Text об’єкта Edit може містити тільки рядкову величину. Тому для перетворення введеної текстової величини на ціле число використовують функцію StrToInt, а для перетворення текстової величини в дійсне число використовують функцію StrToFloat. Для виведення у поле компонента Edit числових значень необхідно зробити перетворення цілих та дійсних чисел на рядкові величини, скориставшись функціями IntToStr та FloatToStr.

Будемо вважати, що оптимальна вага людини визначається як різниця між ростом у сантиметрах і вагою в кілограмах. Якщо фактична вага менша за оптимальну, будемо вважати її худою, якщо більша – то повною.

ХІД РОБОТИ

Алгоритм розробки проекту

1. Створити папку С:\Delphi\lab_4_1.

2. Завантажити середовище візуального програмування Delphi.

3. Розмістити на формі візуальні компоненти Label1, Label 2, Label3, Label4, Edit1, Edit2, BitBtn1, BitBtn1.

4. У коді програми Unit1.pas ввести у розділі var змінні для збереження значень:

Factw – фактичної ваги;

Optw – оптимальної ваги;

Rost – росту;

Delta – різниці між оптимальною та фактичною вагою.

Спочатку будемо вважати, що всі дані будуть цілими числами:

var factW, optW,rost,delta:integer;

5. Створити процедуру, що оброблятиме подію, - клік лівою кнопкою миші на кнопці «Обчислити» (подія OnClick):

factW:=strtoint(edit1.Text);

rost:=strtoint(edit2.Text);

optw:=rost-100;

delta:=abs(factw-optw);

if optw=factw then label4.Caption:='Ваша вага оптимальна';

if optw>factw then label4.Caption:='Вам треба потовстішати на '+inttostr(delta)+' кг';

if optw<factw then label4.Caption:='Вам треба схуднути на '+inttostr(delta)+' кг';

6. Зберегти проект у папці С:\Delphi\lab_4_1.

7. Запустити проект та перевірити правильність його виконання.

 

Завдання для самостійного виконання

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

Підказка. Для цього необхідно використовувати дійсний тип змінних:

var factW, optW,rost,delta: real;

Перетворення дійсних на рядкові і навпаки виконується за допомогою функцій FloatToStr та StrToFloat.

  1. Внести до програми такі зміни:
  • Зробити для кожного з варіантів резюме свій шрифт та колір;
  • Передбачити можливість повторного введення даних, для цього додати кнопку «Очистити» з початковим значенням властивості Enabled=False; активізувати цю кнопку тільки після відпрацювання події OnClick для кнопки «Обчислити»; після очистки полів Edit1.Text, Edit2.Text та Label4.Caption знову зробити кнопку «Очистити» недоступною;
  • Зробіть так, щоб на початку роботи об’єкти, що стосуються введення росту (Label2 та Edit2), були невидимі і з’являлись би на екрані тільки після того, як буде введена вага.

Підказка. Для цього властивості Visible для цих об’єктів треба присвоїти значення False. Крім цього, треба створити процедуру обробки події OnChage (зміна значень) для об’єкта Edit1, в якій властивість Visible для об’єктів Label2 та Edit2 набуватиме значення true:

procedure TForm1.Edit1Chage (Sender: TObject);

begin

Label2.Visible:=True;

Edit2.Visible:=True;

end;

Розробка проекту «Обмін валюти»

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

· Заборона введення в числові поля нечислових даних;

· Заборона введення символу «мінус» в усіх позиціях числового поля;

· Заборона повтору введення символу «кома»;

· Перехід з об’єкта на об’єкт після натиснення на клавішу Enter;

· Встановлення чергового кольору для виведення суми грошей у гривнях.

 

Аналіз проекту

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

ХІД РОБОТИ

Алгоритм розробки проекту

1. Створити папку С:\Delphi\lab_4_2.

2. Завантажити середовище візуального програмування Delphi.

3. Розмістити на формі візуальні компоненти Label1, Label 2, Label3, Edit1, Edit2, Edit3, Button1.

4. Створити процедуру обробки події для кнопки «Обчислити», в яку занести зчитування даних з полів Edit1 та Edit2, обчислення суми гривень та виведення в поле Edit3 цього значення:

kurs:=strtofloat(edit1.Text);

suma_dol:=strtofloat(edit2.Text);

suma_gr:=suma_dol*kurs;

edit3.Text:=floattostr(suma_gr);

Спочатку будемо вважати, що всі дані будуть дійсними числами:

var kurs, suma_dol, suma_gr:real;

5. Для об’єкта Edit1 створити процедуру обробки події OnKeyPress, для цього: активізувати об’єкт, перейти на вкладку Events вікна Інспектора об’єктів, праворуч від назви події OnKeyPress ввести назву процедури, наприклад е1.

6. Занести в тіло процедури оператори:

procedure TForm1.e1(Sender: TObject; var Key: Char);

Begin

Case key of

'0'..'9', chr(8):;

',': if pos(',',edit1.Text)>0 then key:=chr(0);

chr(13): begin edit2.SetFocus; end;

else key:=chr(0);

end;

end;

7. Зробити подібну процедуру обробки події OnKeyPressдля об’єкта Edit2.

8. Зберегти проект у папці С:\Delphi\lab_4_2.

9. Запустити проект та перевірити правильність його виконання.

 

Завдання для самостійного виконання

  1. Зробіть так, щоб на початку роботи кнопка «Обчислити» була неактивною (властивість Enabled=False) і ставала б доступною тільки після того, як буде введена сума доларів.
  2. Передбачити можливість повторного введення курсу долара та суми доларів. Для цього додати кнопку «Очистити» з початковим значенням властивості Enabled=False; активізувати цю кнопку тільки після відпрацювання події OnClick для кнопки «Обчислити»; після очистки полів edit1.Text, edit2.Text, edit3.Text знову зробити кнопки «Очистити» та «Обчислити» недоступними; встановити курсор на поле Edit1.

Питання для самоконтролю:

1. Що таке тип даних?

2. Які типи відносять до простих?

3. Яка функція повертає модуль числа х?

4. Яка функція повертає символ по його коду?

5. Який тип даних задається переліком тих значень, які він може одержувати?

6. Яка функція перетворює дату в рядок символів?

7. Яка функція повертає поточну дату і час?

8. Які типи відносять до структурованих в мові Object Pascal?

9. Яким чином здійснюється опис типу множина?

10. Яка функція перетворює ціле значення в рядок символів?


Лабораторна робота №5

Тема:Розробка програм на розгалуження та цикли.

Мета роботи: навчитися користуватися простими компонентами організації перемикань (TСheckBox, TRadioGroup). Написати і відладити програму алгоритму, що розгалужується.

Завдання

Ввести три числа – x,y,z. Обчислити по розгалуженні u=sin(x) або u=cos(x), або u=tg(x). Знайти за бажанням максимальне з трьох чисел: max(u,y,z), або max (|u|,|y|,|z|).

ХІД РОБОТИ

1.Створити папку С:\Delphi\lab_5.

2. Завантажити середовище візуального програмування Delphi.

3. Створити форму, представлену|уявляти| на малюнку, і написати відповідну програму, скоректувавши текст написів Label|надписів| і положення|становище| вікон TEdit|. Крім того, розмістіть на формі компонент Memo для відображення інформації про виконання роботи, а також кнопку для запуску обчислень програми.

 

 

|

 

 

4. Виберіть в меню компонентів Standard піктограму і помістите її в потрібне місце форми. За допомогою інспектора об'єктів зміните заголовок (Caption) на “maxabs”. У тексті програми з'явилася змінна CheckBox1 типу TСheckBox. Тепер залежно від того, натиснута чи ні кнопка, булева змінна CheckBox1.Checked набуватиме значень true або false.

5. Виберіть в меню компонентів Standard| піктограму і помістите її в потрібне місце|місце-милю| форми. На формі з'явиться|появлятиметься| облямований лінією чистий прямокутник із|із| заголовком RadioGroup1|. Заміните заголовок (Caption|) на U(x). Для того, щоб розмістити на компоненті кнопки, необхідна властивість Columns| встановити рівним одиниці (кнопки розміщуються в одному стовпці). Двічі клацніть|лускайте| по правій частині|частці| властивості Items| мишею, з'явиться|появлятиметься| рядковий редактор списку заголовків кнопок. Наберіть три рядки з|із| іменами: у першому рядку - cos|(x), в другій - sin|(x), в третій - tg|(x), натисніть|натискуйте| ОК. Після|потім| цього на формі усередині|всередині| оздоблення|облямовувати| з'явиться|появлятиметься| три кнопки-перемикачі з|із| введеними|запроваджувати| написами|надписами|. Зверніть увагу на те, що в тексті програми з'явилася змінна RadioGroup1 типу TRadioGroup. Тепер при натисненні однієї з кнопок групи в змінній цілого типу RadioGroup1.ItemIndex знаходитиметься номер натиснутої клавіші (відлічується від нуля), що використовується в тексті приведеної програми.

6. Створити процедури-обробники подій FormСreate| і Button1Сlick|, текст процедур приведений нижче.

procedure| TForm1|.FormCreate(Sender|: TObject|);

begin|

Edit1|.text:='0,1';

Edit2|.text:='0,356';

Edit3|.text:='0';

Memo1|.Clear;

Memo1|.Lines.Add('Виконав студент групи ПК-32');

end|;

procedure| TForm1|.Button1Click(Sender|: TObject|);

var| x,y,z,u,ma:extended|;

begin|

// Введення початкових|вихідних| даних і їх вивід|висновок| у вікно Memo1|

x:=StrToFloat|(Edit1|.Text);

Memo1|.Lines.Add(' x='+Edit1|.Text);

y:=StrToFloat|(Edit2|.Text);

Memo1|.Lines.Add(' y='+Edit2|.Text);

z:=StrToFloat|(Edit3|.Text);

Memo1|.Lines.Add(' z='+Edit3|.Text);

// Перевірка номера натиснутої|натискувати| кнопки і вибір відповідної нею функції

case| RadioGroup1|.ItemIndex of|

0: u:=cos|(x);

1: u:=sin|(x);

2: u:=sin|(x) /cos(x);

end|;

// Перевірка стану|достатку| кнопки CheckBox1|

if| CheckBox1|.Checked then|

begin| u:=abs|(u);

y:=abs|(y);

z:=abs|(z) end|;

// Знаходження максимального з|із| трьох чисел

if| u>y| then| ma:=u| else| ma:=y|;

if| z>ma| then| ma:=z|;

if| CheckBox1|.Checked then|

Memo1|.Lines.Add(' maxabs='+FloatToStrF|(ma,ffFixed,8,2|))

else|

Memo1|.Lines.Add(' max='+FloatToStrF|(ma,ffGeneral,8,2|));

end|;

 

7. Запустити проект та перевірити правильність його виконання.

||

ТЕОРЕТИЧНІ ВІДОМОСТІ







Последнее изменение этой страницы: 2016-04-18; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.235.172.213 (0.009 с.)