
- •Алфавіт мови включає в себе:
- •Лексеми мови. Під лексемами розуміють елементарні конструктивні елементи програми, які є неподільними:
- •Оголошення підпрограм: функцій та процедур. Структурне програмування передбачає побудову програм, яка фактично буде послідовністю звертань до підпрограм.
- •Оператор присвоєння присвоює змінній значення виразу, в якості якого може використовуватися і константа, і змінна, і результат обрахування функції, і група операцій. Оператор має вигляд:
- •Складений оператор. Якщо потрібно деяку групу команд інтерпретувати, їх як одну команду, тобто об’єднати їх в певному контексті, то використовують складені оператори.
- •Оператори вводу-виводу. В мові програмування Turbo Pascal ввід-вивід здійснюється насправді не операторами, а стандартними
- •Оператор розгалуження. В ряді випадків алгоритм розв’язку задачі передбачає розгалуження, тобто можливість виконання декількох різних дій в залежності від значення певної логічної умови.
- •Оператори циклу.
- •Програма знаходження суми чисел 1..10.
- •Програма друкування символів ‘a’..’z’.
- •Програма побудови таблиці істинності для and.
- •Скалярні / прості / стандартні типи даних:
- •Скалярні типи користувача:
- •Наприклад
- •4.Структурокані типи даних:
- •1 Діапазон – одновимірний масив;
- •2 Діапазони – двовимірний ( таблиці, матриці);
- •Наприклад
- •5.Комбіновані структури даних.
- •Варіантна частина у записі може бути лише одна і лише в кінці. Службове слово end є спільним для конструкції record і варіантної частини.
- •Приклади задач з масивами
- •Знайти середнє арифметичне додатніх і від’ємних елементів масиву цілих чисел.
- •Стандартні підпрограми обробки рядків
- •Операції над множинами
- •1. Процедури являють собою дію, тому їх можна використовувати в якості окремого оператора в розділі операторів програми.
- •2. Функції являють собою значення певного типу, крім цього вони можуть використовувати деяку дію, але значення їх є головним. Тому функції використовують як окремі оператори у виразах.
- •Параметри-змінні
- •Без типові параметри
- •Наявність умови зупинки, при якій деякому параметру рекурсії передається деяке значення рекурсії.
- •Чітко визначений алгоритм, при обчисленні кожного вищого рівня рекурсії через попередній рівень.
- •Типізовані.
- •Текстові.
- •Безтипові.
- •Процедура зв’язування певної файлової змінної із конкретним файлом на диску
- •Процедура відкриття файлу для читання
- •Процедура відкривання файлу для запису
- •Процедура закривання файлу
- •Процедура примусового очищення внутрішнього буфера обміну
- •Розглянуті раніше встановлюючи та завершальні підпрограми
- •Процедура читання
- •Процедура запису у файл
- •Функція визначення розміру файла у записі
- •Процедура відсікання хвостової частини файлу
- •Процедура читання з текстового файлу
- •Процедура запису
- •1. Процедура для перейменування файлів
- •2. Процедура видалення файлу
- •Xxxx0 адреса
- •35 Квартира з номером 34 у 13 будинку з номером 12.
- •Файли розміщуються в зовнішній пам'яті, а динамічні структури в оперативній.
- •Типізовані файли фактично є файлами прямого доступу, що означає довільний доступ до елементів. В динамічних структурах доступ до елементів виключно послідовний.
- •Здійснюватиметься рух по дереву до крайнього лівого елемента (найменшого).
- •Це значення друкується.
- •Робиться один крок вправо і послідовність 1-3 повторюється відносно нової поточної вершини.
- •Заголовок.
- •Інтерфейс на частина.
- •Розділ реалізації. В реалізації описуються всі компоненти мови, які мають бути невидимі зовні.
- •Процедури управління виконанням програм
- •Функції перетворення типів
- •Процедури і функції для змінних порядкового типу
- •Математичні функції
- •Процедури та функції роботи з рядками
- •Процедури та функції управління динамічною пам’яттю
- •Функції роботи з вказівниками і адресні функції
- •Процедури вводу-виводу і роботи з файлами і каталогами
- •Інші процедури і функції
- •Змінні та константи модуля
- •Змінні модуля crt
- •Процедури і функції модуля crt
- •Перепризначення файлів вводу-виводу
- •Процедури роботи з екраном
- •Процедури і функції управління курсором
- •Процедури роботи з рядками
- •Функції допиту клавіатури
- •Процедури управління кольором
- •Процедури управління вбудованим динаміком і таймером
- •Використання клавіш редагування рядків
- •Використання командних символі
- •Типи драйверів
- •Типи шрифтів
- •Ініціалізація графіки класифікація типів драйверів і відео режимів
- •Ініціалізація і завершення відеорежиму
- •Обробка помилок ініціалізації
- •Процедури роботи з відеорежимами
- •Переключення між текстовим і графічним режимами
- •Побудова зображень на екрані система координат
- •Управління поточним вказівником
- •Графічні вікна
- •Відображення точки на екрані
- •Відображення відрізків прямих ліній
- •Побудова прямокутників
- •Побудова многокутників
- •Побудова дуг, еліпсів і кіл
- •Робота з текстом
- •Відображення рядків
- •Відображення числової інформації
- •Управління параметрами зображення встановлення кольору
- •Встановлення палітри
- •Функції управління операційним середовищем
- •Процедури управління процесами
- •Процедури обслуговування переривань
- •Програми, резидентні в пам'яті
- •Процедури роботи з датою і часом
- •Процедури і функції перевірки стану диску
- •Процедури і функції роботи з файлами
- •Інші процедури і функції
- •Поля даних оголошуються на початку, а методи після них.
- •При оголошенні методів у структурі задаються лише заголовок відповідної підпрограми (подібно до інтерфейсу в модулях).
- •Окремі методи можуть використовувати інші методи цього ж об’єкта, тому вони повинні бути оголошенні в певному порядку.
- •Ini; {ініціалізація графіки}
- •Віртуальним варто оголошувати лише той метод, який:
- •Постановки задачі;
- •Наявними програмними ресурсами;
- •Вимогами по швидкодії, використанням ресурсів еом.
ТЕМА: Програмування. Основні етапи розробки прикладних програм.
Під програмуванням розуміють представлення в деякій символічній формі певного алгоритму. В якості символічної форми може використовуватися будь-яка мова спілкування, спеціально створена штучна мова, набір графічних знаків.
Алгоритмом прийнято вважати деяку послідовність команд, виконання яких в певному порядку дає очікуваний результат. Таким чином програмування і розробка алгоритму тісно пов’язані, оскільки самі алгоритми можуть бути записані мовою програмування. Поняття алгоритму не є строго визначеним.
Розробка програм вимагає детального аналізу як алгоритму так і самої програми, адже деколи послідовність команд може давати некоректний результат, тому виділяють певні ключові етапи забезпечення, на кожному етапі виконуються певні етапи, що дозволяє усунути різні недоліки.
ТЕМА: Етапи розробки прикладних програм.
Постановка задачі. На цьому етапі замовник формулює проблему і вимоги до очікуваного результату. Тут можливі непорозуміння, оскільки „замовник” і „виконавець-програміст” є спеціалістами у своїх предметних областях.
Опис математичної моделі. Реальне явище або процес замінюється певним математичним співвідношенням, при цьому допускаються певні спрощення в математичній моделі.
Розв’язання математичної моделі. Якщо математичні співвідношення допускають точні розв’язки , то нема потреби використовувати наближені методи. Якщо ж модель є достатньо складною, то використовується якийсь із наближених чисельних методів.
Побудова алгоритму розв’язку. Часто одну і ту ж задачу можна розв’язати різними способами. Отримавши різні алгоритми, звичайно обирається найефективніший з них. В якості критерію ефективності вибирається час виконання, точність отриманого результату, використанням системних ресурсів. Оскільки час роботи суттєво залежить від машини, на якій реалізується алгоритм, то швидкодію алгоритму прийнято в кількості так званих „важких” операцій. Під „важкими” розуміють ті операції, на які процесор затрачає більше часу та ресурсів. Для математичних задач – операції множення, ділення та звернення до функції, для задач обробки структур даних – операція порівняння, для задач системного програмування процесора – операція пересилки даних.
Якщо не вдається точно порахувати кількість важких операцій, то проводиться їхня оцінка. Тобто вибирається деяка функціональна оцінка алгоритму, яка визначає складність алгоритму в залежності від розміру задачі.
Крім оцінки ефективності алгоритму встановлюють такі властивості, як стійкість та коректність, а для алгоритмів послідовних наближень ще й збіжність.
Під стійким алгоритмом розуміють такий алгоритм, який при значній змінні вхідних даних незначно змінює результат.
Під коректним алгоритмом розуміють такий алгоритм, який дає єдиний стійкий розв’язок за скінчену кількість кроків. Остання умова означає, що він не повинен зациклюватися.
Проаналізувавши всі параметри, вибирається найбільш ефективний.
В будь-якому випадку алгоритм повинен будуватися без орієнтації на якусь конкретну мову програмування.
Програмна реалізація алгоритму. Вибір мови програмування здійснюється з двох основних міркувань:
а) можливостями мови;
б) наявність матеріальних ресурсів та апаратних засобів.
При програмуванні проводиться верифікація програм та їх оптимізація. Це ніби продовження аналізу ефективності алгоритму та покращення за рахунок можливостей певної мови програмування.
Під верифікацією розуміється правильності програми.
Документування програми. При передачі П.З. замовнику, складається додатковий файл коментарів та пояснень. Такі пояснення в окремому файлі використовуються, якщо програма передається у вигляді виконуваного чи командного файлу, тобто тоді, коли текст програми не є об’єктом передачі. Якщо ж передбачається передача тексту програми, то в цьому випадку бажане включення коментарів у програмі, що полегшують розуміння її замовником.
ТЕМА Структурне програмування. Основні структурні елементи алгоритмів.
При розробці великих програмних систем виникає проблема контролю за виконанням всього проекту. Одним із способів вирішення принципів цієї проблеми є принцип „розділяй і володарюй”. Він передбачає розбиття основної задачі на деякі під задачі, які більш-менш незалежні. Кожен з компонентів теж може поділятися на під задачі. При цьому зрозуміло, що алгоритм розв’язку теж розділяється на під алгоритми. Такий поділ значно полегшує розробку і від лагодження певних частин.
Такий поділ – структурна декомпозиція, а програмування за цим принципом – структурним. Структурне програмування – дедуктивне (від складного до простого).
В структурному програмування більшість програм можна представити як послідовність викликів окремих найбільш загальних підпрограм.
Кожна з таких підпрограм в свою чергу має аналогічну будову, тобто теж складається з викликів інших підпрограм. Такий поділ може
продовжуватися до рівня елементарних операторів мови програмування, тому виникає питання: які основні структурні елементи можна виділити в алгоритмів і програм. Для побудови основних елементів алгоритму використовують три базових елементи.
- об’єднуюча частина. Це точка алгоритму, в якій нічого не виконується. Це лише вхід чи вихід з окремого блоку алгоритму.
-
функціональна вершина. Відповідає
окремій дії алгоритму. Виклик підпрограм,
елементарний оператор мови.
-
предикатна вершина. Точка розгалуження
в алгоритмі, яка здійснює передачу
управління на певний під алгоритм при
певній умові.
При допомозі цих трьох елементів можна побудувати будь-яку конструкцію алгоритму, а отже і весь алгоритм.
Зрозуміло, що такий стиль програмування можна реалізувати в засобах структурних мов програмування. Їх особливістю є те, що програми мають строго визначену структуру. Основні частини програми, які відповідають за окремі алгоритми, за своєю будовою подібні до головної програми, тобто мають таку ж структуру.
До структурних мов програмування відносять Pascal, C++,Delphi. В цих мовах основною компонентою є програми, процедури або функції. Це є ніби програма, яка виконує окрему частину алгоритму. Структурні мови зручні тим, що на основі них можна будувати модулі, бібліотеки зовнішніх програм, які використовуються декількома програмами одночасно.
ТЕМА: Основні поняття програмування на мові Pascal.
Алфавіт мови включає в себе:
а) 52 англійські букви, знак підкреслення.
б) десяткові цифри 0,1, ... ,9.
в) спеціальні символи:
+ - плюс @ - комерційне а
- мінус . – крапка
* - зірочка , - кома
/ - дробова риска : - двокрапка
= - дорівнює ; - крапка з комою
> - більше ‘ - апостроф
< - менше № - номер
[ ] – квадратні дужки $ - знак грошової одиниці
( ) – круглі дужки ^ - тильда
{ } – фігурні дужки _ - проміжок ( не має позначення)
Проміжок – незаповнена позиція в тексті. Можна сказати, що це невидимий, але такий, що сприймається ЕОМ символ, який займає в тексті одну позицію.
Лексеми мови. Під лексемами розуміють елементарні конструктивні елементи програми, які є неподільними:
а) службові слава (55):
absolute end inline procedure
and external interface program
array file interrupt record
begin for label repeat
case forward mod set
const function nil shl
div goto not shr
do if of string
downto implementation o then
else in packed to
object virtual type unit
until uses var while
with xor constructor destructor
б) ідентифікатори – імена окремих компонентів програми (констант, змінних, типів, процедур, функцій, файлів і програм).
Правило запису ідентифікаторів:
ідентифікатори починаються тільки з букви або знаку підкреслення;
ідентифікатор може складатися з букв, цифр і знаку підкреслення;
між двома ідентифікаторами повинен бути хоча б один проміжок;
максимальна довжина ідентифікатора 127 символів, але ЕОМ розпізнає тільки перші 63 символи;
ідентифікатор не повинен співпадати за написанням ні з одним зі службових слів;
великі і малі букви в ідентифікаторі не розрізняються.
в) зображення – об’єкти програми, що є значенням певного типу. Це можуть бути числа, символи, рядки символів.
г) розділювані. В якості них використовують символи. Вони відокремлюють окремі компоненти.
д) коментарі. { коментар }.
е) директиви. Не виконувана інструкція процесору.
ТЕМА : Структура програми.
Програма реалізує алгоритм розв’язання задачі. Вона об’єднує послідовність виконання конкретних вказівок над конкретними даними для реалізації конкретно встановленої мети.
Програма складається з описової частини та тіла.
ОПИСОВА ЧАСТИНА:
Program < ім’я програми> ( не обов’язкова частина).
Директиви ( не обов’язкові ) { $... }.
Uses – специфікація (uses CRT).
Label – оголошення міток. Мітки у програмі позначають оператори, на які повинне передаватися виконання згідно з алгоритмом, якщо потрібно здійснити обхід деякого фрагменту. Мітки використовуються з оператором goto. Використання міток не бажане.
Const – оголошення констант. Константи – величини, значення яких встановлені в описовій частині програми і в процесі виконання програми не змінюються.
CONST < ідентифікатор > = < значення константи>;
Наприклад.
Const max = 1000; min = 1;
Type – оголошення типів. Тип – повна сукупність елементів деякої природи, що володіють спільними для них властивостями.
Ці властивості визначають діапазон допустимих значень, операції, що застосовують до елементів типу.
Скалярні типи – множини елементів, які є анатомічними величинами, тобто неподільними на простіші елементи( дійсні, цілі числа, символьні, логічні, перелічувані та інтервальні типи ).
Перші чотири типи – стандартні, а два останні будуються згідно певних правил.
TYPE <ідентифікатор> = <опис типу>;
Наприклад
Type n=integer; n1=array[1..10] of real; n2=(red,yellow,green);
Var – оголошення змінних. Змінні – величини, значення яких в процесі виконання програми може змінюватися. Якщо є декілька змінних одного типу, то їх можна оголосити в одному розділі, перелічуючи їх через кому. Заданя типу змінних може бути явне, або через раніше оголошений тип.
VAR <ідентифікатори> : <ім’я типу>;
Наприклад
Var a,b,c: integer;