Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекції для 3ОТ1.doc
Скачиваний:
10
Добавлен:
21.02.2016
Размер:
16.31 Mб
Скачать

Контрольні питання

1. Наведіть огляд поняття компілятор

2. Охарактеризуйте стандартні типи даних

3. Охарактеризуйте типи даних визначені програмістом

4. Наведіть характеристику простих, рядків символів, структури, покажчиків (або вказівників) та процедурних типів даних

5. Наведіть характеристику порядкових, раціональних типів та типу даних дата-час

6. Охарактеризуйте цілі, символьні, логічні, перелічені та обмежені типи даних

7. Охарактеризуйте поняття структур – множини, масиви, записи, файли, класи та інтерфейси

8. Надайте характеристику впорядкованого, переліченого, символьного типу

САМОСТІЙНА РОБОТА СТУДЕНТА

Змістовий модуль 1: основні поняття та означення. Елементи мови. Керування процесом обчислень

Тема 1.2: основні конструкції мови

Самостійне заняття №2 - Оператор присвоєння. Перетворення типів даних

План заняття

  1. Огляд процедури роботи оператору присвоєння

  2. Огляд процедури перетворення типів даних

Алгоритмічні дії над початковими даними і робочими об'єктами мо­ви, необхідні для розв'язання поставленої задачі, описують за допомогою операторів. Оператори розділяються крапкою з комою. Найпростіший випадок - це лінійні ділянки алгоритмів, у яких оператори виконують по­слідовно один за одним.

У програмі найчастіше трапляється оператор присвоєння, який вико­ристовується для задання значення змінним:

назва_змінної:= вираз;

Під час виконання оператора присвоєння:

• обчислюється вираз, що стоїть у правій частині оператора;

• результат обчислення перетворюється до типу змінної;

• результат присвоюється змінній лівої частини оператора.

У виразах та операторах присвоєння можуть міститися елементи (змінні та константи) різних типів. У цьому випадку здійснюється при­ведення (перетворення) одного типу даного в інший.

Неявне приведення типів автоматично здійснює компілятор Delphi за принципом: якщо операція має операнди різних типів, то тип операнда "молодшого" типу (займає менший обсяг пам'яті) зводиться до типу опе­ранда "старшого" типу (займає більший обсяг пам'яті).

Наприклад, якщо в операції беруть участь коротке ціле і довге ціле, то коротке ціле зводиться до довгого; якщо беруть участь цілий і дійсний операнди, то цілий зводиться до дійсного і т.д. Після зведення типів оби­два операнди виявляються одного типу.

У операторі присвоювання відбувається зведення типу результату обчислення виразу правої частини до типу лівого операнда. Якщо тип лівого операнда "молодший", ніж тип результату, то можливою є втра­та точності чи отримання неправильного результату взагалі, а тому такі перетворення спричиняють помилки компіляції. Наступна послідовність операторів призводить до помилки:

var і:byte; a:real;

begin a:=2; і:=а+1; // Помилка приведення типів

Як видно з наведеного прикладу, неявне перетворення типів даних не завжди дає бажаний результат. Це можна виправити, застосувавши опе­рацію явного перетворення типів даних:

ідентифікатор_типу(вираз)

Явне приведення типів даних можна здійснювати для будь-яких типів, що мають однаковий розмір. Водночас не допускається взаємне перетво­рення цілих та дійсних даних. Для перетворення дійсних чисел у цілі ви­користовують функції Іпс і Trunc. А цілі числа перетворюються у дійсні неявно. Так, наприклад, попередній приклад можна модифікувати так:

begin a:=2; i:= Trunc(a+1); // Все добре!

Явне приведення типів даних можна використовувати як у лівій, так і правій частині оператора присвоювання.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]