Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемГлеб Пожарский
1 Основи алгоритмізації та програмування Вирази в Паскалі
2 Exit Поняття виразу Виразом в інформатиці вважається одна або декілька величин або функцій, сполучених між собою знаками дій та знаками послідовності дій - дужками. Приклади: a+b cos(y)-sin(x)*(x+y) Зверніть увагу! Навіть одну величину можна вважати виразом. Зверніть увагу! Навіть одну величину можна вважати виразом.
3 Exit Види виразів у Паскалі Вираз створюють для отримання значення і подальшого його присвоювання змінній величині або передачі у процедуру (пригадайте вираз як аргумент процедури виведення WriteLn(a+b). Результатом виразу може бути значення одного із допустимих в Паскалі – ціле число, дійсне число, символ, рядок або логічна величина. Звідси і три види виразів: числові – результат виразу - число рядкові – результат виразу – рядок символів логічні – результат виразу – логічна величина
4 Exit Числові вирази Числові вирази складають для отримання числового результату. Вони можуть містити: величини числових типів (змінні або сталі) функції, що дають числовий результат знаки арифметичних операцій круглі дужки Приклад: (a+b)*c/234-sin(2*x-1) Приклад: (a+b)*c/234-sin(2*x-1)
5 Exit Арифметичні операції в числових виразах Паскаля З математики відомо, що існує чотири основних арифметичних дії: додавання – позначається знаком + (плюс) віднімання – позначається знаком - (мінус) множення – позначається знаком * (помножити) ділення – позначається знаком / (розділити)
6 Exit Додаткові арифметичні операції Якщо ми очікуємо числовий результат цілого типу (Integer), то не можна використовувати операцію ділення (/), так як у цьому випадку результат виразу буде дійсного типу (Real). Для цілочислових виразів використовуються спеціальні арифметичні операції: div - частка від ділення націло двох цілих величин; mod - остача від ділення націло двох цілих величин. Приклад: 9 div 4 має значення 2 9 mod 4 має значення 1 Приклад: 9 div 4 має значення 2 9 mod 4 має значення 1
7 Exit Арифметичні операції div та mod Операції div та mod виконуються над величинами тільки цілого типу. Результатом виконання цих дій є також цілі числа. 10 div 3 = 3 - тобто в результаті одержимо відповідь на запитання, скільки разів число 3 входить у mod 3 = 1 - тобто в результаті такої дії одержимо відповідь на запитання, скільки залишиться від числа 10, якщо вилучити з неї всі трійки.
8 Exit Відповідність арифметичних операцій типам Операції div та mod виконуються тільки над величинами цілого типу. Операції "*", "/", "+", "-" виконуються над величинами як цілого, так і дійсного типу. Питання лише в аналізі типу результату. Зверніть увагу! Якщо операції "*", "+", "-" виконуються над величинами, що мають цілі значення, то і отриманий результат буде цілим числом. Якщо ж хоча б одна з величин, над якими виконується дія, буде мати дійсний тип, то і результат буде дійсного типу. Виняток складає операція ділення "/". Якого б типу не були величини, над якими вона виконується, результат завжди матиме дійсний тип. Зверніть увагу! Якщо операції "*", "+", "-" виконуються над величинами, що мають цілі значення, то і отриманий результат буде цілим числом. Якщо ж хоча б одна з величин, над якими виконується дія, буде мати дійсний тип, то і результат буде дійсного типу. Виняток складає операція ділення "/". Якого б типу не були величини, над якими вона виконується, результат завжди матиме дійсний тип.
9 Exit Пріоритет арифметичних операцій У програмуванні так само, як і у математиці, визначений пріоритет виконання арифметичних дій, тобто визначається, яким діям надається перевага перед іншими під час обчислення значення арифметичного виразу. Наведемо арифметичні операції Паскалю саме в порядку зменшення їх пріоритетності: *, / множення та ділення; div частка від ділення націло двох цілих чисел; mod остача від ділення націло двох цілих чисел; +, - додавання та віднімання. Зверніть увагу! У Паскалі відсутня операція піднесення до степеня. Це на перший погляд здається дуже незручним. З часом до такого недоліку швидко звикають і виявляється, що без цієї операції можна обійтися. Зверніть увагу! У Паскалі відсутня операція піднесення до степеня. Це на перший погляд здається дуже незручним. З часом до такого недоліку швидко звикають і виявляється, що без цієї операції можна обійтися.
10 Exit Запис арифметичних виразів у Паскалі Арифметичні вирази, як і всі інші конструкції мов програмування, вводяться з клавіатури підряд, в один рядок. Тому розглянемо деякі цікаві приклади відповідності математичних записів записам на мові програмування (зверніть увагу на використання дужок та їх значення): (a+b)/(c+d) a+b/c+d a+b/c*d (a+b)/(c*d) Зверніть увагу! Починаючі програмісти часто роблять помилки у подібних виразах. За правило слід взяти те, що в математиці знак дробу має найнижчий пріоритет, тобто дробове ділення виконується останнім. В програмуванні дробового ділення не має – є лише звичайне з пріоритетом рівня множення. Зверніть увагу! Починаючі програмісти часто роблять помилки у подібних виразах. За правило слід взяти те, що в математиці знак дробу має найнижчий пріоритет, тобто дробове ділення виконується останнім. В програмуванні дробового ділення не має – є лише звичайне з пріоритетом рівня множення. Синім кольором позначені вирази Паскаля. Чорним – математичні вирази.
11 Exit Функції у виразах Як було сказано раніше, до складу виразу можуть входити функції. Функція - вид зв'язку між величинами, коли зміна однієї з них призводить до зміни іншої. Деякі з з функцій вам відомі з математики: sin x, cos x, tg x, тощо. Паскаль має власні стандартні (закладені в нього авторами) функції та дозволяє створити та використовувати функції користувача. Зверніть увагу! Пріоритетність обчислення функцій найвища. Зверніть увагу! Пріоритетність обчислення функцій найвища.
12 Exit Вимога до запису аргументів функції Зверніть увагу! У мовах програмування аргументи функції вказуються у дужках. Зверніть увагу! У мовах програмування аргументи функції вказуються у дужках. Тобто в математиці ви пишете sin x, а у Паскалі треба вказувати sin(x)
13 Exit Математичні функції До математичних відносять наступні функції: sin(x) -синус cos(x) - косинус arctan(x) - арктангенс (аргументи тригонометричних функцій задаються в радіанах) ехр(х) е x (експонента) Іn(х) Іnх (логарифм натуральний) abs(x)|х| (модуль) sqrt(x) sqr(x)x 2 Зверніть увагу! Для функцій від sin(x) до ln(x) аргументами можуть бути цілі або дійсні значення, а результати завжди дійсні. Для решти функцій тип результату співпадає з типом аргументу. Зверніть увагу! Для функцій від sin(x) до ln(x) аргументами можуть бути цілі або дійсні значення, а результати завжди дійсні. Для решти функцій тип результату співпадає з типом аргументу.
14 Exit Допоміжні математичні функції trunc(x) - ціла частина х, тобто відкидається дробова частина; х -дійсне, результат - цілий. Наприклад, trunc(-7.3)= -7 trunc(-7.5)= -7 Pi - повертає значення числа π (тобто …) аргументів немає. round(x) - заокруглення до цілого значення; х - дійсне, результат - цілий. Наприклад, round(4.2)=4, round(4.5)=5
15 Exit Функції перетворення chr(k) – виробляє значення символу, порядковий номер якого в таблиці ASCII-кодів рівний k; k – величина цілого числового типу, результат – величина типу Char Наприклад, chr(70)= 'F' ord(c) – виробляє ціле числове значення, що відповідає коду символу в таблиці ASCII-кодів; с – символ із таблиці ASCII-кодів, результат – ціла числова величина. Наприклад, ord(F')=70 chr(ord('F'))= 'F'
16 Exit Спеціальні функції для перерахованих типів pred(k) - попередній для k елемент у перерахованому типі (Integer, Char, Boolean) В якості прикладів наведемо такі: pred('B')='A', pred(10)=9 Для першого елемента типу результат невизначений. succ(k) - наступний для k елемент. Наприклад, succ('B')='C', succ(false)=true. Для останнього елемента множини результат невизначений.
17 Exit Функція визначення парності odd(x) - визначення непарності х; х - ціле, результат - true або false. Наприклад, odd(2)=false, odd(5)=true
18 Exit Формула піднесення до степеня За допомогою наведеної формули можна піднести будь-яке число до будь-якого степеня: В Паскалі ця формула матиме вигляд: ехр(ln(х)*у)
19 Exit Вказівка надання значення. Оператор присвоювання Ясна річ, якщо у програмі буде обчислене значення арифметичного виразу, то його необхідно десь запам'ятати для подальшого використання. Для цього існує оператор присвоювання. Загальний вигляд оператора: := Приклади: a:=7; b:=a+3; c:=a;
20 Exit Знак присвоювання Знак "=" слід відрізняти від знака ":=". Перший означає порівняння, умову, яку можна перевірити. Логічно використовувати його із знаком запитання: "n=m?". Другий знак ":=" означає дію, яку потрібно виконати.
21 Exit Робота оператора присвоювання При виконанні оператора присвоювання спочатку за заданою формулою в правій частині виконуються обчислення при поточних значеннях змінних, що входять у неї, а потім отриманим результатом замінюється попереднє значення змінної, що вказана зліва. Опираючись на принцип виконання оператора присвоювання, зрозуміло, чому зліва може стояти лише ім'я змінної величини: адже отримане значення записується у ту частину оперативної пам'яті комп'ютера, яка виділена для цієї змінної. Розглянемо приклад: a:=2; b:=3; b:=b+a; Перша вказівка присваює змінній a значення 2, друга – змінній b значення 3, у третій вказівці спочатку розраховується значення виразу b+a, яке дорівнюватиме 5, а потім це значення присваюється змінній b. Попереднє значення змінної b втрачається.
22 Exit Відповідність типів у вказівки присвоювання В операторі присвоювання тип змінної, якій присвоюється значення повинен бути таким як і тип результату виразу, що записаний праворуч від знака присвоювання. Наприклад, у наведеній нижче вказівці присвоювання тип змінної a повинен бути Real, бо вираз sin(x)+sin(y) після обчислення отримає значення типу Real. a:= sin(x)+sin(y);
23 Exit Відповідність типів у вказівки присвоювання Вирази, що беруть участь в операторі присвоювання, можуть бути не лише арифметичними. Наприклад, правомірні і такі присвоювання: ch:='a'; Іехі:='алгоритм'; flag:=true Перший приклад присвоює змінній значення типу char, другий - string, третій - boolean. Пізніше ми будемо розглядати питання обчислення виразів типу boolean.
24 Exit Операція зміни значення величини типу a:=a+1 Операція збільшення а на 1 позначається таким чином: а:=а+1 Її слід читати так: "а замінити на а+1". Хай, спочатку в області пам'яті, яка відведена змінній а, знаходилося поточне значення 4. Тоді виконання оператора а:=а+1 відбувалося поетапно таким чином: при обчисленні виразу справа було взято поточне значення змінної а (число 4) і до нього додалося число 1; одержане значення 5 було поміщене, в ту область пам'яті, що відведена змінній а. При цьому попереднє значення змінної а втрачається. При повторному виконанні оператора а:=а+1 змінна а отримає вже значення 6.
25 Exit Особливості виконання групи операцій присвоювання Цікаво розглянути такі дві послідовності операторів присвоювання: 1) m:=n, n:=k; 2) n:=k, m:=n; Ці послідовності операторів присвоювання різні стосовно збереження значення змінної n. В першому випадку значення змінної n було збережене у змінній m. В другому випадку значення змінної n було втрачено перш, ніж його можна було використовувати для заміщення змінної m. Таким чином остання послідовність операторів присвоювання фактично аналогічна такій: n:=k, m:=k
26 Exit Питання для самоконтролю: 1. Що називають арифметичними виразами у Паскалі? 2. Назвіть арифметичні операції Паскаля в порядку їх пріоритетності. 3. Над якими величинами можна виконувати операції div та mod? 4. Які правила запису арифметичних виразів у Паскалі? 5. Як на машинному рівні виконується оператор присвоювання?
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.