Програма дослідження динамічних рядів
Дослідження динамічних рядів методом найменших квадратів та ковзаючого середнього. Опис логічної структури програми. Стандартні методи та елементи середовища програмування Borland Delphi 2007. Опис функцій складових частин програми і зв'язків між ними.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 01.04.2016 |
Размер файла | 135,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Вступ
Курсовий проект (робота) - це самостійно виконана і відповідно оформлена творча робота студента з вирішення конкретного практичного завдання з однієї або декількох загальнотехнічних чи спеціальних дисциплін на основі набутих теоретичних знань та умінь.
Курсовий проект виконується протягом навчального семестру у відповідності з навчальним планом спеціальності
Основною метою курсового проектування є:
– навчання та набуття навиків практичного застосування теоретичних знань для вирішення конкретних практичних задач;
– розвиток творчого мислення, виявлення та формування професійних навиків студентів;
– набуття навиків конструювання виробів, виконання розрахунків, письмового викладу технічних рішень та аналізу одержаних результатів;
– закріплення, поглиблення та систематизація отриманих студентами в процесі навчання теоретичних знань з різних дисциплін;
– набуття навиків узагальнення та аналізу результатів, отриманих іншими розробниками та дослідниками;
– навчання та набуття студентами досвіду користування довідковою літературою і нормативними документами.
Мета курсового проектування з дисципліни «Основи програмування та алгоритмічні мови»:
– закріпити знання, одержані під час вивчення дисципліни «Основи програмування та алгоритмічні мови;
– засвоїти основні етапи розробки програмних виробів;
– набути навиків при оформлення документів на програмні вироби;
одержати практичні навички з розробки програм і програмних документів.
1. Загальні відомості
1.1 Позначення та назва програми
Програма дослідження динамічних рядів методом найменших квадратів та ковзаючого середнього, дискове ім'я файлу project1.pas, після компіляції - project1.exe.
Програмне забезпечення, необхідне для її функціонування.
Для використання програми не треба специфічного програмного забезпечення. Для виконання приграми вистачає будь-якої ОС сімейства Windows та мінімальних системних частин комп'ютера.
1.2 Мови програмування, на яких написана програма
Delphi - імперативний, структурований, об'єктно-орієнтована мова програмування з суворою статичної типізацією змінних. Основна область використання - написання прикладного програмного забезпечення.
Спочатку носив назву Object Pascal і історично сходить до однойменного діалекту мови, розробленого в фірмі Apple в 1986 році групою Ларрі Теслера. Однак в даний час термін Object Pascal найчастіше вживається в значенні мови середовища програмування Delphi. Починаючи з Delphi 7, в офіційних документах Borland стала використовувати назву Delphi для позначення мови Object Pascal.
Спочатку середовище розробки Delphi була призначена виключно для розробки додатків Windows, потім був реалізований варіант для платформ Linux (як Kylix), однак після випуску в 2002 році Kylix 3 його розробка була припинена, і незабаром було оголошено про підтримку Microsoft .NET, яка, в свою чергу, була припинена з виходом Delphi 2007.
На сьогоднішній день, поряд з підтримкою розробки 32 і 64-розрядних програм для Windows, реалізована можливість створювати додатки для Apple Mac OS X (починаючи з Embarcadero Delphi XE2), iOS (включаючи симулятор, починаючи з XE4 допомогою власного компілятора), а також, в Delphi XE5, для Google Android (безпосередньо виконувані на ARM-процесорі).
Незалежна, стороння реалізація середовища розробки проектом Lazarus (Free Pascal, компіляція в режимі сумісності з Delphi) дозволяє використовувати його для створення додатків на Delphi для таких платформ, як Linux, Mac OS X і Windows CE.
Також були спроби використання мови в проектах GNU (наприклад, Notepad GNU) і написання компілятора [джерело не вказано 2402 дня] для GCC
програма динамічний ряд delphi
2. Опис логічної структури
2.1 Алгоритм програми
Для комп'ютерних програм алгоритм є списком деталізованих інструкцій, що реалізують процес обчислення, який, починаючи з початкового стану, відбувається через послідовність логічних станів, яка завершується кінцевим станом. Перехід з попереднього до наступного стану не обов'язково детермінований -- деякі алгоритми можуть містити елементи випадковості.
Поняття алгоритму належить до підвалин математики. Обчислювальні процеси алгоритмічного характеру (як-то арифметичні дії над цілими числами, знаходження НСД двох чисел тощо) відомі людству з глибокої давнини. Проте, чітке поняття алгоритму сформувалося лише на початку XX ст
Наша програма повинна мати чіткий, сформований алгоритм, який дозволить швидко працювати програмі і безперебійно оброблювати вхідні і вихідні дані.
Алгоритм нашої програми виглядає наступним чином:
1. Початок роботи програми. Запуск скомпільованого нами файлу.
2. Ініціалізація об'єктів програми.
3. Введення даних в поле для вводу
4. Обчислення виразу
5. Вивід результатів
6. Кінець програми
Для кращого розуміння алгоритму програми складемо його блок-схему (див.рис.2.1.1)
.
Рис.2.1.1 Блок-схема програми
Далі наведемо блок-схему форми 2(див рис 2.1.2)
Рис.2.1.2 Блок-схема форми 2
3. Методи та елементи, що використовуються
Для реалізації алгоритму програми використовуються стандартні методи та елементи середовища програмування Borland Delphi 2007
Опишемо основні елементи програми, що використовуються у нашій програмі:
1. Button
Компонент Delphi Кнопка це проста командна кнопка. Командна кнопка Delphi Кнопка використовується для реалізації в програмі команд за допомогою обробника події OnClick цього компонента.
Один і той же обробник може обробляти події кількох компонентів TButton (та й не тільки TButton, але і навіть компонентів інших типів). Для визначення того, подія якого саме компонента потрібно обробляти, використовується вбудована Мінлива відправника типу TObject, що позначає об'єкт, що викликав дану подію. Для ілюстрації цієї можливості розглянемо просту процедуру, визначальну натиснуту кнопку.
Створимо оброблювач кнопки Button1, а для Button2 і Button3 в інспектор об'єктів на вкладці Події виберемо подія OnClick, і зі списку виберемо з'явився там обробник Button1Click. Тепер він обробляє натискання всіх трьох кнопок.
Процедура TForm1.Button1Click (Sender: TObject);
почати
Form1.Caption: = (Sender, як TButton) .Caption;
в кінцевому;
Конструкція Відправник також TButton дозволяє працювати з властивостями об'єкта Sender як з властивостями кнопки. Безпосередньо ж розрізнити кнопку як об'єкт можна звичайним оператором порівняння:
якщо (Sender = Button1), то
Form1.Caption: = Button1.Caption;
Іноді події ініційовані навіть компонентами різних типів. В такому випадку, перевірити компонент якого типу викликав подія, можна таким чином:
якщо (Відправник TButton), то
Form1.Caption: = 'Кнопка';.
2.Label
Delphi Компонент Етикетка призначений для відображення статичного тексту, тобто написів і позначок на Формі, які не змінюються протягом всього часу роботи програми. Звичайно, текст напису, який відображається компонентом пояснювальна підпис або цифра до умовного знаку можна змінити, але не безпосередньо, а тільки програмно.
Властивістю компонента етикетки, яке використовується для завдання тексту, що відображається, є Напис (Тема англ.). Ось типові способи використання цього Delphi компоненти:
Мітка (пояснювальний текст) на Формі
Розміщений на Формі Компонент пояснювальна підпис або цифра до умовного знаку вказує користувачу, що саме він повинен ввести в поле введення. Для цього досить у Інспектора об'єктів у властивості Caption ввести потрібний текст.
Користувач вводить складові, програма розраховує результат і виводить його в компонент Ярлик. Ось обробник:
Label1.Caption: = IntToStr (Edit1.Text) + IntToStr (Edit2.Text);
Хоча вважається, що компонент Delphi Етикетка призначений для відображення саме однострочного тексту, це не зовсім вірно. Властивість WordWrap компонента етикетки дозволяє виводити текст в декілька рядків.
Встановлюємо властивість WordWrap в Правда і дивимося на результат. Як бачимо, в цьому випадку відбувається автоматичний перехід на новий рядок слова, що не поміщається на поточний рядок. Очевидно, якщо розтягнути компонент Ярлик на всю Форму, він здатний відобразити досить великий текст. Так як властивість Caption компонента пояснювальна підпис або цифра до умовного знаку має тип String, то розмір тексту може досягати 2 Гбайт! Властивість WordWrap компонента етикетки
Етикетка властивість Font компонента надає можливості по зміні шрифту тексту, що виводиться. При переході на рядок шрифт в інспектор об'єктів з'являється кнопочка, що надає доступ до діалогового вікна вибору шрифту, такого ж, з яким ми зустрічаємося працюючи, наприклад, в Worde. Плюсик зліва на рядку шрифт розкриває атрибути шрифту для установки прямо в інспектор об'єктів:
Властивість Font компонента Delphi Етикетка
У коментарях виникло питання, як відобразити за допомогою мітки тільки текст. Справа в тому, що мітка - це і текст, і проямоугольнік фону. Так ось, як зробити так, щоб було видно тільки текст, а фон не був помітний? Якщо фон мітки збігається за кольором з компонентом, на який вона встановлена, то фон мітки непомітний. А якщо потрібно розмістити мітку на кольоровій картинці (компонент зображення)?
Якраз для цього існує властивість Прозорий. Встановлене в Правда, воно робить фон мітки прозорим, і на малюнку буде видно тільки текст.
3.Edit
Компонент Delphi Edit являє собою однорядкове текстове поле, що служить для введення даних користувачем. Основною властивістю компонента Delphi Edit, передає введену інформацію, є властивість Edit1.Text типу String. При вивченні роботи з Delphi Edit раджу відвідати сторінку робота з рядками Delphi, так як там описуються функції Delphi для роботи з даними, представленими в текстовій формі. Наприклад, найчастіше, судячи з пошуковими запитами, відвідувачі хочуть знати, як працювати з числами, введеними в компонент Edit:
з цілими X: = StrToInt (Edit1.Text);
з дробовими X: = StrToFloat (Edit1.Text);
компонент Delphi Edit Можна вводити інформацію з клавіатури, привласнювати в програмі і зчитувати в змінну типу String:
var S: String;
begin
Edit1.Text: = 'Надаємо текст';
S: = Edit1.Text;
end;
Також при конструюванні елементів Форми текст, що вводиться в Інспектор об'єктів, відразу ж з'являється в компоненті Delphi Edit.
На відміну від компонента Delphi Label, який автоматично підлаштовує свою довжину під розмір тексту у властивості Caption, що вводиться в компонент Delphi Edit текст ніяк не впливає на довжину (властивість Width) цього компонента. Чи не поміщається в встановлену довжину частина тексту зсувається вправо або вліво за межі компоненту:
begin
Edit1.Text: = 'Текст, що не міститься в встановлені межі';
end;
І хоча весь текст залишається доступний для перегляду і редагування шляхом переміщення курсору в ту чи іншу сторону, програміст повинен передбачити достатню довжину компонента Delphi Edit заздалегідь, на етапі конструювання. компонент Delphi Edit
Це не стосується розміру компонента по вертикалі. Якщо змінити розмір шрифту (властивість Font), то висота компонента Delphi Edit підлаштується під висоту обраного розміру шрифту. Втім, це буде так, якщо не міняти властивість AutoSize, що має тип Boolean. За замовчуванням воно дорівнює True. Якщо ж встановити його в False, то доведеться підлаштовувати і висоту компонента Edit вручну.
Тепер розглянемо події компонента Delphi Edit. У момент зміни властивості Text відбувається подія OnChange. Причому не має значення, яким способом було вироблено це зміна, вручну з клавіатури або присвоєнням в програмі. Нове значення Edit1.Text можна відразу присвоїти змінної і використовувати. Потрібно тільки враховувати такий нюанс. За подією OnChange не можна міняти значення самого властивості Text цього компонента. Це природно, адже при цій зміні знову відбудеться подія OnChange, яке викличе наступне, і так далі. Тобто, програма зациклиться і зависне. А якщо без цього не обійтися, в обробнику події OnChange необхідно передбачити умову, при виконанні якого зміни властивості Text вже не буде.
Далі, розглянемо події, що відбуваються при введенні з клавіатури. При натисканні кнопки послідовно відбуваються події:
OnKeyDown
OnKeyPress
OnChange
OnKeyUp
Події OnKeyDown і OnKeyPress відбуваються практично перед натисканням, коли клавіша ще знаходиться у верхньому положенні. Цим можна скористатися, щоб перевизначити символ, який з'явиться в рядку компонента. Ось як виглядають заголовки обробників цих подій:
procedure TForm1.Edit1KeyPress (Sender: TObject; var Key: Char);
procedure TForm1.Edit1KeyDown (Sender: TObject; var Key: Word; Shift: TShiftState);
Спеціально підкреслено відмінність: в обробнику KeyDown змінна Key має тип Word, тобто це число, а в обробнику KeyPress ця змінна має тип Char, тобто це символ. Звідси випливає, що обробник KeyPress обробляє натискання тільки клавіш клавіатури з символами букв і цифр, а обробник KeyDown також і інших клавіш.
Тобто, знаючи коди клавіш клавіатури, можна в обробнику KeyDown привласнити змінної Key код потрібної клавіші, а в обробнику KeyPress привласнити потрібний символ, і це буде імітація натискання відповідної клавіші клавіатури.
Виникає питання, як же дізнатися код клавіші клавіатури, якщо під рукою немає довідника. Це дуже просто. Потрібно в обробнику події OnKeyDown значення змінної Key вивести на Форму, наприклад, в заголовок:
procedure TForm1.Edit1KeyDown (Sender: TObject; var Key: Word; Shift: TShiftState);
begin
Caption: = IntToStr (Key);
end;
4. StringGrid
Компонент StringGrid знаходиться на сторінці Additional палітри компонентів. Там знаходяться "додаткові" компоненти, але StringGrid Delphi, на мій погляд, гідний більшої поваги, особисто я розмістив би його на сторінці Standart!
StringGrid - компонент для відображення різних даних в табличній формі. Як випливає з назви, осередки компонента StringGrid Delphi можуть містити дані, що мають тип String, а також відображати графіку.
StringGrid Delphi
Таблиця StringGrid складається з виділених сірим FixedCols і FixedRows - зафіксованих осередків-заголовків, і звичайних, білих осередків. Вміст Fixed осередків недоступно редагуванню, і змінюється тільки програмно. За можливість редагування звичайних осередків відповідає одне зі значень властивості Options.
Отже, компонент StringGrid має можливість адресації кожної окремої комірки за номером шпальти і рядки. Вміст комірки (i, j), де де i - номер стовпця, j - номер рядка, має вигляд
StringGrid1.Cells [i, j]
і доступно як для читання, так і для запису. Тут, як і завжди, номери стовпців (i) і рядків (j) відраховуються від 0.
Виділена комірка таблиці має
номер стовпчика: StringGrid1.Col
номер рядка: StringGrid1.Row
тому вміст виділеної комірки буде адресуватися так:
S: = StringGrid1.Cells [StringGrid1.Col, StringGrid1.Row];
Чи не правда, написання такого рядка - виснажливий процес. Тому користуйтеся оператором приєднання with:
with StringGrid1 do
S: = Cells [Col, Row];
А краще відразу поставити в властивості Name ім'я коротше, наприклад SG.
За багато властивостей компонента Delphi StringGrid відповідає властивість Options. В інспектор об'єктів Options - це список, що розкривається, який представляє собою елементи даної множини. Якщо значення елемента дорівнює True, то він присутній в безлічі, якщо False - то ні.
5.Chart
Компонент Chart дозволяє будувати різні діаграми та графіки.
Chart є контейнером об'єктів Series типу TChartSeries - серій даних, що характеризуються різними стилями відображення. Кожен компонент може включати кілька серій. Якщо відобразити графік, то кожна серія буде відповідати одній кривій на графіку. Якщо потрібно відображати діаграми, то для деяких видів діаграм можна накласти один на одного кілька різних серій. Завжди можна задати для одного компонента Chart кілька серій однакових даних з різним типом діаграми. Тоді, роблячи в кожен момент часу активною одну з них, можна надати користувачеві вибір типу діаграми, що відображає його цікавлять дані.
Для використання компонента Chart треба помістити його на формі і налаштувати необхідну кількість кривих. Для настройки компонента використовують Редактор діаграм. Викликати редактор можна подвійним клацанням на компоненті, за допомогою контекстного меню компонента або клацанням на одному з властивостей компонента, що мають три крапки в поле значення.
3.1 Структура програми з описом функцій складових частин і зв'язків між ними
Структура програми являє собою набір функцій. Наша програми містить 3 форми. Кожна форма має свій набір функцій:
Форма 1:
procedure TForm1.Button1Click(Sender: TObject);
Функція призначена для вибору методу рішення і відкриття відповідної форми.
Форма 2:
procedure TForm2.Button1Click(Sender: TObject);
Функція призначена для задання довжини динамічного ряду
procedure TForm2.Button2Click(Sender: TObject);
Функція призначена для обчислення введеного динамічного ряду. Результати виводимо на екран.
procedure TForm2.FormActivate(Sender: TObject);
Функція призначена для задання розмірів вікна.
Форма 3:
procedure TForm3.Button1Click(Sender: TObject);
Функція призначена для задання довжини динамічного ряду
procedure TForm3.Button2Click(Sender: TObject);
Функція призначена для обчислення введеного динамічного ряду. Результати виводимо на екран.
procedure TForm3.FormActivate(Sender: TObject);
Функція призначена для задання розмірів вікна.
3.2 Зв'язок програми з іншими програмами
Програма під час виконання не викликає інших програм.
4. Необхідні технічні засоби
4.1 Типи комп'ютерів та пристроїв, що використовуються при роботі програми
При роботі програми використовується IBM-сумісний комп'ютер. Будь-яких інших специфічних чи додаткових пристроїв програма не потребує
5 Виклик і завантаження
5.1 Способи виклику програми
Виклик програми виконується завантаженням на виконання файлу project1.exe
5.2 Адреса завантаження програми
Адреса завантаження визначається операційною системою автоматично.
5.3 Відомості про використання оперативної пам'яті
Програма при роботі не ініціює запити на виділення оперативної пам'яті, крім тої, що виділена їй для роботи операційною системою.
5.4 Обсяг програми
Файл Project1.exe - 616 Кб
6. Вхідні дані
6.1 Характер вхідних даних
Вхідні дані для роботи програми являють введені початкові дані для обчислень з клавіатури в поле для вводу
6.2 Організація вхідних даних
Вхідні дані організовуються у вигляді вхідних цифр.
6.3 Попередня підготовка вхідних даних
Попередня підготовка вхідних даних не обов'язкова.
7. Вихідні дані
7.1 Характер вихідних даних
Вихідними даними є результати обчислень програми.
7.2 Організація вихідних даних
Вихідні дані організовані у вигляді повідомлення, що видає програма на екран.
7.3 Формат, описання та спосіб кодування даних
Текстові повідомлення, що виводяться на екран.
8. Опис і тестування програми
Після програмування нашого проекту його необхідно відкомпілювати. Для цього натискаємо клавішу F9. Якщо програма не містить помилок то компілятор видасть повідомлення про успішне завершення і запустить наш проект на виконання. Тут ми вже зможемо протестувати створену програму. Тестування повинне забезпечити перевірку працездатності функцій для всіх варіантів вхідних даних.
Тестування програмного забезпечення (англ. Software Testing) -- це процес технічного дослідження, призначений для виявлення інформації про якість продукту відносно контексту, в якому він має використовуватись. Техніка тестування також включає як процес пошуку помилок або інших дефектів, так і випробування програмних складових з метою оцінки. Може оцінюватись:
· відповідність вимогам, якими керувалися проектувальники та розробники
· правильна відповідь для усіх можливих вхідних даних
· виконання функцій за прийнятний час
· практичність
· сумісність з програмним забезпеченням та операційними системами
· відповідність задачам замовника.
Оскільки число можливих тестів навіть для нескладних програмних компонент практично нескінченне, тому стратегія тестування полягає в тому, щоб провести всі можливі тести з урахуванням наявного часу та ресурсів. Як результат програмне забезпечення (ПЗ) тестується стандартним виконанням програми з метою виявлення баґів (помилок або інших дефектів).
Тестування ПЗ може надавати об'єктивну, незалежну інформацію про якість ПЗ, ризики відмови, як для користувачів так і для замовників.
Тестування може проводитись, як тільки створено виконуваний код (навіть частково завершено). Процес розробки зазвичай передбачає коли та як буде відбуватися тестування.
Наприклад, при поетапному процесі, більшість тестів відбувається після визначення системних вимог і тоді вони реалізуються в тестових програмах. На противагу цьому, відповідно до вимог гнучкої розробки ПЗ, програмування і тестування часто відбувається одночасно.
Тестування -- це одна з технік контролю якості, що включає в себе
· Планування робіт (Test Management)
· Проектування тестів (Test Design)
· Виконання тестування (Test Execution)
· Аналіз отриманих результатів (Test Analysis).
Верифікація (Verification) -- це процес оцінки системи або її компонентів з метою визначити чи задовольняють результати поточного етапу розробки умовам, сформованим на початку цього етапу. Тобто чи виконуються цілі, терміни, завдання з розробки проекту, визначені на початку поточної фази. Валідація (Validation) -- це визначення відповідності розроблюваного програмного забезпечення між очікуваннями і потребами користувача, вимогам до системи.
План Тестування (Test Plan) -- це документ, що описує весь обсяг робіт з тестування, починаючи з опису об'єкта, стратегії, розкладу, критеріїв початку і закінчення тестування, до необхідного в процесі роботи обладнання, спеціальних знань, а також оцінки ризиків з варіантами їх вирішення.
Тест дизайн (Test Design) -- це етап процесу тестування програмного забезпечення, на якому проектуються і створюються тестові випадки (тест кейси), відповідно до визначених раніше критеріями якості та цілями тестування.
Тестовий випадок (Test Case) -- це документ, що описує сукупність кроків, конкретних умов і параметрів, необхідних для перевірки реалізації тестованої функції або її частини.
Баг/Дефект Репорт (Bug Report) -- це документ, що описує ситуацію або послідовність дій (Steps), що призвела до некоректної роботи об'єкта тестування (Misbehavior), із зазначенням причин та очікуваного результату (Expected Result).
Тестове Покриття (Test Coverage) -- це одна з метрик оцінки якості тестування, що представляє із себе щільність покриття тестами вимог або коду, що виконується.
Деталізація Тест Кейсів (Test Case Specification) -- це рівень деталізації опису тестових кроків і необхідного результату, при якому забезпечується розумне співвідношення часу проходження до тестового покриття.
Час Проходження Тест Кейса (Test Case Pass Time) -- це час від початку проходження кроків тест кейса до отримання результату тесту.
Отже перейдемо до безпосередньої перевірки нашої програми на працездатність.
Наша програма розпочинатиметься виводом на екран монітора комп'ютера головного вікна (див рис.8.1).
Рис.8.1 Головне вікно програми
В даному вікні ми вибираємо метод обчислення і натискаєм кнопку. Після цьог переходимо у наступне вікно. (див. рис.8.2)
Рис.8.2 Введення n
Тут вводимо значення n і натискаємо ок.
Перед нами з'явилось вікно вводу змінних. Тут ми вводимо початкові дані для обчислення (див рис 8.3).
Рис.8.3 Введення змінних
Після цього ми можем натиснути Розвязати для обчислення і виводу результату (див рис 8.4)
Рис.8.4 Виведення результату
Для завершення закриваємо всі вікна. Аналогічним чином проводиться обчислення іншим методом.
Провівши тест програми можна зробити висновок, що всі операції проводяться без збоїв.
Висновок
В ході виконання завдання курсової роботи мною було розроблено проект програми для обчислення динамічних рядів двома різними методами:
- методом найменших квадратів
- методом ковзаючого середнього.
Програма повноцінно працює при будь-яких вхідних даних і може бути впроваджена у виробництво і застосовуватись кінцевими користувачами для проведення математичних обчислень
Список використаної літератури
1. Глинський Я.М. «Turbo Pascal і Delphi»: навчальний посібник. - Львів, 2003.
2. Михаил Фленов «Програмирование в Delphi глазами хакера» -
3. Санкт-Петербург, 2003.
4. Виктор Пестриков «Delphi на примерах» - Санкт-Петербург, 2005.
5. Культин Н. Б. «Delphi 6. Програмирование на Оbject Pascal». - Санкт- Петербург, 2002.
6. Залогова Л. Информатика. Практикум по компьютерной графике. - М.: Лаборатория базовых знаний. - 2001. - 320 с.
7. Немнюгин С.А. Turbo Pascal - СПб.: „Питер”, 2000. - 496 с.
8. Пушкар О.І. Інформатика і комп'ютерна техніка. Комп'ютерна технологія. Київ. Видавничий центр „Академія” 2003.
Додаток А
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if RadioButton1.Checked=True then
form2.ShowModal;
if RadioButton2.Checked=True then
form3.ShowModal;
end;
end.
Додаток Б
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart;
type
TForm2 = class(TForm)
Button1: TButton;
Label1: TLabel;
Edit1: TEdit;
StringGrid1: TStringGrid;
Button2: TButton;
Chart1: TChart;
Series1: TLineSeries;
Series2: TLineSeries;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
i:integer;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
Form2.Height:=187;
Form2.Width:=650;
StringGrid1.RowCount:=3;
StringGrid1.Visible:=True;
StringGrid1.ColCount:=StrToInt(Edit1.Text);
StringGrid1.Height:=81;
for i:=1 to StringGrid1.ColCount-1 do
StringGrid1.Cells[i,0]:=inttostr(i);
StringGrid1.Cells[0,1]:='y';
StringGrid1.Cells[0,2]:='x';
end;
procedure TForm2.Button2Click(Sender: TObject);
var
x:array [1..50] of real;
y:array [1..50] of real;
y1:array [1..50] of real;
x2:array [1..50] of real;
xy:array [1..50] of real;
sumx, sumy,sumx2,sumxy:real;
dx,ax,bx,a,b:real;
begin
StringGrid1.Cells[0,3]:='Y';
Chart1.Visible:=True;
Form2.Height:=482;
StringGrid1.RowCount:=4;
StringGrid1.Height:=105;
//---------Розвязок--------
sumx:=0;
sumxy:=0;
sumx2:=0;
sumy:=0;
for i:=1 to StringGrid1.ColCount-1 do
begin
y[i]:= strtofloat(StringGrid1.Cells[i,1]);
x[i]:= strtofloat(StringGrid1.Cells[i,2]);
x2[i]:=sqr(x[i]);
xy[i]:=x[i]*y[i];
sumx:=sumx+x[i];
sumxy:=sumxy+xy[i];
sumy:=sumy+y[i];
sumx2:=sumx2+x2[i];
end;
dx:=sumx2*(stringgrid1.ColCount-1)-sqr(sumx);
if dx=0 then
ShowMessage('Неможливо розвязати СЛАР')
else
begin
ax:=sumxy*(stringgrid1.ColCount-1)-sumy*sumx;
bx:=sumx2*sumy-sumx*sumxy;
a:=ax/dx;
b:=bx/dx;;
end;
for i:=1 to StringGrid1.ColCount-1 do
begin
y[i]:=a*x[i]+b;
StringGrid1.Cells[i,3]:=floattostrf(y[i],ffFixed, 5, 2)
end;
for i:=1 to StringGrid1.ColCount-1 do
begin
with series1 do
addXY(strtofloat(StringGrid1.Cells[i,2]),strtofloat(StringGrid1.Cells[i,1]),' ',clgreen);;
with series2 do
addXY(strtofloat(StringGrid1.Cells[i,2]),strtofloat(StringGrid1.Cells[i,3]),' ',clred);
end;
end;
procedure TForm2.FormActivate(Sender: TObject);
begin
Form2.Height:=85;
Form2.Width:=380;
end;
end.
Додаток В
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, Grids, StdCtrls;
type
TForm3 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
StringGrid1: TStringGrid;
Chart1: TChart;
Button2: TButton;
Series1: TBarSeries;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
var
i:integer;
begin
StringGrid1.Visible:=True;
StringGrid1.ColCount:=StrToInt(Edit1.Text);
Button2.Visible:=true;
for i:=1 to StringGrid1.ColCount-1 do
StringGrid1.Cells[i,0]:=inttostr(i);
StringGrid1.Cells[0,1]:='y';
end;
procedure TForm3.Button2Click(Sender: TObject);
var
yt,y:array [1..50] of real;
i,j:integer;
a:real;
begin
a:=0;
Form3.Height:=430;
Chart1.Visible:=true;
for i:=1 to StringGrid1.ColCount-1 do
y[i]:=strtofloat(StringGrid1.Cells[i,1]);
for i:=1 to StringGrid1.ColCount-1 do
begin
for j:=i downto 1 do
begin
a:=a+y[j];
end;
yt[i]:=(1/(StringGrid1.ColCount))*a;
end;
for i:=1 to StringGrid1.ColCount-1 do
begin
with series1 do
addXY(strtofloat(StringGrid1.Cells[i,1]),yt[i],' ',clgreen);
end;
end;
end.
Размещено на Allbest.ur
Подобные документы
Методи та елементи, що використовуються для реалізації алгоритму програми. Структура додатку з описом функцій складових частин і зв'язків між ними. Типи комп'ютерів та пристроїв, що використовуються при роботі програми. Організація вхідних даних.
курсовая работа [363,2 K], добавлен 01.04.2016Загальний опис та порівняльна характеристика методів k-середніх і деревовидної кластеризації, умови їх ефективного використання. Алгоритм програми, її структура з описом функцій складових частин і зв'язків між ними. Принципи тестування даної програми.
курсовая работа [224,4 K], добавлен 01.04.2016Проектування бази даних (БД). Проектування логічної моделі БД. Реалізація БД та створення таблиць. Встановлення зв’язків, вибір мови та середовища програмування. Опис функціональних елементів та реалізація програми. Опис та тестовий приклад програми.
дипломная работа [1,6 M], добавлен 07.01.2017Характеристика середовища програмування Microsoft Visual C++ та бібліотеки класів MFC. Знаходження коефіцієнтів при невідомих за допомогою методу найменших квадратів. Створення програми для вирішення задачі обраним методом, її алгоритм та інтерфейс.
курсовая работа [434,8 K], добавлен 20.01.2014Мови програмування, на яких написана програма побудови замкнутих багатокутників. Функціональні обмеження на застосування. Методи та елементи, що використовуються. Структура програми з описом функцій складових частин. Зв'язок програми з іншими програмами.
курсовая работа [76,6 K], добавлен 01.04.2016Теоретичні відомості про пакет ІЗВП Borland Delphi та СУБД MS Access, оцінка їх функціональних особливостей. Опис структури бази даних. Проектування інтерфейсу програми, опис її логічної структури та функцій. Контроль коректності вхідних, вихідних даних.
курсовая работа [4,5 M], добавлен 03.01.2014Дослідження середовища візуального програмування Delphi. Вивчення процесу створення навчальної програми "Електронний словник". Опис графічного інтерфейсу. Характеристика структури та основних процедур даної програми. Аналіз роботи з програмним кодом.
курсовая работа [831,2 K], добавлен 01.03.2014Створення додатку який дозволяє будувати діаграми динаміки обсягів промислового виробництва засобами інтегрованого середовища Borland Builder C++ 6.0 на мові програмування високого рівня С++. Опис структури інтерфейсу та складових частин програми.
курсовая работа [2,0 M], добавлен 15.01.2014Характеристика предметної області: FTP-server для ОС Windows. Шляхи встановлення FTP-серверу в ОС Windows. Опис мови та середовища програмування, компонентів та функцій програми. Аналіз реалізованої програми FTP-клієнта. Тестовий запуск та опис програми.
курсовая работа [1,7 M], добавлен 22.06.2017Головні принципи візуального програмування, опис компонентів Delphi, використаних при розробці проекту. Опис програми-додатку "Психологічний тест" та список дій користувача. Алгоритм роботи програми, її форма та ієрархія. Опис графічного інтерфейсу.
курсовая работа [1,2 M], добавлен 08.06.2010