Главная страница
Навигация по странице:

  • Задания по вариантам

  • Основные теоретические сведения

  • Лабораторная_работа 2. Лабораторная работа 2 Организация ветвлений


    Скачать 21.36 Kb.
    НазваниеЛабораторная работа 2 Организация ветвлений
    Дата23.11.2022
    Размер21.36 Kb.
    Формат файлаdocx
    Имя файлаЛабораторная_работа 2.docx
    ТипЛабораторная работа
    #809069

    ЛАБОРАТОРНАЯ РАБОТА 2

    Организация ветвлений

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

    Что нужно знать для выполнения задания лабораторной работы

    1. Структуру программы, назначение и порядок следования ее отдельных частей.

    2. Оператор присваивания, математические и логические операции, их приоритет.

    3. Операторы ввода-вывода.

    4. Стандартные математические функции С.

    5. Структуры выбора if, if/else, switch.


    Задания по вариантам

    1. Написать программу нахождения суммы большего и меньшего из трех чисел.

    2. Найти max{min(a, b), min(c, d)}

    3. Даны три числа a, b, c. Определить какое из них равно d. Если ни одно не равно d, то найти max(d-a, d-b, d-c).

    4. Составьте программу, которая проверяет, является ли введенное число нечетным, а также делится ли оно на пять.

    5. Создайте программу, которая проверяет, является ли введенный год високосным (это год, номер которого делится на 4, но не делится на 100, а также год, номер которого делится на 400).

    6. Написать программу решения уравнения ax^3+bx=0 для произвольных a,b.

    7. Даны числа x, y, z. Найти значение выражения: u = (max^2(x, y, z) – 2*min(x, y, z)) / (sin 2x+max(x, y, z)/min(x, y, z)).

    8. Заданы размеры А, В прямоугольного отверстия и размеры x, y, z кирпича. Определить, пройдет ли кирпич через отверстие.

    9. Написать программу, которая по заданным трем числам определяет, является ли сумма каких-либо двух из них положительной.

    10. Составьте программу, которая проверяет, является ли введенное число четным, а также делится ли оно на три.

    11. Напишите программу вычисления стоимости покупки с учетом скидки. Скидка в 3% предоставляется, если сумма покупки больше 150000 рублей, в 5% - если сумма больше 200000 рублей..

    12. Найти min {max (a, b), max (c, d)}

    13. Написать программу, которая по заданным трем числам определяет, является ли разность каких-либо двух из них положительной.

    14. Введите номер месяца в году. Выведите на экран сообщение о времени года.

    15. Введите номер дня недели. Выведите на экран название дня.

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

    Конструкция if

    Конструкция if проверяет истинность условия, и если оно истинно, вы-полняет блок инструкций. Этот оператор имеет следующую сокращенную форму:

    if (условие)

    { инструкции;}

    В качестве условия использоваться условное выражение, которое воз-вращает true или false. Если условие возвращает true, то выполняются по-следующие инструкции, которые входят в блок if. Если условие возвращает false, то последующие инструкции не выполняются. Блок инструкций заклю-чается в фигурные скобки.

    Например:

    #include

    int main()

    { int x = 60;

    if(x > 50)

    { std::cout << "x is greater than 50 \n"; }

    if(x < 30)

    { std::cout << "x is less than 30 \n";

    }

    std::cout << "End of Program" << "\n";

    return 0;}

    Здесь определены две условных конструкции if. Они проверят больше или меньше значение переменной x, чем определенное значение. В качестве инструкции в обоих случаях выполняется вывод некоторой строки на кон-соль.

    В первом случае x > 50 условие истинно, так как значение переменной x действительно больше 50, поэтому это условие возвратит true, и, следова-тельно, будут выполнятся инструкции, которые входят в блок if.

    Во втором случае операция отношения x < 30 возвратит false, так как условие ложно, поэтому последующий блок инструкций выполняться не бу-дет. В итоге при запуске программы вывод консоли будет выглядеть следу-ющим образом:

    x greater than 50

    End of Program

    Также мы можем использовать полную форму конструкции if, которая включает оператор else:

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

    инструкция_1

    else

    инструкция_2

    После оператора else мы можем определить набор инструкций, кото-рые выполняются, если условие в операторе if возвращает false. То есть ес-ли условие истинно, выполняются инструкции после оператора if, а если это выражение ложно, то выполняются инструкции после оператора else.

    5 int x = 50;

    if(x > 60)

    std::cout << "x is greater than 60 \n";

    else

    std::cout << "x is less or equal 60 \n";

    В данном случае условие x > 60 ложно, то есть возвращает false, по-этому будет выполняться блок else. И в итоге на консоль будет выведена строка "x is less or equal 60 \n".

    Однако нередко надо обработать не два возможных альтернативных варианта, а гораздо больше. Например, в случае выше можно насчитать три условия: переменная x может быть больше 60, меньше 60 и равна 60. Для проверки альтернативных условий мы можем вводить выражения else if:

    int x = 60;

    if(x > 60)

    { std::cout << "x is greater than 60 \n";

    }

    else if (x < 60)

    { std::cout << "x is less than 60 \n";

    }

    else

    { std::cout << "x is equal 60 \n";}

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

    Если в блоке if или else или else-if необходимо выполнить только одну инструкцию, то фигурные скобки можно опустить:

    int x = 60;

    if(x > 60)

    std::cout << "x is greater than 60 \n";

    else if (x < 60)

    std::cout << "x is less than 60 \n";

    else

    std::cout << "x is equal 60 \n";

    Конструкция switch

    Другую форму организации ветвления программ представляет кон-струкция switch...case. Она имеет следующую форму:

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

    { case константа_1: инструкции_1;

    case константа_2: инструкции_2;

    default: инструкции;}

    После ключевого слова switch в скобках идет сравниваемое выражение. Значение этого выражения последовательно сравнивается со значениями по-сле оператора сase. И если совпадение будет найдено, то будет выполняться определенный блок сase.

    В конце конструкции switch может стоять блок default. Он необязате-лен и выполняется в том случае, если значение после switch не соответствует ни одному из операторов case. Например:

    #include

    int main()

    { int x = 2;

    switch(x) {

    case 1:

    std::cout << "x = 1" << "\n";

    break;

    case 2:

    std::cout << "x = 2" << "\n";

    break;

    case 3:

    std::cout << "x = 3" << "\n";

    break;

    default:

    std::cout << "x is undefined" << "\n";

    break; }

    return 0;}

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

    case 2:

    std::cout << "x = 2" << "\n";

    break;

    После выполнения оператора break произойдет выход из конструкции switch..case, и остальные операторы case будут проигнорированы. Поэтому на консоль будет выведена следующая строка

    x = 2

    Стоит отметить важность использования оператора break. Если мы его не укажем в блоке case, то после этого блока выполнение перейдет к следу-ющему блоку case. Например, уберем из предыдущего примера все опера-торы break:

    #include

    int main()

    { int x = 2;

    switch(x) {

    case 1:

    std::cout << "x = 1" << "\n";

    case 2:

    std::cout << "x = 2" << "\n";

    case 3:

    std::cout << "x = 3" << "\n";

    default:

    std::cout << "x is undefined" << "\n"; }

    return 0;}

    В этом случае опять же будет выполняться оператор case 2:, так как пе-ременная x=2. Однако так как этот блок case не завершается оператором break, то после его завершения будет выполняться набор инструкций по-сле case 3: даже несмотря на то, что переменная x по прежнему равна 2. В итоге мы получим следующий консольный вывод:

    x = 2

    x = 3

    x is undefined


    написать администратору сайта