Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Оперетор безусловного перехода




Пример простой программы

Решить квадратное уравнение АХ*Х + ВХ + С = 0

Возможности:

1) если А=0, В=0, С=0, то уравнение имеет бесконечное множество решений;

2) если А=0, В=0, С<>0, то уравнение не имеет решений;

3) если А=0, В<>0, С<>0, то уравнение имеет единственный корень Х=-С/В

4) если А<>0, В<>0, С<>0, то решение уравнения зависит от дискриминанта D=B*B-4AC;

4a) если D<0, то уравнение имеет комплексные корни;

4б) если D=0, то уравнение имеет два одинаковых корня X=-B/2A;

4в) если D>0, то уравнение имеет два корня X1 = (-B+ÖD) / 2A;

X2=(-B-ÖD)/2A

PROGRAMM QUADRA

VAR A,B,C,D,X1,X2: REAL;

BEGIN

WRITE (‘ВВЕДИТЕ А, В, С’);

READLN(A,B,C);

IF (A=0) AND (B=0) AND (C=0)

THEN WRITELN (‘Уравнение имеет беск. множество решений’)

ELSE IF (A=0) AND (B=0) AND (C<>0)

THEN WRITELN (‘Уравнение не имеет решений’)

ELSE IF (A=0) AND (B<>0) AND (C<>0)

THEN WRITELN (‘Корень Х = ’ -C/B)

ELSE IF D<0 THEN

WRITELN (‘Комплексные корни’)

ELSE

WRITELN (‘Два равных корня Х=’, -В/2А)

ELSE BEGIN D:=SQRT(B*B-4*A*C);

X1:=(-B+SQRT(D))/(2*A);

X2:=(-B-SQRT(D))/(2*A);

WRITELN(‘Корни уравнения: X1=‘,X1,’ X2=‘,X2)

END;

END.

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

Goto метка;

В качестве меток в языке Паскаль разрешается использовать целые числа из диапазона 0…9999 или идентификаторами. Метка может предшествовать любому оператору и отделяться от него двоеточием

Пример:

………….

Goto 99;

……………

99:writeln(‘выполнен оператор’);

…………….

Все метки, прежде чем они используются в программе, должны быть описаны в разделе описания меток. Напомним еще раз одно из основных правил языка программирования Паскаль: в се объекты, используемые в программе, должны быть описаны. Метки в этом смысле не представляют собой исключения. Раздел описания меток начинается со слова LABEL, за которым через запятую перечисляются используемые в программе метки, например: LABEL 5, 99, 100, start, error;

Вопрос об использовании (точнее говоря, о неиспользовании)оператора перехода многократно обсуждался. Ясно, что бессистемное использование оператора перехода вредно, поскольку программа становится малопонятной и, что еще важнее, статический текст программы не отражает динамики ее выполнения. Общая рекомендация по использованию операторов перехода заключается в следующем: их следует использовать в каких-то необычных ситуациях, когда без них трудно обойтись. Чаще всего это возникает при различных нетипичных завершениях циклов. Во всяком случае, их следует стараться избегать.

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

Program summa;

Label 99;

Var number,sigma: real;

Begin

Sigma:=0;

While sigma>=0 do

Begin

Read(number);

If number <0 them goto 99;

Sigma:=sigma+number;

End;

99: write(‘summa chisel=’,sigma);

end.

В данной программе с помощью заголовка цикла While sigma>=0 do моделируется бесконечный цикл (сумма положительных чисел всегда положительна), и выход из цикла осуществляется с помощью оператора перехода.




Поделиться с друзьями:


Дата добавления: 2014-10-23; Просмотров: 312; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.