Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Характеристики стандартних типів даних. Вираз, операція, операнд. Пріоритет операцій. Класифікація операцій. Характеристика арифметичних операцій. Математичні функції.






Кожна змінна повинна бути описана на початку програми після слова Var. При цьому вказується тип змінної. Для цілої змінної всі типи наведені в таблиці 1.

 

Таблиця 1

Тип Діапазон Розмір в байтах
Byte (коротка ціла без знаку) 0…255  
Shortint (коротка ціла із знаком) -128..127  
Word (ціла без знаку) 0…65535  
Integer (ціла із знаком) -32768..32767  
Longint (довга ціла із знаком) -2147483648..  

 

Всі можливі типи дійсної змінної наведені в таблиці 2

Таблиця 2

Тип Діапазон Кількість цифр Розмір в байтах
Real (дійсний) 10-39 - 1038 11 - 12  
Single (одинарна точність) 10-45 - 1038 7 - 8  
Double (подвійна точність) 10-324 - 10308 15 - 16  
Extended (розширена точність) 10-4951 - 104932 19 - 20  
       

В Паскалі, як і в більшості мов програмування, дещо специфічно передаються основні математичні операції - бо математичні вирази треба записувати в один рядок, а не в кілька рівнів, як прийнято в класичній математичній нотації. Це досягається значно масовішим використанням дужок, що іноді засмучує початківців. Також завжди треба писати знак множення *. Крім того, параметри функцій завжди мають бути в дужках. Наприклад:

Математичний вираз Запис мовою Паскаль
2+2 2+2
a*(1+sqr(e))/2
(-b+sqrt(sqr(b)-4*a*c)/(2*a)
exp(2*x+y)
abs(cos(x)*sin(x)*cos(y)/tan(y)) або abs(cos(x)*sin(x)*cos(y)/(sin(y))/cos(y)) якщо компілятор не підтримує функцію Tan.

Базова арифметика [ред.]

Назва операції Оператор Приклад Примітка
Додавання + 2+2 (=4)  
Віднімання - 18.3-11 (=7.3)  
Множення * 7*8 (=56)  
Ділення / 7/8 (=0.875) Результат завжди дійсного типу (real)
Ціла частина ділення div 7 div 2 (=3)  
Остача від ділення mod 7 mod 2 (=1)  

Процедури та функції- це підпрограми, що використовуються в середині програми (більш детально будуть описані далі). До алфавіту мови програмування відносять стандартні процедури та функції, тобто такі, що сприймаються мовою програмування без їх додаткового опису.

Операнди - це спеціальні символи або послідовності символів, які виконують над даними певні операції (математичні, логічні і т.д.).

Прикладом операндів можуть бути операнди математичних операцій: “+” - додавання даних), “-” - віднімання даних, “*” -множення даних, “/” - ділення даних, “=” - рівність даних і т.д.

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

Порівняння [ред.]

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

if 2+2=4 then writeln('Два і два разом дають чотири! ')

else writeln('Та не може бути такого! ');

Назва операції Оператор Приклад
Дорівнює = 2+2=4
Не дорівнює (?) < > 2+2< > 5
Більше > 72> 71.99
Більше або рівне (?) > = x*x> =0
Менше < 22> 0
Менше або рівне (?) < = 1< =1

Функції для перетворення дійсних і цілих чисел [ред.]

Паскаль - мова програмування зі статичною сильною типізацією. Це означає, що компілятор не виконує перетворень значень між типами, які можуть призвести до втрати інформації; зокрема, якщо підставити в конструкцію, що передбачає ціле значення, дійсне число, компілятор повідомить про помилку, навіть якщо це число має ціле значення. Так, як ми бачили вище, 13 and 11 дорівнює 9, але вираз 13.0 and 11 викличе повідомлення компілятора про помилку! Щоб уникнути цього, треба явно задавати перетворення дійсного числа на ціле за допомогою таких функцій:

Назва функції Опис Приклад
Round(X) Повертає ціле значення, найближче до X Round(1.7)=2, Round(-3.1)=-3
Int(X), Trunc(X) Повертає цілу частину X Int(1.8)=1, Trunc(-11.3)=-11
Frac(X) Повертає дробову частину X Frac(1.7)=0.7, Frac(-3.1)=-0.1
Floor(X) Повертає найбільше ціле значення, що не перевищує X Floor(1.7)=1, Floor(-3.1)=-4
Ceil(X) Повертає найменше ціле значення, не менше від X Ceil(1.7)=2, Ceol(-3.1)=-3

Логічні і побітові операції [ред.]

Логічні операції використовуються для об'єднання кількох логічних умов в одну.

Назва операції Оператор Приклад Опис
Логічне І, and, логічне множення and (2+3=5) and (0> -1) Істинне, якщо обидва операнда істинні
Логічне АБО, or, логічне додавання or (2+2=5) or (1=1) Істинне, якщо хоча б один з операндів істинний
Логічне виключне АБО, eXclusive or xor (2+2=5) xor (1=1) Істинне, якщо рівно один з операндів істинний
Заперечення, логічне НЕ, not not not (2+2=5) Істинне, якщо операнд неправдивий

Логічні оператори, застосовані до цілих типів, можуть використовуватися, як побітові. Щоб отримати результат побітової операції, треба представити операнди у двійковій системі (так, як вони представлені в комп'ютері), після чого застосувати відповідну операцію до відповідних розрядів, причому 1 означає true, 0 - false. Так,

writeln(13 and 11);

виведе 9, бо

13 в двійковій системі буде                
11 в двійковій системі буде                
9 в двійковій системі буде                

Крім того, є ще дві побітових операції зсуву:

Назва операції Оператор Приклад Опис
Зсув праворуч shr 14 shr 2 (=3) Зсуває двійкові розряди першого операнда праворуч на другий операнд розрядів; еквівалент цілої частини ділення на степінь 2
Зсув ліворуч shl 7 shl 3 (=56) Зсуває двійкові розряди першого операнда ліворуч на другий операнд розрядів; еквівалент множенню на степінь 2

Алгебраїчні функції [ред.]

Cірим позначені функції, які не підтримуються в Turbo Pascal

Назва функції Опис Замінник (для Turbo Pascal)
Pi Повертає значення числа (3, 141592653589793238462643383279... з точністю, визначеним типом real)  
Abs(X) Абсолютне значення (модуль) X  
Sign(X) Знак числа X: -1, якщо X від'ємний, 1, якщо додатний, 0, якщо X=0  
Exp(X) Експонента X (eX)  
Ln(X) Натуральний логарифм X  
Log2(X) Логарифм X за основою 2 Ln(X)/Ln(2)
Log10(X) Логарифм X за основою 10 Ln(X)/Ln(10)
LogN(X, Y) Логарифм Y за основою X Ln(Y)/Ln(X)
Power(X, Y) Степінь XY Exp(Y*Ln(X))
Sqrt(X) Корінь квадратний з X  
Sqr(X) Квадрат X  
Max(X, Y) Більше зі значень X та Y  
Min(X, Y) Менше зі значень X та Y  

Зауваження: корінь степеня Y з числа X можна представити як X1/Y, і, відповідно, як Power(X, 1/Y) або в Turbo Pascal як Exp(Ln(X)/Y).

Тригонометричні функції [ред.]

Тригонометричні функції використовують значення кутів в радіанах, будьте уважні!

Cірим позначені функції, які не підтримуються в Turbo Pascal

Назва функції Опис Замінник (для Turbo Pascal)
DegToRad(X) Обчислює радіанну міру кута X, поданого в градусах X*Pi/180
RadToDeg(X) Обчислює градусну міру кута X, поданого в радіанах X*180/Pi
Sin(X) Синус X (X в радіанах)  
Cos(X) Косинус X (X в радіанах)  
Tan(X) Тангенс X (X в радіанах) Sin(X)/Cos(X)
ArcTan(X) Арктангенс X, кут, тангенс якого дорівнює X, в радіанах  
ArcSin(X) Арксинус X, кут, синус якого дорівнює X, в радіанах ArcTan(X/sqrt(1-sqr(X)))
ArcCos(X) Арккосинус X, кут, косинус якого дорівнює X, в радіанах 2*ArcTan((1-X)/(1+X))
Sinh(X) Гіперболічний синус X (exp(X)-exp(-X))/2
Cosh(X) Гіперболічний косинус X (exp(X)+exp(-X))/2
Tanh(X) Гіперболічний тангенс X (exp(2*X)-1)/(exp(2*X)+1)

Функції для роботи з випадковими величинами [ред.]

Для імітації випадкових процесів в Паскалі є генератор псевдовипадкових чисел (ГПВЧ) і функції для роботи з ним; такі числа є досить непередбачуваними для практичного використання (тобто кожне наступне використання функції Random дасть певною мірою неочікуваний результат), але їхня послідовність може бути повністю відтворена, якщо встановити початкове значення ГПВЧ.

Cірим позначені функції, які не підтримуються в Turbo Pascal

Назва функції Опис Замінник (для Turbo Pascal)
Randomize Встановлює початкове значення ГПВЧ рівним поточному значенню годинника  
Randomize(X) Встановлює початкове значення ГПВЧ рівним X  
Random Повертає псевдовипадкове дійсне число від 0 (включно) до 1 (не включно)  
Random(X) Повертає псевдовипадкове ціле число від 0 до X-1  
Random(X, Y) Повертає псевдовипадкове ціле число від X до Y X+Random(Y-X+1)

Функції для роботи зі зліченими типами [ред.]

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

Назва функції Опис
Succ(X) Повертає значення, що йде після X (для цілих - X+1, для літерного - символ з наступним значенням, для переліку - наступне значення; так, Succ('A') повертає 'B'
Pred(X) Повертає значення, що передує X (для цілих - X-1, для літерного - символ з попереднім значенням, для переліку - попереднє значення; так, Pred('A') повертає '@'
Inc(X) Збільшує значення X на 1, еквівалент X: =Succ(X)
Inc(X, N) Збільшує значення X на N, еквівалент N застосувань Inc(X)
Dec(X) Зменшує значення X на 1, еквівалент X: =Pred(X)
Dec(X, N) Зменшує значення X на N, еквівалент N застосувань Dec(X)
Ord(X) Повертає значення X (для нечислових типів)
Odd(X) Перевіряє X на непарність, true, якщо X непарний або false, якщо X має парне значення

Пріорітет операцій [ред.]

Під час розбору математичного виразу Паскаль спершу виконує операції з високим пріорітетом, потім з низьким, все з права на ліво. Так, у виразі 2+2*2 спершу буде обчислено 2 * 2 = 4, а вже потім 2 + 4 = 6 - так, як і в звичайній математиці; у виразі 10 mod 2 * 3 спочатку буде виконано 10 mod 2 = 0, а вже потім 0 * 3 = 0!

Операції Приорітет Вид операції
@ not - + Перший (вищий) Унарні операції (плюс і мінус унарні, тобто тільки в формі -a, а не c-d!)
* / div mod and Другий Операції на кшталт множення
+ - or xor Третій Операції на кшталт додавання
= < > < > < = > = in Четвертий Операції порівняння
() f() П'ятий (нижчий) Дужки, виклик функції

 

Поняття оператора. Прості та структуровані оператори. Опис та порядок виконання простих операторів – надання значення, виклик процедури. Введення даних з клавіатури. Виведення даних на екран. Формат виведення.

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

В Pascal оператори поділяються на прості та структурні. До простих операторів відносяться:

- оператор присвоєння (: =);

- оператор введення (read, readln);

- оператор виведення (write, writeln);

- оператор безумовного переходу (goto);

- оператор звертання до процедури (функції).

Структурними операторами називаються такі, що складаються з інших операторів. До них відносяться:

- складний оператор - представляє собою набір операторів, що поміщені в операторні дужки (begin - end);

- умовний оператор (if);

- оператор вибору (case);

- оператори циклу (repeat, while, for).

Усі вищеописані елементи алфавіту мови програмування складаються з окремих символів. В якості символів, що складають елементи алфавіту, в Pascalможна використовувати більшість символів, що входять в стандартну ASCII-таблицю. Заборонено використовувати символи розширеної ASCII-таблиці, тобто символи з кодами від 128 до 255, а також символи: (&), (!), (%), (~), (”). Ці символи можна використовувати лише в якості коментарів та в текстових стрічках, які беруться в одинарні лапки (’).






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.