Псковский государственный политехнический институт


НазваниеПсковский государственный политехнический институт
страница13/30
ТипУчебное пособие
filling-form.ru > Бланки > Учебное пособие
1   ...   9   10   11   12   13   14   15   16   ...   30

§4.5. Безусловный оператор перехода


Это единственный оператор, в котором используется метка. Он имеет вид:

Go To <метка>;

После выполнения этого оператора будет осуществлен переход на оператор, перед которым стоит указанная метка.

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

  1. Не допускаются переходы внутрь подпрограмм (процедур и функций) или из них.

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

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

Program S;

Label L;

Const Eps = 1E-6; {определим точность как константу}

Var a,x,y:real;

Begin

WriteLn (‘Введите число для определения кубического корня’);

Read (a);

x := a;

L: y := x; {«старим» предыдущее значение}

x := 1/3*(a/sqr(y)+2*y); {вычисляем новое значение}

If Abs(x-y)>Eps Then

GoTo L; {повторим, если разность старого и нового значений не достигла заданной точности}

WriteLn (‘Значение корня:’, x:10:6);

End.

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


При составлении по алгоритму программы на месте блока «Решение» записывается условный оператор, который может иметь 2 формы. В общем виде полная форма записывается как:

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

а сокращенная:

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

В первом случае, если логическое выражение истинно (True), то выполняется оператор1, а если ложно, то оператор2. Во втором случае при ложности логического выражения просто осуществляется переход к следующему оператору.

Наиболее простой пример – вычисление значения кусочно-непрерывной функции:



Program Function;

Var

f,x:real;

Begin

Read (x);

If x>=0 Then F := x*x {первый вариант}

Else F := sqrt (x); {второй вариант}

WriteLn ('Значение функции =',F:8:3);

end.

Заметим, что значение функции используется как имя переменной. Оно не должно содержать скобок, поэтому здесь вместо F(x) используется просто F (можно функцию назвать и по-другому, например Fx).

§4.7. Оператор цикла с параметром FOR


Операторы цикла заставляют выполняться входящие в их состав внутренние операторы несколько раз. В языке Паскаль существует три вида операторов цикла.
Если число повторений цикла известно перед его началом, то используют наиболее наглядный, но все же имеющий ограниченную область применения оператор FOR:

For <параметр цикла> := <начальное значение> To | DownTo <конечное значение> Do <внутренний оператор – тело цикла>

Внутренний оператор будет выполняться один раз для каждого значения параметра цикла из указанного диапазона. Если используется служебное слово То, то при каждом новом выполнении берется следующее значение, при DownTo – предыдущее (используются функции Succ и Pred), то есть тип параметра цикла должен быть дискретным.
При использовании оператора FOR необходимо соблюдать следующие правила:

  1. Начальное и конечное значение являются выражениями (константа – вырожденное выражение), а параметр цикла – имя переменной (может быть и структурированной, например, элемент массива).

  2. Параметр цикла, начальное и конечное значение должны быть одного и того же дискретного типа (не допускается использование типа Real) и не должны изменяться внутри оператора FOR.

  3. Если используется служебное слово То, а начальное значение больше конечного (или меньше в случае DownTo), то внутренний оператор не выполнится ни разу.

Пример на вычисление суммы с оператором FOR приводился ранее. Если количество повторений заранее известно, но параметр цикла – вещественный, то в явном виде этот оператор использовать нельзя. Ограничение на дискретный тип можно обойти, если ввести дополнительную целую переменную. Например, необходимо вычислить таблицу синуса для значений аргумента от 0.5 до 0.7 с шагом 0.01. Введем дополнительную переменную i, изменяющуюся от 0 до 20 (всего надо вычислить 21 точку). Если учесть, что внутри цикла надо использовать не только оператор вычисления синуса, но и оператор вывода, то в операторе цикла используем операторные скобки.

Программа будет выглядеть следующим образом:

Program Tabl;

Var

i:integer;

x:real;

Begin

WriteLn (' Таблица синуса');

For i:=0 To 20 Do

Begin

x := i/100+0.5;

WriteLn ('x=', x:4:1,'sin(x)=', sin(x):8:5);

end

end.

Если же количество повторений заранее неизвестно, как, например, при вычислении кубического корня, то используют другие операторы цикла.
1   ...   9   10   11   12   13   14   15   16   ...   30

Похожие:

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

Псковский государственный политехнический институт iconПравила приема граждан юргту (нпи), на обучение по программам подготовки...
«Южно-Российский государственный технический университет (Новочеркасский политехнический институт)»

Псковский государственный политехнический институт iconГбоу ао спо «Астраханский государственный политехнический колледж»...
Учебной части гбоу ао спо «Астраханский государственный политехнический колледж» на 2015/16 учебный год

Псковский государственный политехнический институт iconI. Общие положения
Федеральное государственное бюджетное образовательное учреждение высшего образования «Псковский государственный университет»

Псковский государственный политехнический институт iconЗаконное представительство
Составитель: Волков А. В. – старший преподаватель кафедры гражданского права и процесса, Псковский государственный университет

Псковский государственный политехнический институт iconП рограмма производственной практики
Волжский политехнический институт (филиал) волгоградского государственного технического университета”

Псковский государственный политехнический институт iconОбразец заполнения
Прошу зачислить меня слушателем в фгбоу во «Псковский государственный университет» на обучение по дополнительной общеобразовательной...

Псковский государственный политехнический институт iconПоложение о платном обучении в Государственном образовательном учреждении...
Ания «Оренбургский государственный институт менеджмента», (далее: «огим», «институт»), в соответствии с Федеральным законом «О высшем...

Псковский государственный политехнический институт iconПриема иностранных граждан в фгбоу впо «оренбургский государственный...
Ем иностранных граждан, лиц без гражданства, в том числе соотечественников за рубежом (далее иностранные граждане), поступающих фгбоу...

Псковский государственный политехнический институт iconЗаконодательное регулирование
«Южно – Российский государственный политехнический университет (нпи) имени М. И. Платова»

Вы можете разместить ссылку на наш сайт:


Все бланки и формы на filling-form.ru




При копировании материала укажите ссылку © 2019
контакты
filling-form.ru

Поиск