Алгоритмізація та програмування у середовищі Delphi
Поняття масиву, види масивів: одновимірний масив, двовимірний масив, квадратна матриця. Компонент StringGrid: загальні відомості, прийом програмування, властивості. Пошук середнього арифметичного рядка двомірного масиву. Тексти процедур Delphi-програми.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 01.03.2014 |
Размер файла | 20,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Зміст
delphi програмування масив
Вступ
1. Масив
2. Види масивів
2.1 Одновимірний масив
2.2 Двовимірний масив
2.3 Квадратна матриця
3. Компонент StringGrid
3.1 Загальні відомості
3.2 Прийоми програмування
3.3 Властивості StringGrid
4. Пошук середнього арифметичного рядка двомірного масиву
5. Тексти процедур Delphi-програми
Висновки
Список використаних джерел
Вступ
Концепція Delphi1 була реалізована в кінці 1994 року, коли вийшла перша версія середовища розробки. В основу цього програмного продукту лягли концепції об'єктно-орієнтованого програмування (ООП) на базі мови Object Pascal і візуального підходу до побудови додатків.
Існують різні типи даних в мові Delphi. Дані в комп'ютері можна розглядати як елементи пам'яті, які мають свої імена (ідентифікатори). Всі дані в програмі на мові Delphi повинні бути описані до їх першого використання. І компілятор стежить, щоб в програмі вони використовувалися у відповідності з цим описом, що дозволяє уникнути помилок.
Будь яка величина в Delphi може бути постійною або змінною. Її ім'я (ідентифікатор) може складатися з комбінації латинських букв, цифр і знака підкреслення, і починатися не з цифри. При цьому регістр символів значення не має.
Під час запису окремої літери в пам'ять машини доведеться визначати те місце в комірці, куди її необхідно помістити, і заносити літеру саме туди, не змінюючи вміст інших розрядів (Запаковування літери в клітинку). Такі додаткові дії можуть займати значну частину загального часу роботи програми. Тому приймати рішення про використання упакованого подання даних повинен завжди програміст, в залежності від конкретних умов і цілей, які він переслідує. Отже, значення похідних типів можуть бути представлені в пам'яті ЕОМ в упакованому і не упакованому вигляді. Упаковане уявлення вимагає, взагалі кажучи, меншого обсягу пам'яті, але уповільнює процес виконання програми. Ми розглянемо найбільш уживаний похідний тип, а саме регулярний тип. Значення регулярного типу зазвичай називають масивом.
1. Масив
В програмуванні масив (англ. array) - одна з найпростіших структур даних, сукупність елементів одного типу даних, впорядкованих за індексами, які зазвичай репрезентовані натуральними числами, що визначають положення елемента в масиві.
Масив може бути одновимірним (вектором), та багатовимірним (наприклад, двовимірною таблицею), тобто таким, де індексом є не одне число, а кортеж (сукупність) з декількох чисел, кількість яких збігається з розмірністю масива.
У переважній більшості мов програмування масив є стандартною вбудованою структурою даних.
Масиви ефективні при звертанні до довільного елементу, яке відбувається за постійний час (O (1)), однак такі операції як додавання та видалення елементу, потребують часу O (n), де n - розмір масиву. Тому масиви переважно використовуються для зберігання даних, до елементів яких відбувається довільний доступ без додавання або видалення нових елементів, тоді як для алгоритмів з інтенсивними операціями додавання та видалення, ефективнішими є зв'язані списки.
Інша перевага масивів, яка є досить важливою - це можливість компактного збереження послідовності їх елементів в локальній області пам'яті (що не завжди вдається, наприклад, для зв'язаних списків), що дозволяє ефективно виконувати операції з послідовного обходу елементів таких масивів.
Масиви є дуже економною щодо пам'яті структурою даних. Для збереження 100 цілих чисел в масиві необхідно рівно в 100 разів більше пам'яті, ніж для збереження одного числа (плюс, можливо, ще декілька байтів). В той же час, усі структури даних, які базуються на вказівниках, потребують додаткової пам'яті для збереження самих вказівників разом з даними. Однак, операції з фіксованими масивами ускладнюються тоді, коли виникає необхідність додавання нових елементів у вже заповнений масив. Тоді його необхідно розширювати, що не завжди можливо і для таких задач слід використовувати зв'язані списки, або динамічні масиви.
У випадках, коли розмір масиву є досить великий та використання звичайного звертання за індексом стає проблематичним, або великий відсоток його комірок не використовується, слід звертатись до асоціативних масивів, де проблема індексування великих обсягів інформації вирішується більш оптимально.
З тої причини, що масиви мають фіксовану довжину, слід дуже обережно ставитись до процедури звертання до елементів за їхнім індексом, тому що намагання звернутись до елементу, індекс якого перевищує розмір такого масива (наприклад, до елементу з індексом 6 в масиві з 5 елементів), може призвести до непередбачуваних наслідків.
Слід також бути уважним щодо принципів нумерації елементів масиву, яка в одних мовах програмування може починатись з 0, а в інших - з 1.
2. Види масивів
2.1 Одновимірний масив
Кожному використовуваному в програмі конкретного масиву має бути дано своє ім'я. Це ім'я будемо називати повною змінної, оскільки її значення є весь масив. Кожна компонента масиву може бути явно позначена шляхом зазначення імені масиву, за яким слід селектор компоненти - узятий в квадратні дужки індекс, що задає правило обчислення номера потрібної частини. Ця відмінність від звичної запису індексу в математиці, коли він вказується праворуч в нижній позиції, пояснюється необхідністю використання лінійної запису програми, так що багаторівнева запис повинна бути виключена. При посиланні на компоненти масиву індекс записується на одному рівні з ім'ям і полягає у квадратні дужки. Таким чином, для посилання на окремі компоненти використовується запис виду (ім'я масиву) [<індекс>] яку будемо називати часткової змінної (оскільки її значенням є не весь масив, а окрема його компонента, номер якої задається індексом) - стосовно до масивів вона називається змінної з індексом. У нашому прикладі масив отримає ім'я v, а посилання на окремі його компоненти виробляються за допомогою часткових змінних v [1], v [2],..., v [1ОО]. У загальному випадку в якості індексу може, бути використано вираз, значення якого і визначає номер компоненти масиву. При цьому важливо, що в індексне вираз можуть входити змінні, так що при зміні їх значень змінюється і значення індексу, яке визначає номер компоненти масиву. Таким чином, одна й та ж змінна з індексом в процесі виконання програми може позначати різні компоненти масиву. Тип значення індексного виразу називають типом індексу. Безліч значень типу індексу пронумеруються безліччю, тим самим визначаючи кількість компонентів і їх впорядкованість. При завданні регулярного типу окрім типу індексу необхідно задати тип компонент. Завдання такого регулярного типу, як одновимірний масив, тобто вектор, має вигляд:
аrrау [ (тип індексу) ] оf <тип компонент>, де <тип компонент> - ім'я чи завдання типу.
2.2 Двовимірний масив
Двовимірний масив (прямокутна таблиця (матриця, набір векторів)) - це приклад масиву, в якому елементи нумеруються двома індексами.
Як номер (індексу) елемента масиву використовується вираз порядкового типу (частіше integer).
Двовимірним масивом називається таблиця, що складається з рядків і стовпців. Для опису масиву використовуються два індекси.
А11 А12 А13... А1m
A21 A22 A23... А2m
An1 An2 An3... Anm
Опис масиву
У розділі опису змінних
У розділі опису типів
У розділі опису констант
Масив, описаний як типізована константа, вже містить дані. Масиви, оголошені в розділі опису змінних, необхідно заповнити даними, перш ніж виконувати з ними будь-які дії.
Значення елементів масиву також можна задати наступним чином: при введенні даних з клавіатури.
2.3 Квадратна матриця
Квадратної називається така матриця, в якій кількість рядків дорівнює кількості стовпців. Виділяють наступні елементи квадратної матриці:
головна діагональ;
побічна діагональ;
елементи, розташовані вище головної діагоналі;
елементи, розташовані нижче головної діагоналі;
елементи, розташовані вище побічної діагоналі;
елементи, розташовані нижче побічної діагоналі;
3. Компонент StringGrid
3.1 Загальні відомості
Таблиця StringGrid Delphi надає всі основні можливості для розміщення текстових, а також графічних даних в табличній формі. А так як дані мають «дивне» властивість групуватися по рядках і стовпцях, то таблиця StringGrid має важливе значення в програмуванні в системі Delphi. Звичайно, для роботи з таблицями баз даних в Delphi існує спеціалізовані компоненти. Але в звичайних умовах для роботи з табличними даними в Delphi застосовується саме компонент StringGrid.
Типовими операціями при роботі з масивами є:
висновок масиву;
введення масиву;
пошук максимального чи мінімального елемента масиву;
пошук заданого елемента масиву;
сортування масиву.
Таблиця StringGrid має гнучкі можливості по налаштуванню свого виду - ширини і висоти окремих рядків і стовпців, як і їх кількість на етапі проектування і програмно, розміру фіксованого області та області редагування, виділення як окремої клітинки, так і зони з кількох осередків, і т. д. Доступ до вмісту кожної окремої клітинки надається за індексом - номеру стовпця і рядка, в яких вона перебуває.
Якщо клітинки не поміщаються в розміри таблиці, автоматично додаються як вертикальна, так і горизонтальна смуги прокрутки. Причому в кожен момент відомі номери видимих рядків і стовпців, і ця область доступна для управління. Таким чином, ми можемо програмно переміщати в область видимості ті осередки, де містяться потрібні нам дані.
Події, на які може реагувати таблиця Delphi StringGrid, також різноманітні і надають програмісту широкі можливості по створенню програм, що використовують таблиці, наповнені необхідної функціональністю. Завжди можна відстежити натиснення і відпуск як кнопок клавіатури так і мишки, виділення і переміщення осередків, їх редагування.
3.2 Прийоми програмування
Прийоми програмування таблиці StringGrid Delphi дозволяють використовувати таблицю StringGrid не просто як статичний об'єкт для відображення даних в табличній формі, а надати таблиці можливості динамічно міняти свій вміст в залежності від потреб та поведінки користувача.
Використання таблиці StringGrid Delphi передбачає такі прийоми її програмування як:
автоматичне заповнення таблиці;
збереження вмісту осередків таблиці;
очищення всіх елементів таблиці;
вирівнювання вмісту в осередках;
зміна кількості рядків і стовпців;
малювання в осередках;
та багато інших.
StringGrid Delphi - компонент, що володіє, як текстовими, так і графічними властивостями. Тому прийоми програмування таблиці StringGrid Delphi припускають використання практично всіх наявних властивостей і методів Delphi. Таким чином, вивчення можливостей таблиці StringGrid призводить до того, що програміст все краще пізнає систему Delphi, що розширює його можливості у створенні програм, що використовують і інші компоненти.
Компонент StringGrid може розміщувати у своїх осередках не тільки текст, але і графіку. Помістити малюнок чи інше зображення в клітинку таблиці StringGrid дозволяє властивість Canvas компонента StringGrid.
3.3 Властивості StringGrid
Name - ім'я компоненту. Використовується в програмі для доступу до компоненту і його властивостей.
Colcount - кількість колонок таблиці.
Rowcount - кількість рядків таблиці.
Defaultcolwidth - ширіна колонок таблиці.
Defaultrowheight - висота рядків таблиці.
Fixedcols - кількість зафіксованих зліва колонок таблиці. Зафіксовані колонки виділяються кольором і при горизонтальній прокрутці таблиці залишаються на місці.
Fixedrows - кількість зафіксованих зверху рядків таблиці. Зафіксовані рядки виділяються кольором і при вертикальній прокрутці таблиці залишаються на місці.
Cells - відповідний таблиці двовимірний масив. Елементу таблиці, що знаходиться на перетині стовпця з номером col і рядки з номером row відповідає елемент cells [col] [row].
Gridlinewidth - ширіна ліній, що обмежують елементи таблиці.
Left - відстань від лівої межі поля таблиці до лівої межі форми.
Тор - відстань від верхньої межі поля таблиці до верхньої межі форми.
Height - висота поля таблиці.
Width - ширіна поля таблиці.
Options. Goediting - ознака допустимості редагування вмісту елементів таблиці (true- редагування дозволене false - заборонено).
Options. gotab - вирішує (true) або забороняє (false) використання клавіші <Таb> для переміщення курсора в наступний елемент таблиці.
Options. goAlwaysShowEditor - ознака знаходження компоненту в режимі редагування. Якщо значення властивості falseто для того, щоб в осередку з'явився курсор, треба або почати набирати текст або натиснути клавішу <F2>, або зробити клацання мишею в елементі таблиці.
Font - шрифт, використовуваний для відображення вмісту елементів таблиці.
Parentfont - ознака спадкоємства характеристик шрифту форми.
4. Пошук середнього арифметичного рядка двомірного масиву
Алгоритм ошуку середнього арифметичного рядка двомірного масивудосить очевидний: спочатку знаходимо суму елементів першого рядка, потім ділимо на 5, цикл переходить далі. Знаходиться друге середнє арифметичне другого рядка, третього та четвертого, і виводиться в одномірний вертикальний масив..
Алгоритм може складатися з декількох частин:
читання значень елементів масиву;
процес додавання та ділення результату;
вивід результату;
Діалогове вікно програми пошуку середнього арифметичного рядка двомірного масиву містить відповідним чином налаштований компонент stringGrid.
Далі буде приведена процедура обробки події Onclick для командної кнопки Button1, яка вводить масив, виконує пошук середнього арифметичного елемента і виводить результат - середньє арифметиче рядка двомірного масиву масиву.
5. Тексти процедур Delphi-програми
№ варіанта |
Розмірність |
Тип даних |
Вираз для обчислення елементу масиву |
Виконати |
||
непарного |
парного |
|||||
1 |
2 |
3 |
4 |
5 |
6 |
|
10 |
4 х 5 |
Дійсний |
15. 5 - i |
7. 2 + i |
Значення елементів однови-мірного масиву складаються із середнього арифметичного значень елементів строк двовимірного масиву. |
Процедура пошуку середнього арифметичного елемента:
procedure TForm1. Button1Click (Sender: TObject) ;
var
s, sr: real;
begin
For i: =1 To 4 Do
For j: =1 To 5 Do
If (StringGrid1. Cells[j-1, i-1]='') Then
SG1[i, j]: =0
Else
SG1[i, j]: =StrToFloat (StringGrid1. Cells[j-1, i-1]) ;
For i: =1 To 4 Do
Begin
s: =0;
sr: =0;
For j: =1 To 5 Do
s: =SG1[i, j]+s;
sr: =s/5;
SG2[i]: = sr;
End;
For i: =1 To 4 Do
StringGrid2. Cells[0, i-1]: = FloatToStr (SG2[i]) ;
end;
Процедура вводу значень масиву через формулу:
procedure TForm1. Button5Click (Sender: TObject) ;
begin
k: =1;
For i: =1 To 4 Do
For j: =1 To 5 Do
Begin
If ((k Mod 2) <> 0) Then
StringGrid1. Cells[j-1, i-1]: =FloatToStr (15. 5-k)
Else
StringGrid1. Cells[j-1, i-1]: =FloatToStr (7. 2+k) ;
k: =k+1;
End;
end;
Процедура очищення середовища таблиць:
procedure TForm1. Button3Click (Sender: TObject) ;
begin
For i: =1 To 4 Do
For j: =1 To 5 Do
StringGrid1. Cells[j-1, i-1]: ='';
For i: =1 To 5 Do
Begin
StringGrid2. Cells[0, i-1]: ='';
SG2[i]: =0;
End;
end;
Процедура вводу значень масиву випадково:
procedure TForm1. Button2Click (Sender: TObject) ; {ВИПАДКОВИЙ}
begin
Randomize;
For i: =1 To 4 Do
For j: =1 To 5 Do
StringGrid1. Cells[j-1, i-1]: =FloatToStr (Random (101) /2-25) ;
end;
Висновки
Масиви ефективні при звертанні до довільного елементу, яке відбувається за постійний час (O (1)), однак такі операції як додавання та видалення елементу, потребують часу O (n), де n - розмір масиву. Тому масиви переважно використовуються для зберігання даних, до елементів яких відбувається довільний доступ без додавання або видалення нових елементів, тоді як для алгоритмів з інтенсивними операціями додавання та видалення, ефективнішими є зв'язані списки.
Інша перевага масивів, яка є досить важливою - це можливість компактного збереження послідовності їх елементів в локальній області пам'яті (що не завжди вдається, наприклад, для зв'язаних списків), що дозволяє ефективно виконувати операції з послідовного обходу елементів таких масивів.
Масиви є дуже економною щодо пам'яті структурою даних. Для збереження 100 цілих чисел в масиві необхідно рівно в 100 разів більше пам'яті, ніж для збереження одного числа (плюс, можливо, ще декілька байтів). В той же час, усі структури даних, які базуються на вказівниках, потребують додаткової пам'яті для збереження самих вказівників разом з даними. Однак, операції з фіксованими масивами ускладнюються тоді, коли виникає необхідність додавання нових елементів у вже заповнений масив. Тоді його необхідно розширювати, що не завжди можливо і для таких задач слід використовувати зв'язані списки, або динамічні масиви.
У переважній більшості мов програмування масив є стандартною вбудованою структурою даних. У випадках, коли розмір масиву є досить великий та використання звичайного звертання за індексом стає проблематичним, або великий відсоток його комірок не використовується, слід звертатись до асоціативних масивів, де проблема індексування великих обсягів інформації вирішується більш оптимально.
З тої причини, що масиви мають фіксовану довжину, слід дуже обережно ставитись до процедури звертання до елементів за їхнім індексом, тому що намагання звернутись до елементу, індекс якого перевищує розмір такого масиву (наприклад, до елементу з індексом 6 в масиві з 5 елементів), може призвести до непередбачуваних наслідків.
Слід також бути уважним щодо принципів нумерації елементів масиву, яка в одних мовах програмування може починатись з 0, а в інших - з 1.
Список використаних джерел
Сергей Бобровский. Технологии Delphi 2006. Новые возможности. Введение в Borland Delphi 2006/ Сергей Бобровский. - М. : Диалектика, 2020. - 388 с.
Дмитрий Осипов. Delphi. Профессиональное программирование - М. : Вильямс, 2006. - 1056 с.
Петр Дарахвелидзе, Евгений Марков. Разработка Web-служб средствами Delphi 2009 - 656 с.
Електронні ресурси
Сайт Delphi програмирование http://www.delphisources.ru/.
Форум по програмуванню http://www.delphisources.ru/forum/.
Клуб програмістів http://programmersforum.ru/
Размещено на Allbest.ru
...Подобные документы
Розробка програми у середовищі візуального програмування Borland Delphi, що демонструє роботу із двовимірним масивом різних символів. Побудова інформаційно-математичної моделі та опрацювання кожного з функціональних блоків на етапі алгоритмізації.
курсовая работа [1,7 M], добавлен 07.05.2009Завантаження системи Turbo Pascal. Робота в середовищі Delphi у режимі консолі. Обчислення значення функції, заданої умовно. Табуляція функції і пошук екстремумів. Селективна обробка масиву. Побудова графічних зображень. Обробка двомірних масивів.
учебное пособие [867,3 K], добавлен 22.02.2010Розроблення додатка за допомогою об'єктно-орієнтованого візуального проектування Delphi для виконання арифметичних операцій або з використанням меню. Створення інтерфейсу користувача з використанням компонентів SYSTEM і WIN32. Обробка двовимірного масиву.
методичка [326,1 K], добавлен 13.01.2010Розробка методу-члену класу для створення нового одновимірного масиву з кількості всіх негативних елементів кожного рядка заданого двовимірного динамічного масиву. Особливість виводу змісту масиву на екран. Аналіз перевірки правильності роботи програми.
лабораторная работа [131,2 K], добавлен 18.11.2021Побудова інформаційно-математичної моделі задачі. Визначення структури даних, розробка інтерфейсу. Складання коду програми за допомогою мови програмування Delphi 7.0. Реалізація проекту у візуальному середовищі. Інструкція з експлуатації програми.
курсовая работа [601,3 K], добавлен 03.09.2009Загальні відомості середовища програмування Delphi, умови та особливості ефективного застосування його можливостей. Методологія розробки прикладного програмного забезпечення, його характеристика та структура, елементи, головні вимоги до функціональності.
курсовая работа [6,7 M], добавлен 11.09.2014Загальні відомості та геометричний зміст розв'язання задачі Коші. Використання методу Ейлера для розв'язання звичайних диференціальних рівнянь першого порядку. Розробка блок-схеми та реалізація алгоритму в середовищі програмування Borland Delphi 7.0.
курсовая работа [398,1 K], добавлен 14.10.2012RAID - масив з декількох дисків, керованих контролером, взаємопов'язаних швидкісними каналами. Рівні RAID масивів: переваги та недоліки. Кількість жорстких дисків в комбінованих масивах. Розподіл файлів по JBOD-масиву. Мережеві системи зберігання даних.
контрольная работа [1,6 M], добавлен 15.03.2013Середовище програмування Visual Studio 2010. Функції стандартного введення-виведення. Робота з побітовими операціями. Робота з функцією заміни у рядку символів. Робота з масивами. Тестування алгоритму роботи програми. Представлення двовимірного масиву.
курсовая работа [652,2 K], добавлен 15.01.2014Поняття мови програмування С++, її сутність та особливості, призначення та використання. Структура програми, її основні елементи та загальні правила роботи. Охорона праці при роботі з обчислювальною технікою. Апаратні вимоги для виконання програми.
курсовая работа [126,2 K], добавлен 29.03.2009Вивчення можливостей інтегрованого середовища розробки програм Qt Creator. Ознайомлення з основами паралельних обчислень мовою програмування С++ в цьому середовищі. Переваги та конструкції OpenMP, сортування масиву злиттям. Тестування програми сортування.
курсовая работа [87,5 K], добавлен 28.10.2015Використання комп'ютерних технологій та програмного забезпечення. Загальні відомості про середовище візуального програмування Delphi 7. Аналітичний огляд програм, які вирішують задачі методом Крамера або методом Гауса. Розробка програми "Лічильник задач".
курсовая работа [2,7 M], добавлен 10.04.2014Характеристика технології візуального проектування і програмування, суть якої полягає в тому, що область розробки бере на себе більшу частину рутинної роботи. Огляд середовища швидкої розробки, в якій як мова програмування використовується мова Delphi.
курсовая работа [2,8 M], добавлен 27.02.2012Змінні головної функції. Універсальна формула для знаходження дня тижня по даті. Зміст вхідних файлів. Ініціалізація графічного драйверу. Знаходження середнього арифметичного елементів отриманого масиву. Набір тестів для налагодження програми.
курсовая работа [28,6 K], добавлен 18.11.2011Визначення двовимірних масивів. Розміщення елементів на головній та бічній діагоналі. Алгоритми обробки двовимірних масивів. Двовимірні масиви в задачах лінійної алгебри. Ініціалізація елементів матриці за допомогою генератора псевдовипадкових чисел.
контрольная работа [162,8 K], добавлен 02.12.2014Розробка програми в візуальному середовищі С++. Визначення значення функцій в середовищі Builder мовою програмування С++. Обчислення елементів квадратної матриці згідно заданного алгоритму. Бібліотека візуальних компонентів і середовище програмування.
курсовая работа [451,5 K], добавлен 15.01.2012Програмування масиву і сукупність елементів одного типу даних, впорядкованих за індексами, які зазвичай репрезентовані натуральними числами, що визначають положення елемента в масиві. Лістинг програми та блок-схема алгоритму і результат виконання.
курсовая работа [453,1 K], добавлен 06.06.2012Характеристика особливостей реалізації пошуку по масиву методами лінійним, бінарним, по "дереву Фібоначе" та екстраполярним на мові програмування Turbo Pascal. Використання алгоритма Рабіна-Карпа та Кнута-Морріса-Пратта для знаходження підрядка в рядку.
курсовая работа [51,0 K], добавлен 16.09.2010Основні аспекти використання стандартних компонентів ООС програмування Delphi для створення звітної документації. Опис компонентів – QReport, PrintDialog та PrintSetupDialog. Приклади створення звітів. Iнше програмне забезпечення для побудови звітів.
курсовая работа [488,4 K], добавлен 08.12.2008Фундаментальні поняття об'єктно-орієнтованого програмування. Система лінійних нерівностей та опуклі багатогранники. Системи лінійних рівнянь лінійної алгебри як частковий випадок систем лінійних обмежень. Використання середовища програмування Delphi7.
курсовая работа [222,7 K], добавлен 20.05.2015