Учебные материалы по математике | Алгоритмы с ветвлением | Matematiku5
Вузы по математике Готовые работы по математике Как писать работы по математике Примеры решения задач по математике Решить задачу по математике online

Алгоритмы с ветвлением


Алгоритмы с ветвлением

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

Например, компьютер спрашивает Вашу отметку за четверть по математике и в зависимости от введенной отметки выводит: «Молодец», «Нормально» или «Двоечник».

В таких задачах при решении возникает слово «Если». Если отметка больше 8 (9, 10), то выводим «Молодец», если от 6 до 8 – «Нормально», если меньше 6 – «Двоечник».

Оператор для решения задач со словом «Если» — If (if в переводе с английского – если)

Условный оператор if используется для выбора одного из двух направлений хода программы (последовательности команд, которые должны быть выполнены).

1.  Оператор ветвления

Общий вид:

{полная форма}

if условие Then

begin

команды1; {если условие верно}

end

else

begin

команды2; {если условие ложно}

end;

{краткая форма}

if <условие> Then

begin

команды1; {если условие верно}

end;

(В переводе if – если, then – тогда, else – иначе)

где команды1 — команды, которые выполняются если условие истинно;

команды2 — команды, которые выполняются если условие ложно.

ВНИМАНИЕ! Если в группе <команды1> или в группе <команды2> более одной команды, то данные команды берутся в ‘программные скобки’:

begin

команды;

еnd

2.  Условие в операторе If

Условие – выражение логического типа, которое может принимать одно из двух значений: TRUE (истина – условие выполняется) или FALSE (ложь – условие не выполняется).

В простых условиях используется только один из знаков: <, >, <=, >=, =, <>(не равно).

3.  Порядок выполнения оператора If

1.  Вычисляется значение условия.

2.  Если условие истинно, выполняются команды, следующим за словом then.

Если условие ложно, выполняются команды, следующим за словом else.

3.  Управление передается командам, следующим за условным оператором.

ВНИМАНИЕ! Перед else точка с запятой не ставится.

ВНИМАНИЕ! Полную форму записи удобно применять в тех случаях, когда значение условия принимает только два значения – Да или Нет, в противном случае лучше использовать несколько кратких форм.

4.  Примеры

Пример 1. Компьютер спрашивает Вашу отметку за четверть по математике и в зависимости от введенной отметки выводит: «Молодец!» (от 8 до 10) или «Надо учиться лучше» (от 0 до 7).

program matem;

var x:integer;

begin

write(‘Введите Вашу отметку за четверть по математике:’);

readln(x);

Заметьте, что так как после слов Then и Else только по одной команде, то операторные скобки beginend можно опустить.

 

if x>=8

then

writeln(‘Молодец!’)

else

writeln(‘ Надо учиться лучше’);

end.

Пример 2. С клавиатуры вводится целое число. Если оно кратно трем, возведите его в квадрат, иначе разделите удвоенное произведение данного числа на три.

program uslovie;

var x:integer;

y:real;

begin

write(‘Введите число Х=’);

readln(x);

if х mod 3=0

then

begin

writeln(‘Число Х кратно трем!’);

y:=sqr(x);

end

else

begin

writeln(‘Число Х не кратно трем!’);

y:=2*x/3;

end;

writeln(‘Результат Y=’,y);

end.

Заметьте, как определяется кратность числа. Если Х кратно 3, то остаток отделения числа Х на три равен 0 (x mod 3=0).

5.  Составные условия

Составные условия – это несколько простых условий в скобках, соединенных словами And (и), Or (или).

and — "И" обозначает, что должно выполняться и первое условие и второе;

or — "ИЛИ" обозначает, что достаточно, если выполняется хотя бы одно условие.

Примеры:

(a>b) and (a>c) (x*x+y*y=r*r) or (x=0) (a>b) and (a>c) and (a>d) and (a<n) or (a=m)

ВНИМАНИЕ! Заметьте, что каждое простое условие в составе составного берется в скобки!!!

Простых условий в составе составного может быть сколько угодно!

6.  Примеры:

1. Определите максимальное из трех различных целых чисел.

program maximum;

var a, b,c : integer;

begin

write(‘Введите число a=’);

readln(a);

write(‘Введите число b=’);

readln(b);

write(‘Введите число с=’);

readln(c);

if (a>b) and (a>c) then

writeln(‘максимальным будет: ‘,a);

if (b>a) and (b>c) then

writeln(‘максимальным будет: ‘,b);

if (c>b) and (c>a) then

writeln(‘максимальным будет: ‘,c);

end.

2. Рассчитайте значение функции:

3х+7 , х<-3;

Y= 5х, -3<=х<=5;

9 , 5<х<=9;

3x+7 , x>9.

program funk;

var x, y:real;

begin

write(‘Введите число Х=’);

readln(x);

if (x<-3) or (x>9) then

y:=3*x+7;

Обратите внимание, что в 1 и 4 строке формулы одинаковы (3x+7), поэтому используется
оператор
or.

 

if (x>=-3) and (x<=5) then

y:=5*x;

if (x>5) and (x<=9) then

y:=9;

writeln(‘Результат Y=’,y);

end.

3. С клавиатуры вводятся координаты точки А(х;y). Определите в какой четверти координатной плоскости лежит точка А(х;y).

y

II I

 

x

III IV

program tochka;

var x, y:real;

begin

write(‘Введите координату Х=’);

readln(x);

write(‘Введите координату Y=’);

readln(y);

if (x>0) and (y>0) then

writeln(‘Точка А лежит в I четверти’);

if (x<0) and (y>0) then

writeln(‘Точка А лежит в II четверти’);

if (x<0) and (y<0) then

writeln(‘Точка А лежит в III четверти’);

if (x>0) and (y<0) then

writeln(‘Точка А лежит в IV четверти’);

if (x=0) or (y=0) then

writeln(‘Точка лежит на оси’);

end.

7.  Задачи для самостоятельного решения:

1.  Выведите на экран большее из двух любых чисел, вводимых с клавиатуры.

2.  Что больше: периметр квадрата со стороной А или длина окружности радиуса R?

(Периметр квадрата = 4*А, длина окружности = 2*3.14*R).

3.  В магазине Вам надо заплатить N рублей. Вы подаете продавцу m купюр по k рублей. Определите сколько денег Вам надо добавить или сколько Вам должны дать сдачи.

4. Из пункта А в пункт Б вышел пешеход со скоростью v1 км/ч. Через время t за ним выехал автомобиль со скоростью v2 км/ч. Догонит ли автомобиль пешехода, если расстояние между пунктами А и Б равно S.

5. Рассчитайте значение функции:

5X6 -37 , X<5

Y = 3X+Z, 5<=X<=11

17X+2Z, X>11

6. В соревнованиях по плаванию спортсмены показали следующие различные результаты: Т1, Т2, Т3. Определить номер победившего спортсмена и его результат.

7. Заданы три стороны треугольника. Является ли он равнобедренным? (Треугольник называется равнобедренным, если он содержит хотя бы две равные стороны).

8. Существует ли треугольник с длинами сторон A, B,C? (Треугольник существует, если любая его сторона меньше суммы двух других).

Персональная подборка для шустриков

9.  Дан прямоугольник. Определить, принадлежит ли точка А с координатами (X, Y) данному прямоугольнику.

10.  Определить номер подъезда и этажа по номеру квартиры девятиэтажного дома, считая, что на каждом этаже ровно 4 квартиры, а нумерация квартир начинается с первого подъезда.

11.  Работа светофора для пешеходов запрограммирована следующим образом: в начале каждого часа в течение трех минут горит зеленый сигнал, затем в течение одной минуты — желтый, а затем в течение двух минут горит красный сигнал и снова три минуты – зеленый, одна — желтый и т. д.

Дано время t, означающее время в минутах, прошедшее сначала очередного часа. Определить, сигнал какого цвета горит для пешеходов в этот момент времени.

Тесты

t

цвет

1

2

зеленый

2

4

желтый

3

5

красный

4

15

зеленый

5

10

желтый

12.  Петя, Катя и Сережа делают из бумаги журавликов. Вместе они сделали S журавликов. Сколько журавликов сделал каждый ребенок, если известно, что Петя и Сережа сделали одинаковое количество журавликов, а Катя сделала в два раза больше журавликов, чем Петя и Сережа вместе?

Входные данные

С клавиатуры вводится одно натуральное число S – общее количество сделанных журавликов (S < 106).

Выходные данные

Нужно вывести три числа, разделенных пробелами – количество журавликов, которые сделал каждый ребенок (Петя, Катя и Сережа).

Примеры:

Вход

Выход

1

6

1 4 1

2

24

4 16 4

3

60

10 40 10

Наташа

Автор

Наташа — контент-маркетолог и блогер, но все это не мешает ей оставаться адекватным человеком. Верит во все цвета радуги и не верит в теорию всемирного заговора. Увлекается «нефрохиромантией» и тайно мечтает воссоздать дома Александрийскую библиотеку.

Распродажа дипломных

 Скидка 30% по промокоду Diplom2020