Підпрограми в мові програмування Паскаль
Завантажити презентаціюПрезентація по слайдам:
Зміст Метод покрокової деталізації Підпрограми Процедура без параметрів Локальні та глобальні змінні Процедура з параметрами. Формальні та фактичні параметри Завдання Функції Різниця між процедурами та функціями Завдання Література
Метод покрокової деталізації Метод покрокової деталізації (послідовного уточнення) полягає в тому, що при розробці алгоритму розв’язання складної задачі спочатку визначають ключові блоки, тобто розробляють стратегію розв’язання задачі (що робити?) Після цього розробляють шляхи і методи реалізації намічених блоків у вигляді підпрограм (як робити?) Наприклад: Задача – відповісти, чи є у масиві однакові числа. Блоки – увести масив, відсортувати масив, знайти розташовані поряд однакові елементи(якщо вони є), вивести відповідь.
Підпрограми Підпрограмою називається іменована, логічно закінчена група операторів мови, яку можна викликати для виконання будь-яку кількість разів із різних місць програми. Підпрограми призначені для реалізації алгоритмів опрацювання окремих частин деякої складної задачі. Підпрограм поділяють на стандартні та підпрограми користувача. Стандартні підпрограми Паскаля містяться у стандартних модулях System, Crt, Graph тощо У мові Паскаль для організації підпрограм використовують процедури та функції
Процедура без параметрів Процедура – це незалежна пойменована частина програми, яка виконується за викликом із іншого блоку – програми або підпрограми, для виконання певних дій. Процедура без параметрів використовується в тому випадку, коли відокремлена підзадача не потребує для виконання жодних вхідних даних і не повинна повертати в основну програму (блок) ніяких значень
Процедура без параметрів Опис: Procedure name; {Розділ описів міток, типів, констант та змінних, підпрограм }; Begin {тіло процедури}; End; ! Виклик процедури є окремим оператором. Ім’я процедури не може знаходиться у виразі у якості операнду або в операторі виведення.
Процедура без параметрів Опис Виклик 1 2 3 Program name; Var a:interger; Procedure PRIK; Var x:integer; Begin x:=a+2; a:=a+3; End; Begin a:=5; PRIK; Y:=a+10; Writeln(‘a=‘.a,’ y=‘,y); End.
Локальні та глобальні змінні Глобальними називаються змінні, константи типи, що визначені в розділі опису основної програми. Вони діють як в основній програмі, так і в підпрограмах. Локальними є об’єкти, які описані всередині підпрограми, і діють тільки всередині підпрограми. Після виходу з підпрограми значення локальної змінної втрачається. Використання локальних змінних заощаджує оперативну пам’ять.
Локальні та глобальні змінні Дати відповіді: (КЛІК) Основна програма A,B,C Підпрограма1 X, Y Підпрограм2 M, N Підпрограм3 K, L Глоб. зм. для програми Глоб. зм. для п /п2, 3 Лок. зм. для П/п1 Лок. зм. для П/п2 Глоб. зм. для програми A, B, C Глоб. зм. для п /п2, 3 A, B, C, X, Y Лок. зм. для П/п1 X, Y Лок. зм. для П/п2 M, N
Процедура з параметрами. Процедура з параметрами використовується в тому випадку, коли підзадача, для розв’язання якої складається процедура, потребує для свого виконання вхідних даних і/або повинна повернути в основну програму деякі значення (одно або декілька)
Процедура з параметрами. Формальні та фактичні параметри Опис: Procedure name( {список формальних параметрів}); {Розділ описів міток, типів, констант та змінних, підпрограм }; Begin {тіло процедури}; End; Виклик name( {список фактичних параметрів}); Значення фактичних параметрів передаються формальним параметрам шляхом присвоювання. ! Відповідність між формальними та фактичними параметрами: кількість, порядок розташування, збіг типів
Параметри-значення та параметри-змінні Параметри-значення – це тільки аргументи для обчислень, які виконуватимуться у процедурі. Відповідні фактичні параметри можуть бути константами, змінними або виразами відповідного типу Параметри-змінні потрібні для повернення значень в основну програму. У списку параметрів заголовка процедури перед ними ставиться слово Var. Відповідним фактичним параметром може бути тільки змінна.
Приклад Var a,b,s,m:integer; Procedure plus(x,y:integer; var r:integer); Begin r:=x+y; End; Procedure minus(x,y:integer; var r:integer); Begin r:=x-y; End; Begin Readln(a,b); Plus(a+5,b,s); writeln(s); Minus(30,10,m);writeln(m); End. Формальні параметри значення змінна Фактичні параметри
Завдання Користуючись процедурою обчислення найбільшого спільного дільника (НСД), знайти найменше спільне кратне (НСК) чисел А, В, якщо відомо, що НСК(А,В)=А*В/НСД(А,В) У процедурі визначити, чи є число А простим. В програмі визначати, чи є простими числа Х, В, С. Створити процедуру обчислення площі прямокутника. В програмі визначити, у якого з двох прямокутників, що задано довжинами сторін, більша площа.
Функції Функція характерна тим, що повертає в місце виклику лише один результат Опис: function name( {список формальних параметрів}) :{тип результату}; {Розділ описів міток, типів, констант та змінних, підпрограм }; Begin {тіло процедури}; Name:= {вираз або змінна}; End; Виклик у виразі або в операторі виведення: А:=name( {список фактичних параметрів}); Writeln(name( {список фактичних параметрів});
Різниця між процедурами та функціями Перелік відмінностей Процедура Функція Кількість результатів Один або декілька Один Передача результату У списку формаль-них параметрів по-винен бути пара-метр-змінна (Var) Саме ім’я функції є резуль-тат. Заголовок доповнений типом функції, який ого-лошується за списком па-раметрів після двокрапки Виклик Виклик є окремим оператором Виклик повинен бути час-тиною виразу або части-ною списку оператора виведення Перелік відмінностей Процедура Функція Кількість результатів Один або декілька Один Передача результату У списку формаль-них параметрів по-винен бути пара-метр-змінна (Var) Саме ім’я функції є резуль-тат. Заголовок доповнений типом функції, який ого-лошується за списком па-раметрів після двокрапки Виклик Виклик є окремим оператором Виклик повинен бути час-тиною виразу або части-ною списку оператора виведення
Завдання Напишіть програму, яка обчислює периметр трикутника АВС, якщо відомі координати його вершин. Використайте функцію обчислення довжини відрізка, якщо відомі координати його кінців. Створити підпрограму обчислення факторіалу числа А!. Користуючись підпрограмою, складіть програму обчислення суми факторіалів чисел від 1 до М. Створити підпрограму, яка б із тексту вилучала вказаний символ Х і обчислювала кількість вилучень. У програмі організувати виклик цієї підпрограми. Створити підпрограму обчислення суми елементів одновимірної таблиці. У програмі порівняти суми елементів двох таблиць
Література Караванова Т.П. Інформатика. Основи алгоритмізації та програмування. Шепетівка: Аспект, 2004 Караванова Т.П. Основи алгоритмізації та програмування. 750 задач з рекомендаціями та прикладами. К.: Форум, 2002 Бондаренко О.О., Мірошниченко А.А. Інформатика. Основи програмування мовою Паскаль для 8-9 класів. Шепетівка: Аспект, 2006 Белоусова Л.И., Веприк С.А., Муравка А.С. Информатика. Сборник задач. Харьков: Мир детства, 2000.
Схожі презентації
Категорії