Крапку з комою після do не ставлять.
Змістовий модуль 2
Практичне заняття № 1
Тема:Множинний вибір. Оператор CASE.
Мета:Ознайомити студентів з поняттям множинного вибору. Розглянути призначення оператора вибору. Закріпити отримані знання на практиці.
Література
1. М.С.Львов, О.В.Співаковський. Основи алгоритмізації та програмування. Навчальний посібник – Херсон, 1997. – 122с.
2. Львов М.С., Співаковський О.В. Вступ до об¢єктно-орієнтованого програмування.–Херсон:ХДПУ.-240 с.
3. Фаронов В.В. Delphi 6.Учебний курс.-М.:Издатель Молгачева С.В.,-672с.,ил.
4. Т.Бадд.. Объектно-ориентированное программирование в действии / пер. с англ. - СПб.:Питер, 1997.- 464 с. ил.
5. http://www.programmersclub.ru/book/ - електронні підручники по Delphi
6. http://pitbooks.ru/delphi/ - електронні підручники по Delphi
Короткі теоретичні відомості
Інколи розгалуження в програмі слід зробити не на основі логічної умови, а на основі значення деякої змінної.
Наприклад
Якщо a = 1, то вивести “один”, якщо a = 2, то — “два”, … до п’яти. Якщо інше значення, то вивести “я не знаю”.
Використовуючи умовний оператор, матимемо запис:
if a = 1 then writeln(‘один’) else if a = 2 then writeln(‘два’) else if a = 3 then writeln(‘три’) else if a = 4 then writeln(‘чотири’) else if a = 5 then writeln(‘п’’ять’) else writeln(‘я не знаю’);Як бачимо, написання подібного коду є занадто громіздким і знижує ефективність роботи алгоритму. Аналогічним по функціоналу, але більш зручним та ефективним для більшої кількості вкладених умов є оператор Case.
|
|
Case, of, else, end - зарезервовані слова.
Змінна - може бути одним із стандартних типів: символьним типом, цілим числом, перераховуваних типом ... Замість значення може стояти простий оператор.
значення N - довільне значення, того ж типу, що й змінна.
оператор N - будь-які оператори.
Робота оператора вибору здійснюється наступним чином. Спочатку якщо необхідно обчислюється значення змінної. Потім шукається відповідність змінної значенням N. При рівності відбувається виконання оператора N і оператор case завершує свою роботу. Якщо збігів не знайдено то виконується оператор розташований після слова else. При відсутності оператора else, коли немає відповідності оператор case завершить свою роботу і буде виконаний
Якщо в якомусь блоці потрібно виконати декілька дій, то вони беруться між begin і end.
Так, описана вище задача матиме вигляд:
case a of 1: writeln(‘один’); 2: writeln(‘два’); 3: writeln(‘три’); 4: writeln(‘чотири’); 5: writeln(‘п’’ять’); else writeln(‘я не знаю’);end;Варто відзначити, що If і Case хоч і є умовними операторами з однаковими можливостями, використовуються вони для різних цілей виключно по зручності. У якихось випадках набагато зручніше використовувати If, наприклад коли умови мають складну конструкцію, в інших випадках зручно використовувати Case, наприклад коли нам потрібно створити умову, що має кілька однакових за структурою умовних вкладень.Завдання для виконання
|
|
Користувач вводить номер стану світлофора, а програма виводить кольори запалених у цей момент лампочок. Є 5 станів світлофора: червоний, червний+жовтий, зелений, мигаючий зелений, жовтий.
Домашнє завдання
1. Модернізувати програму таким чином, щоб під 6-им станом світлофора знову розумівся 1-ий, під 7-им — 2-ий і т. д.
2. Крім кольору «автомобільного» світлофора, виводити одночасно колір світла, яке зараз світиться для пішоходів.
3. Додати зображення світлофора, який би змінював колір лампочок в залежності від активного стану.
Контрольні питання
- Поняття умовного оператора
- Конструкція оператора If
- Які форми запису умовного оператора ви знаєте?
- Що таке оператор вибору?
- Алгоритм роботи оператора case.
- Що ми називаємо вкладеною умовою?
Практичне заняття № 2
Тема:Оператори циклів. Цикл For.
Мета:Ознайомити студентів з поняттям циклу. Розглянути призначення циклу For. Закріпити отримані знання на практиці.
|
|
Література
1. М.С.Львов, О.В.Співаковський. Основи алгоритмізації та програмування. Навчальний посібник – Херсон, 1997. – 122с.
2. Львов М.С., Співаковський О.В. Вступ до об¢єктно-орієнтованого програмування.–Херсон:ХДПУ.-240 с.
3. Фаронов В.В. Delphi 6.Учебний курс.-М.:Издатель Молгачева С.В.,-672с.,ил.
4. Т.Бадд.. Объектно-ориентированное программирование в действии / пер. с англ. - СПб.:Питер, 1997.- 464 с. ил.
5. http://www.programmersclub.ru/book/ - електронні підручники по Delphi
6. http://pitbooks.ru/delphi/ - електронні підручники по Delphi
Короткі теоретичні відомості
Для програмування циклів з відомим числом повторень слід користуватися оператором for. Цей оператор передбачає повторне виконання деякого іншого оператора з одночасною зміною за правилом арифметичної прогресії значення, що привласнюється змінній цього циклу, що управляє.
Оператор циклу з параметром має наступний вигляд:
FORпараметр циклам := поч. знач.ТОкін. знач. DOоператор;
або
FORпараметр циклу := поч. знач. DOWNTO кін. знач. DOоператор;
Тут FOR (для), ТО (до), DO (виконати) DOWNTO (вниз до), - службові слова;
параметр циклу -змінна будь-якого скалярного типа, окрім речовинного;
|
|
поч. знач., кін. знач. -скалярні вирази того ж типа, що і параметр циклу;
оператор -будь-який оператор мови.
Крапку з комою після do не ставлять.
При використанні в циклі службового слова ТЕ значення параметра циклу збільшується, при DOWNTO - зменшується. Крок зміни параметра циклу залежить від його типа. Найчастіше використовується змінна цілого типа, що визначає крок, рівний 1 при ТЕ, і -1 - при DOWNTO.
Приклад:
for i:=l to 10 do begin
label1.caption:=label1.caption + '*'; end;
for i: =1 to n do s := s+i;
Якщо між begin і end знаходиться тільки одна інструкція, то слова begin і end можна не писати.
Розглянемо наступне завдання. Хай потрібно написати програму, яка обчислює значення функції у = 5х2 - 7 в крапках —1, -0.5, 0, 0.5 і 1 (таблиця повинна бути виведена в полі мітки форми застосування). Процедура, що забезпечує рішення поставленої задачі, може виглядати так:
procedure TForm1.ButtonlClick(Sender: TObject);
var
у: real; // значення функції
x: real; // аргумент функції
dx: real; // приріст аргументу
st: string; // зображення таблиці
i : integer; // лічильник циклів
begin
st:=''; x := -1; dx := 0.5;
for i:=l to 5 do begin
у := 5*x*x -7;
st := st+ FloatToStr(x)+' '+ FloatToStr(y)+chr(13); x :=x + dx; end;
Label1.Caption := st;
end;
Рисунок 1 Алгоритм оператора for
Алгоритм, відповідний оператора for, представлений на мал. 1 Звернете увагу, що якщо початкове значення лічильника більше кінцевого значення, то послідовність операторів між begin і end не буде виконана жодного разу.
Крім того, після кожного виконання інструкцій тіла циклу лічильник циклів збільшується автоматично.
Змінну-лічильник можна використовувати усередині циклу (але у жодному випадку не змінювати). Наприклад, в результаті виконання наступних інструкцій:
tab1: = '' ;
for i:=l to 5 do
begin
tab1:=tabl+IntToStr(i)+' '+IntToStr(i*i)+chr(13);
end;
змінна tabl містить зображення таблиці квадратів чисел.
Розглянемо програму, яка обчислює суму перших 10 елементів ряду:
1 + + 1/3 + ... (значення i-го елементу ряду пов'язане з його номером формулою 1//). Діалогове вікно програми повинне містити, принаймні, два компоненти: поле мітки (Label1) і командну кнопку (Buttonl).
Обчислення суми ряду і виведення результату виконує процедура обробки події Onclick, текст якої приведений нижче. Після обчислення чергового елементу ряду процедура виводить в полі Labell номер елементу і його значення в поле мітки форми, призначене для виведення результату.
procedure TForm1.ButtonlClick(Sender: TObject);
var
i:integer; { номер елементу ряду }
elem:real; { значення елементу ряду }
summ:real; { сума елементів ряду )
begin
summ:=0;
label Leapt ion: = ' ' ;
for i:=l to 10 do begin
elem:=l/i;
label1.caption:=labell.caption+
IntToStr(i)+' '+FloatToStr(elem)+#13; sunrn: =summ+elem;
end;
label1.caption:=label1.caption+'Сумма ряду:'+FloatToStr(summ);
end;
end.
Завдання для виконання
Мета роботи - створити комп'ютерну версію однієї з головоломок Самуеля Ллойда: із заданого набору чисел треба вибрати ті, сума яких складе 50. Числа, які обрав Ллойд для своєї головоломки: 25, 27, 3, 12, 6, 15, 9, 30, 21, 19.
Рис.2
Виконати наступні дії:
1. Після запуску програми у вікні зображується список чисел Ллойда.
2. Вибираємо за допомогою прапорців числа і поміщаємо в праве вікно.
3. Сума вибраних чисел представлена у вигляді напису.
4. Для виходу з програми необхідно натиснути мишею на закриваючою кнопці в рядку заголовка.
Опис плану розробки програми
1. Відкрити новий проект.
2. Розмістити на формі екземпляри компонентів: список прапорців CheckListBox, напис Label, список ListBox.
3. Виконати наступні дії:
Виділений об’єкт | Вкладка вікна Object Inspector | Ім’я властивості/ ім’я події | Дія |
Form1 | Properties | Caption | Встановлюємо ім’я форми «Головоломка» |
BorderStyle | Задаємо значення bsSingle | ||
CheckListBox1 (Вкладка Additional ) | Properties | Items | Задаємо склад списку. клацнути на кнопці будівника. відкриється вікно String List editor (Редактор списку рядків). Введіть у список задані числа через Enter. Натисніть кнопку OK. |
Height | Підібрати значення так, щоб всі числа помістилися в список (без смуг прокручувань). | ||
Events | OnClickCheck | Описати очищення списку. перевірити, встановлений прапорець чи ні. після оновлення списку необхідно підрахувати суму вибраних чисел. Елементи списку виглядають як числа, але є текстовими рядками (Скористатися функцією StrToInt). | |
ListBox1 (Вкладка Standard) | Properties | Height | Підібрати значення так, що всі числа помістилися в список (без смуг прокручувань). спочатку список порожній. Заповнюватися він буде при роботі програми. |
Label1 (Вкладка Standard) | Properties
| Caption | Введіть текст: «Сумма:0» |
Autosize | Задайте значення False | ||
Alignment | Задайте значення taCenter |
4. Збережіть проект, запустіть та протестуйте його.
Лістинг підпрограми
procedureTForm1.CheckListBox1ClickCheck (Sender: TObject);
vari, s: Integer;
Begin
ListBox1.Clear;
fori: = 0 toCheckListBox1.Items.Count-1 do
ifCheckListBox1.Checked[i] then
ListBox1.Items.Add (CheckListBox1.Items[i]);
s := 0;
fori := 0 toListBox1.Items.Count -1 do
s := s + StrToInt(ListBox1.Items[i]);
Label1.Caption := ‘Сумма: ’ + IntToStr(s);
ifs = 50 then
Begin
Label1.Caption := ‘Сумма:’ + IntToStr (s);
CheckListBox1.Enabled := False;
ListBox1.Enabled := False;
end;
end;
Контрольні питання
- Що таке цикл? Наведіть приклади.
- Який процес називається циклічним?
- Що таке змінна циклу? Приклади.
- 4.3 яких складових утворюється алгоритм циклічної структури?
- Що таке тіло циклу? Його розміри в кількості інструкцій?
- Що таке параметр циклу? Який існує закон його зміни?
- Розкажіть про циклічний алгоритм з параметром.
- Наведіть приклад циклічного обчислювального процесу.
- Що таке цикл з параметром в Object Pascal?
- Чим відрізняються інструкції for з to, downto та як вони використовуються?
- Які правила організації циклу Вам відомі?
- Чи можна змінювати параметр циклу в його тілі? Якщо так, то яким чином?
- Що відбудеться при використанні службового слова to в циклі, якщо початковий вираз буде більшим за кінцевий?
- Скільки операторів може стояти після службового слова do в циклі?
- Як зберегти останнє значення параметру циклу?
- Що таке змінні лічильника, що вони собою являють?
Практичне заняття № 3
Тема:Оператори циклів. Цикли while та repeat.
Мета:Розглянути призначення циклу та структуру операторів циклу while та repeat. Закріпити отримані знання на практиці.
Література
1. М.С.Львов, О.В.Співаковський. Основи алгоритмізації та програмування. Навчальний посібник – Херсон, 1997. – 122с.
2. Львов М.С., Співаковський О.В. Вступ до об¢єктно-орієнтованого програмування.–Херсон:ХДПУ.-240 с.
3. Фаронов В.В. Delphi 6.Учебний курс.-М.:Издатель Молгачева С.В.,-672с.,ил.
4. Т.Бадд.. Объектно-ориентированное программирование в действии / пер. с англ. - СПб.:Питер, 1997.- 464 с. ил.
5. http://www.programmersclub.ru/book/ - електронні підручники по Delphi
6. http://pitbooks.ru/delphi/ - електронні підручники по Delphi
Короткі теоретичні відомості
Оператор while
Оператор (цикл) while використовується в тому випадку, якщо деяку послідовність дій (інструкцій програми) треба виконати кілька разів, причому необхідне число повторень під час розробки програми невідомо і може бути визначено тільки під час роботи програми.
Типовими прикладами використання циклу while є обчислення із заданою точністю, пошук в масиві або у файлі.
У загальному вигляді інструкція while записується таким чином:
While умова do begin
// тут інструкції, які треба виконати кілька разів
End
де умова — вираз логічного типа, що визначає умову виконання інструкцій циклу.
Оператор while виконується таким чином:
1. Спочатку обчислюється значення виразу умова.
2. Якщо значення виразу умова рівне False (умова не виконується), то на цьому виконання інструкції while завершується.
3. Якщо значення виразу умова рівне True (умова виконується), то виконуються розташовані між begin і end інструкції тіла циклу. Після цього знову перевіряється виконання умови. Якщо умова виконується, то інструкції циклу виконуються ще раз. І так до тих пір, поки умова не стане помилковою (False).
Для того, щоб інструкції циклу while, які знаходяться між begin і end, були виконані хоч би один раз, необхідно, щоб перед виконанням інструкції while значення виразу умова була істинна. Алгоритм, відповідний інструкції while, представлений на мал. 2.
Рисунок 3 Алгоритм оператора while
Для того, щоб цикл завершився, потрібно, щоб послідовність інструкцій між begin і end впливала на значення виразу умова (змінювала значення змінних, що входять у вираз умова).
Оператор repeat
Оператор repeat, як і оператор while, використовується в програмі в тому випадку, якщо необхідно виконати повторні обчислення (організувати цикл), але число повторень під час розробки програми невідомо і може бути визначено тільки під час роботи програми, тобто визначається ходом обчислень.
У загальному вигляді інструкція repeat записується таким чином:
Repeat
// інструкції
Unti1 умова
де умова - вираз логічного типа, що визначає умову завершення циклу.
Інструкція repeat виконується таким чином:
1. Спочатку виконуються тіла циклу, що знаходяться між repeat і until інструкції.
2. Потім обчислюється значення виразу умова. Якщо умова помилково (значення виразу умова рівне False), то інструкції тіла циклу виконуються ще раз.
3. Якщо умова істинно (значення виразу умова рівне True), то виконання циклу припиняється.
Таким чином, інструкції циклу, що знаходяться між repeat і unti1, виконуються до тих пір, поки умова помилково (значення виразу умова рівне False).
Алгоритм, відповідний інструкції repeat, представлений на мал. 4.
Рисунок 4 Алгоритм, відповідний інструкції repeat
Інструкції циклу, що знаходяться між repeat і until, виконуються як мінімум один раз. Для того, щоб цикл завершився, необхідно, щоб інструкції циклу, розташовані між repeat і until, змінювали значення змінних, що входять у вираз умова.
Завдання для виконання
1.Написати програму, яка обчислює значення числа ПІ з точністю, програми, що задається користувачем під час роботи.
У основі алгоритму обчислення лежить той факт, що сума ряду 1 - 1/3 + 1/5 -1/7 + 1/9 + ... наближається до значення ПИ/4 при достатньо великій кількості членів ряду.
Кожен член ряду з номером n обчислюється за формулою: 1/(2*n - 1) і умножається на мінус один, якщо n парне (визначити, чи є ПІ парним, можна перевіркою залишку від ділення ПІ на 2). Обчислення закінчується тоді, коли значення чергового члена ряду стає меншим, ніж задана точність обчислення.
Вид діалогового вікна програми під час її роботи приведений на Рис. 3. Користувач вводить точність обчислення в поле введення (Edit1). Після клацання на командній кнопці Обчислити (Buttonl) програма обчислює значення числа л і виводить результат в полі мітки (Label1).
Як і в попередніх прикладах, основну роботу виконує процедура обробки події OnClick.
Рисунок 5 Діалогове вікно програми Обчислення ПІ
Лістинг обчислення числа ПІ
unit pi_; interface
uses
Windows, Messages, SysUtils, Classes, Graphics
Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit; // точність обчислення
Button1: TButton; // кнопка Обчислити
Label1: TLabel;
Label2: TLabel; // поле виведення результату
procedure ButtonlClick(Sender: TObject); private
{ Private declarations }
public
{ Public declarations )
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
pi:real; // обчислюване значення ПІ
t:real; // точність обчислення
n:integer; // номер члена ряду
elem:real; // значення члена ряду
begin
pi := 0;
n := 1;
t := StrToFloat(editl.text);
elem := 1; // щоб почати цикл
while elem >= t do
begin
elem := 1 / (2*n - 1) ; if n MOD 2=0
then pi := pi — elem else pi := pi + elem; n := n + 1;
end;
pi: = pi * 4; labell.caption:= 'ПІ рівне '+ FloatToStr(pi)+ #13
+ 'Підсумовано '+IntTostr(n)+' членів ряду.'; end;
end.
2.Написати програму, яка перевіряє, чи є введене користувачем число простим (як відомо, число називається простим, якщо воно ділиться тільки на одиницю і саме на себе).
Наприклад, число 21 — звичайне (ділиться на 3), а число 17 — простої (ділиться тільки на 1 і на 17).
Перевірити, чи є число n простим, можна діленням числа n на два, на три і т.д. до n і перевірки залишку після кожного ділення. Якщо після чергового ділення залишок рівний нулю, то це означає, що знайдено число, на якому n ділиться без залишку. Порівнявши n і число, на якому n розділилося без залишку, можна визначити, чи є n простим числом.
Рисунок 6 Форма застосування Просте число
Лістинг програми
unit simple_;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton; // кнопка Перевірити
Label1: TLabel;
Edit1: TEdit; // поле введення числа
Label2: TLabe1; // поле виведення результату
procedure ButtonlClickfSender: TObject); private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.ButtonlClick(Sender: TObject) ;
var
n: integer; // число d, що перевіряється: integer; // дільник
r: integer; // залишок від ділення n на d
begin
n:=StrToInt(Editl.text);
d := 2; // спочатку ділитимемо на два
repeat
r := n mod d;
if r <> 0 // n не розділилося без остачі на d
then d := d + 1;
until r = 0; // знайдене число, на якому п розділилося без залишку
label2.caption:=Edit1.text;
if d = n
then Iabel2.caption:=label2.caption + ' — просте число.'
else label2.caption:=label2.caption + ' — звичайне число.';
end;
end.
Контрольні питання
- Що таке цикл? Наведіть приклади.
- Який процес називається циклічним?
- Що таке змінна циклу? Приклади.
- 4.3 яких складових утворюється алгоритм циклічної структури?
- Що таке тіло циклу? Його розміри в кількості інструкцій?
- Що таке модифікація циклу?
- Як управляти циклом? Як виконується перехід до початку циклу?
- Наведіть загальний вигляд циклічного алгоритму.
- Скільки операторів може стояти після службового слова do в циклі?
- Як зберегти останнє значення параметру циклу?
- У я кому випадку слід використовувати оператор While?
- Яка форма запису оператору циклу Repeat? У якому випадку використовується вказаний оператор?
Практичне заняття № 4
Тема:Строковий тип даних
Мета:Ознайомити студентів зі строковим типом даних. Розглянути процедури та функції для роботи зі строковим типом даних. Закріпити отримані знання на практиці.
Література
1. М.С.Львов, О.В.Співаковський. Основи алгоритмізації та програмування. Навчальний посібник – Херсон, 1997. – 122с.
2. Львов М.С., Співаковський О.В. Вступ до об¢єктно-орієнтованого програмування.–Херсон:ХДПУ.-240 с.
3. Фаронов В.В. Delphi 6.Учебний курс.-М.:Издатель Молгачева С.В.,-672с.,ил.
4. Т.Бадд.. Объектно-ориентированное программирование в действии / пер. с англ. - СПб.:Питер, 1997.- 464 с. ил.
5. http://www.programmersclub.ru/book/ - електронні підручники по Delphi
6. http://pitbooks.ru/delphi/ - електронні підручники по Delphi
Короткі теоретичні відомості
Рядок – це послідовність символів. В Object Pascal та Delphi існує кілька строкових типів. Ось основні з них:
Тип даних | Максимальна довжина | Пам’ять, яка використовується | Використовується для … |
ShortString | 255 символів | від 2 до 256 байт | Мінімальна сумісність, зберігання невеликих рядків |
AnsiString | близько 2 ^ 31 символів | від 4 байт до 2 Гб | 8-бітові символи (ANSI), DBCS ANSI, MBCS ANSI і т.д. |
WideString | близько 2 ^ 30 символів | від 4 байт до 2 Гб | Юнікод-символи – багатокористувальницькі сервера, багатомовними програми |
Для більшості цілей підходить тип AnsiString (Іноді називається Long String).
Стандартні функції обробки рядків:
1) Функція Length(Str: String) – Повертає довжину рядка (символів). Приклад:
var
Str: String; L: Integer;
{ … }
Str:=”Hello!”;
L:=Length(Str); { L = 6 }
2) Функція SetLength(Str: String; NewLength: Integer) дозволяє змінити довжину рядка. Якщо рядок містила більшу кількість символів, ніж задано в функції, то “зайві” символи обрізаються. Приклад:
varStr: String;
{ … }
Str:=”Hello, world!”;
SetLength(Str, 5); { Str = “Hello” }
3) Функція Pos(SubStr, Str: String) – Повертає позицію підрядка в рядку. Нумерація символів починається з одиниці (1). У разі відсутності підрядка в рядку повертається 0. Приклад:
varStr1, Str2: String; P: Integer;
{ … }
Str1:=”Hi! How do you do?”;
Str2:=”do”;
P:=Pos(Str2, Str1); { P = 9 }
4) Функція Copy(Str: String; Start, Length: Integer) – Повертає частину рядка Str, починаючи з символу Start довжиною Length. Обмежень на Length немає – якщо воно перевищує кількість символів від Start до кінця рядка, то рядок буде скопійована до кінця. Приклад:
varStr1, Str2: String;
{ … }
Str1:=”This is a test for Copy() function.”;
Str2:=Copy(Str1, 11, 4); { Str2 = “test” }
5) Процедура Delete(Str: String; Start, Length: Integer) – Видаляє з рядка Str символи, починаючи з позиції Start довжиною Length. Приклад:
varStr1: String;
{ … }
Str1:=”Hello, world!”;
Delete(Str1, 6, 7); { Str1 = “Hello!” }
6) Функції UpperCase(Str: String) і LowerCase(Str: String) перетворять рядок відповідно у верхній і нижній регістри:
varStr1, Str2, Str3: String;
{ … }
Str1:=”hELLo”;
Str2:=UpperCase(Str1); { Str2 = “HELLO” }
Str3:=LowerCase(Str1); { Str3 = “hello” }
Рядки можна порівнювати один з одним стандартним способом:
varStr1, Str2, Str3: String; B1, B2: Boolean;
{ … }
Str1:=”123″;
Str2:=”456″;
Str3:=”123″;
B1:=(Str1 = Str2); { B1 = False }
B2:=(Str1 = Str3); { B2 = True }
Якщо рядки повністю ідентичні, логічне вираз стане рівним True.
Завдання для виконання
Мета роботи - створити програму, що виконує дії строкового калькулятора.
Опис плану розробки програми
1. Відкрити новий проект.
2. Розмістити на формі екземпляри компонентів: Edit, Label, Button.
Фрагмент програми
procedureTForm1.Button2Click(Sender: TObject);
Begin
s:=Edit1.Text;
k:=StrToInt(Edit2.Text);
t:=StrToInt(Edit3.text);
Delete(s,k,t);
Edit10.Text:=s;
end;
procedureTForm1.Button3Click(Sender: TObject);
Begin
s:=Edit1.Text;
q:=StrToInt(Edit4.Text);
w:=Edit5.Text;
Insert(w,s,q);
edit11.Text:=s;
end;
procedureTForm1.Button4Click(Sender: TObject);
Begin
s:=Edit1.Text;
p:=StrToInt(Edit6.Text);
l:=StrToInt(Edit7.Text);
Рис. 44.
63
Copy(s,p,l);
s1:=copy(s,p,l);
Edit12.Text:=s1;
end;
procedureTForm1.Button5Click(Sender: TObject);
Begin
s:=Edit1.Text;
r:=Edit9.Text;
a:=Pos(r,s);
edit13.Text:=IntToStr(a);
end;
procedureTForm1.Button6Click(Sender: TObject);
Begin
s:=edit1.Text;
b:=Length(s);
edit14.Text:=IntToStr(b);
end;
Змістовий модуль 3
Практичне заняття № 5
Тема:Об’єкти середовища Delphi. Робота з меню.
Мета:Ознайомити студентів з компонентами середовища Delphi. Розглянути компонент MainMenu для роботи з меню. Закріпити отримані знання на практиці.
Література
1. М.С.Львов, О.В.Співаковський. Основи алгоритмізації та програмування. Навчальний посібник – Херсон, 1997. – 122с.
2. Львов М.С., Співаковський О.В. Вступ до об¢єктно-орієнтованого програмування.–Херсон:ХДПУ.-240 с.
3. Фаронов В.В. Delphi 6.Учебний курс.-М.:Издатель Молгачева С.В.,-672с.,ил.
4. Т.Бадд.. Объектно-ориентированное программирование в действии / пер. с англ. - СПб.:Питер, 1997.- 464 с. ил.
5. http://www.programmersclub.ru/book/ - електронні підручники по Delphi
6. http://pitbooks.ru/delphi/ - електронні підручники по Delphi
Завдання для виконання
Створити програму, що виконує наступні дії:
1. Після запуску програми у вікні зображується рядок меню (Файл, Вихід).
2. При виборі пункту меню Файл з'являються пункти меню (Малюнки, Вихід).
3. При виборі пункту меню Малюнки з'являється вкладене меню, що складається з двох пунктів (Хмари, Ліс).
По кліку правої кнопки миші з'являється контекстне меню.
5. Вибрати за пунктом інший малюнок
6. Для виходу з програми необхідно натиснути мишею на закриваючою кнопці в рядку заголовка.
7. Якщо вибрати будь-який з пунктів Вихід, робота програми завершується.
Опис плану розробки програми
1. Відкрити новий проект.
2. Розмістити на формі екземпляри компонентів: панель Panel, малюнок Image, діалогове вікно OpenDialog.
3. Виконати наступні дії:
Виділений об’єкт | Вкладка вікна | Ім’я властивості/ Ім’я події | Дія |
Form1 | Properties | Caption | Установка імені форми «Моє меню» |
Events | OnMouseDown | var p:TPoint; begin p.X :=X; p.Y :=Y; p := ClientToScreen (p); PopupMenu1.Popup (p.X, p.Y); end; | |
Запустити редактор меню (двічі клікнути на позначці меню на формі) | |||
Form1.MainMenu1 | Properties (у вікні Object Inspector не выбрано жодного об’єкту) | Caption | Ввести текст пункту меню – Файл і натиснути Enter.Система присвоїть йому значення N1 |
Між існуючими і майбутніми пунктами меню можна перемикатися за допомогою клацання миші або курсорних клавіш. | |||
Form1.MainMenu1 | Properties | Caption | Ввести текст пункту меню – Вихід і натиснути Enter.Система присвоїть йому значення N2 |
Events (клікнути на пункті меню Вихід у рядку меню) | N2Click | Close; | |
Клацніть на пункті Файл. Редактор меню створив ще одну заготовку під цим пунктом. Це заготівля для меню, яке відкриється при виборі пункту Файл в працюючій програмі. Використовуючи заготовки, створіть в цьому меню два пункти: Малюнки (система присвоїть йому ім'я N3) і Вихід (N4). Виберіть у редакторі меню пункт Малюнки і натисніть комбінацію | |||
N4: TMenuItem | Events | OnClick | Виберемо з розкривного списку вже існуючу процедуру-обробник N2Click |
Form1.MainMenu1 | Properties | Caption | Ввести текст пункту меню - Хмари, і натиснути Enter. система присвоїть йому ім'я N5. |
N5: TMenuItem | Events (вибрати в Рядку меню на формі пункт Хмари) | OnClick | Image1.Picture.LoadFromFile (‘C:\Windows\Облака.bmp’); |
Form1.MainMenu1 | Properties | Caption | Ввести текст пункту меню - Ліс, і натиснути Enter. система присвоїть йому ім'я N6. |
N6: TMenuItem | Events (вибрати в рядку меню на формі пункт Ліс) | OnClick | Image1.Picture.LoadFromFile (‘C:\Windows\Лес.bmp’); |
Закрийте вікно редактора меню і переконайтеся, що тепер рядок меню з'явився в основній формі програми. | |||
PopupMenu (Вкладка Standard) | Properties | Caption | Ввести текст пункту меню - Хмари, і натиснути Enter. система присвоїть йому ім'я N7. |
Caption | Ввести текст пункту меню - Ліс, і натиснути Enter. система присвоїть йому ім'я N8. | ||
N7 | Events | OnClick | Виберемо з розкривного списку вже існуючу процедуру-обробник N5Click |
N8 | Events | OnClick | Виберемо з розкривного списку вже існуючу процедуру-обробник N6Click |
Image (Вкладка Additional) | Properties | Stretch | Присвоїти значення True |
3.Збережіть проект, запустіть та протестуйте його
Лістинг підпрограми
procedureTForm1.N2Click (Sender: TObject);
Begin
Close;
end;
procedureTForm1.N5Click (Sender: TObject);
Begin
Image1.Picture.LoadFromFile (‘C:\Windows\Облака.bmp’);
end;
procedureTForm1.N6Click (Sender: TObject);
Begin
Image1.Picture.LoadFromFile (‘C:\Windows\Лес.bmp’);
end;
procedureTForm1.FormMouseDown
(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X. Y: Integer);
varp:TPoint;
Begin
p.X :=X;
p.Y :=Y;
p := ClientToScreen (p);
PopupMenu1.Popup (p.X, p.Y);
end;
Практичне заняття № 6
Тема:Об’єкти середовища Delphi. Смуга прокрутки.
Мета:Ознайомити студентів з компонентами середовища Delphi. Розглянути компонент ScrollBar. Закріпити отримані знання на практиці.
Література
1. М.С.Львов, О.В.Співаковський. Основи алгоритмізації та програмування. Навчальний посібник – Херсон, 1997. – 122с.
2. Львов М.С., Співаковський О.В. Вступ до об¢єктно-орієнтованого програмування.–Херсон:ХДПУ.-240 с.
3. Фаронов В.В. Delphi 6.Учебний курс.-М.:Издатель Молгачева С.В.,-672с.,ил.
4. Т.Бадд.. Объектно-ориентированное программирование в действии / пер. с англ. - СПб.:Питер, 1997.- 464 с. ил.
5. http://www.programmersclub.ru/book/ - електронні підручники по Delphi
6. http://pitbooks.ru/delphi/ - електронні підручники по Delphi
Завдання для виконання
Створити програму, що виконує наступні дії:
1. Після запуску програми у вікні зображується дві смуги прокрутки. Вертикальна смуга буде керувати рухом по вертикалі, горизонтальна - по горизонталі.
2. Наводячи курсор миші на одну з двох фігур, можна вибирати, яка з цих фігур пов'язана з смугами прокрутки.
3. Потрібні додаткові об'єкти, за допомогою яких обмежується область руху фігур у вікні.
4. Якщо смуга прокрутки активна, то вона повинна реагувати на клавіші ВВЕХ, ВНИЗ, ВЛІВО, ВПРАВО, PAGE UP, PAGE DOWN.
5. Для виходу з програми необхідно натиснути мишею на закриваючій кнопці в рядку заголовка.
Опис плану розробки програми
1. Відкрити новий проект.
2. Розмістити на формі екземпляри компонентів: панель Panel, смуга прокрутки ScrollBar, фігура Shape.
3. Ввести додаткову змінну логічного типу num. Якщо вона приймає
значення True (Так), то поточної вважається перша фігура. Значенню False (Ні) відповідає друга фігура. Ця змінна повинна бути доступна у всіх
процедурах.
4. Виконати наступні дії:
Таблиця 1.
Продовження Таблиці 1
5. Збережіть програму та протестуйте її.
Лістинг підпрограми
procedureTForm1.ScrollBar1Change (Sender: TObject);
Begin
ifnum thenShape1.Left := ScrollBar1.Position
elseShape2.Left := ScrollBar1.Position
end;
procedureTForm1.ScrollBar2Change (Sender: TObject);
Begin
ifnum thenShape1.Top := ScrollBar2.Position
elseShape2.Top := ScrollBar2.Position
end;
procedureTForm1.Shape1MouseMove
(Sender: TObject; Shift: TShiftState; X, Y: Integer);
Begin
Shape1.Brush.Color := clAgua;
Shape1.Brush.Color := clFuchsia;
Num := True;
ScrollBar1.Position:= Shape1.Left;
ScrollBar2.Position:= Shape1.Top;
end;
procedureTForm1. Shape2MouseMove
(Sender: TObject; Shift: TShiftState; X, Y: Integer);
Begin
Shape2.Brush.Color := clFuchsia;
Shape2.Brush.Color := clAgua;
Num := False;
ScrollBar1.Position:= Shape2.Left;
ScrollBar2.Position:= Shape2.Top;
end;
procedureTForm1. FormCreate (Sender: TObject);
Begin
num := True;
end;
Практичне заняття № 7
Тема:Випадковий вибір. Використання списків.
Мета:Ознайомити студентів з поняттям випадкового вибору. Розглянути компонент ComboBox для роботи зі списками. Закріпити отримані знання на практиці.
Література
1. М.С.Львов, О.В.Співаковський. Основи алгоритмізації та програмування. Навчальний посібник – Херсон, 1997. – 122с.
2. Львов М.С., Співаковський О.В. Вступ до об¢єктно-орієнтованого програмування.–Херсон:ХДПУ.-240 с.
3. Фаронов В.В. Delphi 6.Учебний курс.-М.:Издатель Молгачева С.В.,-672с.,ил.
4. Т.Бадд.. Объектно-ориентированное программирование в действии / пер. с англ. - СПб.:Питер, 1997.- 464 с. ил.
5. http://www.programmersclub.ru/book/ - електронні підручники по Delphi
6. http://pitbooks.ru/delphi/ - електронні підручники по Delphi
Завдання для виконання
Мета роботи - створити програму, що виконує наступні дії:
1. Після запуску програми у вікні зображується три поля.
2.При клацанні мишею на кнопці «Випадковий вибір» з трьох слів випадковим чином складається речення.
3. Для виходу з програми необхідно натиснути мишею на закриваючій кнопці в рядку заголовка.
Опис плану розробки програми
1. Відкрити новий проект.
2. Розмістити на формі екземпляри компонентів: поле зі списком ComboBox, командна кнопка Button.
3. Виконати наступні дії:
Таблиця 1
4. Збережіть проект та протестуйте його
Список іменників | Список прислівників | Список дієслів |
Змія | Швидко | Плаває |
Коник | Високо | Бігає |
Дельфін | Повільно | Літає |
Черепаха | Сильно | Плазує |
Ластівка | Добре | Стрибає |
Кішка | Погано | Ховається |
Лістинг підпрограми
procedureTForm1.FormCreate (Sender: TObject);
Begin
Randomize;
ComboBox1.ItemIndex :=0;
ComboBox2.ItemIndex :=0;
ComboBox3.ItemIndex :=0;
end;
procedureTForm1.Button1Click (Sender: TObject);
Begin
ComboBox1.ItemIndex := Random(ComboBox1.ItemIndex.Count);
ComboBox2.ItemIndex := Random(ComboBox2.ItemIndex.Count);
ComboBox3.ItemIndex := Random(ComboBox3.ItemIndex.Count);
end;
Практичне заняття № 8
Тема:Робота з часом. Компонент Timer.
Мета:Ознайомлення з компонентом Timer. Робота з системною датою та часом.
Література
1. М.С.Львов, О.В.Співаковський. Основи алгоритмізації та програмування. Навчальний посібник – Херсон, 1997. – 122с.
2. Львов М.С., Співаковський О.В. Вступ до об¢єктно-орієнтованого програмування.–Херсон:ХДПУ.-240 с.
3. Фаронов В.В. Delphi 6.Учебний курс.-М.:Издатель Молгачева С.В.,-672с.,ил.
4. Т.Бадд.. Объектно-ориентированное программирование в действии / пер. с англ. - СПб.:Питер, 1997.- 464 с. ил.
5. http://www.programmersclub.ru/book/ - електронні підручники по Delphi
6. http://pitbooks.ru/delphi/ - електронні підручники по Delphi
Завдання для виконання
Дата добавления: 2018-02-15; просмотров: 798; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!