Крапку з комою після 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 <значення 1>: <дія 1>; <значення 2>: <дія 2>; … <значення n>: <дія n>;end;

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. Додати зображення світлофора, який би змінював колір лампочок в залежності від активного стану.

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

  1. Поняття умовного оператора
  2. Конструкція оператора If
  3. Які форми запису умовного оператора ви знаєте?
  4. Що таке оператор вибору?
  5. Алгоритм роботи оператора case.
  6. Що ми називаємо вкладеною умовою?

 


Практичне заняття № 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;

 

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

  1. Що таке цикл? Наведіть приклади.
  2. Який процес називається циклічним?
  3. Що таке змінна циклу? Приклади.
  4. 4.3 яких складових утворюється алгоритм циклічної структури?
  5. Що таке тіло циклу? Його розміри в кількості інструкцій?
  6. Що таке параметр циклу? Який існує закон його зміни?
  7. Розкажіть про циклічний алгоритм з параметром.
  8. Наведіть приклад циклічного обчислювального процесу.
  9. Що таке цикл з параметром в Object Pascal?
  10. Чим відрізняються інструкції for з to, downto та як вони ви­користовуються?
  11. Які правила організації циклу Вам відомі?
  12. Чи можна змінювати параметр циклу в його тілі? Якщо так, то яким чином?
  13. Що відбудеться при використанні службового слова to в циклі, якщо початковий вираз буде більшим за кінцевий?
  14. Скільки операторів може стояти після службового слова do в циклі?
  15. Як зберегти останнє значення параметру циклу?
  16. Що таке змінні лічильника, що вони собою являють?

Практичне заняття № 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.

 

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

  1. Що таке цикл? Наведіть приклади.
  2. Який процес називається циклічним?
  3. Що таке змінна циклу? Приклади.
  4. 4.3 яких складових утворюється алгоритм циклічної структури?
  5. Що таке тіло циклу? Його розміри в кількості інструкцій?
  6. Що таке модифікація циклу?
  7. Як управляти циклом? Як виконується перехід до початку циклу?
  8. Наведіть загальний вигляд циклічного алгоритму.
  9. Скільки операторів може стояти після службового слова do в циклі?
  10. Як зберегти останнє значення параметру циклу?
  11.  У я кому випадку слід використовувати оператор While?
  12.  Яка форма запису оператору циклу 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). Виберіть у редакторі меню пункт Малюнки і натисніть комбінацію
клавіш Ctrl + Вправо.

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; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!