Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы языка Паскаль.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
133.63 Кб
Скачать

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

В языке Паскаль существует 2 варианта преобразования типов:

1. Автоматическое преобразование. Для его выполнения два типа должны быть совместимы, т.е. быть одинаковыми или тип назначения по количеству отводимой ему памяти больше исходного типа. При выполнении второго из этих условий происходит расширяющее преобразование, которое не может привести к потере информации, например переменной типа longint присвоить значение переменной типа integer или переменной типа Real может быть присвоено значение выражения типа Integer.

Пример 1.

var

a:byte;

b:integer;

c:real;

begin

b:=a;

c:=b;

b:=c; - ошибка!

b:=a/2; - ошибка, т.к. деление дает результат типа real!

2. Преобразование несовместимых типов. Это второй тип преобразования - сужающее преобразование: тип назначения меньше исходного типа. При этом значение из большего объема памяти помещается в меньшее, что может привести к потере информации. Для выполнения такого действия в Паскале существуют функции преобразования типов, которые преобразуют вещественное значение в целое. Это round и trunc.

Функции преобразования типов:

Имя функции

Тип аргумента

Тип результата

Назначение

Trunc(x) 

вещественный целый 

целый 

Преобразует вещественное значение x в целочисленное представление путем отбрасывания дробной части значения x 

Round(x) 

вещественный целый 

целый 

Преобразует вещественное значение x в целочисленное представление путем округления x до ближайшего целого 

Пример 2. Устраним ошибки в примере 1. Для этого используем функции округления round и отбрасывания дробной части trunc.

b:=a;

c:=b;

b:=round(c);

b:=trunc(a/2);

Основные операторы языка

Оператор присваивания

Оператор присваивания вычисляет значение выражения, стоящего справа от знака “ := “ и присваивает его переменной, указанной слева. Его общий вид:

<имя переменной> := <выражение>;

Тип переменной и тип значения выражения должны быть совместимы (см.правила преобразования типов) совпадать.

Пример использования оператора присваивания, функций и организации ввода-вывода

Заданы действительные числа a, b и c. Вычислить значение выражения:

.

Program primer;

Var a,b,c,y:real;

Begin

Writeln (‘Введите a ’); readln(a);

Writeln (‘Введите b ’); readln(b);

Writeln (‘Введите c ’); readln(c);

Y:=(-b+sqrt(sqr(b)-4*a*c))/(2*a);

Writeln(‘Результат Y = ’,Y:0:3);

End.

Условный оператор

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

Условный оператор в Паскале имеет два варианта записи. Полная форма:

If <логическое выражение> Then <оператор1>

Else <оператор2> ;

Порядок работы:

1. Вычисляется логическое выражение.

2. При получении значения «Истина» (True) выбирается для выполнения записанный после Then оператор1, а оператор2 пропускается.

3. При получении значения «Ложь» (False) выполняется записанный после Else оператор2, а оператор1 пропускается.

На блок-схеме такой вариант оператора изображается следующим образом:

Неполная форма:

If <логическое выражение> Then <оператор> ;

В этом случае при получении значения True выполняется записанный после Then оператор, а при получении значения False не производится никаких действий.

На блок-схеме такой вариант оператора изображается следующим образом:

Особенности оператора:

1. Перед словом Else не должно быть “ ; ” , так как она ставится только в конце оператора. Если “ ; ” присутствует, то компилятор выдает ошибку.

2. Если после Then или Else необходимо выполнить несколько операторов, то эти операторы должны быть заключены в операторные скобки Begin - End. Такая конструкция называется составным оператором. Оператор, в котором после слов Then и Else выполняются по несколько действий, выглядит следующим образом:

If <логическое выражение>

Then

Begin

Оператор1;

Оператор2;

операторN;

End

Else

Begin

Оператор1;

Оператор2;

операторN;

End;