Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК ОАиП.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.14 Mб
Скачать

3. Решение задач с условием

1. Полная форма записи оператора IF

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

Задача 1.

Вычислить , вывести на экран значение большего вычисленного числа.

Program Lab3_1;

Uses CRT;

Var x, y, z: integer;

max: integer;

Begin

Writeln (‘ Введите x, y, z’);

If x+y+z > x*y*z then max:=x+y+z else max:=x+y+z;

End.

2. Сокращенная форма записи оператора IF

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

Задача 2.

Вычислить значение функции в зависимости от значения аргумента x. Условие задачи представлено:

.

Решение будет следующим:

Program Lab3_2;

Uses CRT;

Var x, y: real;

Begin

ClrScr;

Writeln(‘Введите x’);

Read(x);

If x>0 then y:=x;

If x=0 then y:=0;

If x>0 then y:=-sqr(x);

Writeln (‘Значение х=’, x);

Writeln (‘Значение f(х)=’, y);

Readln;

End.

3. Составной оператор

Если после THEN или ELSE необходимо выполнить действия, описанные несколькими операторами, то эти операторы должны быть заключены в операторные скобки beginend. Такая конструкция называется составным оператором.

  1. If <условие> then

Begin

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

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

……………….

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

End

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

  1. If <условие> then <оператор 1>;

Else

Begin

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

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

……………….

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

end;

  1. If <условие> then

Begin

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

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

……………….

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

End

Else

Begin

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

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

……………….

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

end;

Задача 3.

Определить, попадает ли число х в интервал от -2 до 13.

Мы должны проверить два условия:

1) х должно быть больше -2. Если это условие является истиной, то проверяем второе условие;

2) х должно быть меньше 13. В том случае, когда оба условия выполняются, мы можем сказать, что данное значение х удовлетворяет условию: -2 < x < 13.

Как это записать? Рассмотрим три программы для решения этой задачи.

Program Lab3_3_1; {случай 1}

{попадает ли х в интервал -2 < x < 13}

Uses CRT;

Var x: integer;

Begin

ClsScr;

Writeln (‘Программа вычисляет попадание x в интервал’);

Writeln (‘Введи x’);

Read(x);

If (x>-2) then

If (x<13) then writeln (‘x=’, x, ‘попадает в интервал’)

else writeln (‘x>=13 – не попадает в интервал’, ‘x=’, x)

else writeln (‘x<=-2 – не попадает в интервал’, ‘x=’, x);

ReadKey;

End.

Здесь два оператора IF вложены друг в друга. Вложенность операторов IF не ограничена.

Program Lab3_3_2; {случай 2}

{попадает ли х в интервал -2 < x < 13}

Uses CRT;

Var x: integer;

Begin

ClsScr;

Writeln (‘Программа вычисляет попадание x в интервал’);

Writeln (‘Введи x’);

Read(x);

If (x>-2) and (x<13)

then writeln (‘x=’, x, ‘попадает в интервал’)

else writeln (‘не попадает в интервал, т.к.’, ‘x=’, x)

ReadKey;

End.

Program Lab3_3_3; {случай 3}

{попадает ли х в интервал -2 < x < 13}

Uses CRT;

Var x: integer;

Begin

ClsScr;

Writeln (‘Программа вычисляет попадание x в интервал’);

Writeln (‘Введи x’);

Read(x);

If (x>-2) and (x<13)

then

begin {2}

write (‘x=’, x);

write (‘Попадает в интервал’);

end {2}

else

begin {3}

write (‘x=’, x);

write (‘Не попадает в интервал’);

end {3}

ReadKey;

End.

Дадим некоторые пояснения к программе (случай 3). Из-за наличия двух операторов после THEN (два оператора выводы WRITE) в программе стоят операторные скобки begin…end. Фигурные скобки с номерам {2}, {3} стоят для наглядности, они не являются обязательными, их можно опустить.

Задача 4.

Получить максимальное число из трех целых чисел.

Составим блок-схемы решения задачи:

Program Lab3_4;

Uses CRT;

Var x, y, z: integer;

max: integer;

Begin

ClrScr;

Writeln(‘Введите x, y, z’, x, y, z);

Read(x, y, z);

Max:=x;

If x>y then max:=x else max:=y;

If z>max then max:=z;

Writeln (‘max=’, max);

Readln;

End.

Пояснение к задаче 4:

Сравниваем значения переменных x и y, выбираем из них большее и сохраняем значение большей переменной в переменной с именем max, затем значение переменной z со значением переменной с именем max, после чего опять выбираем большее значение.

Задача 5

Программа «Исторический тренажер» предлагает историческое событие и меню с выбором дат его свершения под номерами. Проверяется правильность ответа. Пользователь должен выбрать правильный ответ и ввести его номер. Ниже представлен вид экрана во время работы программы:

Архитектор Исаакиевского собора:

Доминико Трезини: 1

Огюст Монферран: 2

Карл Росси: 3

Введите номер правильного ответа и нажмите Enter: 3

Вы ошиблись

Архитектор Исаакиевского собора – Огюст Монферран

Program Lab3_5;

Uses CRT;

Var otv: integer;

Begin

ClrScr;

Writeln(‘);

Writeln(‘Доминико Трезини: 1’);

Writeln(‘Огюст Монферран: 2’);

Writeln(‘Карл Росси: 3’);

Writeln;

Writeln(‘Введите номер правильного ответа и нажмите Enter: ’);

Read(otv);

If otv=2 then Writeln(‘Правильно’)

Else

Begin

Writeln(‘Вы ошиблись’);

Writeln(‘Архитектор Исаакиевского собора – Огюст Монферран’);

End;

Readln;

End.

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