Автор: Пользователь скрыл имя, 11 Ноября 2011 в 17:14, курсовая работа
Написати програму для Windows, в якій:
1) Створити головне вікно. Заголовок містить ПІБ, гр., вар.
2) Створити меню вигляду: Input Choose Calc About Quit
Пункт Calc заборонений. При виборі Quit програма закривається.
3) При виборі Input відкривається діалогове вікно вигляду 1:
При виборі Choose відкривається діалогове вікно вигляду 2:
Завдання до курсової роботи 2
Завдання №1 2
Завдання №2 3
Завдання №3 4
Реферат 5
Зміст 6
Вступ 9
Розділ 5. Основна частина 10
Середовище Delphi 10
5.1. Оператори та функції,оператор begin end. 10
5.2.Робота з текстовими файлами. 11
5.3. Процедура assignfile. 11
5.4.Процедура reset 12
5.5. Процедура rewrite 12
5.6.Процедура closefile 13
5.7.Умовний оператор IF. 13
5.8.Приклад використання умовного оператору if для запису інформації у текстовий файл. 15
5.9.Складені умови 20
5.10.Операція and 20
5.11.Операція or 21
5.12.Операція заперечення not. 21
5.13.Операція xor 21
5.15.Використання оператору IF зі складеними умовами. 24
5.16.Оператор вибору CASE. 27
Висновок 28
Список використаної літератури 29
var
f:textfile;
s:string;
та опишемо оператори, що відкривають файл на запис. Фрагмент програми матиме вигляд:
var
f:textfile;
s:string;
procedure TForm1.Button1Click(Sender: TObject);
begin
assignfile(f,'c:\a.txt');
rewrite(f);
end;
У цій же ж підпрограмі має зникати з екрану клавіша Button1, Button2 та Edit1 – з’являтись. Тому текст підпрограми матиме вигляд:
var
f:textfile;
s:string;
procedure TForm1.Button1Click(Sender: TObject);
begin
assignfile(f,'c:\a.txt');
rewrite(f);
button2.visible:=true;
edit1.visible:=true;
button1.visible:=false;
end;
Наступним кроком є встановлення головної події для клавіші Button2, де має відбуватись зчитування з Edit1 тексту та запису його у файл. Це виглядає таким чином:
procedure TForm1.Button2Click(Sender: TObject);
begin
s:=Edit1.Text;
writeln(f,s);
closefile(f);
end;
Але зчитування повинно проводитись поки не буде набрано рядок END, тому необхідним є використання умовного оператору if, і текст процедури матиме вигляд
procedure TForm1.Button2Click(Sender: TObject);
begin
s:=Edit1.Text;
if s<>'END' then
writeln(f,s)
else
closefile(f);
end;
тобто поки введений рядок тексту не є END, то здійснюється запис цього рядка у файл, а у противному випадку – файл закривається.
Логічно додати сюди ще дії, у яких клавіша Button2 та рядок Edit1 стають невидимими, а клавіша Button1 - видимою:
procedure TForm1.Button2Click(Sender: TObject);
begin
s:=Edit1.Text;
if s<>'END' then
writeln(f,s)
else
begin
closefile(f);
button1.visible:=true;
edit1.visible:=false;
button2.visible:=false;
end;
end;
Таким
чином, при запуску написаної
програми, на екран виводиться вікно
Мал №5.8.4.Форма запуску програми.
Далі, після
натискання на клавішу Button1, отримаємо
Мал №5.8.5.Форма з компонентою Edit1.
і вводимо текст у рядок Edit1, підтверджуючи натисканням на клавішу Button2. Як тільки буде введено рядок END і натиснуто на Button2, файл с:\a.txt буде створено і на екран виведеться вікно
Повний текст програми має вигляд:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
var
f:textfile;
s:string;
procedure TForm1.Button1Click(Sender:
TObject);
begin
assignfile(f,'c:\a.txt');
rewrite(f);
button2.visible:=true;
edit1.visible:=true;
button1.visible:=false;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
s:=Edit1.Text;
if s<>'END' then writeln(f,s)
else
begin
closefile(f);
button1.visible:=true;
edit1.visible:=false;
button2.visible:=false;
end;
end;
end.
Вище ми розглядали використання умовного оператору IF з простою умовою, тобто сама умова складалась з одного порівняння. Але частою є необхідність перевіряти більш складні умови. Постає питання: як їх записати?
Принцип запису складених умов схожий до запису виразів “з дужками” тільки сам вираз має бути логічного (булевського) типу. Дужки визначають пріоритет виконання порівнянь.
Якщо умова є складеною (тобто здійснюється кілька порівнянь одночасно), то краще її всю взяти у дужки. Для одночасного виконання двох умов між ними ставиться “and”, для виконання однієї з двох умов між ними ставиться “or”
Як вже зазначалось вище, операція and використовується, коли перевіряється одночасне виконання двох або більше умов.
Наприклад якщо нам необхідно перевірити справедливість виразу a<b<c, то саме порівняння матиме вигляд
іf (a<b) and (b<c) then ...
і вираз (a<b) and (b<c) матиме логічний тип причому прийматиме значення true якщо і (a<b), і (b<c) прийматимуть значення true одночасно. Якщо ж хоч одне зі значень буде false, то і сам вираз матиме значення false.
Сам вираз a<b and b<c (тобто без дужок) не є логічним і програма видасть повідомлення про помилку.
Операція “or” використовується для перевірки виконання хоча б однієї з умов.
Наприклад якщо нам необхідно перевірити справедливість виразу “a є дійсним числом і a не може бути у межах (0,1)”, то порівняння матиме вигляд
іf (a<0) or (a>1) then ...
і означає, що якщо виконується хоч одна з елементарних умов, то і вся умова виконується
Операція “not” використовується для зміни значення логічної змінної на протилежне.
Наприклад, якщо нам потрібно перевірити умову, що змінна a є додатньою, та парною, то умова матиме вигляд
if (a>0) and ( not odd(a) ) then …
Операція “хor” використовується для перевірки виконання виключно однієї з умов. Наприклад:
if (a<2) xor (b>3)
прийматиме значення TRUEякщо, наприклад
a=1, b=2; a=3,b=4 – тобто тільки одна з умов задовольняється;
і прийматиме значення FALSE якщо, наприклад
a=1,b=4; a=3,b=2 – тобто коли або обидві умови виконуються, або обидві не виконуються.
Іноді xor та or співпадають.
Наприклад умова:
іf
(a<0) хor (a>1)
та іf
(a<0) or (a>1) співпадають.
5.14.Побудова складених умов.
Розглянемо приклад і на ньому сформулюємо рекомендації для уникання помилок при побудові складених умов.
Нехай у програмі вводяться два дійсних значення а та b і потрібно перевірити чи виконується для них умова, що точка c з координатами (x,y) потрапляє у заштриховану область.
Мал №5.14.7.Координатна площина
Перш за все потрібно побудувати складену умову і розбити її на простіші.
Очевидно, що якщо точка потрапляє у заштриховану фігуру, то вона потрапляє або у прямокутник А, або у прямокутник В, або і у А, і у В, тобто на відрізок, що належить і А, і В.
Зрозуміло, що умова запишеться таким чином:
if (cÎA) or (cÎB) then
Тепер розпишемо окремо умови cÎA та cÎB.
Якщо cÎA, то виконується умова (-1£x£1) та (0£y£1/2)
Якщо cÎB, то виконується умова (-1/2£x£1/2) та (-1£y£0)
Тепер умова запишеться так:
if ((-1£x£1) and (0£y£1/2)) or ((-1/2£x£1/2) and (-1£y£0)) then
Але умови вигляду (-1£x£1) не сприймаються Delphi і їх потрібно розбивати на елементарні умови. Отже
(-1£x£1) матиме вигляд (x>=-1) and (x<=1)