Автор работы: Пользователь скрыл имя, 07 Июня 2013 в 01:16, лабораторная работа
МЕТА: Ознайомитись з поняттям елементарних типів даних в мові Турбо Паскаль (ТР). Навчитись використовувати різні типи даних при написанні програм. Закріпити вивчений матеріал при створенні власних нескладних лінійних програм
Лабораторна робота №1
ТЕМА: Арифметичні операції та вирази
МЕТА: Ознайомитись з поняттям елементарних типів даних в мові Турбо Паскаль (ТР). Навчитись використовувати різні типи даних при написанні програм. Закріпити вивчений матеріал при створенні власних нескладних лінійних програм
Стандартні типи даних описані в стандартній бібліотеці ТР, яка автоматично підключається до кожної програми. Тому такі типи не потребують опису в розділі визначення типів Паскаль-програми. Всі допустимі в мові ТР типи поділяються на прості (скалярні, неструктуровані) і складені (структуровані).
Таблиця 1. Стандартні скалярні типи
Тип |
Позначення |
Приклади |
Цілі числа |
Integer |
5 –3 0 +123 |
Цілі довжиною 1 байт |
Byte |
2 67 125 |
Короткі цілі |
ShortInt |
–127 25 100 |
Довгі цілі |
LongInt |
200000 340005 |
Цілі довжиною 1 слово |
Word |
65534 345 |
Дійсні числа |
Real |
23.56 12Е2 –3Е–13 |
Дійсні одинарної точності |
Single |
1.45 –2Е+33 |
Дійсні подвійної точності |
Double |
0.00005 34565.565 |
Зовнішні або розширені |
Extended |
|
Логічний (булевський) тип |
Boolean |
TRUE FALSE |
Символьний (літерний) тип |
Char |
'd' 'v' '$' '5' 'ф' |
Посилальний тип |
Pointer |
Таблиця 2. Структуровані типи
Рядковий тип |
String |
'Computer' '12345' |
Масиви |
Array |
|
Записи |
Record |
|
Множини |
Set |
[2,3,5,7,11] ['s', 'r', 'd'] |
Файли |
File, File of |
|
Списки |
||
Черги |
||
Стеки |
1. В десятковій системі числення (діапазон для цілих –32768..32767, для дійсних (1Е–38..1Е+38).
2. В шістнадцятковій системі числення (діапазон $0000..$FFFF).
Таблиця 3. Подання цілих чисел
Тип цілих |
Діапазон |
Формат |
Byte (коротке довжиною 1 байт) |
0..255 |
1 байт без знаку |
ShortInt (коротке ціле) |
–128..128 |
1 байт зі знаком |
Word (ціле довжиною 1 слово) |
0..65535 |
2 байти без знаку |
LongInt (довге ціле) |
–2147483648.. 2147483647 |
4 байти зі знаком |
Integer (ціле) |
–32768..32767 |
2 байти зі знаком |
Таблиця 4. Подання дійсних чисел
Тип дійсних |
Діапазон |
Кількість значущих цифр, формат |
Real (дійсне) |
2.9Е–39..1.7Е+38 |
11–12, 6 байтів |
Single (одинарна точність) |
1.5Е–45..3.4Е+38 |
7–8, 4 байти |
Double (подвійна точність) |
5Е–324..1.7Е308 |
15–16, 8 байтів |
Extended (зовнішні або розширені) |
3.4Е–4932..1.1Е4932 |
19–20, 10 байтів |
Змінні і константи всіх типів використовуються у виразах. Вираз задає порядок виконання дій над величинами і складається з операндів (констант, змінних, звернень до функцій), круглих дужок і знаків операцій. Операції визначають дії, які треба виконати над операндами. Наприклад, у виразі (X+Y–10) X, Y і 10 – операнди, "+" і "–" – знаки операцій додавання і віднімання. У найпростішому випадку вираз може складатися з одної змінної або константи. Круглі дужки ставляться так, як у звичайних арифметичних виразах для управління порядком виконання операцій. Використання круглих дужок навіть там, де в них немає необхідності з точки зору синтаксису, є прийнятним, якщо вони роблять порядок обчислень візуально більш чітким і зрозумілим.
Таблиця 5. Функції для величин цілого типу
Назва |
Призначення |
Приклади |
ABS(i) |
Знаходження абсолютного значення величини |
ABS(–48) = 48; ABS(48) = 48 |
SQR(r) |
Піднесення до квадрату |
SQR(4) = 16; SQR(11) = 121 |
TRUNC(r) |
Знаходження цілої частини числа |
TRUNC(8.53) = 8; TRUNC(–9.2) = –9 |
ROUND(r) |
Знаходження найближчого цілого (з округленням) |
ROUND(8.53) = 9; ROUND(8.3) = 8; ROUND((–8.53) = –9 |
PRED(i) |
Знаходження попереднього значення |
PRED(6) = 5; PRED(–6) = –7 |
SUCC(i) |
Знаходження наступного значення |
SUCC(6) = 7; SUCC(–6) = –7 |
ODD(i) |
Перевірка на непарність |
ODD(11) = TRUE; ODD(20) = FALSE |
Назва |
Призначення |
Приклади |
ABS(r) |
Знаходження абсолютного значення величини |
ABS(–48) = 48; ABS(48) = 48 |
SQR(r) |
Піднесення до квадрату |
SQR(4) = 16; SQR(11) = 121 |
SQRT(r) |
Знаходження квадратного кореня (r³0) |
SQRT(2.48)=6.1504; SQRT(4)=2.0 |
TRUNC(r) |
Знаходження цілої частини числа |
TRUNC(8.53) = 8; TRUNC(–9.2) = –9 |
ROUND(r) |
Знаходження найближчого цілого (з округленням) |
ROUND(8.53) = 9; ROUND(8.3) = 8; ROUND((–8.53) = –9 |
FRAC(r) |
Знаходження дробової частини |
FRAC(2.4)=0.4; FRAC(–2.4)=–0.4 |
SIN(r) |
Знаходження значення синуса |
SIN(2.48)=0.61437 |
COS(r) |
Знаходження значення косинуса |
COS(2.48)=–0.789 |
ARCTAN(r) |
Знаходження значення арктангенса |
ARCTAN(2.48)=1.1857 |
LN(r) |
Знаходження значення значення натурального логарифма (r>0) |
LN(2.48)=0.090825 |
EXP(r) |
Знаходження значення експоненціальної функції |
EXP(2.48)=11.9412 |
INT(r) |
Знаходження найближчого цілого числа (без округлення) |
INT(2.98)=2.0; INT(–1.3)=–1.0 |
Назва |
Призначення |
Приклади |
PRED(L) |
знаходження попереднього значення для L |
PRED(TRUE) = FALSE; PRED(FALSE) = TRUE |
SUCC(L) |
знаходження значення, наступного за L |
SUCC(TRUE) = FALSE; SUCC(FALSE) = TRUE |
ORD(L) |
знаходження порядкового номера значення L |
ORD(FALSE)=0; ORD(TRUE)=1 |
Назва |
Призначення |
Приклади |
ORD(c) |
порядковий номер символа c в заданому символьному наборі |
ORD('A') = 65; ORD(#4) = 4 |
CHR(i) |
символ, що відповідає числу i згідно з кодами ASCII |
CHR(65)='A' |
PRED(c) |
символ, що передує символу c |
PRED('B') = 'A' |
SUCC(c) |
символ, що є наступним за символом c |
SUCC('A')='B' |
UPCASE(c) |
символ верхнього регістру, відповідний ‘a’..’z’ |
UPCASE(‘a’)=’A’ |
Всі типи даних, що використовуються у ТР, поділяються на прості і складені.
Простий тип даних визначає тип одного окремого значення.
Складений тип даних визначає структуру з простих типів.
До простих типів даних
До складених типів відносяться масив, запис, множина, файл, посилання, об’єкт.
Прості типи даних, в свою чергу, поділяються на дискретні та неперервні.
Дискретний тип даних – такий тип даних, кількість можливих значень якого обмежена (скінченна). Наприклад, тип Byte має 256 значень.
Неперервний тип даних – тип даних, кількість можливих значень якого нескінченна.
Неперервними у Турбо Паскалі є лише дійсні типи. Решта простих типів є дискретними.
Як уже зазначалося, у ТР передбачена можливість створювати нові типи даних на основі існуючих. Нові типи описуються в розділі визначення типів програми:
Type ім’я_типу = опис типу;
Ім’я_типу – ідентифікатор, опис типу надається у відповідності з синтаксисом мови.
До простих типів, що визначаються програмістом, відносяться перелічувальний тип та діапазон.
Перелічувальний тип даних – простий дискретний тип, який визначає скінченний набір констант. Змінні цього типу можуть набувати значення лише з визначеного набору.
Формат опису перелічувального типу:
Type ім’я_типу = (константа1[, константа2, …константаN]);
Імена констант є ідентифікаторами.
Приклад.
Type Rainbow = (Red, Orange, Yellow, Green, LightBlue, Blue, Magenta);
Var A: Rainbow;
Begin
A:= Orange;
End.
Будь–який перелічувальний тип має внутрішню нумерацію, перший елемент має номер 0, другий – 1 і т.д. Отже, вважається, що кожна константа більша за попередню і менша наступної.
До змінних перелічувального типу можна застосовувати операції порівняння =; <>; <; >; <=; >=, функції PRED, SUCC, ORD.
Приклади. PRED(Green) = Yellow; SUCC(Blue) = Magenta; ORD(Orange)=1; ORD(Red)=0;
Існує можливість перетворити ціле
число у константу
Приклад. A := Rainbow(3); {A=Green}
До даних перелічувального типу не застосовні стандартні операції введення–виведення.
Діапазон – простий дискретний тип, який визначає підмножину значень певного базового типу. Базовим може бути будь–який простий дискретний тип, в тому числі і перелічувальний, введений програмістом.
Формат опису типу діапазон:
Type ім’я_типу = мінімальне_значення .. максимальне_значення;
Приклад.
Type Century20=1901..2000; {для цього типу базовим є тип Integer}
HotColors=Red..Yellow; {для цього типу базовим є тип Rainbow}
Var C: HotColors;
…
C:=Red; {правильне присвоювання}
C:= Green; {помилка}
До даних типу діапазон застосовні всі дії, які застосовні до даних базового типу.
Приклад розв’язування завдань
Розв’язання:
Program Zadacha 1;
VAR a, b, s, r, d: integer;
Begin
A:=24; b:=5;
S:=a+b;
R:=a-b;
D:=a*b;
Writeln (s, r, d);
End.
Розв’язання: ab4, ba4, a4b, b4a.
А) 5 div 2; B) 2 div 3; C) 13 mod 2; D) –13 mod 5.
Розв’язання: А) 5 div 2 = 2; B) 2 div 3 = 0; C) 13 mod 2 = 1; D) –13 mod 5 = -3.
Варіанти завдань
ВАРIАНТ 1
ВАРIАНТ 2
ВАРIАНТ 3
ВАРIАНТ 4