Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Общие теоретические сведения






Разветвляющимся является алгоритм, если последовательность выполнения шагов решения задачи изменяется в зависимости от некоторых условий. Условие – это логическое выражение, принимающее одно из двух значений: «Да» – если условие верно и «Нет» – если условие неверно, – и которое может содержать логические операции и знаки отношений.

Рис. 1 иллюстрирует структурные схемы разветвляющихся алгоритмов укороченной (а) и полной (б) формы.

а) б)

 

Рисунок 1 – Схемы разветвляющихся алгоритмов

 

Разветвляющиеся алгоритмы оформляются операторами полной или укороченной формы (табл. 1). В условном операторевыполняется всегда одна из веток («Да» при истинном условии или «Нет», если оно ложно), и никогда не выполняются обе вместе.

 

Таблица 1 – Формы записи операторов условного перехода

Форма записи Структура оператора
краткая if (условие) { операторы-Да }
полная if (условие) { операторы-Да; } else { операторы-Нет}

 

К условным операторам относится оператор выбора или оператор переключатель (табл. 2), который замечателен тем, что может заменить вложенные операторы условия.

 

Таблица 2 – Оператор выбора (или оператор-переключатель)

Структура оператора
switch выражение{ case значение1: { операторы} ........... case значение N: { операторы} default { операторы} }

 

Выражение это целочисленная или строковая переменная, значение которой определяет ветвь. Каждая ветвь, определяемая case, может заканчиваться оператором прерывания break. Можно объединять ветви, через список значений, перечисляемые через запятую (или в Pascal – в виде интервала через две точки). Например:

 

switch (f +k) { case 0: { k ++; break; } case 3, 8: { f --; k --; break; } case 9: case 11: { d = ++ f; break; } default d = -- f; }

Пример. Дано целое число a. Узнать, четное ли оно.

Текстуальная форма алгоритма задачи.

1. Ввести число а с клавиатуры в ЭВМ.

2. Для определения четности можно воспользоваться известным в математике способом деления числа а на 2, если остаток равен нулю, то число – четное.

3. Выдать на экран дисплея «Введенное число четное» – если число а четное, или выдать «Введенное число нечетное» – если число а нечетное.

 

На рис. 2 представлена схема алгоритма этой задачи и описана программа.

Рис. 2. Схема алгоритма   # include < iostream.h > # include < math.h > main () { int a; cout < < ” Введите целое число а: ”; cin > > а; if (a % 2 == 0) cout < < ”Число” < < a < < ” -четное” < < endl; else cout < < ”Число”< < a < < ” -нечетное” < < endl; }

Варианты заданий

Задание. Составить алгоритм, написать программу на языке программирования С ++, отладить программу на ПК. Написать тестпрограммы по всем ветвям. Все результаты предъявить преподавателю. Подготовить ответы на контрольные вопросы.

1. Определить, верно ли, что при делении неотрицательного целого числа а на положительное число b получается остаток, равный одному из двух заданных чисел c или d.

2. Дано натуральное четырехзначное число n. Выяснить, различны ли все четыре цифры этого числа. Например, в числе 3678 все цифры различны, в числе 0230 – нет.

3. Имеются стол прямоугольной формы с размерами a × b (a и b – целые числа, a > b) и кости домино с размерами c × d × e (c, d и e – целые числа, c > d > e). Найти вариант размещения на столе наибольшего количества костей. Все размещаемые кости должны лежать на одной и той же грани в один ярус без свешивания со стола. Все ребра костей домино должны быть параллельны или перпендикулярны каждой стороне стола.

4. Дано целое число k (1 ≤ k ≤ 365). Определить, каким будет k -й день года: выходным (суббота и воскресенье) или рабочим, если 1 января – понедельник.

5. Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них и длины их сторон. Один из прямоугольников назовем первым, другой – вторым. Определить, принадлежат ли все точки первого прямоугольника второму.

6. Даны вещественные положительные числа a, b, c, d. Выяснить, можно ли прямоугольник со сторонами a, b уместить внутри прямоугольника со сторонами c и d так, чтобы каждая из сторон была параллельна или перпендикулярна каждой стороне второго прямоугольника.

7. Вывести на экран номер четверти координатной плоскости, которой принадлежит точка с координатами (x, y), при условии, что x ≠ 0 и y ≠ 0.

8. Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них и длины их сторон. Один из прямоугольников назовем первым, другой – вторым. Определить, принадлежат ли все точки одного из прямоугольников другому.

9. Даны вещественные положительные числа a, b, c, x, y. Выяснить, пройдет ли кирпич с ребрами a, b, c в прямоугольное отверстие со сторонами x и y. Просовывать кирпич в отверстие разрешается только так, чтобы каждое из его ребер было параллельно или перпендикулярно каждой из сторон отверстия.

10. Дано четырехзначное число. Определить, входят ли в него цифры 3, 6 или 9.

11. Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них и длины их сторон. Один из прямоугольников назовем первым, другой – вторым. Определить, пересекаются ли эти прямоугольники.

12. Дано четырехзначное натуральное число n. Выяснить, является ли оно палиндромом («перевертышем»), как, например, числа 7777, 8338, 0330 и т.п. (палиндромом называется число, десятичная запись которого читается одинаково слева направо и справа налево).

13. Даны два двухзначных числа. Вычислить их сумму. Выяснить, является ли сумма совершенным числом (натуральное число называется совершенным, если оно равно сумме своих делителей, включая 1 и исключая это самое число, например, число 6 совершенное 6=1+2+3).

14. Даны два целых числа, одно в шестнадцатеричной системе счисления, а другое в двоичной системе счисления. Узнать, равнозначные ли эти числа. Например, числа А и 101 – не равнозначны, а числа F и 1111 – равнозначны.

15. Даны два целых числа, одно в шестнадцатеричной системе счисления, а другое в двоичной системе счисления. Найти произведение этих чисел и обратный код полученного ответа.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.