Введення в програмування на мові pascal 1
Для програмної обробки за допомогою комп'ютера дані представляються у вигляді величин і їх сукупностей. Величина - це елемент даних з точки зору їх семантичного (смислового) змісту або обробки. Смислове (семантичне) розбиття даних проводиться під час постановки завдання і розробки алгоритму її рішення (вхідні, вихідні та проміжні). Вихідні (вхідні, аргументи) - це дані, відомі перед виконанням завдання, з її умови. Вихідні дані (результати) - результат вирішення задачі. Змінні, які не є ні аргументом, ні результатом алгоритму, а використовуються тільки для позначення обчислюваного проміжного значення, називаються проміжними. Необхідно вказувати імена та типи даних - цілий, речовинний, логічний і символьний.
Імена в мовах програмування прийнято називати ідентифікаторами. Є ідентифікатори змінних, констант, типів, функцій і т.д.
З поняттям величини пов'язані наступні характеристики (атрибути):
- ідентифікатор - це її позначення і місце в пам'яті;
- тип - безліч допустимих значень і безліч застосовних операцій до неї;
- значення - динамічна характеристика, може змінюватися багаторазово в ході виконання алгоритму. Під час виконання програми в кожен конкретний момент величина має якесь значення або не визначена.
Постійної називається величина, значення якої не змінюється (оскільки таке можуть редагувати лише адміністратори) в процесі виконання алгоритму, а залишається одним і тим же, зазначеним в тексті алгоритму. Змінної називається величина, значення якої змінюється (в загальному випадку, може змінюватися) в процесі виконання алгоритму.
Тип виразу визначається типами що входять в нього величин, а також виконуваними операціями. У мові Pascal тип величини задають заздалегідь, тому що всі змінні, використовувані в програмі, повинні бути оголошені в розділі опису із зазначенням їх типу.
Розрізняють змінні наступних простих типів: цілі (Integer, Byte, ShortInt, Word, LongInt), речові (Real, Double, Single, Extended), логічний (Boolean), символьний (Char), що перераховується, діапазонний (інтервальний).
В цілому, ієрархія типів у мові Pascal наступна:
Тип змінної визначає діапазон допустимих значень, прийнятих величинами цього типу; набір операцій, допустимих над даною величиною; обсяг пам'яті, що відводиться під цю змінну; спосіб представлення величин в пам'яті комп'ютера.
Кожен тип має свій ідентифікатор.
Примітка. Наведений тут опис простих типів актуально для Turbo Pascal; в інших реалізаціях Pascal обсяги пам'яті і значення числових величин можуть лежати в інших діапазонах.
Про подання інформації в пам'яті комп'ютера можна прочитати в даній статті.
Обмін інформацією з комп'ютером передбачає використання певних засобів вводу-виводу. У ЕОМ основним засобом введення є клавіатура, виведення - дисплей.
Процедура, яка в режимі діалогу з клавіатури привласнює значення для змінної величини, називається процедурою введення.
У мові Pascal вона виглядає наступним чином:
Читається: "Ввести речовинну А. цілу У і символьну С".
Як тільки в програмі зустрічається виклик процедури Read, ЕОМ призупиняє виконання цієї програми і чекає, поки користувач введе з клавіатури відповідні значення, які будуть присвоюватися змінним, перерахованим в списку введення, в порядку перерахування. Значення даних, що вводяться одночасно відображаються на екрані дисплея. Після натискання клавіші enter. коли всі змінні приймуть свої значення з вхідного набору даних, певного користувачем, виконання програми триває з оператора, наступного за Read.
У списку введення значення поділяються між собою пропуском (або кожне вводиться в окремому рядку). Присвоєння значень з вхідного потоку виконується зліва направо відповідно до порядку проходження змінних у процедурі Read. Процедура ReadLn схожа на Read. Різниця лише в тому, що ReadLn реагує на кінець рядка, і в разі виявлення відбувається відразу перехід до наступного рядка.
Приклади введення даних за допомогою процедури ReadLn:
Процедура, яка дозволяє виводити значення змінних (виразів) на екран, називається процедурою виведення.
У Pascal ця команда виглядає наступним чином
У списку виведення може бути або один вираз, або послідовність виразів, розділених між собою комами.
Процедура Write здійснює висновок значень виразів, наведених в його списку, на поточний рядок до її заповнення. За допомогою процедури WriteLn реалізується висновок значень виразів, наведених в його списку, на один рядок дисплея і перехід до початку наступного рядка.
Приклади виведення даних:
Для управління розміщенням виведених значень процедури Write і WriteLn використовуються з форматами. Під форматом даних розуміється розташування і порядок кодування окремих полів елементів даних.
Процедура виведення з форматом для цілого типу має вигляд:
Тут N. M. L - вираження цілого типу, що задають ширину поля виведення значень.
При виведенні речових значень Write (R) без вказівки формату виводить речовий R в поле шириною 18 символів у формі з плаваючою комою в нормалізованому вигляді. Для десяткового подання значення R застосовується оператор з форматами виду WriteLn (R. N. M). В десяткового запису числа R виводиться M (0 ≤ M ≤ 24) знаків після коми, всього виводиться N знаків.
Загальна структура програми на Pascal така:
Оператор присвоювання - один з найпростіших і найбільш часто використовуваних операторів у будь-якій мові програмування, в тому числі і в Pascal. Він призначений для обчислення нового значення деякої змінної, а також для визначення значення, що повертається функцією. У загальному вигляді оператор присвоювання можна записати так:
Оператор виконується наступним чином. Обчислюється значення виразу в правій частині присвоювання. Після цього змінна, зазначена в лівій частині, отримує обчислене значення. При цьому тип виразу повинен бути сумісний з привласнення з типом змінної! Як зазначалося раніше, тип виразу визначається типом операндів, що входять в нього, і залежить від операцій, що виконуються над ними.
Для операцій додавання, віднімання і множення тип результату в залежності від типу операнда буде таким:
У Pascal є операції цілочисельного ділення і знаходження залишку від ділення. При виконанні цілочисельного ділення (операція div) залишок від ділення відкидається.
Наприклад, 15 div 3 = 5; 18 div 5 = 3; 123 div 10 = 12, 7 div 10 = 0.
За допомогою операції mod можна знайти залишок від ділення одного цілого числа на інше.
Наприклад, 15 mod 3 = 0; 18 mod 5 = 3; 123 mod 10 = 3, 7 mod 10 = 7.
При записи виразів алгебри використовують арифметичні операції (додавання, множення, віднімання, ділення), функції Pascal, круглі дужки.
Порядок дій при обчисленні значення виразу:- обчислюються значення в дужках;
- обчислюються значення функцій;
- виконується унарні операції (унарний мінус - зміна знака);
- виконуються операції множення і ділення (в тому числі цілочисельного ділення і знаходження залишку від ділення);
- виконуються операції додавання і віднімання.
Запис на Pascal
Піднесення до степеня (крім зведення в квадрат і піднесення до степеня числа e) відсутній. Для зведення в довільну ступінь можна скористатися очевидним рівністю: x y = e y ln x. Для зведення числа в натуральну ступінь можна написати власну функцію. наприклад,
Інший спосіб отримати натуральне значення z = x y. де x. y - натуральні, це зробити так: Z: = Round (Exp (Y * Ln (X))).
Примітка. Цікавою є завдання одержання ступеня будь-якого цілого числа (за винятком нуля), якщо підстава ступеня - невід'ємне ціле, без використання розвилки. Одне з можливих рішень. (-1) * Ord (Odd (Y)) * Exp (Y * Ln (X)) + Ord (Odd (Y + 1)) * Exp (Y * Ln (X)). Тут Ord (K) - функція, яка повертає порядковий номер величини K в тому чи іншому порядковому типі (в прикладі використано властивість, що порядковий номер False дорівнює 0, а порядковий номер True - 1).
Приклади запису математичних виразів:
Запис на Pascal
(Abs (x) - Abs (y)) / (1 + Abs (x * y))
Ln (Abs ((y - Sqrt (Abs (x))) * (x - y / (z + Sqr (x) / 4))))
Логічний операнд - це конструкція відповідної мови програмування, яка задає правило для обчислення одного з двох можливих значень: True або False.
Найчастіше логічні вирази використовують в операторах присвоювання або для запису того чи іншого умови. Складовими частинами логічних виразів можуть бути: логічні значення (True, False); логічні змінні; відносини.
Наприклад, 1) Y: = True; 2) Z: = False; 3) LogPer: = A> B; 4) Log1: = (A = B) And (C <= D).
Як видно з прикладів, ставлення - це два вираження, розділених між собою знаком операції відносини (>, <, =, <>, <=,>=). Ставлення є найпростішою конструкцією логічного виразу. Воно обчислює результат True, якщо виконується задане співвідношення, і False - в іншому випадку.
Примітка. Незважаючи на те, що операції відносини =, <>,> =,
Перш за все звернемо увагу на те, що цю складну фігуру доцільно розбити на кілька простіших: трикутник, що лежить в I і IV координатних чвертях, і трикутник, що лежить в II і III чвертях. Таким чином, точка може потрапити всередину однієї з цих фігур, або на лінію, їх обмежує. Кількість відносин, що описують якусь область, зазвичай збігається з кількістю ліній, цю область обмежуючих. Щоб точка потрапила всередину області, необхідна істинність кожного з відносин, тому над ними виконується операція AND. Так вся область була розбита на кілька, то між відносинами, що описують кожну з них, використовується операція OR.
З огляду на наведені тут міркування і записавши рівняння всіх обмежують фігуру ліній, одержуємо шукане логічне вираз:
Завдання 3. Обчислити значення виразу
Для вирішення завдання досить ввести всі дані, безпомилково записати вираз і вивести результат. Примітка. При вирішенні цього завдання не враховується область визначення виразу, вважається, що вводяться тільки допустимі дані.
Контрольні питання і завдання
Сайт створено в системі uCoz