Тождественность и совместимость типов.

 

Для того, чтобы в программе не получилось путаницы с величинами разных типов нужно правильно применять понятия тождественности и совместимости типов.

Два типа называются тождественными, если они описаны вместе или если их определения используют один и тот же идентификатор типа.

Type

M1, M2= array [1..9] of real

S=array[1..9] of integer;

M1,M2 - тождественные типы

M1,S- не - тождественные типы.

Тождественность требуется при замене формальных параметров на фактические в процедурах и функциях. Например, abs(x), где х- целое или вещественное число, мы не можем поставить abs(x), если х- символьная или булевская переменная.

Огромную роль в выражениях и операциях сравнения, операторе присваивания играет совместимость типов.

В операциях сравнения два типа являются совместимыми, если соблюдается хотя бы одно из условий:

1. Оба типа одинаковые

2. Оба типа вещественные

3. Оба типа целые

4. Один тип является поддиапазоном другого

5. Оба типа поддиапазоны одного и того же типа

6. Один тип строковый, другой символьный

Например, ‘a’>’3’-допустимо ‘a’>3- недопустимо!!!

В операции присваивания два типа совместимы, если выполняется хотя бы одно из условий:

1. Типы тождественны

2. Первый строковый, второй литерный

3. Первый вещественный, второй целый

Например,

Var a: integer;

B: real;

C: char;

S: string;

 

A:=b;- НЕЛЬЗЯ!

B:=a;

C:=s; - НЕЛЬЗЯ!

S:=c;

A:=s; - НЕЛЬЗЯ!

 


Лекция 13.

Ввод-вывод данных в Turbo Pascal

Ввод данных- передача информации от внешних устройств в ОП.

Вывод данных- обратный процесс, передача информации из ОП на внешние устройства.

Для ввода- вывода данных в Turbo Pascal существуют 4 процедуры:

Read, Readln

Write, Writeln

Процедура Read обеспечивает ввод данных с клавиатуры в ОП. Формат записи процедуры:

Read(х1, х2, х3…хn)-позволяет ввести в ОП значения переменных х1, х2, х3…хn.

При выполнении процедуры Read компьютер приостанавливает свою работу и ждет ввода значений указанных переменных. Значения набираются с клавиатуры через пробел. Ввод всех значений списка, заканчивается нажатием клавиши Enter.

Зам! Ввод данных производится в строгом соответствии с описанием.

Пример,

Var C: char;

T: integer;

D:real;

….

Read(d,t,c); И ВВОДИМ ДАННЫЕ: ю 64000 34

Возникнет ошибка выполнения программы, так как d- переменная типа real и мы не имеем права вводить символ «ю», кроме того, значение переменной Т выходит за диапазон значений типа.

Если в программе имеются несколько операторов Read, то данные считываются потоком, т.е. после считывания данных для одного оператора данные для другого читаются из той же строки.

Read(x,y);

Read(z,d,f);

Если введем данные 1 2 3

4 5 6

то получим x=1, y=2, z=3, d=4, f=5.

Оператор readln отличается от оператора read только тем, что после считывания последнего в списке значения для одного оператора readln, данные для следующего оператора считываются с новой строки.

Readln(x,y);

Readln(z,v);

Если введем 2 4 6 7

3 9

то получим в памяти x=2, y=4, z=3, v=9.

Примечание, по возможности, показать все на компьютере при помощи Debug® Watch.

Оператор вывода имеет следующий формат записи

Write(<список вывода>) ;

Элементами списка вывода могут быть постоянные, переменные, выражения.

Фрагмент программы На экране.
Write(7);
Write(‘привет’); привет
Const n=10; … Write(n);    
Var x: byte; …. X:=5; Write(x);  
Const n=15; Var x: word; …. X:=10; Write(x+n);    

При выводе на экран нескольких выражений, они отделяются друг от друга запятой. При появлении этих выражений не экране они записываются подряд, не отделяясь друг от друга пробелами.

X:=4;

Y:=5;

Z:=7;

Write(x,y,z);

На экране 457.

Чтобы «отделить» числа друг от друга можно выводить пробелы- Write(x,’ ‘,y,’ ‘,z,’ ‘); или использовать форматы вывода.

Формат вывода определяет представление информации на экране и записывается в списке вызова через двоеточие.

Write(x:r)- значение х выводится в крайние правые позиции поля шириной R.

X:=14;

Write(x:5);

НА экране _ _ _ 14

Наш пример можно записать Write(x:2,y:3,z:4).

НА ЭКРАНЕ: _ 4_ _5_ _ _ 7

Кроме того, форматы вывода очень важны при выводе действительных (вещественных) чисел. В общем случае, вещественное число выводится в форме с плавающей точкой (запятой).

Пример,

Const n=0.2;

write(n);

НА ЭКРАНЕ: 2.0000000Е-01

Такое представление информации является не привычным для нас. Поэтому будем использовать следующий формат вывода:

Write(x:r:w)- значение х выводится крайние правые позиции поля шириной R, причем W знаков отводится под дробную часть.

write(n:6:2);

НА ЭКРАНЕ: _ _ _ _0.2 0

Оператор Writeln работает так же как и оператор Write, только после вывода всего списка он передает курсор на следующую строку.

Пример,


X:=3;

Y:=x/2;

Z:=x*2;

Write(‘x=’,x);

Write(z:2, y:4:2)

НА ЭКРАНЕ: х=3_ 6_ 1 ,50

 

X:=3;

Y:=x/2;

Z:=x*2;

Writeln(‘x=’,x);

Writeln(z:2, y:4:2)

НА ЭКРАНЕ: х=3

_ 6_ 1 ,50









Дата добавления: 2016-05-25; просмотров: 569;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.014 сек.