Основы программирования на языке Паскаль

Пример: составить программу, вычисляющую значения функции cos х, где начальное х = 0, следующее х = 0.01 и т.д.

Program Prim3; Label M; Var x:real; BEGIN x:=0; M: writeln('x=',x,'cos x = ',cos(x)); x:=x+0.01;

gotoM; readln; END.

Программа будет работать следующим образом: х присвоится значение 0<

/b>; writeln выведет на экран текст, который указан в первых кавычках х =, далее извлечет из ячейки х значение и выведет его на экран; затем снова выведет текст cos х =, затем вычислит значение cos х и выдаст его на экран, т.е. машина выведет первую строку в виде

x = 0.0000000000Е + 00 cos х = 9.9999999999Е - 01.

После этого возьмется то х, которое было извлечено из ячейки памяти х (прежнее значение х), т.е. 0.0, к нему прибавляется величина 0.01 и результат снова занесется в ячейку памяти х так, что в х будет 0.01, после этого оператор goto m; передаст управление оператору, помеченному меткой м, т.е. оператору writeln, и машина выдаст новую строку:

x = 1.0000000000Е - 02 cos х = 9.9995000041Е - 01;

– выполнит оператор

х: =x + 0.01, получит х = 0.02;

– выведет строку

x = 2.0000000000Е - 02 cos х = 9.9980000666Е – 01;

– сделает х = 0.03 и т.д., до бесконечности, так как в данном алгоритме окончание работы не предусмотрено. Для завершения работы следует применить оператор if.

3.3. Оператор if

Общий вид: If булевское выражение then оператор else оператор;

Работа оператора: вначале вычисляется булевское выражение, значение которого в конечном итоге может быть только TRUE или FALSE. Если булевское выражение TRUE, то выполняется оператор, следующий за словом then, а затем происходит переход к оператору, следующему за if. Если булевское выражение false, то выполняется оператор, следующий за словом else, затем происходит переход к оператору, следующему за оператором if.

Замечание: после оператора, следующего за then, перед else символ ';' не ставится, так как оператор if еще здесь не закончен, а ';' ставится после окончания оператора. Возможно применение сокращенного оператора if:

If булевское выражение then оператор;

Здесь, если булевское выражение true, выполняется оператор, следующий за словом then, и происходит переход к оператору, следующему за оператором if. Если булевское выражение false, то оператор if игнорируется (вообще не выполняется), а выполняется оператор, следующий за if.

Переделаем "бесконечную" программу п. 3.2. в такую, которая остановится тогда, когда х станет равным 0.1.

Program Prim4; Label M; Var x:real;

BEGIN x:=0;

M: writeln('x=',x,' cos x = ',cos(x));

x:=x+0.01;

if x<=0.1 then goto M; readln;

END.

Программа выдает результаты вычислений cos(x) для х = 0.01, 0.02, 0.03 и т.д., до 0.01.

В последней программе булевское выражение х < = 0.1. Какие бывают булевские выражения? Вообще говоря, булевское выражение после вычисления всегда истинно или ложно, т.е. TRUE или FALSE. Действительно, выражение х < = 0.1 может быть истинно, если х меньше или равно 0.1, и ложно – в противном случае. Вообще булевское выражение может строиться из булевских констант TRUE и FALSE; переменных булевского типа (в которых могут храниться TRUE или FALSE); обращений к функциям, которые возвращают TRUE или FALSE и отношений, соединенных между собой булевскими операциями и круглыми скобками.

Здесь следует расшифровать, что такое отношения и булевские операции. Примером отношения может быть приведенное выше х < = 0.01, т.е. в общем случае отношение – это два арифметических выражения, соединенных между собой операциями отношения. Операции отношения: = (равно), < > (неравно), > (больше), > = (больше или равно), < (меньше), < = (меньше или равно).

Пример отношений: а + b < = sin(c)

exp(p) > (cos(i) - a)/sgr(b).

Как мы уже говорили, эти отношения могут быть истинны или ложны в зависимости от конкретного значения величин, в них входящих, на момент вычисления.

Логические операции – это нам уже известные. Напомним, как они работают: or (или), and (и).

Имеется описание Var A,B: boobean;

Or – логическое сложение, читается как "или". Результат операций – истина, если или А, или В – истина, и ложь, если А и B ложны.

Например: А В А ог В

true true true

true false true

false true true

false false false

Замечание: данная операция аналогична арифметической OR, если TRUE заменить 1, а FALSE – 0.

АND - логическое умножение, читается "и". Результат операции – истина только тогда, когда и А, и В – истина, в остальных случаях результат – ложь.

А В A and B

true true true

true false false

false true false

false false false

Кроме того, удобно применять однокомпонентную операцию Not, которая вводится следующим образом: если А есть TRUE, то Not А есть FALSE и если А есть FALSE, то Not А есть TRUE.

С помощью этих операций можно построить условия любой сложности. Например, пусть необходимо решить задачу:

Напишем программу:

Program Prim5;

Var a,x:real;

BEGIN

writeln('введитеа,х'); readln(a,x);

if (a>0) and (x>0) and (x<=0.5) then

writeln('z=',a*sqr(x)/sin(x)) else

if (a>0) and (x>=0.5) and (x<3) then

writeln('z=',exp(x)) else

if (a<=0) or (x<=0) then

writeln('z=',sqrt(a)*sqrt(x)/sin(x)) else

writeln('z=0');

readln; END.

Замечание: в последнем примере мы видим, что операторы if могут быть вложены друг в друга. Вкладывать их можно неограниченное количество раз, причем новый if может начинаться как после слова then, так и после слова else.

Еще один пример: пусть дана область (заштрихованная на рис. 3.3). Мы вводим с клавиатуры координаты точки. Машина должна определить, принадлежит ли данная точка этой области или нет.

Разобьем область рис. 3.3 на несколько простых:

1. Внутренняя часть сектора, ограниченного отрицательной частью оси OX, положительной OY и окружностью с центром в начале координат и радиусом, равным 2.

Рис. 3.3

Страница:  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15 
 16  17  18  19  20  21  22  23  24  25  26  27  28  29  30 
 31 


Другие рефераты на тему «Программирование, компьютеры и кибернетика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы