Программирование алгоритмов разветвляющейся структуры в языке C++. Условные операторы
Приобретение навыков программирования разветвляющихся алгоритмов. Освоение операторов if и switch языка C++, позволяющих реализовывать разветвляющиеся алгоритмы. Формат условного оператора в языке C++. Составление программы для вычисления функции.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 30.04.2024 |
Размер файла | 327,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Министерство образования и науки Российской Федерации
Филиал федерального государственного образовательного учреждения высшего образования
“Национальный исследовательский технологический университет МИСиС” в городе Алмалык
Лабораторная работа
По дисциплине: «ОПИА»
Программирование алгоритмов разветвляющейся структуры в языке C++. Условные операторы
Выполнил: Холхожаев Хусанхожа
Группы: 1з-22 ГД
Принял: проф. Уринов Ш.Р.
Алмалык - 2022 год
Цель работы и содержание: приобретение навыков программирования разветвляющихся алгоритмов. Освоить операторы if и switch языка C++, позволяющие реализовывать разветвляющиеся алгоритмы.
Ход работы:
Алгоритм разветвляющейся структуры - это алгоритм, в котором вычислительный процесс осуществляется либо по одной, либо по другой ветви, в зависимости от выполнения некоторого условия. Программа разветвляющейся структуры реализует такой алгоритм. В программе разветвляющейся структуры имеется один или несколько условных операторов.
Логическое выражение - некоторое утверждение, относительно которого можно сказать: истинно оно или ложно.
В языке C++ любое выражение, равное нулю, считается ложным, тогда как любое выражение не равное нулю будет истинным.
В C++ используются шесть операторов отношения (табл.), позволяющих сравнивать между собой значения числовых переменных, а также значение переменной и константы.
Таблица 1. Операторы отношения в языке С++
a=b |
равно |
a=b |
|
a>b |
больше |
a>b |
|
a<b |
меньше |
a<b |
|
a?b |
больше или равно |
a>=b |
|
a?b |
меньше или равно |
a<=b |
|
a?b |
не равно |
a!=b |
Условия, которые составлены с использованием одного оператора сравнения, называются простыми условиями. Общий вид:
<выражение> <оператор_сравнения> <выражение>
Из простых условий, которые являются выражениями логического типа, можно строить составные условия. В этом случае простые условия необходимо связывать при помощи логических операций: !(не), &&(и), ||(или).
Операция логического И (&&).
<условие 1> && <условие 2>
пример: x > 10 && x < 20
Операция логического ИЛИ (||).
<условие 1> || <условие 2>x = = 1.2 || x = = 2.3 || x = = 3.4
Операция логического НЕ (!)
!<условие>
Условный оператор (оператор if).
Условный оператор if используется для разветвления процесса вычислений на два направления.
Условный оператор в языке C++ имеет формат:
if(<Условие>) <Оператор>;
Если помимо тех действий, которые требуется выполнить, когда заданное условие истинно, требуется исполнить и ряд действий, когда заданное условие ложно, то применяют следующую форму условного оператора:
if(<Условие>) <Оператор_1>; else <Оператор_2>;
Примеры:
if (a<0) b = 1; // 1
if (a<b && (a>d||a==0)) b++;
else
{
b*=a;
a=0;
} // 2
if (a<b)
{
if (a<c) m = a;
else m = c;
}
else
{
if (b<c) m = b;
else m = c;
} // 3
if (a++) b++; // 4
if (b>a) max = b;
else max = a; // 5
Переключатель (оператор switch).
Оператор switch (переключатель) предназначен для разветвления процесса вычислений на несколько направлений. Переключатель является наиболее удобным средством для организации мультиветвления. Синтаксис переключателя таков:
switch(Выражение)
{
case Константа_1: Операторы_1;
case Константа_2: Операторы_2;...
case Константа_n: Операторы_n;
default: Операторы_(n+1);
}
Кроме сказанного о возможностях переключателя, приведенная программа иллюстрирует действие оператора break.
С его помощью выполняется выход из переключателя. Если поместить операторы break после вывода каждой цифры, то программа будет печатать название только одной нечетной цифры.
switch(Выражение)
{
case Константа_1: Операторы_1; break;
case Константа_2: Операторы_2; break;...
case Константа_n: Операторы_n; break;
default: Операторы_(n+1); break;
}
Методика и порядок выполнения работы.
Перед выполнением лабораторной работы каждый студент получает индивидуальное задание. Защита лабораторной работы происходит только после его выполнения (индивидуального задания). При защите лабораторной работы студент отвечает на контрольные вопросы, приведенные в конце, и поясняет выполненное индивидуальное задание. Ход защиты лабораторной работы контролируется преподавателем.
Порядок выполнения работы:
1. Проработать примеры, приведенные в лабораторной работе.
2. Номер варианта - это номер студента по списку преподавателя.
Индивидуальное задание № 1
Постановка задачи: Написать программу с использованием конструкции ветвления для вычисления значения функции:
Теперь напишем программу для вычисления значения функции.
Листинг:
// Лабораторная работа № 2
// Индивидуальное задание № 1// Саидов Умид, 1з-22 ГД#include <iostream>
#include <math.h>
using namespace std;
int main()
{
double x, y;
cout << "Vvedite x =: ";
cin >> x;
if (х ?(-3) )
y=log10(x)*sin(3*x);
else
if (x = 7.7)
y = pow(x*x*x*x*x-1,1/5);
else
if (x < 7.7)
y = 1+cos(2*x)*cos(2*x)*cos(2*x)-3*sin(3*x)*sin(3*x);
cout << "y(x = " << x << ") = " << y;
getchar();getchar();getchar();
return 0;
}
Ответ программы:
Индивидуальное задание № 2
Постановка задачи:Написать программу вывода нечетных чисел, не меньших чем введенное с клавиатуры число от 0 до 9.
Листинг:
// Лабораторная работа № 2
// Индивидуальное задание № 2// Холхожаев Хусанхожа 1з-22 ГД#include <iostream>
using namespace std;
int main ()
{
int ic;
cout << "\n Vvedite lyubuyu desyatichniyu sifru:";
cin >> ic;
cout << endl;
switch(ic)
{
case 0: case 1: cout << "odin,";
case 2: case 3: cout << "tri,";
case 4: case 5: cout << "Pyat,";
case 6: case 7: cout << "Sem,";
case 8: case 9: cout << "Devyat,"; break;
// vixod iz pereklyuchatelya
default: cout << "Oshibka! Eto ne vxodit interval [0;9] \n"; break;
// kones pereklyuchatelya
}
getchar(); getchar();
return 0;
}
Ответ программы:
Индивидуальное задание № 3
Постановка задачи: Составить блок-схему алгоритма и программу с использованием переключателя и вывести наименование времени года по вводимому с клавиатуры номеру месяца от 1 до 12.
Программа решения поставленной задачи:
Листинг:
// Лабораторная работа № 2
// Индивидуальное задание № 3// Холхожаев Хусанхожа 1з-22 ГД#include <iostream>
using namespace std;
int main ()
{
int n;
cout << "\n Vvedite nomer mesyasa:";
cin >> n;
cout << "Vremya goda ";
switch(n)
{
case 1: case 2: case 12: cout << " Zima"; break;
case 3: case 4: case 5: cout << " Vesna"; break;
case 6: case 7: case 8: cout << " Leto"; break;
case 9: case 10:case 11: cout << " Osen"; break;
default: cout << "Oshibka! \n"; break;
// kones pereklyuchatelya
}
getchar(); getchar();
return 0;
}
Ответ программы:
Вопросы для защиты работы:
1. Какой алгоритм является алгоритмом разветвляющейся структуры?
2. Чем отличается разветвляющийся алгоритм от линейного?
3. Что такое условный оператор? Какие существуют его формы?
4. Что такое составной оператор? Каков формат его записи?
5. Какие операторы сравнения используются в Си?
6. Что называется простым условием? Приведите примеры.
7. Что такое составное условие? Приведите примеры.
8. Какие логические операторы допускаются при составлении сложных условий?
9. Может ли оператор ветвления содержать внутри себя другие ветвления?
10. Что такое множественный выбор?
11. В каких случаях применяется переключатель?
12. Зачем ставится в переключателе оператор break?
13. Зачем в переключателе употребляется зарезервированное слово default?
Содержание отчета и его форма.
Отчет по лабораторной работе должен состоять из:
1. Названия лабораторной работы.
2. Цели и содержания лабораторной работы.
3. Ответов на контрольные вопросы лабораторной работы.
4. Формулировки индивидуальных заданий и порядка их выполнения.
Отчет о выполнении лабораторной работы в письменном виде сдается преподавателю.
Индивидуальное задание № 1
ВАРИАНТ
26) 1
27) 2
….
Индивидуальное задание № 2
ВАРИАНТ:
1) Дано натуральное число n > 100. Вывести на экран фразу «Мне n лет», учитывая, что при некоторых значениях n слово «лет» надо заменить на слово «год» или «года».
2) Дано число m (1 ? m ? 12). Определить, сколько дней в месяце с номером m.
3) Дано число m (1 ? m ? 7). Вывести на экран название дня недели, который соответствует этому номеру.
4) С клавиатуры вводится натуральное число n. В зависимости от значения остатка r при делении числа n на 7 вывести на экран число n в виде n = 7 · k + r.
5) С клавиатуры вводится цифра m (от 1 до 4). Вывести на экран названия месяцев, соответствующих времени года с номером m (считать зиму временем года № 1).
6) Дано целое число С такое, что С < 9. Вывести это число в словесной форме, учитывая его знак.
7) С клавиатуры вводится цифра m (от 1 до 12). Вывести на экран название месяца, соответствующего цифре.
8) Дано число m (1 ? m ? 12). Определить полугодие, на которое приходится месяц с номером m и количество дней в том месяце (год не високосный).
9) Вводится число экзаменов N ? 20. Напечатать фразу “Мы успешно сдали N экзаменов”, согласовав слово “экзамен” с числом N.
10) Вводится число карандашей N ? 10. Вывести фразу "Я купил N карандашей", согласовав слово "карандаш" с числом N.
11) Компания по снабжению электроэнергией взимает плату с клиентов по тарифу:
- 7 р. за 1 кВт/ч за первые 250 кВт/ч;
- 17 р. за кВт/ч, если потребление свыше 250, но не превышает 300 кВт/ч;
- 20 р. за кВт/ч, если потребление свыше 300 кВт/ч.
Потребитель израсходовал n кВт/ч. Подсчитать плату.
12) При покупке товара на сумму от 200 до 500 руб. предоставляется скидка 3%, при покупке товара на сумму от 500 до 800 - скидка 5%, при покупке товара на сумму от 800 до 1000 руб. - скидка 7%, свыше 1000 руб. - скидка 9%. Покупатель приобрел 8 рулонов обоев по цене 1 и две банки краски по цене 2. Сколько он заплатил?
13) Студенты убирают урожай помидоров. При сборе до 50 кг в день работа оплачивается из расчета 30 коп. за 1 кг; при сборе от 50 до 75 кг в день - 50 коп. за 1 кг; при сборе от 75 до 90 кг в день - 65 коп. за 1 кг; при сборе свыше 90 кг в день - 70 коп. за 1 кг плюс 20 руб. премия. Студент собрал X кг за день. Определить его заработок.
14) 1
15) 2
….
27) 1
28) 2
….
Индивидуальное задание № 3
ВАРИАНТ:
1) В японском календаре был принят 60-летний цикл, состоящий из пяти 12-летних подциклов. Внутри подцикла года носили названия животных мыши, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. Попарно года в подцикле обозначались названиями цвета: зеленый, красный, желтый, белый и черный. По номеру года определить его название по японскому календарю, считая за начало очередного цикла 1984 год - год зеленой мыши (1985 - год зеленой коровы, 1986 - год красного тигра, 1987 - год красного зайца и т.д.).
2) Даны действительные числа x и y. Найти U = max2(x2y,xy2) + min2(x -y, x + 2y).3) Из трех действительных чисел a, b и c выбрать те, модули которых не меньше 4.
4) Напечатать три данных действительных числа a, b и с сначала в порядке их возрастания, затем - в порядке убывания.
5) Определить принадлежит ли точка (a,b) кольцу определяемому окружностями x2 + y2 = 1 и x2 + y2 = 0.25.
6) Решить квадратное неравенство ax2 + bx + c > 0 (?0), где a, b и с -действительные числа.
7) Провести исследование биквадратного уравнения ax4 + bx2 + c = 0 (?0), где a, b и с - действительные числа. Если действительных корней нет, то об этом должно быть выдано сообщение, иначе должны быть выданы 2 или 4 действительных корня.8) Решить неравенство > x ? 2 , где a - произвольное действительное число.
9) Найти координаты точки пересечения прямых, заданных уравнениями a1x+b1y+c1=0 и a2x+b2y+c2=0, либо сообщить - совпадают, параллельны или не существуют.
10) Вывести на экран большее из трех заданных чисел.
11) Определить, есть ли среди трех заданных чисел четные.
12) Две окружности заданы координатами центра и радиусами. Сколько точек пересечения имеют эти окружности?
13) Составить программу, выясняющую делится ли натуральное число на целое, на натуральное число.
14) Составить программу нахождения из трех чисел наибольшего и наименьшего.
15) Составить программу решения квадратного уравнения.
16) Даны три действительных числа. Составить программу, выбирающую из них те, которые принадлежат интервалу (0,1).
17) Определить, есть ли среди трех заданных чисел нечетные.
18) Даны произвольные действительные числа a, b и c. Вывести на экран сообщения: треугольник с данными длинами сторон построить можно (указать равнобедренный, равносторонний или разносторонний получится треугольник), либо треугольник с данными длинами сторон построить нельзя.
19) Какая из точек A(a1, a2) или B(b1, b2) находится дальше от начала координат?
20) Попадет ли точка (a1, a2) в окружность заданного радиуса с центром в начале координат?21) Симметричны ли точки M1(x1, y1) и M2(x2, y2) относительно начала координат?
22) Треугольник задан координатами своих вершин. Определить принадлежит ли данная точка треугольнику. Координаты вершин треугольника и координаты точки задать самостоятельно.
23) Симметричны ли точки M1(x1,y1) и M2(x2,y2) относительно оси Ox или относительно оси Oy?
24) 1
25) 2
….
программирование алгоритм условный оператор
Размещено на Allbest.ru
Подобные документы
Ознакомление с формой записи и работой операторов условного if (если) и безусловного а goto (идти к) переходов как способами организации ветвления в программе. Изучение оператора выбора альтернативы - switch (переключатель). Использование функции default.
лабораторная работа [72,0 K], добавлен 15.07.2010Составление программы разветвляющейся структуры для вычисления заданной функции. Нахождение произведения чётных и нечётных первых чисел натурального ряда. Приёмы программирования обработки одномерных массивов. Расчет суммы положительных элементов массива.
контрольная работа [1,3 M], добавлен 20.12.2012Понятие программы и ее основные составляющие. Операторы ввода и вывода. Разветвляющиеся алгоритмы. Цикл как многократное выполнение одинаковых действий. Особенности использования оператора выбора. Графики функций и системы координат. Рекурсия и анимация.
презентация [663,7 K], добавлен 24.12.2010Особенности разработки и реализации обучающей программы и схемы алгоритмов на языке программирования С++. Понятие равномерной и неравномерной дискретизации. Представление информации (составление кода) в виде таблицы перекодировки или многочлена.
курсовая работа [704,6 K], добавлен 06.03.2013Составление алгоритмов и программ для вычисления значений неизвестных: программирование формул; операторы ввода и вывода; условный оператор; цикл с предусловием и с постусловием, с заданным числом повторений; графические средства; тестирование программы.
курсовая работа [1,5 M], добавлен 13.03.2011Методы реализации алгоритмов сортировки и алгоритмов поиска на языках программирования высокого уровня. Программирование алгоритмов сортировки и поиска в рамках создаваемого программного средства на языке Delphi. Создание руководства пользователя.
курсовая работа [1,7 M], добавлен 16.04.2012Описание особенностей программирования циклических алгоритмов на С/С++. Использование операторов цикла для организации повтора в программе определенных действий. Создание и реализация программы приближенного вычисления интеграла методом трапеций.
лабораторная работа [86,3 K], добавлен 25.03.2019История развития языка программирования Pascal, его основные концепции. Вычисления в математических задачах. Изменение порядка выполнения инструкций программы. Выполнение оператора цикла. Логические выражения, линейные алгоритмы, условные операторы.
методичка [847,6 K], добавлен 10.01.2013Алгоритмы, алфавит языка, структура программы, написанной на Турбо Паскале. Целые, вещественные, логические, символьные типы данных, их совместимость. Линейные алгоритмы, пустой и составной операторы, простейший ввод и вывод, разветвляющиеся алгоритмы.
курсовая работа [49,8 K], добавлен 03.11.2009Анализ затрат и прибыли. Создание программного проекта для решения задачи о прибыли и убытках на языке программирования C#. Использование функций и переменных, компиляция программы. Алгоритмы и структуры данных. Тестирование программного обеспечения.
курсовая работа [1,2 M], добавлен 03.01.2015