Відмінності між версіями «Конспект уроку №9 (Pascal)»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
Рядок 98: Рядок 98:
  
 
[[Image:No6.jpg]]
 
[[Image:No6.jpg]]
 +
 +
Результатом виконання логічного (булівського) виразу є логічне значення True або False. Операндами служать дані тільки булівського типу. Список логічних операцій наведений у таблиці:
 +
 +
[[Image:No7.jpg]]
 +
 +
Виконання кожної операції відбувається з урахуванням її пріоритету. Значення пріоритетів зазначені в наступній таблиці:
 +
 +
[[Image:No8.jpg]]
 +
 +
Арифметичні вирази у якості операндів можуть містити імена функцій. З поняттям функції ми будемо знайомитись пізніше в курсі програмування, але стандартні функції ('''cos, sin, x2''' та інші) Вам знайомі з курсу математики і їх використання у курсі інформатики відрізняється тільки правилами запису (синтаксису). Так, на відміну від математики, в програмуванні аргумент функції обов'язково береться в круглі дужки. Нижче поданий список цих функцій, де літерами Х та І позначені відповідно: Х - цілі та дійсні типи, І - тільки цілі.
 +
 +
'''Abs(X) -''' обчислення абсолютного значення (модулю) Х. Тип результату збігається з типом параметра.
 +
'''ArcTan(X) -''' обчислення кута, тангенс якого дорівнює Х, значення кута подано в радіанах і може знаходитися в діапазоні від -p/2 до p/2. Для перетворення значення кута з радіанної міри в градусну необхідно значення кута помножити на число 180/p. Результат має дійсний тип.
 +
 +
'''Cos(X)''' - обчислення косинуса Х, параметр задає значення кута в радіанах.
 +
Для перетворення значення кута з радіанної міри в градусну необхідно значення кута помножити на число 180/p. Результат має дійсний тип.
 +
 +
'''Exp(x)''' - обчислення значення експоненти аргументу (Ex). Результат завжди має дійсний тип.
 +
'''Frac(X''') - знаходження дробової частини Х. Результат має дійсний тип.
 +
'''Int(X)''' - знаходження цілої частини Х (дробова частина відкидається). Результат має дійсний тип.
 +
'''Ln(x)''' - обчислюється натуральний логарифм аргументу. Результат має дійсний тип. За допомогою функцій Exp та Ln можна обчислити довільну степінь числа наступним чином: ab=Exp(b*Ln(a)).
 +
'''Pi''' - повертає значення числа p (3.1415926).
 +
'''Sin(X)''' - обчислення синуса Х. Параметр задає значення кута в радіанах. Для перетворення значення кута з радіанної міри в градусну необхідно значення кута помножити на число 180/p. Результат має дійсний тип.
 +
 +
'''Sqr(X)''' - піднесення до квадрату значення Х. Тип результату збігається з типом параметра.
 +
'''Sqrt(X)''' - обчислення квадратного кореня з Х. Тип результату дійсний.
 +
'''Random''' - генерує значення випадкового числа з діапазону від 0 до 0.99. Тип результату дійсний.
 +
'''Random(P)''' - генерує значення випадкового числа з діапазону від 0 до P. Тип результату цілий. Щоб випадкові числа були "більш випадковими", необхідно періодично змінювати базу генерації. Для цього використовується процедура Randomize, що дозволяє при кожному новому запуску програми отримувати різні випадкові числа.
 +
 +
Для величин перелічувальних типів (всі цілі, літерний та булівський) існують також декілька зручних стандартних функцій та процедур, наведених нижче:
 +
 +
'''Dec(x,[dx])''' - процедура зменшує значення змінної Х на величину DX, а якщо параметр DX не заданий - на 1.
 +
'''Inc(x,[dx])''' - процедура збільшує значення змінної Х на величину DX, а якщо параметр DX не заданий - на 1.
 +
'''Pred(X)''' - функція, що визначає попереднє значення для даного типа. Наприклад, Pred(5)=4, Pred(True)=False, Pred('B')='A'.
 +
'''Succ(X)''' - функція, що визначає наступне значення для даного типа. Наприклад, Succ(5)=6, Succ(True)=False, Succ('A')='B'.
 +
'''Odd(X)''' - число перевіряється на парність. Аргументом цієї функції може бути тільки число типу longint, а результат дорівнює '''true''', якщо аргумент парний, і '''false''' - в протилежному випадку.

Версія за 12:30, 26 грудня 2008

Тема уроку: "Величини. Типи даних. Стандартні типи даних. Набір функцій і операцій, введених для кожного зі стандартних типів."

Мета уроку: дати поняття величини та типів даних, визначити стандартні типи даних, їх опис та набір функцій і операцій для кожного зі стандартних типів.

Тип уроку: Лекційний.


Теоретичний матеріал:

В своїй роботі програміст завжди стикається з таким поняттям, як величина. Що ж таке величина? З точки зору програмування величини - це дані, що обробляються програмами.

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

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

Для визначення констант служить зарезервоване слово const.

222ppp.jpg

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

Кожна змінна і константа належать до визначеного типу даних. Тип констант визначається компілятором автоматично. Тип змінних обов'язково вказується перед тим, як їх використати. Для опису змінних призначено зарезервоване слово var.

Формат опису:

Var

< ідентифікатор> : < тип >;

Приклад:

Var Sum1, Sum2: real;

Тип даних - це діапазон значень, що можуть приймати об'єкти програми, і сукупність операцій, які дозволяється виконувати над цими значеннями.

Усі типи даних у мові програмування Паскаль розділяються на дві групи: 
  скалярні (прості),
  структуровані (складені). 


Скалярні типи у свою чергу підрозділяються на стандартні та типи користувача. Стандартні типи пропонуються користувачам розроблювачами системи Turbo Pascal. Типи користувача - розробляються самим програмістом.

До стандартних скалярних типів відносяться наступні типи:
  цілі, 
  дійсні,
  літерні,
  булівські. 

Величини цілих типів можуть бути подані, як у десятковій, так і в шістнадцятковій системах. Якщо число представлене в шістнадцятковій системі, перед ним без проміжку записується знак $. Діапазон зміни шістнадцяткових чисел від $0000 до $FFFF.

Цілі типи даних являють собою значення, що можуть використовуватися в арифметичних виразах. Усі стандартні цілі типи зведені в наступну таблицю:

No2.jpg

Дійсні типи даних являють собою дійсні значення, що використовуються в арифметичних виразах і займають у пам'яті від 4 до 10 байт. Паскаль допускає представлення дійсних значень у вигляді, як із плаваючою, так і з фіксованою крапкою.

Дійсні десяткові числа з фіксованою крапкою записуються за звичайними правилами арифметики. Єдине, що відрізняє цей формат від математичного це те, що ціла частина від дробової відокремлюється десятковою крапкою, а не комою. Якщо десяткова крапка відсутня, число вважається цілим. Перед числом може знаходитися знак "+" або "-". Якщо знак відсутній, за замовчуванням число вважається додатнім.

Дійсні десяткові числа у форматі з плаваючою крапкою подаються в наступному (експоненціальному) виді:

mЕ+p, де m - мантиса (ціле або дробове число з фіксованою десятковою крапкою), Е - означає "десять у степені", р - порядок (ціле число).

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

Приклад:

No3.jpg

Стандартний найбільш часто використовуваний дійсний тип даних представлений у наступній таблиці :

No4.jpg


Булівський тип подається двома значеннями: True (істина) або False (хибність). Він широко застосовується в логічних виразах і виразах відношення.

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


Операції в мові Паскаль підрозділяються на: арифметичні відношення (порівняння) логічні


Операції можуть бути унарними та бінарними. У першому випадку операція відноситься до одного операнду і завжди записується перед ним, у другому операція виражає відношення між двома операндами і записується між ними. Арифметичні операції задають арифметичні дії у виразах над значеннями операндів цілих та дійсних типів. Найбільш часто використовуються арифметичні операції, що подані в наступній таблиці:

No5.jpg

Операції відношення виконують порівняння двох операндів і визначають, значення виразу є істинним або хибним. Результат завжди має булівський тип і приймає одне з двох значень: True (істина) або False (хибність). Всі операції відношення зведені в наступну таблицю:

No6.jpg

Результатом виконання логічного (булівського) виразу є логічне значення True або False. Операндами служать дані тільки булівського типу. Список логічних операцій наведений у таблиці:

No7.jpg

Виконання кожної операції відбувається з урахуванням її пріоритету. Значення пріоритетів зазначені в наступній таблиці:

No8.jpg

Арифметичні вирази у якості операндів можуть містити імена функцій. З поняттям функції ми будемо знайомитись пізніше в курсі програмування, але стандартні функції (cos, sin, x2 та інші) Вам знайомі з курсу математики і їх використання у курсі інформатики відрізняється тільки правилами запису (синтаксису). Так, на відміну від математики, в програмуванні аргумент функції обов'язково береться в круглі дужки. Нижче поданий список цих функцій, де літерами Х та І позначені відповідно: Х - цілі та дійсні типи, І - тільки цілі.

Abs(X) - обчислення абсолютного значення (модулю) Х. Тип результату збігається з типом параметра. ArcTan(X) - обчислення кута, тангенс якого дорівнює Х, значення кута подано в радіанах і може знаходитися в діапазоні від -p/2 до p/2. Для перетворення значення кута з радіанної міри в градусну необхідно значення кута помножити на число 180/p. Результат має дійсний тип.

Cos(X) - обчислення косинуса Х, параметр задає значення кута в радіанах. Для перетворення значення кута з радіанної міри в градусну необхідно значення кута помножити на число 180/p. Результат має дійсний тип.

Exp(x) - обчислення значення експоненти аргументу (Ex). Результат завжди має дійсний тип. Frac(X) - знаходження дробової частини Х. Результат має дійсний тип. Int(X) - знаходження цілої частини Х (дробова частина відкидається). Результат має дійсний тип. Ln(x) - обчислюється натуральний логарифм аргументу. Результат має дійсний тип. За допомогою функцій Exp та Ln можна обчислити довільну степінь числа наступним чином: ab=Exp(b*Ln(a)). Pi - повертає значення числа p (3.1415926). Sin(X) - обчислення синуса Х. Параметр задає значення кута в радіанах. Для перетворення значення кута з радіанної міри в градусну необхідно значення кута помножити на число 180/p. Результат має дійсний тип.

Sqr(X) - піднесення до квадрату значення Х. Тип результату збігається з типом параметра. Sqrt(X) - обчислення квадратного кореня з Х. Тип результату дійсний. Random - генерує значення випадкового числа з діапазону від 0 до 0.99. Тип результату дійсний. Random(P) - генерує значення випадкового числа з діапазону від 0 до P. Тип результату цілий. Щоб випадкові числа були "більш випадковими", необхідно періодично змінювати базу генерації. Для цього використовується процедура Randomize, що дозволяє при кожному новому запуску програми отримувати різні випадкові числа.

Для величин перелічувальних типів (всі цілі, літерний та булівський) існують також декілька зручних стандартних функцій та процедур, наведених нижче:

Dec(x,[dx]) - процедура зменшує значення змінної Х на величину DX, а якщо параметр DX не заданий - на 1. Inc(x,[dx]) - процедура збільшує значення змінної Х на величину DX, а якщо параметр DX не заданий - на 1. Pred(X) - функція, що визначає попереднє значення для даного типа. Наприклад, Pred(5)=4, Pred(True)=False, Pred('B')='A'. Succ(X) - функція, що визначає наступне значення для даного типа. Наприклад, Succ(5)=6, Succ(True)=False, Succ('A')='B'. Odd(X) - число перевіряється на парність. Аргументом цієї функції може бути тільки число типу longint, а результат дорівнює true, якщо аргумент парний, і false - в протилежному випадку.