69753

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

Домашняя работа

Информатика, кибернетика и программирование

Однак Турбо Паскаль допускає в певних межах такі перетворення які треба задавати в явному вигляді. Є три способи задавати перетворення типів: неявні перетворення використання стандартних функцій і явні перетворення.

Украинкский

2014-10-09

28.5 KB

1 чел.

Самостійне вивчення

Тема 11: Перетворення типів

У мові Паскаль типи даних задають статично, і загалом не допустимо їх змінювати в процесі виконання програми. Однак Турбо Паскаль допускає в певних межах такі перетворення, які треба задавати в явному вигляді.

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

Спосіб неявного перетворення допустимий тільки в операції присвоєння, коли, наприклад, дійсній змінній присвоюється ціле. В другому способі для перетворення типів використовують такі функції: odd, trunc, round, ord, chr. Правила їх застосування розглянуті під час вивчення відповідних типів даних, з якими вони оперують.

Явне перетворення типів у Турбо Паскалі використовує спеціальну конструкцію. Загальний вигляд перетворення типу такий:

<тип>(<змінна>)

Тобто для надання змінній іншого типу потрібно взяти її в дужки, зазначити перед дужками ім'я нового типу. Розглянемо цей спосіб перетворення типу змінної на прикладі. Нехай деяка змінна описана, як

var і: byte;

Присвоєння їй значення

і:='I'

призведе до помилки - невідповідності типів. Таке присвоєння можна виконати тільки за допомогою конструкції явного перетворення типів:

char(i):='I'.

Цю конструкцію можна використовувати в усіх позиціях, де є змінна. Треба враховувати, що розмір змінної (тобто кількість байтів для її розміщення) повинен збігатися з розміром типу, ім'я якого зазначене перед дужками.

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

Зазначимо, що перетворення типів можливе тільки для простих (скалярних) і вказівних типів.

Вказівні типи вважають різними відповідно до загальних правил, хоча значення вказівних змінних визначають адреси в оперативній пам'яті. Зокрема, типи, описані як

type

р=^геаl;

q=^integer;

визначають різні множини значень, і змінні

var

s:p;

j:q;

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

var

s, j: р;

то можна записати s:=j.

Для вказівних типів допустимі конструкції явного перетворення. Наприклад, задано такі описи:

type rac=record

re, im: real

end;

rrac=^rac;

LL=^longint;

var

v1: rrac;

v2: LL;

Тут v1, v2 є вказівниками на значення різних типів. Однак конструкція перетворення типу дасть змогу трактувати їх як вказівники на однаковий тип:

rrac(v2)^.re:=5.7; LL(v1)^:=729364.


 

А также другие работы, которые могут Вас заинтересовать

68972. Файли. Робота з файлами. Файловий ввід-вивід 58 KB
  Не дивлячись на те що система введення-виведення мови C++ в цілому є єдиним механізмом, система файлового введення-виведення має свої особливості. Частково це пояснюється тим, що на практиці найчастіше використовуються файли на жорсткому диску, можливості яких значно відрізняються від всіх інших пристроїв.
68973. Сортування масивів 30.5 KB
  Стан об’єкту цілком і повністю визначається станом елементів масиву. Для роботи з об’єктом можна використовувати інтерфейс що містить наступний набір операцій: розміщення масиву динамічної пам’яті ініціалізація масиву проглядання вивід значень елементів масиву сортування масиву різними способами...
68974. Алфавіт, ідентифікатори, службові слова 103 KB
  До специфікаторів типів відносяться: chr символьний; double дійсний з подвійною точністю з плаваючою крапкою; enum перелічуваний тип перелік визначення цілочисельних констант для кожної з яких вводяться ім’я і значення; floаt дійсний з плаваючою крапкою; int цілий; long цілий збільшеної довжини...
68975. Ввід, вивід на консоль. Модифікатори 46 KB
  Достатньо часто для виводу інформації з ЕОМ в програмах використовується функція printf(). Вона переводить дані з внутрішнього коду в символьне уявлення і виводить отримані зображення символів результатів на екран дисплея. При цьому у програміста є можливість форматувати дані, тобто впливати на їх уявлення на екрані дисплея.
68976. Умовний оператор. Оператор вибору. Цикли 38 KB
  Виконання тіла оператора-перемикача switch починається з вибраного таким чином оператора і продовжується до кінця тіла або до тих пір, поки який-небудь оператор не передасть управління за межі тіла. Оператор, наступний за ключовим словом default, виконується, якщо жодна з...
68977. Одновимірні та багатовимірні масиви 30 KB
  Відповідно до синтаксису Сі в мові існують тільки одновимірні масиви, проте елементами одновимірного масиву, у свою чергу, можуть бути масиви. Тому двовимірний масив визначається як масив масивів. Таким чином, в прикладі визначений масив Z з 13 елементів-масивів, кожний з яких...
68978. Вказівники. Функції динамічного розподілу пам’яті 37 KB
  Кожна змінна в програмі - це об’єкт, який має ім’я і значення. За ім’ям можна звернутися до змінної і отримати (а потім, наприклад, надрукувати) її значення. Щоб отримати адресу в явному вигляді, в мові Сі застосовують унарну операцію. Вираз Е дозволяє отримати адресу ділянки пам’яті, виділеної на машинному рівні для змінної Е.
68979. Функції, їх параметри. Рекурсія. Прототипи функцій 35.5 KB
  Визначення функції Опис функції та її тип Рекурсивні функції Визначення функції. Синонімами цього іншого поняття в інших мовах програмування є процедури підпрограми підпрограми-функції процедури-функції. Всі функції в мові Сі мають рекомендуємий стандартами мови єдиний формат...
68980. Структури, об’єднання 36.5 KB
  Структура - це з’єднане в єдине ціле безліч поіменованих елементів (компонентів) даних. На відміну від масиву, який завжди складається з однотипних елементів, компоненти структури можуть бути різних типів і всі повинні мати різні імена.