ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Арифметичні операції. Стандартні математичні функції
         

     

    Інформатика, програмування

    Арифметичні операції. Стандартні математичні функції

    С.А. Григор'єв

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

    + складання

    - віднімання

    * множення

    /речовий поділ

    DIV ціла частина від ділення

    MOD залишок від ділення

    Перші чотири операції визначені для будь-яких операндів - Як цілих, так і речових, причому результат операції "/" завжди дійсне число, навіть якщо обидва операнда цілі. Операції DIV і MOD визначені тільки для цілих операндів. Крім того, виділяють унарний операцію "-", Яка застосовується не до двох, а до одного операнд, наприклад: -x.

    Взагалі кажучи, мова Паскаль забороняє використовувати в одному виразі різнотипні операнди, однак для арифметичних даних зроблено виняток. Перед виконанням арифметичної операції один або обидва операнда автоматично приводяться до одного типу, а потім вже підставляються у вираз. Значення будь-якого висловлення завжди має певний тип - такий же, як у операндів після приведення їх до одного типу. Правила перетворення цілочисельних типів наведено в таблиці 2.

    Таблиця 2

    Правила перетворення типів        

    Операнд         

    Byte         

    ShortInt         

    Word         

    Integer         

    LongInt             

    Byte         

    Integer         

    Integer         

    Word         

    Integer         

    LongInt             

    ShortInt         

    Integer         

    Integer         

    LongInt         

    Integer         

    LongInt             

    Word         

    Word         

    LongInt         

    Word         

    LongInt         

    LongInt             

    Integer         

    Integer         

    Integer         

    LongInt         

    Integer         

    LongInt             

    LongInt         

    LongInt         

    LongInt         

    LongInt         

    LongInt         

    LongInt     

    Якщо один операнд виразу має цілочисельний тип, а другий - матеріальний, то перше автоматично приводиться до речових типу і значення виразу буде речовим. Цілі значення можна привласнювати дійсної змінної, але речові значення привласнити цілої змінної не можна! Присвоюючи значення цілочисельний змінної та константи, ви повинні стежити, щоб це значення не виходило за межі діапазону допустимих значень змінної. У мові Паскаль є можливість явно перетворити цілочисельне значення до будь-якого з цілочисельних типів, для цього використовуються стандартні функції з іменами Byte, ShortInt, Word, Integer і LongInt. Наприклад, перетворимо змінну типу Word до типу Integer:

    VAR x: Word;

    BEGIN

    x: = 300;

    WRITELN (x, '', Integer (x ));

    x: = 65535;

    WRITELN (x, '', Integer (x ));

    END.

    Програма виведе:

    300 300

    65535 -1

    У першому випадку перетворення відбувається коректно, а у другому - зі зміною значення.

    Арифметичне вираз може містити будь-яку кількість операндів і, відповідно, будь-яку кількість операцій, які виконуються в послідовності, визначеної їх пріоритетом; пріоритет операцій *, /, DIV, MOD вище, ніж операцій + і -. Операції одного пріоритету виконуються зліва направо. Щоб змінити порядок виконання операцій, ви можете використовувати у виразі круглі дужки. Обчислимо, наприклад, частка від поділу X на суму A, B і C:

    X/(A + B + C);

    Набір вбудованих математичних функцій в мові Паскаль невеликий, він включає:

    1. Abs (x) - абсолютна величина числа.

    2. Int (x) - ціла частина дійсного числа.

    3. Frac (x) - дрібна частина дійсного числа.

    4. Trunc (x) - ціла частина дійсного числа, перетворена до типу LongInt.

    5. Round (x) -- округлене до цілого дійсне число, перетворене до типу LongInt.

    6. Sqr (x) - квадрат числа.

    7. Sqrt (x) - квадратний корінь.

    8. Exp (x) - експонента.

    9. Ln (x) - натуральний логарифм.

    10. Pi - число пі.

    11. Sin (x) - синус.

    12. Cos (x) - косинус.

    13. Arctan (x) - арктангенс.

    Всі інші математичні функції можна отримати, користуючись цим основним набором; наприклад: десятковий логарифм - Ln (x)/Ln (10), тангенс - Sin (x)/Cos (x) і т.д. Аргументи функцій можуть бути будь-якими арифметичними виразами і задаються в круглих дужках після імені функції, аргументи функцій Sin і Cos виражаються в радіанах. Обчислимо квадрат синуса 70 градусів: Sqr (Sin (Pi/180 * 70))

    Крім перерахованих вище математичних функцій Паскаль надає ще кілька корисних числових функцій і процедур різного призначення:

    14. High (цілий тип) - повертає найбільше можливе значення даного типу.

    15. Low (цілий тип) - повертає найменшу можливу значення даного типу.

    16. SizeOf (тип)

    SizeOf (змінна) - повертає розмір в байтах заданого типу або заданої змінної. Функція SizeOf застосовна до будь-якого типу, в тому числі і до структурованим типами - масивів, записами та деяким іншим, мова про яких піде нижче.

    17. Random (Range: Word) - повертає ціле випадкове число в діапазоні від 0 до Range-1.

    18. Random - повертає речовий випадкове число в з відрізка [0,1].

    19. Randomize - процедура, ініціалізує генератор випадкових чисел, використовуючи поточний системний час

    Виведемо кілька випадкових чисел в діапазоні від 0 до 99:

    BEGIN

    Randomize;

    WRITELN (Random (100 ));

    WRITELN (Random (100 ));

    WRITELN (Random (100 ));

    END.

    При першому запуску програми вона вивела числа 13, 38, 48, при другому запуску - 63, 99, 6, до третього запуску - 23, 87, 92. Це дію процедури Randomize - оскільки при кожному запуску системний час, яка відраховує операційна система DOS, було різним, ми кожного разу отримували різні послідовності випадкових чисел. Тепер виключимо з програми оператор Randomize; і запустимо її кілька разів - кожного разу ми будемо отримувати трійку чисел 0, 3, 86.

    Зверніть увагу, що процедура використовується в операторі виклику, а функція використовується у виразі. Запис Random (100); невірна, оскільки Random - це функція, але також невірна і запис WRITELN (Randomize);. Можна вважати, що різниця між процедурою і функцією полягає в тому, що процедура виконує певну послідовність дій, а функція обчислює деяке значення. Зауважимо, що READ і WRITE - це теж процедури.

    Для роботи з внутрішнім двійковим поданням багатобайтових цілих чисел (типу Word або Integer) існують функції:

    20. Lo (x) - повертає молодший байт аргументу.

    21. Hi (x) - повертає старший байт аргументу.

    22. Swap (x) - міняє місцями молодший і старший байти.

    Зробимо відступ про двійковій системі числення. Всі дані в пам'яті комп'ютера зберігаються закодованими в двійковій системі. Будь-яка мінлива займає ціле число байтів, а кожен байт є послідовність з 8 двійкових цифр - бітів. Наприклад, значення змінної типу Byte, що дорівнює 11, зберігається як послідовність бітів 0000 1011, а якщо змінна має тип Word, то її значення кодується як 0000 0000 0000 1101. 1024 байти (або 2 в 10-й ступеня) мають свою назву - 1К байт, іноді цю величину також називають кілобайт; 1024 До байт називають мегабайт. Нехай мінлива t типу Word має значення 40000, або 1001 1100 0100 0000 в двійковій системі, тоді функція Lo (t) поверне 64 (= 0100 0000), функція Hi (t) поверне 156 (= 1001 1100) і функція Swap (t) поверне 16540 (= 0100 0000 1001 1100).

    Для цілочисельних змінних визначені процедури:

    23. Inc (x)

    Inc (x, d)

    24. Dec (x)

    Dec (x, d).

    Тут x - ім'я змінної, d - будь-яке цілочисельне вираз. Процедура Inc збільшує значення змінної на d, а процедура Dec - Зменшує на d; другий аргумент цих процедур можна не ставити, тоді він буде прийнятий рівним 1. Наприклад, замість операторів a: = a 3; b: = b-1; c: = c + a + b; ми могли б написати Inc (a, 3); Dec (b); Inc (c, a + b);, і такий спосіб запису був би краще.

    С.А. Григор'єв

    6. Символьний тип даних

    Для зберігання символьної інформації в Паскалі передбачений спеціальний тип даних Char. Допустимі змінні, нетипізовані і типізовані константи такого типу. Дані типу Char займають 1 байт пам'яті. Неіменованние символьні константи записуються в програмі чи у вигляді 'символ', або у вигляді # номер. Усі наявні символи пронумеровані від 0 до 255, символи з 0-го по 31-й - невидимі, як правило, вони не відображаються на екрані, 32-й символ - це пробіл. Наведемо також номери деяких інших символів (хоча пам'ятати ці номери немає ніякої необхідності):

    '0'...' 9 '- 48 ... 57,

    'A'...' Z' -- 65 ... 90,

    'a'...' z' - 97 ... 122,

    'А'...' Я' -- 128 ... 159,

    'а'...' п' -- 160 ... 175,

    'р'...' я' -- 224 ... 239.

    Деякі з невидимих символів можуть виявитися вам корисні: символ # 7 - "звуковий сигнал", при виведенні пищить; символ # 10 - "Кінець строки", при виведенні він переміщує поточну позицію виведення на один рядок вниз; символ # 13 - "повернення каретки" - переміщує поточну позицію виведення на початок поточного рядка. Запам'ятайте, що клавіша Enter генерує два символи - # 10 і # 13, це може вам згодом стати в нагоді.

    Символьні дані можна вводити і виводити процедурами READ WRITE і при введенні і виведенні символьні значення зображуються без апострофа. Для символьних величин визначені функції:

    25. Ord (c) - повертає номер символу.

    26. Pred (c) - повертає символ з номером, меншим на 1.

    27. Succ (c) - повертає символ з номером, більшим на 1.

    Ці функція, однак, визначені не тільки для символів, але для будь-якого порядкового типу даних. Порядковим типом називається такий тип, всі допустимі значення якого можна пронумерувати від 0 до деякого N (в математиці до цього поняття близько поняття рахункового безлічі). З відомих нам типів порядковими є всі цілочисельні типи: Byte, ShortInt, Word, Integer, LongInt - і не є порядковими всі речові типи. Значення функції Ord від числового аргументу одно самому цього аргументу, Pred (x) дає значення x-1, а Succ (x) - значення x 1. Функція

    28. Chr (n).

    в деякому розумінні обернено функції Ord: для заданого числового аргументу n вона повертає символ з відповідним номером. Для символьних змінних (так само, як і для будь-яких змінних порядкового типу) визначені процедури Inc і Dec. Ще один специфічно символьна функція:

    29. UpCase (c).

    Вона перетворює значення аргументу, якщо це маленька латинська буква, у відповідну заголовну букву. На жаль, функція не працює для російських букв.

    Напишемо просту програму, що обробляє символьні величини.

    VAR c: Char; n: Byte;

    CONST Blank = ''; Space: Char = Blank;

    BEGIN WRITE ( 'введіть будь-який символ'); READ (c);

    WRITELN ( 'ви ввели символ', Space, c, Space, 'його номер = ', Ord (c ));

    WRITELN ( 'сусідні з ним символи : ', Space, Pred (c), Space,

    'і', Space, Succ (c ));

    WRITELN ( 'UpCase (', c ,')=', UpCase (c)); WRITELN;

    Space :='"'; WRITE ( 'тепер введіть число від 33 до 255'); READ (n);

    WRITELN ( 'символ з номером', n, '- це', Space, Chr (n), Space);

    WRITELN;

    END.

    Список літератури

    Для підготовки даної роботи були використані матеріали з сайту http://elib.albertina.ru/

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status