Студопедия — Лабораторная работа № 2. Программирование разветвляющихся алгоритмов
Студопедия Главная Случайная страница Обратная связь

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

Лабораторная работа № 2. Программирование разветвляющихся алгоритмов






 

Цель работы: овладеть практическими навыками программирования вычислительного процесса разветвляющейся структуры.

 

Краткие теоретические сведения

Оператор C++ if позволяет вашим программам осуществлять проверку и затем на основании этой проверки выполнять операторы. Формат оператора if следующий:

if (условие_выполняется) оператор;

Обычно оператор if выполняет проверку, используя операцию сравнения C++ (таблица 2). Если результат проверки является истиной, if выполняет оператор, который следует за ним.

Таблица 2

Операторы сравнения С++

Операция Проверка
== Если два значения равны
! = Если два значения не равны
> Если первое значение больше второго
< Если первое значение меньше второго
> = Если первое значение больше или равно второму
< = Если первое значение меньше или равно второму

 

При использовании оператора if для условной обработки в некоторых случаях, если условие истинно, программе потребуется выполнить один оператор, а в других случаях несколько операторов. Когда программа выполняет только один оператор, следующий за if, такой оператор называется простым оператором:

if (test_score > = 90) cout < < " Поздравляем" < < endl; //-------> Простой оператор

Если программе необходимо выполнить несколько инструкций, когда результат сравнения — истина, операторы должны быть сгруппированы внутри левой и правой фигурных скобок {}. Операторы, которые находятся внутри фигурных скобок, образуют составной оператор, как показано ниже:

if (test_score > = 90)

{ cout < < " Поздравляем" < < endl;

cout < < " Отлично " < < endl; } //-----------------> Составнойоператор

В большинстве случаев вашим программам потребуется указать один набор операторов, выполняющийся, если условие истинно, и второй набор, выполняющийся, если условие ложно. Для указания операторов, которые должны выполняться, когда условие ложно, ваши программы должны использовать оператор else. Ниже приведен формат оператора else:

if (условие_истинно)

оператор;

else
оператор;

Оператор switch вызывает передачу управления на один из нескольких операторов в зависимости от значения выражения.

switch (выражение)

{ [объявление]: [ case константное-выражение1]: [ список-операторов1]

[ case константное-выражение2]: [ список-операторов2]

[ default: [ список операторов ]] }

Схема выполнения оператора switch следующая:

- вычисляется выражение в круглых скобках;

- вычисленные значения последовательно сравниваются с константными выражениями, следующими за ключевыми словами case;

- если одно из константных выражений совпадает со значением выражения, то управление передается на оператор, помеченный соответствующим ключевым словом case;

- если ни одно из константных выражений не равно выражению, то управление передается на оператор, помеченный ключевым словом default, а в случае его отсутствия управление передается на следующий после switch оператор.

Конструкция со словом default может быть не последней в теле оператора switch. Ключевые слова case и default в теле оператора switch существенны только при начальной проверке, когда определяется начальная точка выполнения тела оператора switch. Все операторы между начальным оператором и концом тела выполняются вне зависимости от ключевых слов, если только какой-то из операторов не передаст управления из тела оператора switch. Таким образом, программист должен сам позаботится о выходе из case, если это необходимо. Чаще всего для этого используется оператор break.

 

Задание

1. Изучить возможности языка программирования для реализации:

а) условной и безусловной передачи управления;

б) вычислительного процесса разветвляющейся структуры.

2. Разработать блок-схему алгоритма решения в соответствии с заданием.

3. Составить программу решения задачи.

4. Произвести тестирование программы (число тестов равно числу ветвей вычислительного процесса).

5. Составить отчет о проделанной работе.

 

 

Пример выполнения работы

Условие: Составить программу нахождения корней квадратного уравнения.

Блок схема алгоритма изображена на рисунке 2.

Рис. 2 Блок –схема алгоритма

 

#include < iostream.h>

#include < math.h>

void main(void)

{

setlocale(LC_ALL, " Russian");

float a, b, c, x1, x2;

cout < < " a*x^2+b*x+c\nВведите a\n-> "; cin > > a;

cout < < " Введите b\n-> "; cin > > b;

cout < < " Введите c\n-> "; cin > > c;

x2 = b*b-4*a*c;

if (x2< 0){

cout < < " Решений нет! \n";

}

else if (x2){

x1 = (-1*b + sqrt(x2))/(2*a);

x2 = (-1*b - sqrt(x2))/(2*a);

cout < < " х1 = " < < x1 < < " \nx2 = " < < x2 < < endl;

}

else{

x1 = -1*b/(2*a);

cout < < " x1 = " < < x1 < < endl;

}

system(" pause");

}

Задания для самостоятельного выполнения

1. По заданному значению аргумента вычислить значения функции

В программе определить функцию, возвращающую значение y по заданному значению x.

2. Треугольник задан координатами вершин. Определить, принадлежит ли точка M(x, y) треугольнику.

3. Треугольник задан координатами вершин. Найти уравнение одной медианы.

4. Треугольник задан координатами вершин. Найти уравнение одной биссектрисы.

5. Треугольник задан координатами вершин. Найти уравнение одной высоты.

6. Равнобедренная трапеция задана координатами вершин. Найти точку пересечения боковых сторон.

7. Даны две пересекающиеся прямые и точка M(x, y). Определить, лежит ли точка между прямыми или вне их.

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

9. На плоскости даны две окружности и точка M(x, y). Определить взаимное положение точки относительно этих окружностей.

10. На плоскости два отрезка задаются координатами. Определить, имеют ли эти отрезки общие точки.

11. Дано целое число n < 10000. Определить, делится ли это число на 3.

12. Две точки на плоскости даны координатами. Выдать на экран терминала уравнение прямой линии.

13. Записать условие принадлежности точки с заданными координатами (x, y) заштрихованной части плоскости, изображенной на рисунке 3а).

14. Записать условие принадлежности точки с заданными координатами (x, y) заштрихованной части плоскости, изображенной на рисунке 3б).

 

Рис. 3. Заштрихованные части плоскостей

Контрольные вопросы

1. Каково назначение инструкции if?

2. Какие операторы отношений реализованы в С++?

3. Какого типа должно быть выражение, управляющее инструкцией

switch?

4. Поясните назначение инструкции break.

5. В чем состоит назначение инструкции С++ безусловного перехода?

6. В чем отличие символов = и ==?

7. Как записать на языке C, что число находится в допустимых значениях.

8. В чем состоит назначение ключевого слова else.








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



Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Кишечный шов (Ламбера, Альберта, Шмидена, Матешука) Кишечный шов– это способ соединения кишечной стенки. В основе кишечного шва лежит принцип футлярного строения кишечной стенки...

Принципы резекции желудка по типу Бильрот 1, Бильрот 2; операция Гофмейстера-Финстерера. Гастрэктомия Резекция желудка – удаление части желудка: а) дистальная – удаляют 2/3 желудка б) проксимальная – удаляют 95% желудка. Показания...

Ваготомия. Дренирующие операции Ваготомия – денервация зон желудка, секретирующих соляную кислоту, путем пересечения блуждающих нервов или их ветвей...

Гидравлический расчёт трубопроводов Пример 3.4. Вентиляционная труба d=0,1м (100 мм) имеет длину l=100 м. Определить давление, которое должен развивать вентилятор, если расход воздуха, подаваемый по трубе, . Давление на выходе . Местных сопротивлений по пути не имеется. Температура...

Огоньки» в основной период В основной период смены могут проводиться три вида «огоньков»: «огонек-анализ», тематический «огонек» и «конфликтный» огонек...

Упражнение Джеффа. Это список вопросов или утверждений, отвечая на которые участник может раскрыть свой внутренний мир перед другими участниками и узнать о других участниках больше...

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