- •Реализация алгоритмов в системе программирования turbo pascal 7.0 Учебное пособие
- •Тема 1 Алгоритмы и способы их описания
- •Тема 2 Этапы подготовки и решения задач на эвм
- •Тема 3 Начало работы в системе Turbo Pascal 7.0
- •Начало работы с новой программой
- •Задание 1
- •Сохранение текстового файла программы на диске
- •Задание 2
- •Задание 3
- •Задание 4
- •Тема 4 Ввод исходных данных и вывод результатов вычислений
- •Упражнение 1.
- •Тема 5 Реализация линейных алгоритмов
- •Сложные выражения
- •Задание
- •Тема 6 Программирование разветвляющихся алгоритмов
- •Задание 1
- •Задание 2
- •Тема 7 Циклические алгоритмы с известным числом повторений
- •Задание
- •Тема 8 Циклические алгоритмы с неизвестным числом повторений
- •Задания
- •Задание
- •Тема 10 Работа с массивами
- •Задание
- •Задание
- •Тема 12 Записи
- •Задания
- •Тема 13 Работа с файлами
- •Задания
- •Задания
- •Тема 15 Алгоритмы построения графика аналитически заданной функции
- •Задание
- •Тема 16 Анимация изображений
- •Задание 1
- •Задание 2
- •Тема 17 Численные методы вычисления определённого интеграла
- •1. Метод прямоугольников
- •2. Метод трапеций
- •3. Метод Симпсона
- •Задания
- •Тема 18 Численные методы решения нелинейных уравнений
- •Задания
- •Тема 19 Численные методы решения обыкновенных дифференциальных уравнений
- •Задание
- •Оглавление
- •Литература
Задание
Составьте программу для вычисления следующих выражений:
№ ва |
Выражение |
Значения переменных |
Результат | ||
рианта |
|
а |
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. При правильно составленном выражении результат должен совпасть со значением, приведённым в последней колонке.
Тема 6 Программирование разветвляющихся алгоритмов
Алгоритмы решения большинства задач не являются последовательными. Порядок работы программы может зависеть от определённых условий, например исходных данных, или результатов, полученных во время выполнения программы, или команд пользователя. В языке Pascalусловие – это выражение логического типа (boolean), которое может принимать одно из двух значений: «истина» (TRUE) или «ложь» (FALSE). Простое условие состоит из двух операндов и оператора сравнения. В общем виде условие записывается следующим образом:
Операнд1 Оператор Операнд2;
где Операнд1 иОперанд2– операнды условия, в качестве которых могут выступать переменная, константа, функция или выражение;Оператор – оператор сравнения. ВTurboPascalимеется шесть операторов сравнения, которые перечислены ниже:
Оператор |
Описание |
Оператор |
Описание |
|
Больше |
|
Не равно |
|
Меньше |
= |
Больше или равно |
= |
Равно |
= |
Меньше или равно |
Примеры условий: 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записывается так:
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
Оператор 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;