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

  • 1.Операторы выбора if

  • Рисунок 1.

  • Рисунок

  • Ход работы

  • Рисунок 3.

  • Рисунок 4.

  • Рисунок 5.

  • Рисунок 9.

  • Рисунок 11. Result “

  • Рисунок 1

  • Рисунок 15.

  • Рисунок 16. Result

  • Практическая. практическая. Практическая работа По объектноориентированном программированием


    Скачать 0.6 Mb.
    НазваниеПрактическая работа По объектноориентированном программированием
    АнкорПрактическая
    Дата29.03.2023
    Размер0.6 Mb.
    Формат файлаdocx
    Имя файлапрактическая.docx
    ТипПрактическая работа
    #1024422

    Липецкий государственный технический университет

    Факультет автоматизации и информатики
    ПРАКТИЧЕСКАЯ РАБОТА

    «По объектно-ориентированном программированием»
    наименование дисциплины




    Выполнил

    _______________
    подпись, дата

    Сапранов А.В
    ФИО

    Группа

    З-УТ-18-1




    Принял








    __________________

    Учёная степень, звание

    __________________

    подпись, дата

    _______________
    ФИО



    Липецк 2021

    Содержание




    Лист

    Введение

    4

    1. Операторы выбора if и else в C++

    5

    2. Цикл for в C++

    12

    3. Циклы while, do while, вложенные циклы

    17

    Заключение.

    22

    Список использованной литературы.


    23


    Введение

    В данной практической работе мы рассмотрим Операторы выбора if и else в C++, Цикл for в C++, Циклы while, dowhile, вложенные циклы, решим практические задание и научимся пользоваться данными операторами и циклами .

    1.Операторы выбора if и else в C++

    Когда программа С++ должна принять решение о том, какое из альтернативных действий следует выполнить, такой выбор обычно реализуется оператором if. Этот оператор имеет две формы: просто if и i f else. Давайте сначала исследуем простой if. Он создан по образцу обычного английского языка, как в выражении "If you have а Captain Cookie card , you get а free cookie" (игра слов на основе созвучности фамилии Кук и слова "cookie" ( печенье) - прим. перев.). Оператор if разрешает программе выполнять оператор или блок операторов при условии истинности проверочно1·0 условия, и пропускает этот оператор или блок, если проверочное условие оценивается как ложное. Таким образом, оператор i f позволяет программе принимать решение относительно того , нужно ли выполнять некоторую часть кода. Синтаксис оператора if подобен while: if ( проверочное -условие ) оператор Истинность выражения проверочное -условие заставляет программу выполнить оператор, который может быть единственным оператором или блоком операторов. Ложность выражения проверочное -условие заставляет программу пропустить оператор (рис. 1 ) . Как и с проверочными условиями циклов, тип проверочного условия if приводится к bool , поэтому ноль трактуется как false, а все, что отличается от нуля - как true. Вся конструкция if рассматривается как одиночный оператор. Чаще всего проверочное -условие - выражение сравнения, вроде тех, которые управляют циклами. Например, предположим, что вы хотите запрограммировать подсчет пробелов во входной строке, а также общее количество символов. Для чтения символов можно использовать оператор cin.get ( char ) внутри цикла while, а затем с помощью оператора if идентифицировать и подсчитывать пробельные символы.



    Рисунок 1.Operatorstructureif

    В то время как оператор if позволяет программе принять решение о том, должен ли выполняться определенный оператор или блок, ifelseпозволяет решить, какой из двух операторов или блоков следует выполнить. Это незаменимое средство для программирования альтернативных действий. Оператор С++ ifelse моделирует простой английский язык, как в предложении "Ifyouhave а CaptainCookiecad, youget а CookiePlusPlus, elseyoujustget а Cookied'Ordinaire" (непереводимая игра слов с применением местных идиоматических выражений - прим. перев. ). Оператор if else имеет следующую общую форму:

    if ( проверочное -условие )

    опера тор!

    else

    оператор2

    Если проверочное -условие равно true или не ноль, то программа выполняет

    операторl и пропускает оператор2. В противном случае, когда проверочное -условие равно falseили ноль, программа выполняет оператор2 и пропускает операторl. Потому следующий фрагмент кода печатает первое сообщение, если answer

    равно 1492, и второе - в противном случае:

    if (answer == 1492)

    cout < < " That ' s right ! \n ";

    else

    cout << " You 'd better review Chapter 1 again . \n ";

    Каждый оператор может быть либо отдельным оператором, либо блоком операторов, заключенным в фигурные скобки (рис. 2). Вся конструкция ifelse трактуется синтаксически как одиночный оператор. Например, предположим, что вы хотите преобразовать входящий текст, шифруя буквы и оставляя нетронутыми символы новой строки. Это значит, что нужно заставить программу выполнять одно действие для символов новой строки и другое – для всех прочих символов.


    Рисунок 2.Operator structure if else
    Задание 1.

    Задание: Пользователь вводит число от 1 до 9999 (сумму выдачи в банкомате). Необходимо вывести на экран словами введенную сумму и в конце написать название валюты с правильным окончанием. Например: 7431 – семь тысяч четыреста тридцать один доллар, 2149 – две тысячи сто сорок девять долларов, 15 – пятнадцать долларов, 3 – три доллара. Для решения этой задачи вам необходимо будет применять оператор % (остаток от деления).

    Ход работы:

    Для начала мы выбираем язык, в нашем случаи русский (rus),сделаем так что бы значение вводились через нажатие “enter” потом нужно проверить входит ли введенное число в диапазон данных , для этого вводим

    if (enterNumber <= 0 ||enterNumber > 9999)

    cout << "Число не входит в диапазон от 1 до 9999!\n";

    else // если да - приступаем к выводу на экран.

    Чтобы добраться до первой цифры в введенном числе (если оно четырехзначное), надо это число поделить на 1000 и взять от него остаток от деления на 10например 8 888 / 1000 = 8 (888 тысячные отбрасываются т.к. вв еденное число типа int), далее 8 % 10 = 8 так же не ошибитесь с оператором == (равно) (рис.3)



    Рисунок 3.task code 1

    Прописываем значение в диапазоне (0-9999) рисунок 3,4



    Рисунок 4.task code
    Вводим значение “55” в открывшимся окне (рис. 5)



    Рисунок 5. input
    Полученный результат увидим на (рис.6)



    Рисунок 6. Result

    Если введу значение больше “9999”, например, “10000” то он напишет, что число в не диапазон (рис. 7)



    Рисунок 7. Result
    Полный код программы .

    OnlineC++ Compiler.

    Code, Compile, Run and Debug C++ program online.

    Write your code in this editor and press "Run" button to compile and execute it.

    *******************************************************************************/

    #include

    using namespace std;

    int main()

    {

    setlocale(LC_ALL, "rus");

    int enterNumber = 0;

    cout << "Введите целое число (от 1 до 9999): ";

    cin >> enterNumber;

    // проверяем входит ли введенное число в заданный диапазон

    if (enterNumber <= 0 ||enterNumber > 9999)

    cout << "Число не входит в диапазон от 1 до 9999!\n";

    else // если да - приступаем к выводу на экран

    {

    cout << "\nВыввели: ";

    if ((enterNumber / 1000) % 10 == 1) cout << "Однатысяча ";

    else if ((enterNumber / 1000) % 10 == 2) cout << "Дветысячи ";

    else if ((enterNumber / 1000) % 10 == 3) cout << "Тритысячи ";

    else if ((enterNumber / 1000) % 10 == 4) cout << "Четыретысячи ";

    else if ((enterNumber / 1000) % 10 == 5) cout << "Пятьтысяч ";

    else if ((enterNumber / 1000) % 10 == 6) cout << "Шестьтысяч ";

    else if ((enterNumber / 1000) % 10 == 7) cout << "Семьтысяч ";

    else if ((enterNumber / 1000) % 10 == 8) cout << "Восемьтысяч ";

    else if ((enterNumber / 1000) % 10 == 9) cout << "Девятьтысяч ";

    if ((enterNumber / 100) % 10 == 1) cout << "сто ";

    else if ((enterNumber / 100) % 10 == 2) cout << "двести ";

    else if ((enterNumber / 100) % 10 == 3) cout << "триста ";

    else if ((enterNumber / 100) % 10 == 4) cout << "четыреста ";

    else if ((enterNumber / 100) % 10 == 5) cout << "пятьсот ";

    else if ((enterNumber / 100) % 10 == 6) cout << "шестьсот ";

    else if ((enterNumber / 100) % 10 == 7) cout << "семьсот ";

    else if ((enterNumber / 100) % 10 == 8) cout << "восемьсот ";

    else if ((enterNumber / 100) % 10 == 9) cout << "девятьсот ";

    if ((enterNumber / 10) % 10 == 1)

    {

    if (enterNumber % 10 == 0) cout << "десятьдолларов";

    else if (enterNumber % 10 == 1) cout << "одинадцатьдолларов";

    else if (enterNumber % 10 == 2) cout << "двенадцатьдолларов";

    else if (enterNumber % 10 == 3) cout << "тринадцатьдолларов";

    else if (enterNumber % 10 == 4) cout << "четырнадцатьдолларов";

    else if (enterNumber % 10 == 5) cout << "пятнадцатьдолларов";

    else if (enterNumber % 10 == 6) cout << "шестнадцатьдолларов";

    else if (enterNumber % 10 == 7) cout << "семнадцатьдолларов";

    else if (enterNumber % 10 == 8) cout << "восемнадцатьдолларов";

    else if (enterNumber % 10 == 9) cout << "девятнадцатьдолларов";

    }

    if ((enterNumber / 10) % 10 == 2) cout << "двадцать ";

    else if ((enterNumber / 10) % 10 == 3) cout << "тридцать ";

    else if ((enterNumber / 10) % 10 == 4) cout << "сорок ";

    else if ((enterNumber / 10) % 10 == 5) cout << "пятьдесят ";

    else if ((enterNumber / 10) % 10 == 6) cout << "шестьдесят ";

    else if ((enterNumber / 10) % 10 == 7) cout << "семьдесят ";

    else if ((enterNumber / 10) % 10 == 8) cout << "восемьдесят ";

    else if ((enterNumber / 10) % 10 == 9) cout << "девяносто ";

    if ((enterNumber / 10) % 10 != 1)

    {

    if (enterNumber % 10 == 0) cout << "долларов";

    else if (enterNumber % 10 == 1) cout << "одиндоллар";

    else if (enterNumber % 10 == 2) cout << "двадоллара ";

    else if (enterNumber % 10 == 3) cout << "тридоллара ";

    else if (enterNumber % 10 == 4) cout << "четыредоллара ";

    else if (enterNumber % 10 == 5) cout << "пятьдолларов ";

    else if (enterNumber % 10 == 6) cout << "шестьдолларов ";

    else if (enterNumber % 10 == 7) cout << "семьдолларов ";

    else if (enterNumber % 10 == 8) cout << "восемьдолларов ";

    else cout << "девятьдолларов ";

    }

    }

    cout << endl << endl;

    return 0;

    }

    2. Цикл for в C++

    Части цикла for Цикл for представляет собой средство пошагового выполнения повторяющихся действий. Давайте рассмотрим более подробно, как он устроен. Обычно части цикла for выполняют следующие шаги.

    1. Установка начального значения.

    2. Выполнение проверки условия для продолжения цикла.

    3. Выполнение действий цикла.

    4. Обновление значения (значений) , используемых в проверочном условии.

    В структуре цикла С++ эти элементы расположены таким образом, чтобы их можно было охватить одним взглядом. Инициализация, проверка и обновление составляют три части управляющего раздела, заключенного в круглые скобки. Каждая часть является выражением, отделяемым от других частей точкой с запятой. Оператор, следующий за управляющим разделом, называется телом цикла, и он выполняется до тех пор, пока проверочное условие остается истинным: for (инициализация; проверочное выражение ; обновляющее выражение ) тело В синтаксисе С++ полный оператор for считается одним оператором, несмотря на то, что он может заключать в своем теле один или более других операторов. (При наличии нескольких операторов в теле цикла они должны быть помещены в блок, как будет описано ниже.) Цикл выполняет инициализацию только однажды. Как правило, программы используют это выражение для установки переменной в некоторое начальное значение, а потом применяют эту переменную в качестве счетчика цикла. Проверочное выражение определяет, должно ли выполняться тело цикла. Обычно это выражение представляет собой выражение сравнения - т.е. выражение, сравнивающее два значения. Если проверка проходит успешно (проверочное выражение истинно) , программа выполняет тело цикла. На самом деле в С++ проверочные выражения не ограничиваются только сравнениями, дающими в результате true или false . Здесь можно использовать любое выражение, и С++ приведет его к типу bool . Таким образом, выражение, возвращающее, преобразуется в булевское значение false , и цикл завершается. Если выражение оценивается как ненулевое, оно приводится к булевскому значению true, и цикл продолжается.

    Обновляющее выражение вычисляется в конце цикла, после того, как выполнено тело цикла. Обычно оно используется для увеличения или уменьшения значения переменной, управляющей количеством шагов цикла. Однако оно может быть любым допустимым выражением С++, как и все остальные управляющие выражения. Это обеспечивает циклу for гораздо более широкие возможности , чем простой отсчет. Тело цикла for состоит из одного оператора. На (рис. 8) показана блок-схема цикла for.



    Рисунок 8.Operator structure for

    Оператор цикла for в чем-то похож на вызов функции, потому что использует имя, за которым следует пара скобок. Однако статус for как ключевого слова С++ предотвращает восприятие его компилятором как функции. Это также предохраняет вас от попыток назвать функцию именем for.

    В С++ принят стиль помещения пробелов между for и последующими скобками, а также пропуск пробела между именем функции и следующими за ним скобками: for (i = 6; i < 10; i ++) sma rt_function (i) ; Другие управляющие операторы, такие как if и while, трактуются аналогично for. Это служит для визуального подчеркивания разницы между управляющим оператором и вызовом функции. К тому же общепринятая практика заключается в снабжении тела функции отступом, чтобы выделить его визуально
    Задание 2.

    Написать программу, которая будет показывать на экран квадрат числа, введенного пользователем. Пользователь должен сам решать – выйти из программы или продолжить ввод. (Подсказка – необходимо запустить бесконечный цикл, в котором предусмотреть его прерывание, при наступлении определённого условия).

    Ход работы:

    Для начала мы выбираем язык, в нашем случаи русский (rus), для возведение числа в квадрат мы используем команду cout << "Квадрат " << digit << " = " << digit * digit; для продолжение цикла обозначим буквой yдля прерывание цикла “Ncout << "\nПродолжить ввод чисел - Y, Выйти - N: "; Сделаем что бы могли продолжать цикл в верхнем или нижнем регистре Y и y if (exit != 'y' && exit != 'Y') (рис.9)



    Рисунок 9.task code

    Запускаем программу и вводим значение 5 (рис 10)



    Рисунок 10. Result

    Для продолжение цикла нажмем y и введем новое значение “7” (рис.11)



    Рисунок 11. Result “Y

    Для прерывание цикла введем N (рис.12)



    Рисунок 12. Result “N
    Полный код программы .
    Online C++ Compiler.

    Code, Compile, Run and Debug C++ program online.

    Write your code in this editor and press "Run" button to compile and execute it.

    #include

    using namespace std;

    int main()

    {

    setlocale(LC_ALL, "rus");

    int digit = 0; // число для расчета

    char exit = 'y'; // для выхода или продолжения

    for (;;)

    {

    cout << "Введите число: ";

    cin >> digit;

    cout << "Квадрат " << digit << " = " << digit * digit;

    cout << "\nПродолжить ввод чисел - Y, Выйти - N: ";

    cin >> exit; // выбор пользователя

    if (exit != 'y' && exit != 'Y')

    break; // прервать цикл

    }

    return 0;

    }
    3.Циклы while, do while, вложенные циклы

    Цикл while - это цикл for, у которого удалены инициализирующая и обновляющая части; в нем имеется только проверочное условие и тело: while ( проверочное_условие ) тело .Сначала программа вычисляет выражение проверочное_условие в скобках. Если выражение дает в результате true , программа выполняет оператор (или операторы) , содержащийся в теле цикла. Как и в случае с циклом for, тело состоит и з единственного оператора либо блока, определенного фигурными скобками. После того, как завершено выполнение тела, программа возвращается к проверочному условию и заново вычисляет его. Если условие возвращает ненулевое значение, программа снова выполняет тело. Этот цикл проверки и выполнения продолжается до тех пор, пока проверочное условие не вернет false (рис. 13).



    Рисунок 13.Operator structure while
    Понятно, что если вы хотите в конечном итоге прервать цикл, то в теле цикла должно происходить нечто такое, что повлияет на выражение проверочного условия. Например, цикл может увеличивать значение переменной, используемой в проверочном условии , либо читать новое значение, вводимое с клавиатуры. Подобно for, цикл while является циклом с входным условием. То есть, если проверочное условие оценивается как false в самом начале, то программа ни разу не выполнит тело цикла.

    Цикл do while К этому моменту вы ознакомились с двумя циклами - for и while. Третьим циклом в С++ является do while. Он отличается от двух других тем, что осуществляет проверку на выходе. Это значит, что такой цикл вида "кто его знает" сначала выполнит свое тело и только потом оценит проверочное условие, чтобы узнать, нужно ли продолжать дальше. Если условие оценивается как false, цикл завершается; в противном случае выполняется новый шаг с последующей проверкой условия. Такой цикл всегда выполняется, как минимум, один раз, потому что поток управления программы проходит через его тело до того, как достигает проверочного условия. Синтаксис цикла do while показан ниже: do тело while ( проверочное -выражение );

    Часть тело может быть единственным оператором либо блоком операторов, заключенным в фигурные скобки. На рис. 14 показан поток управления в do while. Обычно цикл с проверкой на входе - лучший выбор, нежели цикл с проверкой на выходе, т.к. проверка выполняется до его запуска.
    Задание 3.

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



    Рисунок 14.Operator structure do while
    Ход работы:

    Для начала мы выбираем язык, в нашем случаи русский (rus) , ввод для начала и конца диапазона int start = 0; // начало д-на int finish = 0; // конец д-на , суммируем только не честные числа для этого пропишем команду int sumUneven = 0; Для накопление суммы используем sumUneven += i; // накапливать их сумму (рис 15)



    Рисунок 15.task code

    Вводим начало диапазона от “0” до “20” и он выведем результат суммы нечетных чисел в данном диапазоне (рис.16)



    Рисунок 16. Result

    Код программы

    Online C++ Compiler.

    Code, Compile, Run and Debug C++ program online.

    Write your code in this editor and press "Run" button to compile and execute it.

    #include

    using namespace std;

    int main()

    {

    setlocale(LC_ALL, "rus");

    int start = 0; // начало д-на

    int finish = 0; // конец д-на

    int sumUneven = 0;

    cout << "Введите начало диапазона: ";

    cin >> start;

    cout << "Введите конец диапазона: ";

    cin >> finish;

    int i = start; // управляющаяпеременная

    while (i <= finish)

    {

    if (i % 2 != 0)

    {

    cout << i << " "; // показать нечетные через пробел

    sumUneven += i; // накапливать их сумму

    }

    i++;

    }

    cout << "\nСумма нечетных чисел в диапазоне от " << start << " по " << finish;

    cout << " = " << sumUneven << endl << endl;

    return 0;

    }
    Заключение.

    В этой работе научились работать с Операторы выбора if и else в C++, Цикл for в C++, Циклы while, dowhile, вложенные циклы, решили практические задание , закрепили навыки работы на C++, узнали как работают операторы и как их применять .

    Список использованных источников

    1 .https://purecodecpp.com/archives/433

    2 учебного пособия "Стивен Прата” - Язык программирования C++"




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