Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 26 Логические типы данных в Turbo Pascal.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
202.75 Кб
Скачать

Логические выражения в управляющих операторах

Алгоритмическая структура ветвления программируется в Паскале с помощью условного оператора. Раньше мы его описывали в таком виде: If <условие> Then <оператор 1> Else <оператор 2>; Кроме того, возможно использование неполной формы условного оператора: If <условие> Then <оператор>; (Здесь: If - если, Then – тогда, Else – иначе)

Теперь дадим строгое описание условного оператора в форме синтаксической диаграммы (рис. 3).

Рис.3

То, что мы раньше называли условием, есть логическое выражение, которое вычисляется в первую очередь. Если его значение равно true, то будет выполняться <оператор 1> (после Then), если false, то <оператор 2> (после Else) для полной формы или сразу следующий оператор после условного для неполной формы (без Else).

Составление программ на Turbo Pascal

1. Пример простейшей программы на Turbo Pascal (программы с линейным

алгоритмом) - вычисление площади треугольника по формуле Герона:

S= , где a, b, с – стороны треугольника, полупериметр р = ;

Программа

Пояснения к данной программе

Program Geron;

var a,b,c,p,S,Y:real;

begin

writeln('Вычисление площади треугольника по формуле Герона.');

writeln('Введите стороны треугольника a, b, c:');

readln(a,b,c);

p:=(a+b+c)/2;

S:=sqrt(p*(p-a)*(p-b)*(p-c));

writeln('Площадь треугольника равна: S=', S);

writeln('Для выхода из программы введите число 1.');

readln(y);

end.

Оператор присваивания имеет вид := , например: x:=a+b; b:=1;

Присваивание-это вычислительная операция вида: c:=a+b, заключаю-

щаяся в вычислении выражения, указанного справа, и записи полу-

ченного результата в переменную, указанную слева.

Операторы ввода данных: read(x,y,z), readln(a,b,c).

Второй из операторов (readln) осуществляет построчный ввод данных.

 

Операторы вывода данных: write(s), writeln(u,v).

Второй из операторов (writeln) осуществляет построчный вывод данных.

 

Все математические формулы записываются в одну строку. Пример:

 

S:=sqrt(p*(p-a)*(p-b)*(p-c));

2. Теперь, рассмотрим пример программы с алгоритмической структурой ветвления с использованием логических операций.

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

Имея возможность в одном условном операторе записывать достаточно сложные логические выражения, мы можем сразу «отфильтровать» все варианты неверных исходных данных. Тогда данную программу можно составить так:

program tangle;

var a,b,c,p,S,Y:real;

begin

writeln('Вычислите площадь треугольника по трем сторонам');

writeln('и проведите его анализ.');

writeln('Введите стороны треугольника a,b,c:');

read(a,b,c);

p:=(a+b+c)/2;

S:=sqrt(abs(p*(p-a)*(p-b)*(p-c)));

if (a>=(b+c)) or (b>=(a+c)) or (c>=(a+b))

then writeln('Треугольник не существует.')

else if (a=b) and (b=c)

then writeln('Треугольник равносторонний, его площадь S=',s)

else if (a=b) or (b=c) or (a=c)

then writeln('Треугольник равнобедренный, его площадь S=',s)

else writeln('Треугольник разносторонний, его площадь S=',s);

if (a*a=(b*b+c*c)) or (b*b=(a*a+c*c)) or (c*c=(a*a+b*b))

then writeln('Треугольник прямоугольный.');

writeln('Для выхода из программы введите число 1.');

readln(Y);

end.

Program Geron ;

var a,b,c,p,S,:real;

begin

writeln('Введите длины сторон треугольника:'); write('а='); readLn(a) ;

write('b='); readLn(b);

write ('c='); readLn(c);

if (a>0) and (b>0) and (c>0) and (a+b>c)

and (b+c>a) and (a+c>b)

then begin

p:=(a+b+c)/2;

S:=Sqrt(p*(p-a)*(p-b)*(p-c));

writeln('Площадь=',S)

end

else writeln('Неверные исходные данные')

End.