Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Методика и порядок выполнения работыСтр 1 из 2Следующая ⇒
Лабораторная работа 2 С/C++: программы разветвляющейся структуры Цель и содержание работы: Приобретение навыков разработки алгоритмов и программ разветвляющейся структуры с использованием условного оператора и оператора множественного выбора. Теоретическое обоснование Алгоритм разветвляющейся структуры – это алгоритм, в котором вычислительный процесс осуществляется по одному из нескольких возможных вариантов (ветвей), в зависимости от выполнения некоторого условия или проверки указанного значения. Программа разветвляющейся структуры реализует такой алгоритм. Если ветвей две, то используется условный оператор if. Если выбор множественный, то используются переключатель switch. Условный оператор if имеет две формы: полную и сокращенную: Формат полного оператора: if (условие) оператор1; else оператор2; Формат сокращенного оператора: if (условие) оператор1; Полный оператор ifработает следующим образом: вычисляется и проверяется условие; если логическое выражение, выступающее в качестве условия, принимает значение true (истина), то выполняется оператор1, если результат проверки условия false (ложь), то выполняется оператор2, следующий за словом else. В сокращенной форме при ложности условия исполняется оператор, следующий за условным оператором. Для записи условия используются операции отношения и логические операции. Пример 2.1. Условие x≠b на языке С++ имеет вид: (x< >b). Пример 2.2. Сложное двойное условие a≤x<b на языке С++ имеет вид: ((x>=a) &&(x< b)). Пример 2.3. Сложное двойное условие x≤c или x≥d на языке С++ имеет вид: ((x<=c)|(x>=d)). В качестве оператор1 и оператор2 могут выступать один простой оператор или составной оператор. Составной оператор применяется в тех случаях, когда синтаксис языка С, С++ допускает использование только одного оператора, а семантика программы требует выполнения нескольких действий. В этом случае несколько операторов заключаются в операторные скобки {}, образуя составной оператор. Формат оператора: { оператор_ 1; оператор _2; … оператор_ n;} Программа разветвляющейся структуры может состоять из одного или нескольких условных операторов. Условные операторы могут быть вложенными друг в друга, такое ветвление называется вложенным ветвлением. Пример 2.4.Даны два числа А и В. Определить максимальное среди них. Можно применить два варианта использования if: 1) max=a; if (b>max) max=b; // краткий if 2) if (a>b) max=a; else max=b; // полный if Пример 2.5. Даны два числа А и В. Найти среднеарифметическое отрицательных среди них чисел. Фрагмент программы на языке С, С++ имеет вид: sum=0; //обнуление начальных значений kol=0; if (a<0) { sum+=a; // вычисление суммы отрицательных чисел kol++;} // определение количества отрицательных чисел if (b<0) { sum+=b; kol++;} Sr=sum/kol; // вычисление среднего арифметического
В случае множественного выбора в качестве управляющей структуры используется оператор переключатель switch.Эта структура позволяет переходить на одну из множества ветвей в зависимости от значения заданного выражения. Ее особенность состоит в том, что выбор решения здесь осуществляется не в зависимости от истинности или ложности условия, а является вычислимым. Оператор выбора позволяет заменить несколько условных операторов (в силу этого его ещё называют оператором множественного ветвления). Формат оператора: switch (выражение) { case константное_выражение_1 : {операторы_1; break;} case константное_выражение_2 : {операторы_2; break;} . . . . . . . . . . . . . . . . . . . . . case константное_выражение_n : {операторы_n; break;} default: операторы;} Выражение и константные_выражения должны быть только целого типа. Каждое константное_выражение уникально, т.е. входит только в одну из ветвей переключателя. Работа оператора начинается с вычисления выражения. Если значение вычисленного выражения совпадает с одним из константных_выражений, например, в n-ой ветви, будет выполняться оператор n. Далее оператор break производит переход к следующему после switch оператору оператор break служат Если значение выражения не совпадает ни с одним из константных_выражений, выполняется операторы ветви default. При Пример 2.6. С клавиатуры вводится символ S (тип char). Определить, какой это символ: цифра или знак арифметической операции (+,-,*, /). switch (S) { case ‘0’: case ‘1’: case ‘2’: case ‘3’: case ‘4’: case ‘5’: case ‘6’: case ‘7’: case ‘8’: case ‘9’: { cout <<″цифра″; break;} case ‘+’: case ‘-’: case ‘*’: case ‘/’: { cout <<″знак операции″; break;} default: cout <<″символ не определен″; }
Поскольку переменная S имеет символьный тип значения константных_выражений заключены в апострофы. Методика и порядок выполнения работы 1. Изучите теоретическое обоснование и примеры. 2. Выполните контрольный пример: Для любого x вычислить значение функции, если 1, при x ≤ 1 Y= x ² , при 1 < x < 5 √x , при x ≥ 5 # include <iostream.h> # include <math.h> #include< stdlib.h> float x,y; main(){ cout <<"\n Введите x "; cin >> x; if (x<=1) y=1; else if (x<5) y=x*x; else y=sqrt(x)+1; cout <<“ x=”<<x<<” y=”<<y; system("PAUSE"); return 0;} Запустите и выполните программу с разными исходными данными. 3. Составьте блок–схему решения задачи из таблицы 2.1 (согласно варианту). Напишите программу на языке С++ с использованием условного оператора. Отладьте и выполните программу с разными исходными данными. 4. Выполните контрольный пример: С клавиатуры вводится номер дня недели. Вывести соответствующее название дня недели.
#include<iostream.h> #include< stdlib.h> int num; main (){ cout <<"\n Введите номер дня"; cin >> num; cout <<"\n Это день: "; switch (num) { case 1:{ cout <<"понедельник \n"; break;} case 2:{cout<<"вторник \n"; break;} case 3: {cout<<" среда \n"; break;} case 4:{ cout<<"четверг \n"; break;} case 5:{cout<<"пятница \n"; break;} case 6:{:cout<<"суббота \n"; break;} case 7:{:cout<<"воскресенье \n"; break;} default : cout <<"\n Это не день недели !!! ";} system("PAUSE"); return 0; } 5. Составьте блок–схему решения задачи из таблицы 2.2 (согласно варианту). Напишите программу на языке С++ с использованием оператора switch. Отладьте и выполните программу с разными исходными данными. Таблица 2.1 – Таблица вариантов задания 1.
Таблица 2.2 – Таблица вариантов задания 2. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2018-05-10; просмотров: 267. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |