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

Задание

Составьте программу для вычисления следующих выражений:

№ ва-

Выражение

Значения переменных

Результат

рианта

а

b

c

1

1,5

10,2

10,034

6,00

2

13,5

0,92

1,05

–20,00

3

0,785

1,5708

3,777

5,00

4

9,01

7,7058

0,05

5

2,0

13,0

0,8

2,00

6

3,1415

96,6

18,4

1,00

7

1,5

1,725

5,2425

34,00

8

3,1416

1,5708

–1,884

0,50

9

0,5

6,385

4,201

1,00

10

9,5

–4,51

2,2093

–100,00

При выполнении программы использовать предлагаемые значения переменных a, b и c. При правильно составленном выражении результат должен совпасть со значением, приведённым в последней колонке.

Лабораторная работа №4 Программирование разветвляющихся алгоритмов

Алгоритмы решения большинства задач не являются последовательными. Порядок работы программы может зависеть от определённых условий, например исходных данных, или результатов, полученных во время выполнения программы, или команд пользователя. В языке Pascal условиеэто выражение логического типа (Boolean), которое может принимать одно из двух значений: «истина» (True) или «ложь» (False). Простое условие состоит из двух операндов и оператора сравнения. В общем виде условие записывается следующим образом:

Операнд1 Оператор Операнд2;

где Операнд1 и Операнд2 – операнды условия, в качестве которых могут выступать переменная, константа, функция или выражение; Оператор – оператор сравнения. В Turbo Pascal имеется шесть операторов сравнения, которые перечислены ниже:

Оператор

Описание

Оператор

Описание

Больше

 

Не равно

Меньше

=

Больше или равно

=

Равно

=

Меньше или равно

Примеры условий: Summa < 1000; A>=X;

В первом примере операндами условия являются переменная и константа. Значение этого условия будет истинным, если значение переменной Summa меньше, чем 1000. Во втором примере в качестве операндов используются переменные. Значение этого условия будет истинным, если значение переменной A больше или равно X.

Из простых условий, которые являются выражениями логического типа, можно строить сложные условия с применением к ним, как к операндам, логических операций: not – «отрицание», and – «логическое И», or - «логическое ИЛИ».

При записи сложных условий важно учитывать то, что логические операции имеют более высокий приоритет, чем операторы сравнения, поэтому простые условия следует брать в скобки. Например, пусть условие предоставления скидки сформулировано следующим образом: «Скидка предоставляется, если сумма покупки 500 руб. и день покупки – воскресенье или если сумма покупки превышает 1000 руб.». Тогда условие можно записать:

((Summa > 500) and (Day = 7)) or (Summa > 1000)

Выбор действия в зависимости от выполнения условия может быть реализован при помощи операторов (инструкций) if и case.

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

В общем виде оператор IF записывается так:

If <Условие>

then

begin

< Операторы, выполняемые, если условие истинно >

end

else

begin

< Операторы, выполняемые, если условие ложно >

end;

Выполняется оператор IF следующим образом.

Сначала вычисляется значение выражения условие. Затем, если условие истинно (значение выражения условие равно True), то выполняются операторы, следующие за словом then, находящиеся между begin и end. Если условие не является истинным (значение выражения условие равно False), то выполняются операторы, следующие за словом else, находящиеся между begin и end.

Если при выполнении (невыполнении) условия надо выполнить только один оператор, то ключевые слова begin и end можно не писать.

Если какое-либо действие нужно выполнить только при выполнении некоторого условия и пропустить это действие в случае невыполнения условия, то оператор IF может быть использован в кратком виде:

If <Условие>

then

begin

<Операторы, выполняемые, если условие истинно>

end;

Если в программе необходимо реализовать выбор более чем из двух вариантов, то применяют несколько условных операторов, «вложенных» один в другой. В качестве примера рассмотрим программу нахождения корней квадратного уравнения. Ниже приведён текст программы:

Program SqEquation;

Uses crt;

Var

a,b,c,x1,x2,d:real;

Begin

Clrscr;

Writeln('Решение уравнения Ax^2+Bx+C=0');

Wwrite('Введите A (A не равно 0)');

Readln(A);

Write('Введите B');

Readln(b);

Write('Введите C');

Readln(c);

d:=b*b-4*a*c;

If d>0

then

begin

x1:=(-b+sqrt(d))/(2*a);

x2:=(-b-sqrt(d))/(2*a);

Writeln('x1= ',x1:7:3,' x2= ',x2:7:3);

end

else

If d=0

then

begin

x1:=-b/(2*a);

Writeln('x= ',x1:7:3);

end

else

Writeln('Действительных корней нет');

Readln;

End.

Наберите текст программы, сохраните на диске в свою папку под именем Equation.pas, скомпилируйте и выполните программу. Используя программу, решите следующие уравнения:

x2-3x-4=0; x2-9x=0; x2+4x+4=0; 7x2-3x+16=0.

Оператор Case является обобщением оператора If и позволяет сделать выбор из произвольного числа имеющихся вариантов. В общем виде инструкция Case записывается следующим образом:

Case <Выражение> of

<Список констант 1>: begin

{Последовательность операторов 1}

end;

<Список констант 2>: begin

{Последовательность операторов 2}

end;

<Список констант N>: begin

{Последовательность операторов N}

end

else

begin

{Последовательность операторов, выполняемых в случае,}

{если значение выражения не попало ни в один }

{из списков констант }

end;

end;

Здесь:

<выражение> – выражение, от значения (значение должно быть обязательно целого типа: Integer, Word, Byte или символьного типа – Char) которого зависит дальнейший ход программы (одна из последовательностей операторов, которая должна быть выполнена);

<список констант> – константы (целого типа или типа Char), разделенные запятыми. Если константы представляют диапазон чисел, то вместо списка можно указать первую и последнюю константу диапазона, разделив их двумя точками. Например, список 1,2,3,4,5,6 может быть заменен диапазоном 1..6.

Если между begin и end надо выполнить только один оператор, то слова begin и end можно не писать. Выполняется инструкция case следующим образом. Сначала вычисляется значение выражения, стоящего после case, затем полученное значение последовательно сравнивается с константами из списков констант. Если значение выражения совпадает с константой из списка, то выполняется соответствующая этому списку последовательность операторов, и на этом выполнение инструкции case завершается. Если значение выражения не совпадает ни с одной константой из всех списков, то выполняется последовательность операторов, следующая за else, если таковая присутствует.

Пример:

Var day:integer;

......

case day of

1..5:writeln('Рабочий день');

6:writeln('Суббота');

7:writeln('Воскресенье');

end;