Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка(Паскаль)(А4).doc
Скачиваний:
7
Добавлен:
27.08.2019
Размер:
1.25 Mб
Скачать

Аналогічно не можна змішувати літерні та числові типи даних,тобто вираз типу:

5 + ‘F’

являється помилковим.

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

Chr(I)

Перетворює цілий тип у літерний, тобто повертає символ стандартного коду таблиці ASCII з номером, що дорівнює значенню I. Якщо значення більше 255, виникає програмне переривання.

Наприклад: Chr(105); результат=‘i’.

Ord(S)

Для значень літерного типу S, функція Ord повертає їх номер у стандартному коді обміну інформацією у відповідності з таблицею ASCII. Таким чином, літерний тип перетворюється у цілий.

Наприклад:) Ord(‘A’); результат = 65.

Round(X)

Повертає значення Х, округлене до найближчого цілого числа. Результат має цілий тип, тобто дійсна змінна перетворюється на цілу

Наприклад: Round(5.6); Результат = 6.

Trunc(X)

Повертає найближче ціле число, яке менше або дорівнює Х, якщо Х>=0, і більше або рівне Х, якщо Х<0. Результат відноситься до цілого типу.

Виходячи з цього наступний оператор:

X := Y/X;

буде помилковим (X та Y мають ті ж самі типи, що описані вище), а оператор

X := round(Y/X);

помилок не має.

Зверніть також увагу на те, що операції DIV та MOD теж виконуються тільки з цілими типами даних і спроба використати у якості операторів для них дійсні дані призводить до помилки.

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

Pred(X)

Визначає попереднє значення для даного типа. Наприклад, Pred(5)=4, Pred(True)=False, Pred(‘B’)=’A’.

Succ(X)

Визначає наступне значення для даного типа. Наприклад, Succ(5)=6, Succ(True)=False, Succ(‘A’)=’B’.

Odd(X)

Перевіряється число на парність. Аргументом цієї функції може бути тільки число типу longint, а результат дорівнює true, якщо аргумент парний, і false – в протилежному випадку.

Введення-виведення інформації.

Введення данихце передача інформації від зовнішнього носія в оперативну пам'ять для обробки.

Виведення данихце зворотній процес, коли дані передаються після обробки з оперативної пам'яті на зовнішній носій.

  • Процедура читання Read забезпечує введення числових даних, символів, рядків і т.д. для наступної їхньої обробки.

Формат введення:

Read (x1,x2,...xn);

де x1, x2,... xn – змінні допустимих типів даних,

  • Процедура читання Readln аналогічна процедурі Read, єдина відміннісь полягає в тому, що після зчитування останнього в списку значення для однієї процедури Readln дані для наступної процедури Readln будуть зчитуватися з початку нового рядка.

  • Процедура запису Write робить виведення числових даних, символів, рядків і булівських значень на екран монітору.

Формат:

write (Y1, Y2,... Yn) – виведення на монітор;

де Y1, Y2,... Yn – дані, що виводяться,

  • Процедура запису Writeln аналогічна процедурі Write, але після виведення останнього в списку значення для поточної процедури Writeln відбувається переміщення курсору до початку наступного рядка. Процедура Writeln, записана без параметрів, виконує тільки переміщення курсору на початок наступного рядка.

Приклад:

Writeln(‘Y1=’,Y1)

Формати виведення інформації.

У процедурах виведення Write і Writeln є можливість запису виразу, що визначає ширину поля для виведення. У прикладах, що подаються далі, використовуються наступні умовні позначення:

  • І – ідентифікатор, що визначає ціле число,

  • R – ідентифікатор, що визначає дійсне число,

  • р,q – цілі константи, що визначають довжину поля виведення та кількість цифр після десяткової крапки.

  1. Виведення десяткового значення цілої величини I, починаючи з позиції розташування курсору.

Значення I

Вираз

Результат

134

write(I);

134

5671

write(I);

5671

287

write(I,I,I);

287287287

  1. Виведення десяткового значення цілої величини I у крайні праворуч позиції поля шириною р.

Значення I

Вираз

Результат

134

write(I:6);

___134

1

write(I:10);

_________1

312

write(I+I:7);

____624

  1. Виведення у поле шириною 18 символів десяткового значення величини R у форматі з плаваючою крапкою.

Значення R

Вираз

Результат

715.432

write(R);

__7.1543200000E+02

-1.919E+01

write(R);

_-1.9190000000E+01

567.986

write(R/2);

__2.8399300000E+02

  1. Виведення у крайні праворуч позиції поля шириною р десяткового значення величини R у форматі з фіксованою крапкою, причому після десяткової крапки виводиться q цифр (0<=q<=24), що представляють дробову частину числа. Якщо q=0, ні дробова частина, ні десяткова крапка не виводяться. Якщо q>24, то при виведенні використовується формат із плаваючою крапкою.

Значення R

Вираз

Результат

511.04

write(R:8:4);

511.0400

-46.78

write(R:7:2);

_-46.78

-46.78

write(R:9:4);

_-46.7800