реферат
Главная

Рефераты по сексологии

Рефераты по информатике программированию

Рефераты по биологии

Рефераты по экономике

Рефераты по москвоведению

Рефераты по экологии

Краткое содержание произведений

Рефераты по физкультуре и спорту

Топики по английскому языку

Рефераты по математике

Рефераты по музыке

Остальные рефераты

Рефераты по авиации и космонавтике

Рефераты по административному праву

Рефераты по безопасности жизнедеятельности

Рефераты по арбитражному процессу

Рефераты по архитектуре

Рефераты по астрономии

Рефераты по банковскому делу

Рефераты по биржевому делу

Рефераты по ботанике и сельскому хозяйству

Рефераты по бухгалтерскому учету и аудиту

Рефераты по валютным отношениям

Рефераты по ветеринарии

Рефераты для военной кафедры

Рефераты по географии

Рефераты по геодезии

Рефераты по геологии

Рефераты по геополитике

Рефераты по государству и праву

Рефераты по гражданскому праву и процессу

Рефераты по делопроизводству

Рефераты по кредитованию

Рефераты по естествознанию

Рефераты по истории техники

Рефераты по журналистике

Рефераты по зоологии

Рефераты по инвестициям

Рефераты по информатике

Исторические личности

Рефераты по кибернетике

Рефераты по коммуникации и связи

Курсовая работа: Опрацювання масивів

Курсовая работа: Опрацювання масивів

Зміст

Вступ. 2

1. Аналітичний розділ. 3

2. Побудова інформаційно-математичної моделі 4

3. Алгоритм задачі 6

4. Визначення структури даних. 8

5. Розробка інтерфейсу програми з користувачем.. 8

6. Складання коду програми. 13

7. Реалізація проекту у візуальному середовищі 18

8. Аналіз програми. 20

9. Тестування програми. 21

10. Інструкція з експлуатації програми. 22

11. Аналіз отриманих результатів. 23

Висновок. 27

Література. 28

Додаток. 29


Вступ

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

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

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

Важливою сферою використання комп’ютерно техніки є навчально-освітня. Особливо актуальним є використання комп’ютерно техніки для створення навчальних програм майбутніх „комп’ютерщиків”, програмістів.

Прикладом таких програм є пропонована курсова робота. Її завданням є створення програми, що б максимально наглядно демонструвала роботу із двовимірним масивом різних символів. На мою думку, основна мета цієї курсової роботи - навчальна. Тобто переслідуються наступн цілі: забезпечення розробнику (мені) можливості виявлення набутих знань та умінь із предмету ”Програмування та алгоритмічні мови”, самостійної роботи по набуттю х, виявлення та покращення практичних навиків програмування, вивчення сучасних середовищ програмування (наприклад, таких як Borland Delphi).


1. Аналітичний розділ

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

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

Спочатку такі вимоги могло забезпечити лише середовище візуального програмування Borland C++ for Windows, що орієнтоване на професіоналів, що володіють серйозними знаннями та досвідом.

З часом, бурхливий розвиток обчислювально техніки, потреба у ефективних засобах розробки програмного забезпечення призвели до появи систем програмування, що орієнтуються на так звану „швидку розробку”, серед яких слід виділити Borland Delphi та Microsoft Visual Basic. В основ систем швидкої розробки (RAD-систем, Rapid Application Development - середовище швидкої розробки додатків) лежить технологія візуального проектування та подієвого програмування, суть якого полягає у тому, що середовище розробки бере на себе більшу частину генерацію коду програми. Програмісту ж залишається робота з конструювання діалогових вікон та функцій обробки подій. Продуктивність програміста при використанні RAD-систем набагато вища. Ще однією великою перевагою таких систем є те, що вони максимально підходять для навчальних цілей програмування.

З усіх RAD-систем, напевне, найбільш популярним є Borland Delphi. Delphi - це середовище швидкої розробки, в якому у якості мови програмування використовується Object Pascal. В основі Delphi лежить технологія візуального проектування та методологія об’єктно орієнтованого подієвого програмування.

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

Виходячи із вище проведеного аналізу, на мою думку, зрозуміло, що найбільш підходящим середовищем програмування для поставленого завдання є Borland Delphi.

2. Побудова інформаційно-математичної моделі

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

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



Рисунок 1 – Інформаційно-математична модель

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


3. Алгоритм задачі

Алгоритм - це чітко визначена послідовність дій для конкретного виконавця, які необхідно виконати для оброблення сукупност початкових даних і здобуття відповідних результатів певного типу задач.

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

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



Рисунок 1 – Алгоритм роботи процедури вибору предметів


4. Визначення структури даних

Визначимо, які змінні та їх типи необхідно використати при створенні програми. Цю інформацію наведемо у таблиці 1:

Таблиця 1 - Структура даних

Змінні Тип Пояснення їх дії у програмі
Col

Integer

(цілий)

Змінна для тимчасового запам’ятовування кольору фону панелі.
s String Змінна, що використовується для введення символів у матрицю користувачем.
Find

Boolean

(логічний)

Змінна, що активізує чи ні процедуру пошуку
F1,F2,F3,F4

Boolean

(логічний)

Змінні, що активізують чи ні процедури пошуку за вибраними напрямами (зліва-направо, справа наліво і т.п.)
Myword String Змінна, в яку зберігається слово для пошуку.
sbut

array [1. .25,1. .25] of Tpanel

(масив)

Масив, панелей яких відображатимуться символи
X1,Y1

Integer

(цілий)

Розмір файлу f
i, j

Integer

(цілий)

Змінні, що використовуються для проходження циклів.
к

Integer

(цілий)

Змінна, в якій зберігається розмір заданого для пошуку слова

5. Розробка інтерфейсу програми з користувачем

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

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

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

Проектування інтерфейсу починаємо із створення головного вікна програми за допомогою Borland Delphi, що матиме назву „Абетка”. Далі створюємо на цій формі необхідну частину будь-якого головного вікна - головне меню. Його структура зображена на рисунку 2.

Рисунок 2 - Структура головного меню програми

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

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

пошук слова (що введене у попередньо описаному полі) у матриці символів;

зняття виділення найдених слів у матриці, якщо потреба почати новий пошук;

автоматична програмна генерація символів масиву за допомогою датчика випадкових символів;

вихід із програми.

Крім цього на панелі „Опції” розміщені два випадаючих списки. Перший, що має підпис „Виберіть напрям” призначений для вибору напряму пошуку: зліва на право, зправа наліво, зверху до низу, знизу до верху, всі по черзі. Другий, що має підпис „Виберіть алфавіт” призначений для вибору алфавіту, із якого заповнюватиметься масив: російського, українського, латинського, цифр.

Останнє, що поміщається на панелі „Опції” - це група перемикачів „Регістр”. Вона призначена для вибору регістру символів, що заповнятимуть масив, і складається із таких пунктів:

„Великі літери”;

„Маленькі літери”

„Всі літери”.

Після цього ця керуюча панель „Опції” набуде такого вигляду, як показано на рисунку 3.


Рисунок 3 - Керуюча панель „Опції”

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

Рисунок 4 - Вікно „Про програму... ”


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

Рисунок 5 - Вікно „Про програму... ”

Ще одна форма потрібна для початково реєстрації користувача. Вона має назву „Зарегіструйте будь-ласка програму!!!”, та міститиме поле для введення реєстраційного коду, відповідний напис та керуючі кнопки „Далі” та „Вихід”. Її вигляд приведено на рисунку 6.

Рисунок 6 - Вікно „Розробник... ”

На цьому завершуємо проектування інтерфейсу переходимо до програмної реалізації проекту.


6. Складання коду програми

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

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

procedure TForm1. FormCreate(Sender: TObject);

var

i, j: integer;

begin

for i: = 1 to MaxX do begin

for j: = 1 to MaxY do begin

sbut [i, j]: = TPanel. Create(form1);

sbut [i, j]. Parent: = form1;

sbut [i, j]. Height: = 20;

sbut [i, j]. Width: = 20;

sbut [i, j]. Top: = (i - 1) * 26 + 10;

sbut [i, j]. Left: = (j - 1) * 26 + 10;

sbut [i, j]. Color: = clYellow;

sbut [i, j]. OnClick: = panelOnClick;

end;

end;

end;

Наступна функція здійснює пошук слова, заданого користувачем у матриці символів. Порядок пошуку - зліва направо.

function TForm1. Search_LR: Boolean;

var

i, j, k: integer;

Myword: String;

begin

Search_LR: =False;

if Edit1. Text<>'' then begin // якщо задано якесь слово для пошуку

for i: = 1 to MaxX do

for j: = 1 to MaxY do // поки не кінець матриці

if (j+Length(Edit1. Text) - 1) <=MaxY then begin // якщо не кінець слова

for k: =0 to Length(Edit1. Text) - 1 do // Посимвольно формуємо змінну

Myword: =Myword+SBut [i,j+k]. Caption; // Myword

if Myword=Edit1. Text then begin // Якщо Myword співпадає із введеним

for k: =0 to Length(Edit1. Text) - 1 do begin // користувачем словом, то

sbut [i, j+k]. Font. Color: =clYellow; // інвертується колір тесту та фону панелі

sbut [i, j+k]. Color: = clBlue;

end;

Search_LR: =True;

{Exit; }

end else Myword: ='';

end;

end;

end;

Функції function TForm1. Search_RL: Boolean; function TForm1. Search_UD: Boolean; function TForm1. Search_DU: Boolean; мають дуже схожий до вище описаного алгоритму пошуку заданого слова, змінюється лише порядок пошуку.

Здійснення пошуку в усіх напрямах по черз виконується наступною процедурою.

procedure TForm1. Search;

var Find,F1,F2,F3,F4: Boolean;

begin

if SearCB. ItemIndex<0 then Search_LR;

Find: =True;

F1: =True; F3: =True;

F2: =True; F4: =True;

case SearCB. ItemIndex of

0: Find: =Search_LR;

1: Find: =Search_RL;

2: Find: =Search_UD;

3: Find: =Search_DU;

4: begin

F1: =Search_LR;

F2: =Search_RL;

F3: =Search_UD;

F4: =Search_DU;

end;

end;

if (Find=False) or((F1=False) and(F2=False) and(F3=False) and(F4=False)) then

ShowMessage('Шуканої послідовності символів не знайдено! ')

end;

Функція Sumbol формує набір символів із введеної послідовності в розділі const. В залежності від вибору користувача масив заповнюється великими чи малими українськими, російськими, латинськими символами чи цифрами.

function TForm1. Sumbol: Char;

const

Ukr='йцукенгшщзхїфівапролджєячсмитьбюЙЦУКЕНГШЩЗХЇФІВАПРОЛДЖЄЯЧСМИТЬБЮ';

UkrL='йцукенгшщзхїфівапролджєячсмитьбю';

UkrB='ЙЦУКЕНГШЩЗХЇФІВАПРОЛДЖЄЯЧСМИТЬБЮ';

Rus='йцукенгшщзхъфывапролджэячсмитьбюЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ';

RusL='йцукенгшщзхъфывапролджэячсмитьбю';

RusB='ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ';

Eng='qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM';

EngL='qwertyuiopasdfghjklzxcvbnm';

EngB='QWERTYUIOPASDFGHJKLZXCVBNM';

Num='0123456789';

begin

if ALF. ItemIndex<0 then ALF. ItemIndex: =0;

case ALF. ItemIndex of

0: begin

case RG. ItemIndex of

0: Sumbol: =UkrB [Random(Length(UkrB)) +1] ;

1: Sumbol: =UkrL [Random(Length(UkrL)) +1] ;

2: Sumbol: =Ukr [Random(Length(Ukr)) +1] ;

end;

end;

1: begin

case RG. ItemIndex of

0: Sumbol: =RusB [Random(Length(RusB)) +1] ;

1: Sumbol: =RusL [Random(Length(RusL)) +1] ;

2: Sumbol: =Rus [Random(Length(Rus)) +1] ;

end;

end;

2: begin

case RG. ItemIndex of

0: Sumbol: =EngB [Random(Length(EngB)) +1] ;

1: Sumbol: =EngL [Random(Length(EngL)) +1] ;

2: Sumbol: =Eng [Random(Length(Eng)) +1] ;

end;

end;

3: Sumbol: =Num [Random(Length(Num)) +1] ;

end;

end;

Нижче приведена процедура дозволяє заповнювати масив символами, що вводитимуться користувачем.

procedure Tform1. panelOnClick (sender: Tobject);

var

s: string;

Col: Integer;

begin

Col: =TPanel(sender). Color;

TPanel(sender). Color: =clRed;

s: = InputBox ('Введіть потрібний символ', 'Символ: ', TPanel(sender). Caption);

if S<>'' then

TPanel(sender). Caption: = S [1] ;

TPanel(sender). Color: =Col;

end;

Основні функціональні блоки програми описані. Решта програмного коду є досить проста для розуміння, тому не описувалась.

Лістинг програми наведено в додатку А.


7. Реалізація проекту у візуальному середовищі

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

Спочатку потрібно завантажити середовище програмування Borland Delphi 7.0. Щоб створити новий додаток відразу в рядку меню вибираю: Файл ® Создать ® Приложение (при запуску Borland Delphi додаток створюється автоматично). Після чого на екрані з‘явиться нова порожня форма, назву якої за допомогою властивості Caption змінюємо на „Абетка”.

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

Щоб створити так звану „панель керування програми використано компонент GroupBox, що знаходиться на закладці Standart. Цю панель називають „Опції” (властивість Caption). Із цієї ж закладки вибрано компонент Edit та Label, що призначені для введення слова для пошуку користувачем та підпису його відповідно (властивість Caption компоненти Label змінюємо на „Шукане слово”).

Випадаючі списки реалізуємо за допомогою компонентів ComboBox, що знаходяться на тій же закладці Standart. Властивість Text змінимо на „Виберіть слово” та „Виберіть напрям” відповідно.

Для вище описаних компонентів Edit та ComboBox властивість Color змінюємо на clBlue, щоб змінити їх фон. Таку ж властивість для Label встановимо на clYellow - колір напису.

Панелі, що потрібні для керування роботою програми, використовуємо компонент Panel, що знаходиться на тій же закладці. Властивост Caption змінюємо на „Знайти”, „Зняти виділення”, „Згенерувати масив”. Властивост Color змінюємо на clYellow - фон панелі. Властивість Font задає формат напису на панелі. Для неї встановимо колір шрифту на clBlue.

Щоб створити список перемикачів використаємо компонент RadioGroup (закладка Standart). Властивість Caption змінюємо на Регістр”, Color - на clBlue.

Для створення кнопки „Вихід” та інших візуальних компонентів додатку використано додаткові „скіни” AlphaControls. Як це зробити покажемо у розділі 10. Після інсталяції бібліотек у панел компонентів з’являться три нові закладки: AlphaStandart, AlphaAdditional, AlphaTools. Для створення цієї ж кнопки використаємо компонент sBitBtn (закладка AlphaStandart), її властивість Caption замінимо на „Вихід”.

Для створення реєстраційної форми виконуємо Файл ® Новая ®Другое у закладці Форми вибираємо About Box. Аналогічно вище описаному змінюємо назву (Caption). Для введення коду реєстрації додамо на форму поле Edit (закладка Standart), його фон змінимо на чорний (властивість Color). Для підпису цього поля використано компонент sLabelFX (закладка AlphaAdditional). Керуючі кнопки реалізовано за допомогою компонентів sBitBtn (закладка AlphaStandart). При цьому властивості Caption компонентів sLabelFX та sBitBtn необхідно змінити. Для забезпечення можливості використання „скінів” на цю форму помістимо sSkinManager (закладка AlphaTools). У його властивість SkinDirectory слід помістити шлях до скінів” - а саме D: \Install\for_delphi_skin\acnt_reg7\Skins. У властивості SkinName слід вказати назву „скіна” - LikeOperaStyle (internal).

На кожну з форм слід помістити компонент