Модуль 4. Програмування лінійних, розгалужених та циклічних

Скачать презентацию Модуль 4.  Програмування лінійних, розгалужених та циклічних Скачать презентацию Модуль 4. Програмування лінійних, розгалужених та циклічних

4.1.ppt

  • Размер: 1.4 Мб
  • Автор:
  • Количество слайдов: 54

Описание презентации Модуль 4. Програмування лінійних, розгалужених та циклічних по слайдам

Модуль 4.  Програмування лінійних, розгалужених та циклічних обчислювальних процесів  Заняття 1. Модуль 4. Програмування лінійних, розгалужених та циклічних обчислювальних процесів Заняття 1. Основні відомості про мову Turbo Pascal. Лінійні програми

Навчальні питання :  1.  Загальна структура лінійної програми  2. Опис зміннихНавчальні питання : 1. Загальна структура лінійної програми 2. Опис змінних 3. Оператор присвоювання 4. Процедури введення-виведення 5. Приклад лінійної програми

Література: Попов В. Б. Паскаль и Дельфи.  Самоучитель – СПб. : Питер, Література: Попов В. Б. Паскаль и Дельфи. Самоучитель – СПб. : Питер, 2004. – 544 с. Глушаков С. В. , Зорянский В. Н. , Хоменко С. Н. Программирование на Turbo Pascal 7. 0 (TP 7) – Харьков: Фолио, 2005. – 501 с.

 Лінійні програми  призначені для послідовного оброблення даних за формулами. Розглянемо структуру лінійної Лінійні програми призначені для послідовного оброблення даних за формулами. Розглянемо структуру лінійної програми безпосередньо на прикладі програми pr 1, що обчислює суму двох чисел.

program pr 1;  var a, b, result: integer;  begin a: =2; b:program pr 1; var a, b, result: integer; begin a: =2; b: =3; result: =a+b; writeln(result); end.

Структура програми у загальному випадку має вигляд: - заголовок програми program  ім’я програмиСтруктура програми у загальному випадку має вигляд: — заголовок програми program (не є обов’язковим); — описова частина; — операторна частина.

Слово program є зарезервованим (ключовим), тобто не може використовуватися більш ні для чого. Слово program є зарезервованим (ключовим), тобто не може використовуватися більш ні для чого.

 ім’я програми  це правильний ідентифікатор. Ідентифікатори використовуються у програмі для позначення констант, це правильний ідентифікатор. Ідентифікатори використовуються у програмі для позначення констант, змінних, міток, типів, процедур та функцій. Ідентифікатор повинен починатися з літери та може складатися з літер латинського алфавіту, цифр та знаків підкреслювання.

 Ключові слова не можуть використовуватися як ідентифікатори. Довжина ідентифікатора необмежена, але значущими є Ключові слова не можуть використовуватися як ідентифікатори. Довжина ідентифікатора необмежена, але значущими є тільки перші 63 символи. Бажано використовувати осмислені ідентифікатори – це робить програми більш зрозумілими. Різниця між заголовними та рядковими літерами у мові Pascal ігнорується

Описова частина програми може складатися з декількох розділів: - розділ міток, - розділ констант,Описова частина програми може складатися з декількох розділів: — розділ міток, — розділ констант, — розділ типів, — розділ змінних, починається з ключового слова var та вказує імена змінних та їх типи, — розділ процедур і функцій.

 У прикладі описова частина складається тільки із опису змінних a, b, result У прикладі описова частина складається тільки із опису змінних a, b, result

Операторна частина програми обмежується операторними дужками begin end та містить оператори, що необхідні дляОператорна частина програми обмежується операторними дужками begin end та містить оператори, що необхідні для виконання послідовності дій для розв’язання визначеного завдання. Роздільником між розділами описової частини є крапка з комою. Наприкінці програми необхідна крапка.

Мова Pascal є мовою вільного формату,  тобто в рядку може розміщуватися декілька операторівМова Pascal є мовою вільного формату, тобто в рядку може розміщуватися декілька операторів

У прикладі операторна частина програми (тіло програми) складається з операторів присвоювання a: =2; b:У прикладі операторна частина програми (тіло програми) складається з операторів присвоювання a: =2; b: =3; result: =a+b; та виклику вбудованої процедури writeln виведення даних. Попередній опис вбудованої процедури непотрібний, вона доступна будь-якій програмі.

Перед описовою частиною може розміщуватися розділ підключення модулів. Він починається із ключового слова uses,Перед описовою частиною може розміщуватися розділ підключення модулів. Він починається із ключового слова uses, за яким слідує список імен модулів (через кому)

 Типи даних Покажчики Процедурні типи. Масиви Структуровані типи Символьний Файли Об'єкти Рядки символів Типи даних Покажчики Процедурні типи. Масиви Структуровані типи Символьний Файли Об’єкти Рядки символів Дійсні Прості типи Ціли Логічні Тип, що перелічується Тип — діапазон Множини Записи

Діапазон можливих значень цілих типів залежіть від їх внутрішнього подання, яке може займати один,Діапазон можливих значень цілих типів залежіть від їх внутрішнього подання, яке може займати один, два або чотири байти. Назви цілих типів, довжина їхнього внутрішнього подання у байтах та діапазон можливих значень

 Довжина,  байт  Назва типа  Діапазон значень  1  byte Довжина, байт Назва типа Діапазон значень 1 byte від 0 до 255 1 shortint від -128 до 127 2 word від 0 до 65535 2 integer від -32768 до 32767 4 longint від -2147483648 до

  Над цілими числами виконуються операції:  + - додавання;  * - Над цілими числами виконуються операції: «+» — додавання; «*» — множення; «/» — ділення; «-» — віднімання; div — цілочисельне ділення; mod — отримання остачі від цілочисельного ділення.

Наприклад :  5 div 2 обчислює  результат 2,  6 div 2Наприклад : 5 div 2 обчислює результат 2, 6 div 2 — 3, 5 mod 2 — 1 , 6 mod 3 — 0.

Основні вбудовані процедури та функції, що можуть бути застосовані до цілих типів  Основні вбудовані процедури та функції, що можуть бути застосовані до цілих типів (у квадратних дужках вказаний необов’язковий параметр)

 Функція  Реалізована дія  abs(x)  Модуль х  dec(x[, i]) Функція Реалізована дія abs(x) Модуль х dec(x[, i]) Зменшує значення х на i, при відсутності i на 1 inc(x[, i]) Збільшує значення х на i, при відсутності i на 1 odd(i) true, якщо i – непарне число, false — парне random(w) Псевдовипадкове число, рівномірно розподілене на інтервалі [0, w-1] sqr(x) Квадрат аргументу

  Назви дійсних типів,  довжина їхнього внутрішнього подання у байтах та діапазон Назви дійсних типів, довжина їхнього внутрішнього подання у байтах та діапазон можливих значень поданий таблицею

 Довжина, байт  Назва  Діапазон десяткового порядку  Кількість значущих цифр Довжина, байт Назва Діапазон десяткового порядку Кількість значущих цифр 4 single від -45 до +38 от 7 до 8 6 real від -39 до +38 от 11 до 12 8 double від -324 до +308 от 15 до 16 10 extended від -4951 до +4932 от 19 до 20 8 comp від – 2 63 +1 до 2 63 -1 от 19 до

 Існують дві форми подання дійсних чисел: з фіксованою та плаваючою крапкою. Варіанти запису Існують дві форми подання дійсних чисел: з фіксованою та плаваючою крапкою. Варіанти запису подані: перший стовпчик – з фіксованою крапкою, другий – з плаваючою. 1. 36 e 0 0. 0013 1. 3 e-3 123 1. 23123 e

 У розділі опису змінних дані дійсного типу можна описати таким чином: var a, У розділі опису змінних дані дійсного типу можна описати таким чином: var a, b: real; c, d: single; k: double; l, m, n: extended ;

Вбудовані процедури та функції для оброблення даних дійсного типу подані таблицею  Вбудовані процедури та функції для оброблення даних дійсного типу подані таблицею

 Функція  Реалізована дія  abs(x)  Модуль аргументу  arctan(x) Арктангенс (радіани) Функція Реалізована дія abs(x) Модуль аргументу arctan(x) Арктангенс (радіани) frac(x) Дробова частина числа int(x) Ціла частина числа ln(x) Натуральний логарифм pi =3. 14159. . . random Псевдовипадкове число, що належить інтервалу [0, 1] randomize Ініціалізація датчика псевдовипадкових чисел sqrt(x) Корінь квадратний sqr(x) Квадрат аргументу sin(x) Синус (радіани) сos(x) Косинус (радіани) exp(x) Експонента

 Оператор присвоювання  змінює вміст областей пам’яті.  Він змінює значення змінної у Оператор присвоювання змінює вміст областей пам’яті. Він змінює значення змінної у лівої частині оператора значенням виразу, який записаний у правій частині оператора та має наступний синтаксис: : = вираз

Необхідно враховувати, що змінна та вираз повинні бути одного типу.  Наприклад, якщо змінніНеобхідно враховувати, що змінна та вираз повинні бути одного типу. Наприклад, якщо змінні записані наступним чином: var x, y : integer; a, b : real; то можна записати оператори присвоювання x: =x+5; y: =x; a: =b; b: =5. 33*x+y/2;

 Введення – виведення  пов’язано з інформаційним обміном між ОЗП та зовнішніми пристроями. Введення – виведення пов’язано з інформаційним обміном між ОЗП та зовнішніми пристроями. Стандартним файлом введення є клавіатура, а виведення – екран. Для введення даних з клавіатури використовуються процедури: read (); readln ();

 Список введення – це послідовність із однієї або декількох змінних типу char (символьний) Список введення – це послідовність із однієї або декількох змінних типу char (символьний) , string (строковий), а також буд-якого цілого або дійсного типу.

 Процедура readln ідентична процедурі read за винятком того, що після зчитування останньої змінної, Процедура readln ідентична процедурі read за винятком того, що після зчитування останньої змінної, частина рядку, що залишилася, пропускається. Відповідно, наступне звернення до read або readln починається з першого символу нового рядка. Крім того, процедуру readln можна викликати без параметрів, що призведе до пропуску всіх символів поточного рядку.

Розглянемо фрагмент программы: var a, b, c, d: real;  begin. . . read(a,Розглянемо фрагмент программы: var a, b, c, d: real; begin. . . read(a, b, c, d); . . . end.

 Нехай необхідно ввести числа 1, 3; 13, 3; 76, 8; 125, 0. Інформація Нехай необхідно ввести числа 1, 3; 13, 3; 76, 8; 125, 0. Інформація набирається у вигляді: 1. 3 13. 3 76. 8 125. 0 у одному або декількох рядках. В результаті виконання процедури read змінна а отримає значення 1. 3 , b — значення 13. 3, с — 76. 8, d — 125. 0.

Якщо  введення виконується за допомогою двох процедур: readln(a, b, c); read(d);  числа,Якщо введення виконується за допомогою двох процедур: readln(a, b, c); read(d); числа, що відповідають a, b, c, необхідно набирати у одному рядку, а число, що відповідає d, — у іншому.

Для виведення даних на екран призначені процедури: writeln (список виведення); write (список виведення); Для виведення даних на екран призначені процедури: writeln (); write ();

Список виведення може складатися з одного або декількох виразів типу char, string, boolean (логічнийСписок виведення може складатися з одного або декількох виразів типу char, string, boolean (логічний тип), а також будь-якого цілого або дійсного типу.

  Процедура writeln  відрізняється від write тим, що у процедурі write курсор Процедура writeln відрізняється від write тим, що у процедурі write курсор залишається на тому ж рядку екрана (після останнього виведеного символу), а у writeln курсор переходить на початок наступного рядку.

 Наприклад, якщо змінні a, b, c  описані як цілі та мають значення Наприклад, якщо змінні a, b, c описані як цілі та мають значення 132, 25, -37 відповідно. Після виконання процедур writeln(a, b); write(c); a и b будуть надруковані у одному рядку, а с у наступному: 132 25 —

 В процедурах виведення write і writeln після кожного значення може вказуватися формат виведення В процедурах виведення write і writeln після кожного значення може вказуватися формат виведення – двокрапка, після якої записується ціле число або вираз. Число або вираз визначає ширину поля виведення, тобто кількість позицій, що відведені під значення, що виводиться.

 Якщо довжина значення менше,  ніж ширина поля виведення, то текст, що виводиться, Якщо довжина значення менше, ніж ширина поля виведення, то текст, що виводиться, доповнюється зліва пробілами, тобто здійснюється вирівнювання стовпчика значень з правого боку. Наприклад, при виконанні процедури writeln(a: 3, b: 5, c: 4); для друку значення змінної a відводится 3 позициі, b — 5 позицій, с — 4 позиції.

 Якщо довжина значення, що виводиться, більше ширини поля,  формат виведення ігнорується Якщо довжина значення, що виводиться, більше ширини поля, формат виведення ігнорується

 Процедура виведення надає можливість вказувати для чисел з плаваючою крапкою загальну кількість позицій Процедура виведення надає можливість вказувати для чисел з плаваючою крапкою загальну кількість позицій та кількість позицій після десяткової коми.

 Наприклад, хай змінні d, e, f  дійсні, та мають, відповідно,  значення: Наприклад, хай змінні d, e, f дійсні, та мають, відповідно, значення: 13, 13; 123, 45; -987, 654. Результатом виконання процедури writeln(‘d=’, d: 5: 2, ‘e=’, e: 8: 3, ‘f=’, f: 8: 2); буде рядок d=13. 13 e= 123. 450 f= -987.

 Якщо для чисел з плаваючою крапкою вказується тільки загальна кількість позицій, без визначення Якщо для чисел з плаваючою крапкою вказується тільки загальна кількість позицій, без визначення кількості позицій після коми, то в цьому випадку числа виводяться у експоненціальній формі та займають вказану кількість позицій.

 Якщо кількість позицій не вказана взагалі, для кожного числа стандартна ширина поля та Якщо кількість позицій не вказана взагалі, для кожного числа стандартна ширина поля та числа друкуються у експоненціальній формі.

Наприклад:  writeln('d=', d: 10, ' e=', e: 9, ' f=', f); d= 1.Наприклад: writeln(‘d=’, d: 10, ‘ e=’, e: 9, ‘ f=’, f); d= 1. 313 E+01 e= 1. 23 Е+02 f=-9. 8765000000 E+

 Для процедур write,  writeln, readln  можна вказувати список параметрів довільної довжини Для процедур write, writeln, readln можна вказувати список параметрів довільної довжини

 Для введення-виведення у текстовий файл використовуються ті ж самі процедури, але першим параметром Для введення-виведення у текстовий файл використовуються ті ж самі процедури, але першим параметром вказується файлова змінна: writeln(f, ‘abc’, 1, True, 2. 4);

Розглянемо ще один приклад лінійної програми. Маємо два числа a и b довжини сторінРозглянемо ще один приклад лінійної програми. Маємо два числа a и b довжини сторін прямокутника. Знайти площу s та периметр p прямокутника. Необхідно скласти алгоритм та програму розв’язання завдання.

Початок Кінець 1 2 3 4 Введення a, b s: =a*b p: =2(a+b) ВиведенняПочаток Кінець 1 2 3 4 Введення a, b s: =a*b p: =2(a+b) Виведення p, s

program pr 2 ;  var  a, b, s, p: real; begin writeln('program pr 2 ; var a, b, s, p: real; begin writeln(‘ Введення сторін пpямокутника: ‘); read(a, b); s: =a*b; p: =(a+b)*2; writeln(‘Площадь = ‘, s: 5: 3); writeln(‘Пеpиметp = ‘, p: 5: 3); end.

  В програмі всі оператори виконуються послідовно. Виконання програми починається з виклику процедури В програмі всі оператори виконуються послідовно. Виконання програми починається з виклику процедури виведення writeln, яка виводить на екран підказку «Введення сторін прямокутника: » , що забезпечує зручний інтерфейс користувача. Після введення двох чисел обчислюються площа та периметр прямокутника, результати виводяться на екран.