Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Тема- Створення додатків ОС Windows в ІDE Delphi.

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 6.11.2024

ЛАБОРАТОРНИЙ ПРАКТИКУМ

 ЛАБОРАТОРНА РОБОТА №1

Тема: Створення додатків ОС Windows в ІDE Delphi.

Мета: Навчитися створювати додатки, що складаються з кількох форм.

Завдання:

1. Створити новий додаток, що складається з головної форми та форм, створених для наступних завдань.

Зауваження: в додатку всі форми мають імена, що не повторюються (якщо ви маєте дві форми з однаковим ім’ям – перейменуйте одну з них, змінюючи для форми її властивість name, форми збережіть в спільному для них каталозі).

2. На головній формі прив’язати до компонентів Button процедури обробки події, що містять FormX.Show (X – номер форми).

3. Перевірити роботу програми.

4. Роздрукувати отримані результати (головна форма та її програмний модуль).

Вимоги до звіту

У звіті з лабораторної роботи повинні бути відображені:

  1.  Тема роботи.
  2.  Мета роботи.
  3.  Короткі теоретичні відомості по темі лабораторної роботи.
  4.  Текст і результати роботи програми (надруковані на принтері).
  5.  Висновки по роботі.

Підготовка до роботи

За вказаною літературою вивчити:

  1.  Методику активізації інтегрованого середовища розробки (ІDE) Delphi.
  2.  Структуру головного меню та його пункти.
  3.  Опції випадних меню.

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

1.     Активізація ІDE і вихід із середовища.

2.     Вікна ІDE.

3.     Призначення й зміст головного вікна ІDE.

4.     Вікно Інспектора об'єктів

5.     Вікно Конструктора форми.

6.     Вікно Дерева об'єктів.

7.     Вікно Редактора коду.

8.     Панелі інструментів.

9.     Палітра компонентів.

10.   Меню головного вікна ІDE. Опції пунктів Файл, Виправлення, Пошук, Вид, Проект, Виконати, Компоненти, База даних, Сервіс, Вікно, Допомога.

11.   Властивості форми та її зовнішній вигляд.

12.   Як додати у форму компоненти?

13.   Рядок введення Edit.

14.   Поля виводу тексту Label.

15.   Командна кнопка, компонент Button.

Практична частина

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

Для цього необхідно виконати наступні дії.

  1.  Запустити програму Delphi.
  2.  Змінити заголовок  форми на «Головна форма» за допомогою властивості Сaption в Інспекторі об'єктів.
  3.  На Палітрі компонентів вибрати потрібні об'єкти для розміщення їх на Дизайнері Форм.

Компоненти:

Label1 (властивості Caption присвоїмо значення „КУРС  "ПРОГРАМУВАННЯ ТА ТЕОРІЯ  АЛГОРИТМІВ".  Лабораторні роботи студента 2 курсу ЛФ  групи...  П.І.Б.”).

Button1 (властивості Сaption присвоїмо значення «Лінійні процеси»),

Button2 (властивості Сaption присвоїмо значення «Процеси з  розгалуженням»),

Button3 (властивості Сaption присвоїмо значення «Циклічні процеси»),

Button4 (властивості Сaption присвоїмо значення «Одновимірний масив»),

Button5 (властивості Сaption присвоїмо значення «Двовимірний масив»),

Button6 (властивості Сaption присвоїмо значення «Вихід»).

  1.  Створити нові форми Form2, Form3, Form4, Form5, Form6 командою File/New/Form або кнопкою панелі інструментів View. Побачити перелік створених форм або вибрати потрібну можна використавши команду View/Forms або кнопку панелі інструментів View.
  2.  Привязати до перших пяти компонент Button на  основній формі Form1 відповідну форму. Для цього необхідно дворазово клацнути мишею на зображенні Button1 і записати у вікні Редактора  в позицію мерехтливого курсору команду form2.show. Аналогічні дії виконати для Button2, Button3,  Button4, Button5, вказуючи відповідно form2.show, form3.show, form4.show, form5.show. Для Button6 виконати аналогічні дії і записати команду Form1.close.
  3.  Після запуску проекту на виконання кнопкою панелі інструментів Debug  або командою Run/Run, підтвердити  прив’язку  форм до нових  модулів Unit2, Unit3, Unit4, Unit5, натискаючи кнопку Yes у вікні, що з’являється (рисунок 14) .

Рисунок 14 – Інформаційне вікно

  1.  Потрібно зберегти проект програми командою File\SaveProject As… З цією метою виконати такі дії:

7.1. Вказати маршрут розміщення проекту, тобто у вікні , що з’явиться, створити нову папку та відкрити її;

7.2. Задати нове ім’я першого модуля або залишити запропоноване системою Unit1 і зберегти його, натиснувши кнопку  Сохранить;

7.3. Пункт 7.2 виконати для всіх модулів;

 7.4. Вказати імя проекту або залишити запропоноване системою  Project1.

Увага! При першому збереженні проекту запис файлів в папку відбувається в два етапи: спочатку зберігається модуль форми проекту з розширенням .pas,  потім зберігається файл проекту з розширенням .dpr.

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

Текст модуля

unit Unit1;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls;

type

 TForm1 = class(TForm)

   Label1: TLabel;

   Button1: TButton;

   Button2: TButton;

   Button3: TButton;

   Button4: TButton;

   Button5: TButton;

   Button6: TButton;

   procedure Button1Click(Sender: TObject);

   procedure Button2Click(Sender: TObject);

   procedure Button3Click(Sender: TObject);

   procedure Button4Click(Sender: TObject);

   procedure Button5Click(Sender: TObject);

   procedure Button6Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

implementation

uses Unit2, Unit3, Unit4, Unit5, Unit6, Unit7;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

Form2.show

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Form3.show

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

Form4.show

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

Form5.show

end;

procedure TForm1.Button5Click(Sender: TObject);

begin

Form6.show

end;

procedure TForm1.Button6Click(Sender: TObject);

begin

Form1.close 

end; 

end.

Результат роботи

Висновки

  1.  ІDE Delphi – інтегроване середовище швидкої розробки додатків.
  2.  Додаток в Delphi створюється у вікні Конструктора форми шляхом розміщення там готових компонентів.
  3.  Ієрархія компонентів форми відображається в Delphi у вікні Дерева об'єктів.
  4.  Властивості компонентів відображаються в Delphi у вікні Інспектора об'єктів.
  5.  Каркас коду проекту ІDE створює автоматично.
  6.  Користувач додає в нього функціональність, вводячи коди, що визначають виконувані дії.

 ЛАБОРАТОРНА РОБОТА №2

Тема: Програмування лінійних обчислювальних процесів.

Мета: навчитися виконувати обчислення математичних виразів.

Завдання:

Створити  додаток, що дозволяє виконувати обчислення заданих виразів (варіанти завдань обираються згідно таблиці 12).

Таблиця  – Варіанти завдань

 

Розрахункові формули

Дані

  1.  

x=1,82 y=18

z=-3,29

  1.  

x=0,33 y=0,02

  1.  

a=-0,5 b=1,7

t=0,44

  1.  

a=-0,5 b=15,5

x=-2,9

  1.  

a=16,5 b=3,4

x=0,61

  1.  

a=0,7 b=0,05

x=0,5

  1.  

a=1,1 b=0,04

x=0,2

  1.  

a=3,2 b=17,5

x=-4,8

  1.  

  

a=10,2  x=2,2         

b=9,2    c=0,5

  1.  

a=0,3 b=0,9

x=0,61

  1.  

a=0,5 b=3,1

x=1,4  

  1.  

a=16,5 b=3,4

x=0,61

  1.  

a=0,5 b=2,9

x=0,3

  1.  

                

x=1,42  y=-1,27

z=3,5

  1.  

m=10,7 c=2,1

x=1,7  a=0,5

  1.  

           

x=1,625

y=-15,4

  1.  

       

x=3,25

y=4,05

  1.  

     

x=0,4

y=-0,875

  1.  

           

x=1,825

y=18,225

z=-3,298

  1.  `

;               

x=47,8

y=-5,5

z=-2,3

  1.  

                

x=37,15

y=-12,55

z=20,12

  1.  

   

x=0,22

y=-6,72

n=10,05

  1.  

        

x=12,650

y=-2,255

n=3,205

  1.  

     

x=-4,500

y=0,750

z=0,845

  1.  

  

x=0,335

y=0,025

z=32,005

Вимоги до звіту

У звіті з лабораторної роботи повинні бути відображені:

  1.  Тема, мета, завдання  лабораторної роботи.
  2.  Короткі теоретичні відомості по темі.
  3.  Блок-схема алгоритму.
  4.  Опис інтерфейсу користувача, використаних комонент та їх основних властивостей.
  5.  Текст програми.
  6.  Результати роботи програми (вікно  форми з отриманими результатами).
  7.  Висновок.

Підготовка до роботи

 Вивчити:

  1.  Структуру програми мовою Delphi.
  2.  Задання констант, змінних.
  3.  Типи чисельних даних і помилки при перетвореннях типів чисельних даних.
  4.  Організацію вводу-виводу даних.

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

1.    Алфавіт мови Delphi, операції, ідентифікатори.

2.   Структура програми. Розділи оголошення констант, змінних, міток, типів даних, підпрограм.

3.    Константи. Їх оголошення. Константні вирази.

4.    Змінні. Їх оголошення.

5.    Формати подання чисел (з фіксованою й плаваючою крапкою).

6.    Типи цілих чисел зі знаком.

7.    Типи дійсних чисел.

9.    Логічні типи даних .

10.  Символьні типи .

11.  Строкові типи для довгих рядків.

12.  Строкові типи для коротких рядків.

13.  Сумісність типів при присвоєннях.

Практична частина

Потрібно створити додаток, що дозволяє виконувати обчислення виразу:

.

Для цього необхідно запустити ІDE Delphi, викликати відповідну форму Form2 для лінійного процесу, на формі розмістити компоненти із Палітри компонентів (Label, Edit, Button), потім змінити їх властивості у вікні Object Inspector (Caption, Text), а на кнопку «Button1» створити обробку подій «OnClick».

Клацнувши два рази на кнопку Button1 (OK) у вікні, що спливе, необхідно набрати текст програми  по обчисленню виразу.

Для збереження внесених у проект змін, а саме тексту програми набраного модуля, виконується команда File /Save all. В тому випадку, якщо потрібно зберегти модуль з іншим іменем, то  необхідно  виконати команду File /Save As і в діалоговому вікні задати нове ім’я модуля, а потім виконати команду File /Save all.

Якщо необхідно ввести зміни в будь-який модуль проекту, на даному етапі в Unit1 або Unit2, досить переключитися на закладку з назвою потрібного модуля та виконати виправлення, після чого зберегти модуль командою File /Save all .

Блок-схема алгоритму

Текст модуля

unit Unit2;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls;

type

 TForm2 = class(TForm)

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Label4: TLabel;

   Edit1: TEdit;

   Edit2: TEdit;

   Button1: TButton;

   Label5: TLabel;

   Label6: TLabel;

   Label7: TLabel;

   Label8: TLabel;

   Button2: TButton;

   procedure Button1Click(Sender: TObject);

   procedure Button2Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);

var

x,y,a,b:real;

begin

{введення даних}

x:=StrToFloat(Edit1.Text);

y:=StrToFloat(Edit2.Text);

{обчислення}

a:=exp((1/5)*ln(x+1))-sqr(sin(exp(x+1))/cos(exp(x+1)));

b:=3.14+sqr(cos(y+1.2));

{виведення даних}

label7.Caption := floatToStr(a);

label8.Caption := floatToStr(b)

end;

procedure TForm2.Button2Click(Sender: TObject);

begin

Form2.Close;

end;

end.

Результат роботи

Висновки

  1.  Для чисел можливі типи: дійсні, цілі, 16-ричні.
  2.  Дійсні числа запам'ятовуються у форматі із плаваючою крапкою. Для них найкраще використовувати тип real.
  3.  Для цілих чисел найкраще використати тип integer.
  4.  Для роботи з короткими рядками використовуються типи ShortString, String [N до 255]. Для роботи з довгими рядками використовуються типи String, AnsiString, WideString. Операція + з рядками виконує конкатенацію (приєднання в кінець) рядків або символів.
  5.  Програма з лінійною структурою містить оператори, що завершуються символом «крапка з комою». Рекомендується один оператор в рядку.
  6.  Вирази використовуються для знаходження нових значень змінних. У виразах можна використати стандартні математичні функції. Додаткові математичні функції визначені в модулі math. Щоб вони були доступні, потрібно включити модуль math в рядок uses коду програми.
  7.  Декілька операторів можна об'єднати в один складний, помістивши їх в операторні дужки begin…end.
  8.  Рекомендується вводити в програму коментарі. Це або текст до кінця рядка після символів //, або декілька розміщених в фігурних дужках рядків. В лістингу програми коментар за замовчуванням відображається курсивом.

ЛАБОРАТОРНА РОБОТА №3

Тема:   Програмування розгалужених обчислювальних процесів.

Мета: Навчитися  програмувати і налагоджувати програми розгалужених обчислювальних процесів.

Завдання:

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

Таблиця  - Варіанти завдань

Функції

Умови

Дані

Діапазон аргументу

  1.  

t < 1

1 ≤ t  2

t > 2

a=-0,5

b=2

t=[2...4]

крок 0,25

  1.  

f ≤ 1,5

1,5 < f < 3

f ≥ 3

f=[1...5]

крок 0,25

  1.  

x < 1.3

x = 1.3

x > 1.3

a=2,8

x=[1...2]

крок 0,25

  1.  

x < 1.4

x = 1.4

x > 1.4

a=1,65

b=1,1

x=[0,5...2]

крок 0,25

  1.  

x  1

1 < x < 2

x  2

x=[1...2,5]

крок 0,25

  1.  

x > a

x < a

x = a

a=2,5

x=[1...2,5]

крок 0,25

  1.  

bx < 1

bx = 1

bx > 1

b=5,5

x=[0,5...3]

крок 0,25

  1.  

x > 3.5

x  3.5

x=[2...5]

крок 0,25

  1.  

x > 1

x  1

a=20,3

x=[0,5...2]

крок 0,25

  1.  

x > 1

x  1

a=0,9

x=[2...5]

крок 0,5

  1.  

x < 0.5

x = 0.5

x > 0.5

t=2,2

x=[0.25...2]

крок 0,25

  1.  

x < 2.8

2.8 ≤ x  5

x > 5

a=2,6

b=-0,39

x=[0...6]

крок 1

  1.  

i < 4

4 ≤ i  6

i > 6

a=2,1

b=-1,8

c=-20,5

i=[1...10]

крок 1

  1.  

a=2,5

n=10

i=[1...2,5]

крок 0,25

  1.  

t < 0.1

t = 0.1

t > 0.1

a=2,5

b=0,4

t=[-1...1]

крок 0,2

  1.  

y  2

-2 < y < 2

y  -2

y=[-4...4]

крок 0,2

  1.  

x > 0,5

-0,5  x  0,5

x < -0,5

x=[-5...5]

крок 0,25

  1.  

x  -1

-1 x < 0

x  0

x=[-4...4]

крок 0,2

  1.  

x  -0,5

-0,5 < x 0,5

x > 0,5

x=[-2...2]

крок 0,2

  1.  

x < -1

-1 x < 1

x  1

x=[-5...5]

крок 0,25

  1.  

x < 1

1  x  2

x > 2

x=[0...3]

крок 0,2

  1.  

x  0

-1 < x < 0

x  -1

x=[-4...2]

крок 0,25

  1.  

x  1

-1 < x < 1

x  -1

x=[-2...2]

крок 0,25

  1.  

x < 0

0  x  1

x > 1

x=[-2...2]

крок 0,25

  1.  

x > 3

0 < x  3

x  0

x=[-5...5]

крок 0,25

Підготовка до роботи

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

2.    Розробити алгоритм рішення відповідно до завдання.

3.    Скласти програми рішення завдань.

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

1.    Які структури обчислювальних процесів Ви знаєте?

2.    Як організувати розгалуження обчислень?

3.    Умовний оператор if...then...else.

4.    Умовний оператор if...then.

5.   Навіщо потрібно при налагодженні програми тестувати всі гілки алгоритму?

Практична частина

1. Потрібно  виконати обчислення виразу на інтервалі [-1,1] з   кроком 0.1:

Знайти  максимум та мінімум значення  y  на інтервалі .

На форму Form3 встановлюємо компоненти Label, Edit, Button. Необхідно змінити їх властивості у вікні Object Inspector (Caption, Text).

Для кнопки «Button1» створюємо обробник подій «OnClick».  Клацнувши двічі на кнопку Button1 (OK) у вікні, що спливе, набираємо текст програми, яка реалізує розгалужений обчислювальний процес.

Блок-схема алгоритму

Текст модуля

unit Unit3;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls;

type

 TForm3 = class(TForm)

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Edit1: TEdit;

   Label4: TLabel;

   Edit2: TEdit;

   Label5: TLabel;

   Edit3: TEdit;

   Label6: TLabel;

   Label7: TLabel;

   Label8: TLabel;

   Label9: TLabel;

   Button1: TButton;

   Label10: TLabel;

   Label11: TLabel;

   Label12: TLabel;

   Label13: TLabel;

   procedure Button1Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);

Label 1;

Var  X, Xmin, Xmax, Dx, Y, Ymin, Ymax : real;

mes1, mes2: string[255];

begin

{введення початкових даних}

Xmin:=StrToFloat(Edit1.Text);

Xmax:=StrToFloat(Edit2.Text);

Dx:= StrToFloat(Edit3.Text);

X:=Xmin;

Ymax:=-maxint;

Ymin:=maxint;

1:  {обчислення Y }

    if X <-0.1 then Y:=1.25*sqrt(abs(X));

    if (X >=-0.1) and (X <0.1) then Y:= X +1.3;

    if X >=0.1 then Y:=sqrt(-X * X +cos(X)+1);

   {виведення Х та Y }

    mes1:= mes1+FloatToStrF(X,ffFixed,6,1)+#13 ;

    mes2:= mes2+FloatToStrF(Y,ffFixed,10,5)+#13;

    Label8.Caption:=  mes1;

    Label9.Caption:=  mes2;

   {обчислення Ymin та  Ymax}

    If  Y<Ymin  then Ymin:=Y;

    If  Y>Ymax then Ymax:=Y;

   {перехід до наступного значення Х }

    Х:=X+Dx;

If X<=Xmax  then  goto 1;

{виведення Ymin та  Ymax}

 Label12.Caption:= FloatToStrF(Ymin,ffFixed,10,5);

 Label13.Caption:= FloatToStrF(Ymax,ffFixed,10,5);

end;

end.

Результат роботи

Висновки

  1.  Для розгалужень використовується оператор if <умова> then <оператор1> else <оператор2>.
  2.  Можливий скорочений оператор розгалужень if <умова> then <оператор>.
  3.  Якщо в гілках then або else потрібно виконати кілька операторів, то їх потрібно об'єднати в один складний оператор за допомогою операторних дужок begin…end.
  4.    Оператор розгалуження може застосовуватися для створення циклів.

ЛАБОРАТОРНА РОБОТА №4

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

Мета: Навчитися створювати програми для циклічних обчислювальних процесів з невизначеною кількістю повторень.

Завдання:

Створити додаток, що дозволяє виконувати обчислення суми елементів послідовності з точністю ε=10-7 (вхідні дані мають вводитися з клавіатури, результати обчислень повинні виводитися на екран).

Таблиця  – Варіанти завдань

Сума членів ряду

Значення

Точність E

1

x=0,1

10-5

2

x=0,1

3

x=0,15

10-3

4

x=0,12

10-4

5

x=0,7

10-4

6

x=1,7

10-3

7

x=1,15

8

x=0,5

9

10

x=0,75

11

x=0,62

12

x=0,2

10-4

13

x=0,25

10-4

14

x=0,3

10-5

15

x=0,62

10-4

16

x=0,78

10-4

17

x=0,23

10-5

18

x=0,4

10-5

19

                      

x=0,85

10-5

20

                         

x=0,71

10-6

21

                         

x=0,29

10-6

22

                           

x=0,72

10-5

23

                               

x=0,11

10-6

24

                                

x=0,64

10-5

25

                     

x=0,56

10-5

Підготовка до роботи

1.   По зазначеній літературі вивчити:

  •  організацію циклів з невідомим числом повторень;
  •  організацію таких циклів за допомогою операторів while...do і repeat...until;
  •  обчислення суми членів нескінченного ряду.

2.   Розробити алгоритм рішення завдання.

3.   Скласти програму рішення завдання.

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

1.    Циклічний процес із невідомим числом повторень.

2.    Його відмінності від циклу із заданим числом повторень.

3.    Формат оператора while...do.

5.    Як виконати групу операторів у циклі while...do?

6.    Формат оператора repeat...until.

7.    Як виконати групу операторів в циклі repeat...until?

8.     Умова виходу із циклу при обчисленні значення суми членів нескінченного ряду.

Практична частина

Потрібно створити додаток, що дозволяє виконувати обчислення суми нескінченного ряду

.

На форму Form4 установлюємо компоненти з Палітри компонентів (Label, Edit, Button). Необхідно змінити їх властивості у вікні Object Inspector (Caption, Text). Клацнувши двічі на кнопку Button1 (OK), у вікні, що спливе, набираємо текст програми і виконуємо команду File /Save all.

Блок-схема алгоритму

Текст модуля

unit Unit4;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls;

type

 TForm4 = class(TForm)

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Edit1: TEdit;

   Label4: TLabel;

   Edit2: TEdit;

   Button1: TButton;

   Label5: TLabel;

   Label6: TLabel;

   Label7: TLabel;

   Label8: TLabel;

   Label9: TLabel;

   Label10: TLabel;

   procedure Button1Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form4: TForm4;

implementation

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject);

Var  mes1,mes2,rez: string;

    s,sn,e,x,ch,f:real;

    i:integer;

begin

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

 e:=StrToFloat(Form4.Edit2.Text);

 s:=0;i:=0;ch:=-x;f:=1;

repeat

 i:=i+1;

 ch:=ch*(-x);

 f:=f*i;

 sn:=ch/f;

 s:=s+sn;

 mes1:= mes1+IntToStr(i)+#13 ;

 mes2:= mes2+FloatToStrF(sn,ffFixed,10,5)+#13;

 Label7.Caption:=  mes1;

 Label8.Caption:=  mes2;

until abs(sn)<e;

 Label10.Caption:= ' S = ' + FloatToStrF(S,ffFixed,10,5);

end;

end.

Результат роботи

 

Висновки

1. Для організації циклів з невідомим числом повторень застосовуються оператори while...do (цикл ПОКИ),  repeat...until (цикл ДО).

2. Для виконання в циклі while...do групи операторів їх необхідно об’єднати в один складний оператор за допомогою операторних дужок begin…end.

3. При виконанні циклу repeat...until у тілі циклу може перебувати безліч операторів. Складний оператор не потрібний.

ЛАБОРАТОРНА РОБОТА №5

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

Мета: Навчитися виконувати обробку числових масивів.

Завдання:

Створити додаток, що дозволяє виконувати обробку елементів одновимірного масиву (вхідні дані мають вводитися з клавіатури, результати обчислень повинні виводитися на екран).

Таблиця   Варіанти завдань

Імя

масиву

Завдання

1

X(100)

Підрахувати суму і кількість елементів масиву Х, які задовольняють умові  .

2

A(80)

Підрахувати середнє арифметичне значення елементів масиву А, якщо елементи задовольняють умові .

3

X(70)

Переписати елементи масиву X  в масив Y і підрахувати їх кількість, якщо елементи задовольняють умові .

4

B(50)

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

5

C(40)

Визначити мінімальний елемент масиву С та його номер.

6

D(80)

Визначити максимальний і мінімальний елементи масиву D та поміняти їх місцями.

7

Y(20)

Підрахувати суму елементів масиву. Розділити кожний елемент масиву на отримане значення. Результат одержати в тому ж масиві.

8

A(14)

Підрахувати суму елементів масиву A, кратних трьом. Умова: остача(A(i)/3)=0 .

9

N(50)

Підрахувати суму і кількість елементів масиву N, якщо елементи задовольняють умові .

10

X(N)

Підрахувати суму і кількість елементів масиву X,  якщо елементи задовольняють умові .

11

X(N)

Переписати в масив Y підряд додатні елементи масиву X, якщо елементи задовольняють умові .

12

X(N)

Переписати в масив Y підряд додатні і в масив Z від’ємні елементи масиву X. Умова .

13

B(K)

Визначити максимальний елемент масиву B та його порядковий номер, якщо  K≤ 50.

14

C(K)

Визначити мінімальний  елемент масиву С та його порядковий номер, якщо елементи задовольняють умові .

15

A(K)

Підрахувати середнє значення елементів заданого масиву. Перетворити початковий масив, віднімаючи від кожного елемента середнє значення. K≤ 40. 

16

X(N)

Отримати добуток елементів одновимірного масиву розмірністю N≤ 10 з номерами від 3 до 7 (якщо елемент дорівнює 0, то пропустити).

17

X(N)

Помножити кожен елемент одновимірного масиву розмірністю N на кількість його додатних елементів.

18

X(N)

Замінити перші 6 додатних елементів одновимірного масиву розмірністю N ≤ 10 на 0.

19

X(N)

Замінити всі парні елементи одновимірного масиву розмірністю N≤ 15 на 1.

20

X(N)

Замінити всі непарні члени одновимірного масиву розмірністю N≤ 20 на 10.

21

X(N)

Визначити суму квадратів парних чисел одновимірного масиву розмірністю N≤ 15.

22

X(N)

Відібрати і надрукувати із одновимірного масиву розмірністю N≤ 20 ті елементи, які менші числа А.

23

X(N)

В одновимірному масиві розмірністю N знайти індекс першого від’ємного елементу.

24

X(N)

В одновимірному масиві розмірністю N знайти індекс першого додатного елементу.

25

X(N)

В одновимірному масиві розмірністю N знайти індекс останнього додатного елементу.

 Підготовка до роботи

1.    По зазначеній літературі вивчити:

  •  організацію циклів з відомим числом повторень та можливості мови для організації таких циклів за допомогою операторів з параметром for...to...do і for...downto...do.
  •  способи опису розмірів масивів;
  •  способи введення й виведення масивів;
  •  пошук найбільшого та найменшого;

2.    Розробити алгоритм рішення завдань.

3.    Скласти програми рішення завдань.

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

  1.  Циклічний процес із заданим числом повторень.
  2.  Оператор циклу for...to...do.
  3.  Оператор циклу for...downto...do.
  4.  Різниця між операторами for...to...do і for...downto...do.
  5.  Вимоги до змінної циклу в операторах for...to...do і for...downto...do.
  6.  Організація підрахування суми.
  7.  Організація підрахування добутку.
  8.  Що таке масив?
  9.  Опис типу - масив.
  10.  Особливості організації циклу при обробці масивів?
  11.  Особливість введення та виводу масивів?

Практична частина

Потрібно підрахувати суму всіх елементів в одновимірному масиві довжиною N.

Необхідно створити новий додаток; на форму Form5 установлюються  компоненти.

Компонент StringGrid встановлюється з вкладки Advanced:

StringGrid1 (ColCount=20, FifedCols=0, RowCount=2, FifedRows=1,Optoins: goEdit=true, goTabs=true);

StaticText (з вкладки Advanced):

StaticText1, StaticText2  StaticText3, StaticText4 (властивостям Сaption  присвоїмо значення: «ЛАБОРАТОРНА РОБОТА №5. Обробка одновімирних масивів», «Кількість елементів», «Елементи масиву», «Сума  елементів масиву» відповідно);

Edit (з вкладки Standart):

Edit1 ( властивості text присвоїмо значення « »);

Label (з вкладки Standart):

Label1 (властивості Сaption присвоїмо значення « »);

Button (з вкладки Standart):

Button1 (властивості Сaption присвоїмо значення «Обчислити».

         Клацнувши двічі на кнопку Button1 (Обчислити) у вікні, що спливе,  набрати текст програми  по знаходженню суми елементів масиву і виконати команду File /Save all.

Блок-схема алгоритму

Текст модуля

unit Unit5;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, Grids;

type

 TForm5 = class(TForm)

   Edit1: TEdit;

   StringGrid1: TStringGrid;

   Button1: TButton;

   StaticText1: TStaticText;

   StaticText2: TStaticText;

   StaticText3: TStaticText;

   StaticText4: TStaticText;

   Label1: TLabel;

   procedure Button1Click(Sender: TObject);

   procedure Edit1Change(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

   Form5: TForm5;

   A: array of  real;

   i, N: integer;

   S: real;

implementation

{$R *.dfm}

procedure TForm5.Edit1Change(Sender: TObject);

begin

  if Edit1.Text = '' then exit;

  n:=StrToInt(Edit1.Text); // вводимо кількість елементів

  stringgrid1.ColCount:=n; // stringgrid1 розбиваємо на n стовбців

for i:=0 to n-1 do StringGrid1.Cells[i,0]:=inttostr(i);

// у комірках фіксованого рядка прописуємо номери стовбців

SetLength(a,n); // розмір масиву встановлюємо рівним n

end;

procedure TForm5.Button1Click(Sender: TObject);

Begin

For i:=0 to n-1 do  a[i]:=StrToFloat(StringGrid1.Cells[i,1]);

// вводимо значення комірок StringGrid1 у масив а

S:=0;

for  i:=0 to N-1 do if A[i]>0 then S:= S + A[i];

Label1.Caption:= ' S = '+ FloatToStr(S);

end;

end.

Результат роботи

Висновки

1. Для організації циклів з відомим числом повторень застосовуються оператори:

  •  for <змінна циклу>:= <початкове значення> to <кінцеве значення> do <оператор>. В ньому змінна циклу  збільшується з кроком 1.
  •  for <змінна циклу>:= <початкове значення> downto <кінцеве значення> do <оператор>. В ньому змінна циклу  зменшується з кроком -1.

2.  Змінна циклу повинна бути порядкового типу (наприклад, Integer).

3. Якщо в тілі циклу використовується багато операцій, то їх потрібно оформити як складений оператор за допомогою операторних дужок begin…end.

ЛАБОРАТОРНА РОБОТА №6

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

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

Завдання:

Виконати обробку матриці X(n,m) згідно до варіанту.

Таблиця  – Варіанти завдань

Матриця

Завдання

1

A

Підрахувати і вивести суму та кількість додатних елементів кожного стовпця  матриці.

2

B

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

3

C

Підрахувати суму елементів побічної діагоналі матриці.

4

A

Підрахувати добуток елементів головної діагоналі матриці.

5

B

Знайти суму елементів другого рядка матриці.

6

C

Знайти суму елементів другого стовпця матриці.

7

A

Вивести до друку елементи матриці A(i,j)<=4.

8

A

Вивести  до друку елементи матриці 2<= A(i,j)<=5.

9

B

Вивести до друку відємні елементи матриці.

10

A

Вивести до друку додатні елементи матриці.

11

A

Підрахувати суму елементів матриці.

12

A

Підрахувати суму елементів головної діагоналі матриці.

13

B

Підрахувати суму елементів двох перших стовпців матриці.

14

C

Визначити середнє арифметичне матриці.

15

A

Знайти суму елементів третього рядка матриці.

15

B

Визначити  i надрукувати найменший елемент матриці та його iндекси.

17

C

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

18

A

Для  кожного стовпця  матриці знайти i надрукувати суму значень вiд`ємних елементів.

19

B

Для  кожного стовпця матриці знайти i надрукувати суму значень  елементів, що перевищують число Z.

20

C

Для кожного рядка матриці знайти i надрукувати номери стовпців, що містять вiд`ємнi елементи.

21

A

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

22

B

Знайти i  надрукувати суму значень вiд’ємних елементів матриці.

23

C

Для кожного рядка матриці знайти i надрукувати суму значень елементів, що розташовані в стовпцях з непарними номерами.

24

A

Знайти i надрукувати добуток значень вiд`ємних елементів матриці.

25

B

Для кожного стовпця матриці знайти i надрукувати кількість елементів, значення яких не перевищує числа Z.

Практична частина

Потрібно для  кожного  рядка таблиці визначити i надрукувати кількість  елементів, значення яких перевищує число Z.

Необхідно створити новий додаток; на форму Form6 встановлюються  компоненти.

StringGrid (з вкладки Advanced):

 StringGrid1 (ColCount=20, FixedCol=1,FixedRows=1,RowCount=24, Options:goEdit=true, goTabs=true),

StringGrid2 (ColCount=1, FixedCol=0,FixedRows=1,RowCount=24, Options:goEdit=true, goTabs=true);

Edit (з вкладки Standart):

Edit1, Edit2, Edit3 ( властивості Тext присвоїмо значення « »);

Label (з вкладки Standart) та  Button (з вкладки Standart).

Блок-схема алгоритму

Текст модуля

unit Unit6;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls, Grids;

type

 TForm6 = class(TForm)

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Edit1: TEdit;

   Edit2: TEdit;

   StringGrid1: TStringGrid;

   StringGrid2: TStringGrid;

   Button1: TButton;

   Label4: TLabel;

   Label5: TLabel;

   Edit3: TEdit;

   Label6: TLabel;

   procedure Edit1Change(Sender: TObject);

   procedure Edit2Change(Sender: TObject);

   procedure Button1Click(Sender: TObject);

 private

   { Private declarations }

 Public

   { Public declarations }

end;

var

 Form6: TForm6;

 n,m,k:integer;

 a: array [0..10,0..10] of real;

implementation

{$R *.dfm}

procedure TForm6.Edit1Change(Sender: TObject);

var i:integer;

begin

//вводимо кількість рядків

n:=Strtoint(Edit1.text);   

//stringgrid1 та stringgrid2 розбиваємо на n+1 рядків

 stringgrid1.RowCount:=n+1;  

 stringgrid2.RowCount:=n+1;

//у комірках фіксованого стовбця прописуємо   номери //рядків 

for i:=0 to n do begin

   StringGrid1.Cells[0,i]:=inttostr(i); 

   StringGrid2.Cells[0,i]:=inttostr(i); // 

 end;

end;

procedure TForm6.Edit2Change(Sender: TObject);

 var j:integer;

begin

// вводимо кількість стовбців      m:=StrToInt(Edit2.text);

// stringgrid1 розбиваємо на m+1 стовбців   stringgrid1.ColCount:=m+1; 

// у комірках фіксованого рядка прописуємо номери  // стовбців 

for j:=0 to m do StringGrid1.Cells[j,0]:=inttostr(j);

end;

procedure TForm6.Button1Click(Sender: TObject);

 var i,j:integer;

begin

for i:=1 to n do

for j:=1 to m do

    a[j,i]:=StrToFloat(StringGrid1.Cells[j,i]);

// вводимо значення комірок StringGrid1 у масив а

 for i:=1 to n do begin

   k:=0;

   for j:=1 to m do if a[j,i]>0 then k:=k+1;

   StringGrid2.Cells[1,i] :=IntToStr(k);

end;

end; end.

Результат роботи

Висновки

1.    Масив – це упорядкований набір значень однакового типу.

2.    Розмірність масиву обмежена тільки доступною пам'яттю.

3.    Для обробки масивів застосовуються оператори циклів з відомим числом повторень.

4.    Матриці наочно відображаються у табличній формі.

 

ЛАБОРАТОРНА РОБОТА №7

Тема: Програмування процедур та функцій  у Delphi.

Мета : навчитися створювати і  використовувати  підпрограми – процедури та функції,  освоїти  поняття фактичних та формальних параметрів, параметрів-значень та параметрів-змінних.

Завдання:

Модифікувати програму лабораторної роботи № 6  таким чином, щоб  введення масиву та виведення результатів його обробки  відбувалися у процедурі Button1Click, а обробка масиву і формування результату  були оформлені у вигляді окремої підпрограми : процедури або функції.

Вимоги до звіту.

У звіті з лабораторної роботи  повинні бути відображені:

  1.  Тема, мета, завдання  лабораторної роботи.
  2.  Короткі теоретичні відомості по темі.
  3.  Блок-схеми підрограм.
  4.  Опис інтерфейсу користувача, використаних компонент та їх основних властивостей.
  5.  Опис роботи підпрограм.
  6.  Текст програми.
  7.  Результати роботи програми (скріншот форми з отриманими результатами).
  8.  Висновок.

Підготовка до роботи

1.    Вивчити принципи використання підпрограм.

2.    Розробити алгоритми рішення завдання – алгоритм основної  підпрограми та підпрограми по обробці масиву.

3.    Скласти  програму та налагодити її виконання.

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

1.     Поняття підпрограми, види підпрограм.

2.     Відмінності між процедурою та функцією.

3.     Параметри підпрограми.

4.     Формальні та фактичні параметри.

5.     Параметри-значення та параметри-змінні.

Практична частина

Для кожного рядка  дійсного масиву розмірністю n*m визначити кількість елементів, значення яких перевищує число Z.

Необхідно створити новий додаток; на форму Form7 встановлюються  компоненти.

StringGrid (з вкладки Advanced):

 StringGrid1 (ColCount=20, FixedCol=1,FixedRows=1,RowCount=24, Options:goEdit=true, goTabs=true),

StringGrid2 (ColCount=1, FixedCol=0,FixedRows=1,RowCount=24, Options:goEdit=true, goTabs=true);

Edit (з вкладки Standart):

        Edit1, Edit2, Edit3 ( властивості Тext присвоїмо значення « »);

Label (з вкладки Standart) та  Button (з вкладки Standart).

У наведеній програмі введення елементів масиву та виведення результатів відбуваються у головній програмі, обробка масиву – тобто визначення кількості елементів, що перевищують число Z для кожного рядка, здійснюється процедурою Obrobka.

У такому разі параметри (n,m,z,a,b) , вказані при виклику процедури Obrobka (n,m,z,a,b) є фактичними параметрами, а параметри, вказані у заголову процедури  Obrobka (n1,m1:integer; q:real; x:mas1type; var y:mas2type) – формальними. З них n1,m1:integer; q:real; x:mas1type  є параметрами-значеннями, що отримують значення відповідних фактичних параметрів  n, m, z, a;  var y:mas2type – параметр-змінна, що в результаті виконання процедури повертає значення фактичному параметру  b,  що є масивом результатів.

Блок-схема алгоритму

головної програми  

                                                                                                                                                                  

Блок-схема алгоритму підпрограми                                                                                   (процедури Obrobka )


Текст модуля

unit Unit7;

interface

uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

         Dialogs, StdCtrls, Grids;

type

 mas1type = array  [1..20,1..20]of real;

 mas2type = array  [1..20]of integer;

 TForm1 = class(TForm)

   Label1: TLabel;

   Edit1: TEdit;

   Label2: TLabel;

   Edit2: TEdit;

   Label3: TLabel;

   Edit3: TEdit;

   Label4: TLabel;

   StringGrid1: TStringGrid;

   StringGrid2: TStringGrid;

   Button1: TButton;

   procedure Edit1Change(Sender: TObject);

   procedure Edit2Change(Sender: TObject);

   procedure Button1Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

 n,m:integer;

implementation

{$R *.dfm}

procedure TForm1.Edit1Change(Sender: TObject);

var i:integer;

begin

 n:=Strtoint(Edit1.text);

 stringgrid1.RowCount:=n+1;

 stringgrid2.RowCount:=n+1;

 for i:=0 to n do StringGrid1.Cells[0,i]:=inttostr(i);

end;

procedure TForm1.Edit2Change(Sender: TObject);

var j:integer;

begin

 m:=Strtoint(Edit2.text);

stringgrid1.ColCount:=m+1;

for j:=0 to m do StringGrid1.Cells[j,0]:=inttostr(j);

end;

procedure Obrobka (n1,m1:integer; q:real; x:mas1type; var      y:mas2type);

var i,j,k:integer;

begin

for i:=1 to n1 do  begin

  k:=0;

  for j:=1 to m1 do if x[i,j]>q then k:=k+1;

  y[i] :=k;

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

 var  i,j,k:integer; z:real; a:mas1type;  b:mas2type;

begin

   z:=  strtofloat(Edit3.text);

{введення елементів масиву}   

for i:=1 to n do

   for j:=1 to m do

       a[i,j]:=strtofloat(StringGrid1.Cells[j,i]);

{обробка масиву і формування масиву результатів за допомогою процедури}   

Obrobka (n,m,z,a,b) ;

{виведення  масиву результатів}   

 for i:=1 to n do

       StringGrid2.Cells[0,i] :=inttostr(b[i]);

end;

end.

Результат роботи

Висновки

  1.  Для часто вживаних однакових дій над  різними даними варто застосовувати підпрограми.
  2.  У заголовку процедури вказується службове слово Procedure, ім’я процедури та в дужках, за необхідності, список її формальних параметрів.
  3.  У заголовку функції вказується службове слово Function, ім’я функції, в дужках, за необхідності, список її формальних параметрів,  після дужок двокрапка та тип результату функції. У тілі самої функції обовязково повинен бути присутній оператор присвоєння імені функції її результату.
  4.  Формальні параметри в заголовку підпрограми вказують, з якими даними потрібно звертатись до даної підпрограми; фактичні параметри вказуються при виклику підпрограми.
  5.  Параметри-значення є вхідними даними для підпрограми і не змінюють значень відповідних їм фактичних параметрів; параметри-змінні є результатами роботи підпрограми, вони змінюють значення відповідних їм фактичних параметрів.




1. модуль упругости и коэффициент Пуассона вычисляются по определенным в процессе испытания нагрузкам Рр и 03Р
2. Реферат по информатике на тему- Архитектура персонального компьютера
3. Экспертиза и инспектирование инвестиционного процесса
4. Витоки українського народу та його державності
5. Внебольничная бронхопневмония в нижней доле правого легкого средней тяжести
6. Лекция Бизнеспланирование в образовательных учреждениях
7. Аналитическая теория чисел L-функция Дирихле
8. Моделирование. Шпаргалка.html
9. Дзержинский Технический Колледж РАБОЧАЯ ТЕТРАДЬ ПО ХИМИИ
10. Let~s tlk bout Gret Britin
11. Проблема безопасности продуктов питания и их воздействие на организм человека
12.  Союзники или соперники СОДЕРЖАНИЕ Введение Соперники или союзники Заключение Литер
13. Йорк такой же страстной любовью как и еще одно явление в своей жизни
14. Серебряные иглы с горы Цзюнь Шань
15. оценка воздействия на окружающую среду ОВОС или как ее часто называют экологическая экспертиза
16. Расчет эффективности деятельности туроператора
17. Биологические основы психики
18. Тема- Аудит персонала Аудит персонала ~ это оценка кадрового потенциала организации которая выя
19. Выбор деталей для коробки скоростей
20. .Культура речи ~ это особая научная дисциплина изучающая и регламентирующая правила связанные с функционир