Мова С містить дві різновидності структур даних: масиви і записи, при цьому записи можуть повертатися функціями, а масиви ні. Членом структури може бути змінна будь-якого типу, за виключенням змінної типуvoid, і структури того же типу. При цьому елемент може мати бути будь-який тип, за виключенням типу void, і крім того вони не можуть бути функціями. Ще один приклад не ортогальності: параметри передаються по значенню, якщо вони не є масивами, оскільки ім'я масиву без індексу інтерпретується в програмах на мові С, як адреса першого елементу масиву. В контексті ортогональності мова Pascal безумовно більш послідовна.
Легкість створення програм характеризує зручність мови для створення програм в вибраній області. Характеристики легкості створення програм і читабельність мови часто співпадають, що пояснюється тим, що в процесі створення програми авторам часто доводиться звертатися до написаного коду.Тут як і при оцінці читабельності мови, порівняння потрібно проводити в контексті конкретної області застосування мови. Не секрет, що мова Pascal створювалася Віртом, як навчальна, а мова С спочатку проектувався для системного програмування. З іншої сторони мова С не зовсім зручна для початку вивчення програмування, що, як уже було сказано, викликано його неортогональністю, і як буде показано далі, нестрогістю типізації, що не сприяє появі гарного, стабільного стилю програмування при навчанні. Хоча при наявності досвідних викладачів останній пункт стає надто обґрунтованим.
Я вважаю, що саме мова Pascal більше підходить для виконання моєї курсової роботи, так як він більш простий і зрозуміліший, ніж С.
Підпрограма може бути розроблена для різних випадків використання. Перед викликом підпрограми за допомогою параметрів її надають конкуренту інформацію для виконання саме тих дій, які треба виконати.
Структура підпрограми повторяє структуру Pascal – програми. Інтерфейс її програми міститься в її заголовку. Описання локальних об'єктів і операторів підпрограми складають внутрішню його частину і мають синтаксис блоку.
Підпрограма в мові програмування Pascal розділяються на два види: функції і процедури. Хоча вони мають одне і те же значення і аналогічну структуру, процедури і функції розрізняються призначенням і способом їх використання. Процедури слугують для завдання сукупності дій, направлених на зміну зовнішньої по відношенні до них програмного стану. Суть функцій складається в першу чергу в тому, щоб визначити алгоритм вирахування нового значення деякого типу.
В заголовку підпрограми може бути вказаних список формальних параметрів. При визові підпрограми замість них вказують список фактичних параметрів. Між ними повинно виконуватися відповідність типів.
Параметри підпрограми в мові Pascal мають три способи їх задачі:
Параметри-значення;
Параметри-змінні;
Параметри, які не мають типу.
При позначенні параметрів-значень вказується тип параметрів. При визові підпрограми в області пам'яті, яка виділяється для локальних даних і формальних параметрів, використовується копіювання значень фактичних параметрів в область, яка відповідає формальним параметрам. Під час роботи підпрограми зміни значень формальних параметрів не впливає на склад клітинок пам'яті фактичних параметрів. При закінченні роботи підпрограми пам'ять, яка виділяється під формальні параметри і локальні даності, звільнюється, значення формальних параметрів втрачається.
При описанні параметрів-змінних відноситься службове слово var, після списку параметрів слідує описання типу. При визові підпрограми в області пам'яті, яка виділяється для локальних даних і формальних параметрів, виконується копіювання адрес фактичних параметрів в область, яка відповідає формальним параметрам. Під час роботи підпрограми зміни значень формальних параметрів прямо через адресу впливає на склад клітинок пам'яті фактичних параметрів. При закінченні роботи підпрограми пам'ять, яка виділяється під формальні параметри і локальні дані, звільнюється, а результат відразу отримуємо в відповідній області фактичних параметрів.
ФУНКЦІЇ. Функцією називають підпрограму, в результаті виконання якої вимірюється тільки одне значення. Функція описується в розділі описання Pascal – програми таким чином:
Functіonім'я функції (список форм. параметрів:тип фор. пар.)
Тип функції;
Розділ описання функції;
Begіn
Розділ операторів функції
end;
Масиви – це сукупність значень однакового типу.
Кожне з значень, з яких складається масив, мають назву його компонента або елемента.
Масив даних в програмі розглядається як змінна структурованого регулярного типу (така, що складається із завідомо заданого кінцевої кількості елементів). Масиву присвоюється ім'я, за допомогою якого можна вказувати як на масив в цілому, так і на будь-який його елемент.
Щоб вказати в програмі на елемент масиву, треба крім імені масиву вказати індекс елементу, який в найпростішому випадку рівняється порядковому номеру цього елементу в масиві.
Кількість елементів при описі масиву через вказування інтервалу можливих значень індексу його елементів, і не змінюється в процесі роботи програми. Для вказування на елемент одномірних масивів використовується один індекс. Матриця служить прикладом двомірного масиву даних, для вказування на кожний елемент якого необхідно вказати два індекси: номер рядка і номер стовбцю. В програмах при записі розмірності двомірного масиву в дужках вказують межі можливих змін кожного з двох індексів а [1..2; 1…4]. Елементи двомірного масиву, який доповнюється двома індексами, які вказуються в дужках і розділені комою.
Для роботи з графікою в середовищі TurboPascal 7.0 використовується модуль Graph.tpu, в ньому представлено множина процедур і функцій для використання в додатках. В моїй програмі використовувались наступні процедури і функції для роботи з графікою:
Functiondetect – визначає режим роботи відеоадаптера;
ProcedureInitGraph – процедура ініціалізації процедур в Pascal, дана процедура підключає зовнішній відео драйвер і переключає відеоадаптер в графічний режим;
ProcedureCloseGraph – процедура переключає відеоадаптер в текстовий режим і очищає екран;
Procedureline – процедура малювання прямої лінії;
ProcedureOutTextXY – процедура виводу тексту на екран в графічному режимі.
ProcedureSetColor – процедура задання поточного кольору
Основна частина програми реалізована в вигляді діалогу з користувачем, і виконана так само в текстовому режимі. Діалог складається з наступних запитів:
- Введіть кількість шарів
(Користувачу необхідно ввести кількість шарів, через які буде проходити промінь)
- Введіть показник заломлення (>0) шар N;
(Для кожного середовища необхідно ввести показник заломлення для вирахування інших кутів)
- Введіть кут падіння в діапазоні від 0 до 90 градусів;
(Необхідно ввести значення кута, під яким кут спочатку буде падати на першу площину. Необхідно враховувати, що для відображення всієї траєкторії не варто вводити сильно велике, або сильно маленьке значення кута)
Всі вище перераховані запроси очікують числову відповідь: для кількості запитів – в форматі integer, а для всіх останніх – float.
Після вводу всіх даних програма вираховує всі необхідні дані, переходить в графічний відео режим і виводить зображення.
Мінімальна конфігурація комп'ютера:
Процесор – Celeron, Pentium с частотою 133 МГц і більше.;
Оперативна пам'ять (ОЗУ) – 1 Мб і більше;
Пам'ять відеоадаптера – 512 Кб і більше;
Операційна система DOS або Windows 95\98\ХР;
Floppy-дисковід, або CD-ROM.
1) Для початку роботи з програмою необхідно запустити файл «anizotrop.exe» подвійним кліком мишки або виділити файл, після чого натиснути Enter. Перед вами з» явиться повно екранне вікно.
2) Слідуючи вказівкам програми, ви повинні ввести всі дані, які необхідні для її роботи. Дані, які необхідно ввести: кількість шарів, кут падіння променя (0° -90°), коефіцієнти для кожного середовища.
3) Після того, як ви введете всі дані програма покаже необхідні розрахунки і видасть результат. Для повернення на початок роботи натисніть клавішу q.
4) Для виходу із програми натисніть будь-яку клавішу, або натисніть клавішу Esc в головному меню.
Зауваження: для правильного функціонування програми драйвери для роботи з графічним відео режимом повинна знаходитися в папці «C:\BGI\», або безпосередньо в папці з виконуваною програмою «anizotrop.exe».
Висновок
Під час виконання курсової роботи я навчилася працювати з графікою в середовищі TurboPascal 7.0, удосконалила навики роботи з складними циклами, з масивами, користувальницькими процедурами. Також я навчилася застосовувати теоретичні знання з алгебри, геометрії і фізики для практичного користування.
За час курсового проекту мною був створений складний програмний модуль, який складається з множини додаткових функцій і процедур, створених для спрощення розуміння і написання програми, який працює з зовнішніми драйверами, і в якому використовується робота з графікою. Але я вважаю, що у цієї програми ще є перспективи розвитку, зокрема необхідно удосконалити графічне оформлення.
Виконуючи курсову роботу, я особисто зацікавилася в роботі з графікою в Turbo Pascal, і планую продовжувати вивчати її можливості.
Список літератури
1. Проценко В.С. та ін. Техніка програмування мовою С. Навчальний посібник-К. Либідь, 1993
2. А. Епанешников, В. Епанешников Программирование в среде Turbo Pascal 7.0-М.:Диалог-МИФИ, 1993.
3. Марченко А.И., Марченко Л.И. Программирование в среде Turbo-Pascal 7.0-М. Бином Универсал, К.:Юниор, 1997
4. А.Б. Ставровский Турбо Паскаль 7.0. Учебник. – К.: Издательская группа BHV, 2000
5. Turbo Pascal/ С.А. Немнюгин. – СПб: Издательство «Питер», 2001.
6. Фигурнов В.Э. IBM PC для пользователя. – М.: Инфра-М, 2000, 480 стр.
7. Методичні вказівки до проведення лабораторних занять з основ програмування та алгоритмічних мов. Частина 1, Нога Л.В., Сидорук М.В. Херсон, 2003.
8. Методичні вказівки до проведення лабораторних занять з основ програмування та алгоритмічних мов. Частина 2. Нога Л.В., Сидорук М.В. Херсон, 2003
9. Фаронов В.В. TurboPascal 7.0. Навчальний курс. – М.: Коледж, 1997.