Студопедия Главная Случайная страница Обратная связь

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

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




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

Рис. 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. Даны два целых числа, одно в шестнадцатеричной системе счисления, а другое в двоичной системе счисления. Найти произведение этих чисел и обратный код полученного ответа.







Дата добавления: 2014-11-10; просмотров: 667. Нарушение авторских прав


Рекомендуемые страницы:


Studopedia.info - Студопедия - 2014-2020 год . (0.003 сек.) русская версия | украинская версия