русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2014-09-02; просмотров: 1052; Нарушение авторских прав


Кроме перечисленных операторов существуют еще условные операторы, имеющие вид:

IF условие THEN оператор1 ELSE оператор2

Каждый условный оператор осуществляет выбор одной из альтернатив. Этот выбор определяется значением условия, которое стоит после разделителя IF. Условие может принимать два значения: истина или ложь. Если значение условия истина, то выполняется оператор1, а вслед за ним оператор, стоящий за всем условным оператором. Если значение условия ложь, то выполняется оператор2, а вслед за ним оператор, стоящий за всем условным оператором. Таким образом, в результате выполнения условного оператора будет выбран и выполнен один из операторов, стоящих внутри условного оператора. В языке Паскаль разрешается использовать сокращенную форму условного оператора, имеющего вид:

IF условие THEN оператор.

 

В этой форме условного оператора отсутствует часть ELSE. Соответственно модифицируется и правило его выполнения. Если значение условия есть истина, то выполняется оператор, стоящий внутри условного оператора. В противном случае весь условный оператор пропускается.

Пример. Если Х = 1, сделать Х = 2; если Х = 2, сделать Х = 1.

IF X = 1 THEN X := 2;

IF X = 2 THEN X := 1;

Это неверно при Х=1. Правильное решение:

IF X = 1 THEN X := 2 ELSE

IF X :=2 THEN X :=1;

Процедура вывода WRITELN выдает на печать сообщения. Оно заключается в круглые скобки, а его текст - в апострофы.

После разделителей THEN и ELSE может стоять один оператор. Для того чтобы обойти синтаксическое ограничение, имеется составной оператор, служащий средством группирования других операторов. Составной оператор - это один оператор. Поэтому, если после любого из разделителей THEN или ELSE по сути решения задачи требуется записать более одного оператора, то необходимо использовать составной оператор. Он начинается со слова BEGIN и заканчивается словом END. Между ними может располагаться любая последовательность операторов.



Для ввода и вывода данных предусмотрены процедуры:

READ

READLN

WRITE

WRITELN

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

Процедура READLN (А) считывает данные из одной строки и обеспечивает переход к началу следующей строки. Процедура READLN без параметров осуществляет переход к началу следующей строки.

READLN(A, B, C, D); эквивалентно

READ(A); READ(B); READ(C); READ(D); READLN;

Для вывода данных используются процедуры WRITE и WRITELN. Различие между ними такое же, как между READ и READLN. WRITELN начинает сообщение с новой строки, а WRITE помещает в выходную запись сообщения друг за другом.

Пример. X = 5, Y = 7. Вывести эти значения.

WRITЕLN (X, Y); Получим: 57 (два значения без пробела между ними).

WRITELN (‘X=‘,X, ‘Y=‘,Y); Получим: X=5Y=7 (тоже без пробела).

Для того чтобы сделать результаты работы программы более наглядными, в качестве параметров процедур WRITE и WRITELN используются строки, заключенные в апострофы. Последовательность символов, заключенная вапострофы, просто копируется на экран.

Существует еще одна возможность управлять выводом: после переменной через двоеточие указана ширина поля, которое отводится для представления числа.

WRITELN(‘X=‘, X:4,’ Y=‘, Y:4); X= 5 Y= 7

Под представление Х и Y в этом случае отводиться по четыре позиции. Если одно из значений не помещается в указанное поле, то ошибки не возникает. Число все равно будет напечатано, причем под его представление будет отведено столько позиций, сколько необходимо, чтобы представить его полностью. Часто ширина поля не указывается. Тогда по умолчанию отводится некоторое число позиций, в которых и размещается выводимое число.

WRITELN(X:7:3)

Пример. Максимальное из трех чисел уменьшить на 0.3

 

IF Y > MAX THEN MAX:=Y

ELSE IF Z>MAX THEN MAX:=Z;

MAX:=MAX-0.3

Задача. Вычислить Y=X*X+1, если X<0

Y=X-2.1, если X>p/2

SINX, если 0<=X=<p/2

Задание. Найти ошибки, если они есть:

а) IF A<B THEN A:=

б) IF X>0 THEN S:=

в) IF K<>M THEN K:=M;

г) IF 5 then S:=S+5;

Пример. Какие значения будут иметь переменные А и В в результате выполнения фрагмента программы?

IF A<B THEN A:= B

 

Дано: А=0.5, В = 1.7

Ответ: А=0.5, В=0.5

Задача. Какая задача решается?

IF X<Y THEN MAX:=Y ELSE MAX:=X;

Пример. Выполнить с помощью условного оператора: меньшее из двух чисел Х и Y заменить нулями, а в случае их равенства - заменить нулями оба.

IF X=Y THEN BEGIN X:=0;

Y:=0;

END

ELSE IF X < Y THEN X:=0 ELSE Y:=0;

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

Решить квадратное уравнение АХ*Х + ВХ + С = 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:=SWRT(B*B-4*A*C);

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

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

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

END;

END.

 



<== предыдущая лекция | следующая лекция ==>
Оператор присваивания | Оперетор безусловного перехода


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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