Основи програмування

Автор(и): 
Чирун Л.В., Висоцька В.А.
Тип видання: 
навчальний посібник
Анотація: 

Конспект лекцій містить короткий курс матеріалу, необхідного для вивчення основних теоретичних та концептуальних засад, функціональних можливостей і практичного застосування методів програмування, створення та написання програм на алгоритмічній мові Pascal. Теоретичний та практичний матеріал викладено у доступній формі. Викладення матеріалу супроводжується значною кількістю прикладів, що полегшує його сприйняття і засвоєння. У конспекті крім теоретичних викладень з дисципліни “Основи програмування” наводяться зразки контрольних питань та прикладів розв'язування типових практичних завдань для самоконтролю, організації перевірки чи самоперевірки засвоєння матеріалу.

Навчальний посібник призначається для студентів, що навчаються за напрямами галузей знань "Системні науки та кібернетика" (напрям 6.040303 "Системний аналіз"), "Інформатика та обчислювальна техніка" (напрям 6.050101 "Комп’ютерні науки") і споріднених галузей знань, пов’язаних з вивченням комп’ютерних інформаційних технологій. Може бути використаний викладачами в якості дидактичного матеріалу, а також для самостійного вивчення і підвищення кваліфікації.

Відповідальний за випуск:          Пасічник В.В., д-р техн. наук, проф.

Рецензенти:        Катренко А.В., канд. екон. наук, доц.

                             Матвійчук Я.М., д-р техн. наук, проф.

Зміст: 

Вступ

Розділ 1. Системи числення. Програмування в середовищі Turbo Pascal

Тема 1. Системи числення

1.1. Поняття про системи числення

1.2. Позиційні системи числення

1.3. Одиниці виміру інформації

Тема 2. Переведення чисел між системами

2.1. Переведення чисел із десяткової системи у двійкову

2.2. Переведення чисел із двійкової системи в десяткову

2.3. Переведення чисел із десяткової системи у вісімкову

2.4. Переведення чисел із двійкової системи у вісімкову

2.5. Переведення чисел із вісімкової системи у десяткову

2.6. Переведення чисел із вісімкової системи у двійкову

2.7. Переведення чисел із десяткової системи у шістнадцяткову

2.8. Переведення чисел із шістнадцяткової системи у десяткову

2.9. Переведення чисел із двійкової системи у шістнадцяткову

2.10. Переведення чисел із шістнадцяткової системи у двійкову

2.11. Переведення чисел із вісімкової системи у шістнадцяткову

2.12. Переведення чисел із шістнадцяткової системи у вісімкову

Тема 3. Алгоритмічна мова Pascal

3.1. Turbo Pascal та Borland Pascal

3.2. Синтаксичні діаграми

3.3. Алфавіт та службові слова алгоритмічної мови Pascal

3.4. Синтаксична діаграма структури програми

3.5. Структура програми

Тема 4. Типи даних у Pascal

4.1. Класифікація даних в алгоритмічні мові Pascal

4.2. Константи

4.3. Змінні

Тема 5. Оператори алгоритмічної мови Pascal

5.1. Класифікація операторів алгоритмічної мови Pascal

5.2. Оператор присвоювання

Тема 6. Процес алгоритмізації поставленої задачі

6.1. Основи алгоритмізації

6.2. Приклад програми на алгоритмічній мові Pascal

Контрольні питання

Тема 2. Реалізація лінійного оперативного процесу та розгалужень

Тема 7. Методи опису синтаксису алгоритмічних мов

7.1. Мова графічних символів

7.2. Лінійний обчислювальний процес

7.3. Обчислювальний процес із розгалуженням

Тема 8. Реалізація обчислювального процесу на Pascal

8.1. Реалізація лінійного обчислювального процесу

8.2. Реалізація обчислювального процесу із розгалуженням

8.2. Приклади програм на алгоритмічній мові Pascal

Контрольні питання

Розділ 3. Реалізація циклічних процесів

Тема 9. Оператори циклу

9.1. Характерні особливості алгоритмізації задач

9.2. Програмування циклічних обчислювальних процесів на алгоритмічній мові Pascal

9.3. Приклад програми на алгоритмічній мові Pascal

Тема 10. Цикл із заданим числом повторень

10.1. Оператор циклу з параметром for

10.2. Алгоритм роботи оператора циклу з параметром for

10.3. Особливості використання циклу for

10.4. Приклад використання циклу for

Тема 11. Цикли з невідомим числом повторень

11.1. Особливості циклу із невідомим числом повторень

11.2. Оператор циклу з передумовою while

11.3. Оператор циклу з постумовою repeat

11.4. Застосування ітераційних циклів

11.5. Програмування вкладених циклічних структур

Контрольні питання

Розділ 4. Одновимірні та багатовимірні масиви

Тема 12. Методи опису одновимірних масивів

12.1. Типи даних у Pascal

12.2. Поняття про одновимірні масиви

12.3. Застосування масивів при програмуванні на Pascal

12.4. Опис типу масив i оголошення змінних типу масив

12.5. Доступ до елементів масиву

12.6. Використання масивів та особливості роботи з ними

12.7. Створення i виведення масивів

12.8. Повна змінна

12.9. Символьні масиви

12.10. Константи – масиви

12.11. Демонстраційні приклади розв’язання задач

Тема 13. Двовимірні та багатовимірні масиви

13.1. Поняття про двовимірні i багатовимірні масиви

13.2. Опис масивів i доступ до елементів масиву

13.3. Створення i виведення масивів

13.4. Особливості роботи з двовимірними масивами

13.5. Типізовані константи типу масив

13.6. Символьні масиви

13.7. Демонстраційні приклади розв’язання задач

Контрольні питання

Розділ 5. Комбіновані типи даних на мові pascal

Тема 14. Методи опису комбінованих типів

14.1. Найпростіші комбіновані типи

14.2. Ієрархічні записи та оператор приєднання

14.3. Опис типу запис та доступ до полiв запису

Тема 15. Операції над записами

15.1. Iнiцiалiзацiя записiв

15.2. Записи з варіантною частиною

15.3. Оператор приєднання

15.4. Масиви записів

15.5. Демонстраційні приклади розв’язання задач

Контрольні питання

Розділ 6. Робота з файлами

Тема 16.Файловий тип

16.1. Класифікація файлів

16.2. Файловий тип у Pascal

16.3. Процедури для роботи із файловими типами даних

Тема 17. Процедури вводу-виводу в Pascal

17.1. Ввід із стандартного файла input

17.2. Вивід у стандартний файл output

17.3. Види файлів та оголошення відповідної файлової змінної

Тема 18. Способи доступу до даних файлів

18.1. Два способи створення файлових даних

18.2. Загальні засоби для роботи з файлами

18.3. Текстові файли

18.4. Типовані файли

18.5. Нетиповані файли

18.6. Стандартні файли Input i Output

18.7. Опрацювання помилок введення/виведення

18.8. Демонстраційні приклади розв’язання задач

Контрольні питання

Розділ 7. Реалізація підпрограм на мові Pascal

Тема 19. Підпрограми

19.1. Опис процедур і функцій у Pascal

19.2. Звертання до підпрограм

Тема 20. Параметри процедур і функцій

20.1. Параметри-значення

20.2. Параметри-змінні

20.3. Параметри-процедури          

20.4. Глобальні і локальні змінні

Тема 21. Особливості використання підпрограм у Pascal

21.1. Рекурсії

21.2. Попереджувальний опис

21.3. Побічні ефекти

21.4. Приклади програми на Pascal

Тема 22. Поняття модуля

22.1. Загальна структура модуля

22.2. Використання модулів

22.3. Компіляція модулів

22.4. Компіляція програм, що використовують модулі

22.5. Модифікація модульних програм

22.6. Деякі стандартні модулі

22.7. Створення власних модулів

22.8. Демонстраційні приклади розв’язання задач

Контрольні питання

Розділ 8. Робота зі стрічками на мові Pascal

Тема 23. Рядок символів на мові Pascal

23.1. Оголошення рядків символів

23.2. Співвідношення рядків символів, символів i масивів символів

Тема 24. Операції над даними рядкових типів

24.1. Ввід значення

24.2. Присвоєння

24.3. Об’єднання рядків

24.4. Відношення

Тема 25. Стандартні процедури та функції для роботи з рядками символів

25.1. Визначення довжини рядка

25.2. Конкатенація рядків

25.3. Копіювання рядків

25.4. Визначення входження одного рядка в інший

25.5. Вставка одного рядка в інший

25.6. Витирання підрядка з рядка

25.7. Перетворення числа у рядок

25.8. Перетворення рядка символів у число

25.9. Заповнення змінної значенням байта

25.10. Перевід малої букви у велику

25.11. Демонстраційні приклади розв’язання задач

Контрольні питання

Список літератури

 

Вступ: 

Pascal — це алгоритмічна мова програмування універсального призначення. Існують діалекти мови з підтримкою об'єктно-орієнтованого програмування. В 1990 році було затверджено стандарт ISO 7185:1990 «Pascal» та ISO 10206:1990 «Extended Pascal».

Алгоритмічна мова Pascal розроблена порівняно недавно, але зразу ж набула широкого використання. Pascal – проста виразна мова із зручними засобами організації діалогу. Крім того, Pascal дуже зручна мова для створення надійного програмного забезпечення. Для того, щоб визначити синтаксис алгоритмічної мови Pascal необхідна певна мова. В даному випадку не мова програмування, на якій будуть записуватись алгоритми рішення задач, а мова, на якій буде описуватись сама мова програмування. Іншими словами - це метамова (надмова), призначена для опису інших мов.

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

Першим компілятором мови Pascal є ETH Pascal, створений у 1970-му. Назва ETH походить від назви інституту німецькою Eidgenössische Technische Hochschule Zürich (українською Федеральна вища технічна школа Цюріха), де він був розроблений. Творцем мови є Ніклаус Вірт. Наприкінці того ж року Вірт оприлюднив перший офіційний опис мови, синтаксису та семантики. Нова версія мови побачила світ у 1972 році. Тоді ж Вірт та його англійський колега Чарльз Ентоні Хоар (Charles Anthony Richard Hoare) випустили аксіоматичний опис мови Pascal.

У 1969 році Вірт доручає розробку компілятора одному зі своїх студентів (Е. Марм'є). На той момент Марм'є володів лише Фортраном (Fortran) і писав компілятор виключно на цій мові. Після написання компілятор Pascal був переписаний на самому собі. Як згадував потім Вірт, вибір Фортрана був серйозною помилкою, бо він не міг адекватно представляти складні структури даних компілятора Pascal, що лише заплутувало програму.

Наступна спроба створення компілятору почалася з чіткого формулювання на описі (1970 року) самого Паскалю. Синтаксичний аналіз нового однопрохідного компілятору реалізовувався за допомогою рекурсії. Тепер команду розробників склали: У. Амман, Е. Марм'є, Р. Шилд. Після того як компілятор був написаний на ще невідомій мові, Шилд поїхав додому, де він на протязі двох тижнів вручну транслював програму у допоміжну низькорівневу мову. Отже, в середині 1970 року компілятор ETH Pascal був готовий. ETH Pascal був цікавий насамперед тим, що став він однією з перших реалізацій мов високого рівня написаних на самій собі, на два роки випередивши компілятор Сі. У 1973 році була створена абстрактна Pascal-машина (P-машина), яка виконувала спеціальний P-код. Щоб вирішити проблему сумісності компілятора, Вірт вирішив скористатися перевіреними часом методами інтерпретаціі. Найвідомішими з них рішеннями, які передували P-коду, можна назвати реалізацію мови Snobol-4 (Р. Грісуолдом, у 1967 році), де в якості коду абстрактної машини використовувалася мова SIL (System Implementation Language).

Початкова мета розробки мови диктувалася потребою інструмента «для навчання програмуванню як систематичній дисципліні». Pascal належить до Algol-подібних мов програмування, оскільки використовує семантику Algol-ла. Однак Pascal мав суттєве удосконалення — жорстку типізацію. Це означало, що присвоювання можна було виконувати лише для змінних, що належать до одного типу (одночасно вказувались правила, за якими типи вважались однаковими). Це удосконалення суттєво покращило стиль програмування, оскільки значну частину помилок вдавалось виявити ще на етапі компіляції — що збільшує надійність програм. Однак мова розроблялась як дослідницький проект і первісний Pascal був мало придатний для написання великих проектів, оскільки програму не можна було скласти з кількох програмних частин — просто не було передбачено такої можливості. Але ця мова програмування швидко завоювала популярність у навчальних закладах при вивченні програмування. А коли з'явились діалекти мови де можливим було окреме компілювання програмних частин — Pascal став засобом написання великих програмних систем.

Існує ряд об'єктивних причин, які обумовили видатний успіх мови Pascal. Серед них у першу чергу потрібно вказати наступні:

  1. Мова в природній і елегантній формі відбила найважливіші сучасні концепції технології розробки програм.
  2. Завдяки своїй компактності, концептуальній цілісності й ортогональності понять, а також вдалому оригінальному опису, запропонованому автором мови, Pascal виявився дуже легким для вивчення й освоєння.
  3. Незважаючи на відносну простоту мови, вона виявилась придатною для дуже широкого спектру застосунків, у тому числі для розробки дуже великих і складних програм, наприклад, операційних систем.
  4. Pascal дуже технологічний для реалізації практично усіх, у тому числі і нетрадиційних, машинних архітектур. Стверджується, що розробка Pascal-транслятора «майже» не перевищує за трудомісткістю гарної дипломної роботи випускника ВНЗу.
  5. Мова Pascal стандартизована в багатьох країнах, а у 1983 році було прийнято міжнародний стандарт (ISO 7185:1983).

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

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

Зміст матеріалу конспекту лекцій відповідає міжнародним рекомендаціям Computing Curricula 2001: Computer Science. Конспект складається із восьми розділів, які утворюють логічно завершені частини курсу:

  1. системи числення та основи програмування в середовищі Turbo Pascal,
  2. реалізація лінійного оперативного процесу та розгалужень,
  3. реалізаця циклічних процесів,
  4. одновимірні та багатовимірні масиви,
  5. комбіновані типи даних,
  6. работа з файлами,
  7. реалізація підпрограм,
  8. робота зі стрічками

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

Кількість сторінок: 
174
Видавництво: 
Видавництво Національного університету “Львівська політехніка”