Паскаль: типи дійсних, оператори розгалуження, функції та їх виклики, процедури, під задачі, Детальна інформація

Паскаль: типи дійсних, оператори розгалуження, функції та їх виклики, процедури, під задачі
Тип документу: Реферат
Сторінок: 11
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 26.2
Скачувань: 1326
У програмуванні властивість операції бути означеною для різних типів називається поліморфізмом, а сама операція – поліморфною. За знаком операції та типами виразів, що позначають операнди в Паскаль-програмі, можна визначити, яку саме операцію слід указати в машинній програмі. І це визначається під час трансляції Паскаль-програми (або при обчисленні виразу в процесі її інтепретації).

Слово "поліморфізм" буквально означає "багатоформність", тобто наявність багатьох форм у того самого змісту. У даному випадку та сама за змістом операція, наприклад, додавання, має різні машинні форми для різних типів.

1.3. Сумісність цілих і дійсних

Мова Паскаль допускає різнотипні числові, тобто цілі й дійсні, операнди у виразах, наприклад, 2+1.0. При трансляції таких виразів додаються команди породження дійсного значення за цілим операндом. Отже, при обчисленні виразу насправді спочатку виконується перетворення цілого операнда в дійсний і потім указана операція над дійсними значеннями. Так, при обчисленні 2+1.0 спочатку 2 перетворюється в 2.0 і потім додаються 2.0 і 1.0.

Можливість указання операндів різних типів у виразах називається сумісністю цих типів. Типи цілих і дійсних є сумісними.

Є ще один вид сумісності – сумісність за присвоюванням, коли значення одного типу можна присвоювати змінним іншого. Дійсний тип сумісний за присвоюванням з цілим, але не навпаки. Наприклад, якщо a:real; b:integer, то можна написати a:=b, але не можна b:=a. Аналогічно до обчислення виразів, ціле значення перед присвоюванням перетвориться в дійсне. З цієї ж причини, до речі, при виконанні readln(z) із змінною z:real можна набрати на клавіатурі не дійсну, а цілу сталу – z одержить дійсне значення. Зворотні перетворення програміст повинен задавати явно за допомогою функцій trunc або round, наприклад, b:=round(a).

Задача

3.6. Намалюйте три кола, відзначених іменами типів цілих, дійсних і бульових. Проведіть стрілки між ними – стрілка веде від кола А до кола Б, якщо означено операції з операндами типу А и значеннями типу Б, наприклад, від кола integer до кола boolean. Позначте стрілки знаками відповідних операцій. Назвіть поліморфні й неполіморфні операції.

2. Комп'ютер сам вирішить,

що робити і чого не робити

2.1. Оператори розгалуження та складений

Майже кожний, хто провчився в школі років вісім, пам'ятає, як обчислювати дійсні корені квадратного рівняння ax2+bx+c=0 (природно, за умови a\xF0B9 0):

(1) прочитати коефіцієнти a, b, c;

(2) обчислити d=b2-4ac;

)/(2a);

у противному випадку

якщо d=0, то обчислити x1=-b/(2a),

інакше нічого не робити.

Майже кожний розуміє, що він задає три різні послідовності дій. Яка саме виконується, залежить від конкретних значень a, b, c. Пункт (3) алгоритму задає перевірку, яка з умов d>0, d=0 або d>0 справджується, і залежно від цього ті або інші дії.

Умову будемо розуміти як фразу, що може бути або істинною, або хибною. У мові Паскаль умову можна відтворити бульовим виразом, як правило, із змінними. Його значеннями можуть бути true або false – це залежить від значень змінних. Звичайно, умови можуть бути тотожно істинними або тотожно хибними – вони відтворюються виразами, швидше за все, без змінних. Втім, вирази z or not z і z and not z мають значення відповідно true і false незалежно від значення z.

Перевірка умови при виконанні програми – це обчислення відповідного бульового виразу.

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

if умова then оператор else оператор

Ключові слова if, then, else – це англійські "якщо", "то", "інакше". Для полегшення читаності програми оператор розгалуження часто записують "східцями":

if умова

then

оператор

else

оператор

або

The online video editor trusted by teams to make professional video in minutes