Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции+Pascal.doc
Скачиваний:
28
Добавлен:
02.12.2018
Размер:
647.17 Кб
Скачать

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

Оператор If изменяет порядок выполнения операторов в зависимости от истинности или ложности некоторого условия. Существует два варианта оператора:

  1. If <условие> Then <оператор 1> Else <оператор 2>

  2. If <условие> Then <оператор>

Условие может быть простым или сложным. Сложные условия образуются с помощью логических операций AND, OR, NOT. При записи условий могут использоваться все возможные операции отношения. Результат выражения всегда имеет булевский тип (истина или ложь).

В первом варианте, если условие принимает значение "Истина", выполняется оператор 1, если условие - "Ложь", выполняется оператор 2.

Например:

A:=2; B:=8;

If A>B Then WriteLn(‘A>B’) Else WriteLn(‘A<=B’);

Во втором варианте формата, если условие принимает значение "Истина", выполняется оператор, если условие - "Ложь", выполняется оператор, следующий сразу за оператором If.

Например:

A:=2; B:=8: C:=0;

If A>B Then C:=A+B;

C:=C+12;

WriteLn(‘C=’,C);

(Результат выполнения программы – 12).

Один оператор If может входить в состав другого оператора If. В таком случае говорят о вложенности операторов.

Формат:

If <условие> Then

If <условие> Then <оператор>

Else <оператор>;

Например:

If A<20 Then

If A>=15 Then WriteLn(‘А в диапазоне 15 - 20’)

Else (WriteLn(‘А в диапазоне 1 - 14’);

Конструкцию со степенью вложенности более 2 – 3 лучше избегать из-за сложности их анализа.

Примеры:

  1. с простым оператором:

If A>B Then D:=A+B Else D:=A-B;

  1. с составным оператором:

If A<B Then Begin

WriteLn(‘A<B’);

D:=A*B;

End

Else Begin

WriteLn(‘A>=B’);

D:=A/B;

End;

  1. с использованием сложного условия:

If (A=B) And (C=D) Then Begin

WriteLn(‘Норма’);

F:=0;

End

Else Begin

WriteLn(‘Превышение нормы’);

F:=100;

End;

Примеры решения задач

  1. Заданы числа X,Y, Z. Найти минимальное из трех чисел.

Var

Mi, X,Y,Z:Integer;

BEGIN

WriteLn(‘Введите три числа’);

ReadLn(X,Y,Z);

Mi:=X;

If Y<Mi Then Mi:=Y;

If Z<Mi Them Mi:=Z;

WriteLn(‘ Минимальное число=’,Mi);

END.

  1. Поменять местами значения переменных A,B,C т.о., чтобы оказалось A>B>C.

Var

PP,A,B,C:Real;

BEGIN

WriteLn(‘Введите три числа’);

ReadLn(A,B,C);

If A<B Then Begin PP:=A; A:=B; B:=PP; End;

If A<C Then Begin PP:=A; A:=C; C:=PP; End;

If B<C Then Begin PP:=B; B:=C; C:=PP; End;

WriteLn(‘A>B>C’,A,B,C);

END.

  1. Определить, верно ли, что при делении натурального числа A на натуральное число B получится остаток, равный числу C.

Var

A,B,S:Integer;

BEGIN

Repeat

WriteLn(‘Введите два натуральных значения’);

ReadLn(A,B);

Until (A>B) AND (B>C);

WriteLn(‘Введите остаток’);

ReadLn(S);

If A MOD B = S Then

WriteLn(‘остаток от деления А на В=’,S)

Else

WriteLn(‘остаток от деления А на В не =’,S);

END.

4. Даны положительные целые числа A, B, C. Выяснить существует ли треугольник с длинами сторон A, B, C.

USES Crt;

VAR

A, B, C: INTEGER;

BEGIN

ClrScr;

WriteLn('Введите три числа');

ReadLn(A,B,C);

IF (A+B>C) AND (A+C>B) AND (B+C>A) Then

WriteLn('Треугольник построить можно')

Else

WriteLn('Треугольник построить нельзя');

END.

5. Верно ли, что в числе N первая и последняя цифры одинаковы (100<=N<1000).

USES Crt;

LABEL M1;

VAR

N,S,D,E: Integer;

BEGIN

M1: ClrScr;

Write(‘Введите целое трехзначное число ’);

ReadLn(N);

If (N <100) OR (N>=1000) Then GoTo M1;

{Выделение цифры в числе}

S:=N Div100; {сотни}

D:=((N-S*100) Div 10; {десятки}

E:=N mod 10; {единицы}

If S=E Then

WriteLn(‘Первая и последняя цифры одинаковы’)

Else

WriteLn(‘Первая и последняя цифры не одинаковы’);

END.

Примеры для самостоятельного решения:

  1. Определить является ли данное целое число R четным. Дать словесный ответ.

  2. Дано целое положительное число N (10<=N<=99). Выяснить, верно ли, что N равно кубу суммы цифр числа N.

  3. Заданы три числа X, Y, Z. Найти min(XYZ, X+Y+Z).

  4. Даны три целых числа. Выбрать из них те, которые принадлежат интервалу [1,3]

  5. Дано целое положительное число N (N<=1000). Определить сколько цифр в этом числе.

  6. Вычислить max(min(a,b),max(c,d)).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]