Скачать презентацию Алгоритмічне програмування Література l l Ковалюк Т Скачать презентацию Алгоритмічне програмування Література l l Ковалюк Т

АМП заочн.ppt

  • Количество слайдов: 42

Алгоритмічне програмування Алгоритмічне програмування

Література l l Ковалюк Т. В. Основи програмування. – К. : Видавнича група BHV, Література l l Ковалюк Т. В. Основи програмування. – К. : Видавнича група BHV, 2005 – 384 с. Фаронов В. В. Турбо Паскаль 7. 0 – М. : Нолидж, 2001 – 576 с. Глинский Я. Н. , Анохин В. Е. , Ряжская В. А. Turbo Pascal 7. 0 и Delphi – К. : Dia. Soft, 2001 – 208 с. Турбо Паскаль 7. 0 (Для пользователя) – К. : Издательская группа BHV. 1999 – 448 с.

Структура курсу l l l l l Етапи розв’язку задач Алгоритм і його властивості Структура курсу l l l l l Етапи розв’язку задач Алгоритм і його властивості Мова Паскаль Прості типи даних Оператори мови Паскаль Засоби налагодження програм Складні типи даних Підпрограми Файли Використання динамічної пам’яті

Тема 1. Етапи розв’язку задач Тема 1. Етапи розв’язку задач

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

3. Метод розв’язку Це етап пошуку рішення. Методи розв’язку багатьох задач випливають з формул, 3. Метод розв’язку Це етап пошуку рішення. Методи розв’язку багатьох задач випливають з формул, що описують закони фізики, математики і т. д. Наприклад, формула s=v*t є описом моделі рівномірного руху об'єкта, а методами для визначення часу чи швидкості при такому русі будуть формули t=s/v , v=s/t. 4. Алгоритм і програма Метод розв’язку подають у виді алгоритму, що однозначно описує послідовність використання формул. Алгоритм може бути описаний словесно, графічно чи як послідовність формул. Коли створено алгоритм і обкреслено структури даних, вибирають мову програмування і складають програму.

5. Виконання програми На цьому етапі увага зосереджена на виконавці алгоритмів – вибирають комп'ютер 5. Виконання програми На цьому етапі увага зосереджена на виконавці алгоритмів – вибирають комп'ютер з достатніми можливостями, виконують програму, одержують результати. 6. Аналіз результатів На цьому етапі замовник повинний одержати від виконавця максимум інформації про виконані роботи. Результати досліджень подають у виді чисел, таблиць, графіків, креслень, рекомендацій і т. д. Якщо результати достовірні і задовольняють замовника, то дослідження закінчують оформленням звіту і здачею робіт замовнику. Якщо ні, то процес повторюють, починаючи з етапу, на якому була допущена помилка. Найбільш розповсюджені помилки можуть бути в програмах і структурах даних, у використанні методу рішення, побудові моделі задачі, у виборі виконавця робіт.

Приклад. 1. Формулювання умови задачі Відстань між пунктами А и В 15 км. З Приклад. 1. Формулювання умови задачі Відстань між пунктами А и В 15 км. З пункту А в пункт В рухається пішохід зі швидкістю 5 км/год. Скільки часу він витратить на дорогу. 2. Модель задачі s=v*t 3. Метод рішення t=s/v 4. Алгоритм і програма 1) 2) 3) Ввести s, v t=s/v Вивести t

0 Розподіл часу при написанні програми планування 1 розробка+тестування 1 основний хід роботи – 0 Розподіл часу при написанні програми планування 1 розробка+тестування 1 основний хід роботи – спрацьовування кнопок, меню, не вникаючи у правильність того, що викликається. 2 розробка+тестування 2 перевірка логіки на штатних ситуаціях – чи виконується те, що викликали. 3 розробка+тестування 3 перевірка на критичних ситуаціях та допрацювання логіки 4 розробка 4 інсталяційний прогін – виконується на іншому комп’ютері (перевіряють шляхи звернень, підключені бібліотеки, потрібні драйвери). здача проекту

Тема 2. Алгоритм і його властивості Тема 2. Алгоритм і його властивості

ü Будь-яка діяльність людини - це послідовність процесів прийняття рішень, виконання дій, аналізу результатів. ü Будь-яка діяльність людини - це послідовність процесів прийняття рішень, виконання дій, аналізу результатів. Алгоритм - це кінцева послідовність команд, які потрібно виконати над вихідними даними для одержання результату. Властивості алгоритмів Визначеність Дискретність Результативність Правильність Формальність Масовість

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

Елементарні блоки блок-схем Початок, кінець Введення, виведення Операція, блок операцій Підпрограма Умова (розгалудження) Цикл Елементарні блоки блок-схем Початок, кінець Введення, виведення Операція, блок операцій Підпрограма Умова (розгалудження) Цикл Коментар Лінії потоків без стрілок зверху вниз і зліва направо.

Основні типи алгоритмів Лінійний Розгалужений Циклічний Основні типи алгоритмів Лінійний Розгалужений Циклічний

Тема 3. Мова Паскаль Тема 3. Мова Паскаль

3. 1. Основні поняття мови Паскаль Мова Паскаль була створена наприкінці 60 -початку 70 3. 1. Основні поняття мови Паскаль Мова Паскаль була створена наприкінці 60 -початку 70 -х років минулого сторіччя професором Н. Віртом зі Швейцарії і названа на честь французького математика і філософа Блеза Паскаля - винахідника першої у світі механічної обчислювальної машини.

Алфавіт мови слова речення текст Алфавіт лексеми команди програма Алфавіт мови слова речення текст Алфавіт лексеми команди програма

Лексеми спеціальних символів <= >= : = . . (* *) { } та Лексеми спеціальних символів <= >= : = . . (* *) { } та інші. Зарезервовані слова – для позначення алгоритмічних конструкцій, розділів програми та ін. , їх призначення не можна змінювати begin end if case program Неіменовані константи – числа, символи, рядки 9. 8 60 true ‘місто’ Коментар - фрагмент тексту програми, взятий у фігурні дужки; служить для пояснення роботи програми і не впливає на виконання команд; може бути розміщений у будь-якому місці програми. {це коментар} (* це теж коментар*)

Директива компілятора – це коментар, у якому за фігурною дужкою записано символ $. Директиви Директива компілятора – це коментар, у якому за фігурною дужкою записано символ $. Директиви компілятора визначають режими компіляції і можуть істотно впливати на зміст згенерованого компілятором машинного коду. Ідентифікатори – це імена, що позначають різні об'єкти. Розрізняють стандартні ідентифікатори та ідентифікатори користувача. Стандартні ідентифікатори: • імена вбудованих підпрограм read sin cos • імена типів даних real char integer • імена стандартних констант true false pi • імена директив forward virtual Стандартні імена можна використовувати і для позначення інших об'єктів, але тоді вони втрачають своє основне призначення.

Ідентифікатори користувача – це імена, що користувач надає різним об'єктам: змінним, типам, програмам тощо. Ідентифікатори користувача – це імена, що користувач надає різним об'єктам: змінним, типам, програмам тощо. Правила запису ідентифікаторів: • ім'я може складатися з латинських букв, цифр і символу підкреслення _ • може мати довільну довжину, але розрізняються лише перші 63 символи • цифра не може бути першим символом в імені • пропуски та символи пунктуації неприпустимі • малі та великі літери не розрізняються • два різних об'єкти не можна позначати одним ім'ям • рекомендовано використовувати осмислені імена

3. 2. Структура програми program <ім'я програми>; {заголовок} декларативна частина: {$} { директиви компілятора}; 3. 2. Структура програми program <ім'я програми>; {заголовок} декларативна частина: {$} { директиви компілятора}; uses { приєднання бібліотек і модулів}; label { оголошення міток}; const { оголошення констант}; type {оголошення типів}; var { оголошення змінних}; procedure { оголошення процедур користувача}; function { оголошення функцій користувача}; операторна частина: begin {початок програми} <розділ команд> end. {кінець програми}

3. 3. Типи даних 3. 3. Типи даних

Стандартні типи можна не описувати. Всі інші повинні бути описані. До стандартних типів відносяться: Стандартні типи можна не описувати. Всі інші повинні бути описані. До стандартних типів відносяться: Ø числові цілі (знак, *, /, div, mod, +, -, =, <>, <, >, <=, >=) Ім'я типу byte shortint word integer (основний) longint Діапазон значень 0. . 255 -128. . 127 0. . 65535 -32768. . 32767 -2147483648. . 2147483647

числові дійсні (можна записувати у форматі з фіксованою чи плаваючою крапкою) (знак, *, /, числові дійсні (можна записувати у форматі з фіксованою чи плаваючою крапкою) (знак, *, /, +, -, <>, <, >, <=, >=) Ø Ім'я типу Діапазон значень single 1. 5*10^-45 – 3. 4*10^38 real (основний) 2. 9*10^-39 – 1. 7*10^38 double 5. 0*10^-324 – 1. 7*10^308 extended 3. 4*10^-4951 – 1. 1*10^4932

Ø символьний (char) - це множина символів кодової таблиці комп'ютера. Символьна константа - це Ø символьний (char) - це множина символів кодової таблиці комп'ютера. Символьна константа - це символ, взятий у лапки, наприклад, 'а', '5', '%'. (конкатенація +, порівняння) Ø логічний (boolean) - характеризується двома значеннями; false (неправда) і true (істина). (not, and, or, xor) Усі стандартні типи (крім дійсного) упорядковані, тобто для кожного значення визначені наступне і попереднє.

Користувач може визначити свої власні типи даних у розділі опису типів type <ім'я типу Користувач може визначити свої власні типи даних у розділі опису типів type <ім'я типу 1> = <опис типу 1>; … <ім'я типу n> = <опис типу n>; До простих нестандартних типів відносять перелічуваний, діапазонний і строковий.

Ø Перелічуваний тип користувач створює шляхом вказівки (переліку) усіх значень, що можуть приймати змінні Ø Перелічуваний тип користувач створює шляхом вказівки (переліку) усіх значень, що можуть приймати змінні цього типу, у вигляді списку слівідентифікаторів, взятого в дужки. type <ім'я типу> = (<знач. 1>, . . , <знач. n>); Значеннями не можуть бути дані числових і символьних типів. Дані цього типу не можна вводити з клавіатури чи виводити на екран. Нумерація елементів списку починається з 0. Над даними перелічуваного типу визначені функції ord, pred і succ.

Приклад. Опис перелічуваного типу (назви кольорів): type color = (red, green, yellow); оголошення змінних Приклад. Опис перелічуваного типу (назви кольорів): type color = (red, green, yellow); оголошення змінних цього типу: var avto 1, avto 2 : color; Цим змінним можна надати значення: avto 1: =green; avto 2: =red.

Ø Діапазонний тип — це звуження деякого базового упорядкованого типу. type <ім'я типу> = Ø Діапазонний тип — це звуження деякого базового упорядкованого типу. type <ім'я типу> = <значення 1>. . <значення 2>; Приклад. Опис діапазонного типу type months = 1. . 12; Над даними діапазонного типу визначені функції ord, pred і succ.

Ø Строковий тип даних (strіng). Значеннями змінної строкового типу може бути будь-яка послідовність, що Ø Строковий тип даних (strіng). Значеннями змінної строкового типу може бути будь-яка послідовність, що складається не більш ніж з 255 символів. Дані строкового типу можна описати в розділі типів, задати в розділі констант чи оголосити в розділі змінних. Приклад. Опис даних строкового типу type t = string[10]; const s = 'Bye!'; var top : t; w : string; У квадратних дужках вказують довжину рядка.

3. 4. Константи, змінні, вирази Ø Усі величини, що входять у програму, повинні бути 3. 4. Константи, змінні, вирази Ø Усі величини, що входять у програму, повинні бути описані у розділі констант, якщо їхні значення не змінюються під час виконання програми, чи в розділі змінних, якщо їхні значення обчислюються. Константа може позначатися лексемами двох типів: • запис значення; • ідентифікатор. Особливість констант: компілятор не виділяє для їх ідентифікаторів пам’яті, на етапі компіляції вони просто замінюються відповідними значеннями.

Якщо константа задана ідентифікатором, в цьому випадку він описується в розділі const <конст 1> Якщо константа задана ідентифікатором, в цьому випадку він описується в розділі const <конст 1> = <знач 1>; … <конст n> = <знач n>; Перевагою такого способу задання є легкість коректування значення (одразу у всій програмі). Приклад. Опис констант const g = 9. 8; town =‘Kyiv’; Mas. Size = 6;

Типізовані константи – це змінні, яким надано значення на початку виконання програми. Вони можуть Типізовані константи – це змінні, яким надано значення на початку виконання програми. Вони можуть міняти значення в процесі виконання програми, але не можуть згадуватися в оголошеннях інших констант чи типів. const <іднт>: <тип>=<знач>; Приклад. Опис типізованих констант const masa : real = 28. 3; V : integer = 369;

Ø Одним з найважливіших понять у програмуванні є змінна. Змінна — це пойменована область Ø Одним з найважливіших понять у програмуванні є змінна. Змінна — це пойменована область оперативної пам'яті комп'ютера, де зберігається значення деякої величини. Змінна має такі властивості: • ім'я (ідентифікатор), • тип, • значення. Кількість змінних і їх властивості вказує користувач. Тип змінної визначає її припустимі значення, операції, які можна над нею виконувати, а також спосіб зображення даних у комп’ютері.

Оголошення змінних: var <список зм 1>: <тип 1>; … <список зм n>: <тип n>; Оголошення змінних: var <список зм 1>: <тип 1>; … <список зм n>: <тип n>; Елементи списків записують через кому. Приклад. Опис змінних var a, b, c : real; name, surname : string; n, m, k : integer;

Константи та змінні можна використовувати у виразах. Правила запису виразів: 1. Операції виконуються з Константи та змінні можна використовувати у виразах. Правила запису виразів: 1. Операції виконуються з урахуванням їх пріоритету 1) +/-, not 2) *, /, div, mod, and 3) +, -, or, xor 4) =, <>, <, >, <=, >= in Присвоювання знака Логічне заперечення Множення, ділення Цілочисельні операції Логічний добуток Додавання, віднімання Логічні суми Відношення (порівняння) Приналежність до множини

2. 3. 4. 5. 6. 7. для зміни послідовності операцій використовуються круглі дужки; знак 2. 3. 4. 5. 6. 7. для зміни послідовності операцій використовуються круглі дужки; знак множення не можна пропускати; два знаки арифметичних операцій не можуть стояти безпосередньо один за одним (a +b) / (-c); операція піднесення до степеня відсутня; вирази записуються у рядок на одному рівні, надрядкових та підрядкових індексів немає; у виразах можна використовувати функції.

Вбудовані математичні функції та процедури Ім'я функції або Призначення процедури abs(x), функція Визначення абсолютної Вбудовані математичні функції та процедури Ім'я функції або Призначення процедури abs(x), функція Визначення абсолютної величини x arctan(x), функція Обчислення кута, тангенс якого дорівнює x, значення кута задане в радіанах cos(x), функція Обчислення косинуса x; параметр задає значення кута в радіанах ехр(х), функція Визначення експоненти x, тобто значення ех, де e = 2, 718282 — основа натурального логарифма ln(x), функція Обчислення натурального логарифма x sin(x), функція Обчислення sin x; параметр задає значення кута в радіанах

Ім'я функції або Призначення процедури sqr(x), функція Піднесення до квадрата значення x sqrt(x), функція Ім'я функції або Призначення процедури sqr(x), функція Піднесення до квадрата значення x sqrt(x), функція Обчислення квадратного кореня з x рі, функція Обчислення значення числа pi = 3, 14159265. . . int(x), функція Обчислення цілої частини x frac(x), функція Обчислення дробової частини x. Дробова частина розраховується за формулою: {х}=х -[х] randomize, Ініціалізація вбудованого генератора процедура псевдовипадкових чисел поточним системним часом random та Генерація псевдовипадкових чисел. Якщо random(x), функція не має параметра, то повертає функція дійсний результат з діапазону 0. . . 1, інакше — ціле число з діапазону 0. . x - 1

Зауважимо, що функції піднесення до степеня в мові Pascal немає. Значення степеня ах =(eln Зауважимо, що функції піднесення до степеня в мові Pascal немає. Значення степеня ах =(eln a)x = ex ln a визначається виразом exp(x*ln(a)). Вбудовані функції перетворення типів Ім'я функції chr(x) ord(x) round(x) trunc(x) Призначення Повертає символ з кодом x згідно з кодовою таблицею ASCII; результат має тип char, параметр — тип byte Повертає цілочисловий порядковий номер значення x, яке належить порядковому типу даних; дозволяє отримати код ASCII символу x Повертає значення x, заокруглене до найближчого цілого Повертає найближче ціле число, яке не більше за x, якщо x > 0, та не менше за x, якщо x < 0

Процедури та функції обробки цілочислових даних Ім'я функції або Призначення процедури dec(x, dx), Зменшує Процедури та функції обробки цілочислових даних Ім'я функції або Призначення процедури dec(x, dx), Зменшує значення цілої величини x на dx, процедура якщо параметр dx не заданий, то x зменшується на 1 inc(x, dx), Збільшує значення цілої величини x на dx, процедура якщо параметр dx не заданий, то x збільшується на 1 odd(x), функція Перевіряє число x на парність, повертає значення true, якщо x непарне

Процедури керування порядком виконання програми Ім'я процедури Призначення break Вихід із циклу continue Пропуск Процедури керування порядком виконання програми Ім'я процедури Призначення break Вихід із циклу continue Пропуск операторів циклу, які записано після виклику процедури continue; завершення чергової ітерації циклу та перехід до наступної exit Вихід з поточної підпрограми в основну програму; якщо викликається з основної програми, то програма припиняє роботу halt(exitcode) Припинення виконання програми delay(t) Затримка виконання програми на t мілісекунд