Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Приклад. Var RabDni, BolnDni : Dni;Туре Dni = 1.. 31; Var RabDni, BolnDni: Dni; У цьому прикладі перемінні RabDni і BolnDni мають тип Dni і можуть приймати будь-які значення з діапазону 1..31. Вихід з діапазону викликає програмне переривання. Можна визначити интервальный тип і більш універсальним способом, задавши границі, діапазону не значеннями констант, а їх іменами: Const Min = 1; Max = 31; Type Dni = Min.. Max; Var RabDni, BolnDni: Dni; Структуровані типи у своїй основі мають один або кілька скалярних типів даних і визначають упорядковану сукупність скалярних перемінних і характеризуються типом своїх компонентів. До структурованих типів відносяться рядки, масиви, множини, записи, файли, покажчики, процедурні типи й об'єкти. Усі вони вимагають окремого розгляду і докладно будуть розглянуті в наступних лабораторних роботах.
5.2. Вирази, операнди, операції Перемінні і константи всіх типів використовуються у виразах. Вираз задає порядок виконання дій над елементами даних і складається з операндів (констант, перемінних, звертань до функцій), круглих скобок і знаків операцій. Операції визначають дії, який треба виконати над операндами. Наприклад, у вираженні (X + Y - 10) X, Y і 10 - операнди; "+", "-" - знаки операцій додавання і вирахування. У найпростішому випадку вираз може складатися з однієї перемінної або константи. Круглі скобки ставляться так само, як і в звичайних арифметичних виразах для керування асоціативністью і порядком виконання операцій. Операції в мові Паскаль підрозділяються на: - Арифметичні - операції співвшдношення - логічні (булевскі) операції, - операцію @, Три перші групи операцій описані в даній роботі, інші будуть розглянуті при описі відповідних типів даних. 5.2.1. Арифметичні вирази й операції Арифметичний вираз породжує ціле або дійсне значення. Найбільш простими формами арифметичних виразів є: ціла або дійсна константа без знака; ціла або дійсна змінна; елемент масиву цілого або дійсного типу; функція, що приймає ціле або дійсне значення. Значення змінної або елемента масиву повинне бути визначене до їхньої появи в арифметичному виразі. Інші арифметичні вирази складаються з перерахованих вище простих форм шляхом застосування круглих скобок і арифметичних операцій. Арифметичні операції виконують арифметичні дії у виразах над значеннями операндів цілих і дійсних типів. Таблиця 5. Арифметичні операції
Операції додавання (+), вирахування (-), множення (*) і ділення (/) виконуються так само, як і в звичайних арифметичних виразах. Ділення цілих (div) відрізняється від звичайної операції ділення тим, що повертає цілу частина частки, дробова частина відкидається. Перед виконанням операції обидва операнди округляються до цілих значень. Вираз Результат 11 div 5 2 10 div 3 3 2 div 3 0 Ділення по модулю (mod) – (залишок від ділення цілих) відновлює залишок, отриманий при виконанні ділення цілих. Вираз Результат 11 mod 5 1 10 mod 3 1 Логічні операції (not,and,or,xor) виконуютьсянад логічними аргументами, тобто такими, що приймають значення 1 (true) чи 0 (false).
Логічне множення (and) виконується у відповідності із наступною таблицею істиності, тобто значення логічної одиниці результат прийме лише тоді і тільки тоді коли обидва аргументи мають значення логічної одиниці.
Приклад: Var a, b, c doolean; Begin a:= true; b:= false; c:= b and a {c = false}
Логічна сума (or) виконується у відповідності із наступною таблицею істиності, тобто значення логічної одиниці результат прийме лише тоді і тільки тоді коли хоча б один з двох аргументыв дорівнює логічній одиниці.
Сума за модулем 2 (xor) виконується у відповідності із наступною таблицею істиності.
Логічне заперечення (not) виконується у відповідності із наступною таблицею істиності.
Зсув вліво (К shl N) відновлює як результат значення, отримане шляхом зсуву позицій уліво двійкового числа К. Приклад. Обчислити результат виконання виразу 2 shl 7. Число 2 займає в пам'яті 2 байти й у двійковій формі має вигляд 0000000000000010. Зрушуємо кожен біт на 7 позицій уліво, одержуємо 0000000100000000, що відповідає числу 256 у десятковій формі. Отже, 2 shl 7 = 256. Зсув вправо (shr) виконується аналогічно, з тією лише різницею, що зсув виробляється вправо. Вираз Результат 160 shr 2 40 90 shr 2 22 256 shr 7 2 5.2.2. Вирази й операції співвідношення Операції співвідношення виконують порівняння двох операнді та повертають булеве значення (True, False). Аргументи можуть бути будь-якого скалярного типу. Таблиця 6. Операції відносини
5.2.4. Пріоритет операцій Виконання кожної операції відбувається з урахуванням її пріоритету. Таблиця 9. Порядок виконання операцій
Для визначення старшинства операцій маються чотири основні правила: 1. Операнд, що знаходиться між двома операціями з різними пріоритетами, зв’язується з операцією, що має більш високий пріоритет. 2. Операція, що знаходиться між двома операціями з рівними пріоритетами, зв’язується з тією операцією, що знаходиться ліворуч. 3. Вираження, укладене в дужки, перед виконанням обчислюється, як окремий операнд. 4. Операції з рівним пріоритетом виробляються ліворуч праворуч з можливим регулюванням порядку виконання дужками. 6. Приклади розробки алгоритмів і програм Приклад 1 Алгоритм Евкліда. Обчислити найбільший загальний дільник (НОД) двох натуральних чисел x і y.
Program lr1a; var NOD, x, y: integer; Begin x:=252; y:=1080; while x<>y do Begin writeln(‘x=’,x,’ y=’,y); if x>y then x:=x-y else y:=y-x; End; NOD:=x; writeln(‘x=’,x,’ y=’, y); writeln(‘NOD=’,NOD); readln; End. Program lr1b; var NOD,x,y:integer; Begin x:=252; y:=1080; Repeat writeln(‘x=’,x:3,’ y=’, y:2); if x>y then x:=x mod y else y:=y mod x; until (x=0) or (y=0); writeln(‘x=’,x:3,’ y=’,y:2); writeln(‘NOD=’,x+y); readln; End. 7. Завдання до лабораторної роботи № 3 Розробити три програми (у кожній по одному з операторів циклу)
Лабораторна робота № 4 Тема: Структуровані типи даних. Масив.
|