КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
ЛАБОРАТОРНАЯ РАБОТА № 1ОПЕРАТОРЫ РАЗВЕТВЛЯЮЩИХСЯ ПРОЦЕССОВ: if-else; if; ?: Цель работы : Изучение условного оператора в языке С++. Задание: Составить алгоритм и написать программу на языке С++ решения задачи согласно своего варианта. Длительность:2 часа. Теоретические основы: Оператор условной передачи управления используют для программирования ветвлений, т. е. ситуаций, когда возникает необходимость при определенных условиях выполнять различные действия. Алгоритм оператора условного перехода изображен на рис 1. Разновидностей условного оператора в С++ несколько:
1. Оператор if-else Условие записывают в виде логического выражения, в зависимости от результата которого осуществляется выбор одной из ветвей: сели результат true, то выполняется оператор, следующий за условием, иначе - оператор, следующий за служебным словом else. На С++ оператор условного перехода имеет следующий формат: If ( <условие перехода> ) <оператор 1>; else <оператор 2>;
Рис. 1. Формат условного оператора
В качестве примера решим квадратное уравнение вида х2 + 2х - 3 = 0. Для решения поставленной задачи воспользуемся методом вычисления детерминанта вида D = (b2 – 4 * a * c) с последующим сравнением полученного результата с нулем. #include <iostream.h> #include <math.h> int main() { int а = 1; int b = 2; int с = -3; float D; float х1, х2 ;
D = b * b – 4 * а * с; if (D < 0) { cout << "Уравнение не имеет корней"; return 0; } if (D = = 0) { x1 = х2 = -b / (2 * а) ; cout << "Уравнение имеет 1 корень:"; cout << " х = " << х1; return 0; } else { x1 = - (-b + sqrt(D)) / (2 * а); x2 = - (-b - sqrt(D)) / (2 * а); cout << "Уравнение имеет 2 корня:"; cout << "\nх1 = " << х1; cout << "\nх2 = " << х2; } return 0; }
2. Оператор if. Условный оператор может быть неполным (рис.2), т.е. при ложном результате условия управление передаётся следующему оператору по программе. Рис. 2 Формат неполного условного оператора
На С++ оператор условного перехода имеет следующий формат: If ( <условие перехода> ) <оператор 1>;
Следующий пример иллюстрирует использование оператора if. #include <iostream.h> int main() { int b; if (b>0) { // Если условие b>0 выполнено … cout << "b - положительное"; … } if (b<0) { cout << "b - отрицательное";
return 0; }
3. Условный оператор ?: Вместо операторов if-else вполне можно использовать условный оператор ?:, если входящие в него выражения являются достаточно простыми. Данная конструкция будет иметь следующий вид: условие ? выражение1 : выражение2; Например, решим задачу нахождения максимума из двух целочисленных переменных:
#include <iostream.h>
int main() { int а = 10; int b = 20; int max; max = (а > b) ? а : b; cout << mах;
return 0; } Задания по вариантам к лабораторной работе №1: 1. Даны действительные числа А и В. Если оба числа отрицательны, но не равны - 10, то заменить их нулем, если равны - 10, то заменить единицей, в противном случае минимальное из А и В умножить на 1000. 2. Даны три действительных числа А, В, С. Если В <A<С, то все три числа удвоить , если А<В<C, то максимальное из этих трех чисел возвести в квадрат, в противном случае все три числа заменить минимальным из них. 3. Даны три действительных числа x, y, z. Те из них, которые меньше 2, разделить на 45, те которые принадлежат интервалу [4.1, 10.25] возвести в квадрат, остальные заменить их натуральным логарифмом. 4. Даны три действительные числа A, B, C. Те из них, которые принадлежат интервалу заменить нулем, а те, которые принадлежат интервалу удвоить, остальные оставить без изменения. 5. Если сумма трех различных чисел A, B, C равна 2, то наибольшее из этих чисел заменить наименьшим, если сумма больше 20 , то все числа возвести в квадрат, в противном случае наибольшее из этих трех чисел заменить числом 34. 6. Если сумма трех попарно различных чисел x, y, z меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух других, в противном случае заменить меньшее из x и y полусуммой двух оставшихся значений. 7. Даны действительные числа À и В. Если А и В неотрицательны и их сумма меньше 15, то оба числа заменить их произведением, если хотя бы одно из них меньше -3, то оба числа удвоить, в противном случае возвести в квадрат большее из них, а меньшее заменить нулем. 8. Если произведение трех попарно различных действительных чисел x, y, z - число отрицательное, то наименьшее из этих трех чисел заменить произведением двух остальных, в противном случае заменить наибольшее из них их среднеарифметическим. 9. Даны действительные числа p, q, r. Если p<q<r , то все числа заменить абсолютным значением минимального из них, если p<q<r, то те из них, которые больше 2, заменить нулями, в противном случае оставить числа без изменения. 10. Даны действительные числа x, y , z. Если x z £ y, то каждое число заменить наибольшим из них, если x ³ z ³ y, то числа оставить без изменения, в противном случае все числа заменить их квадратами. 11. Даны действительные числа X и Y. Если X и Y положительны, но их произведение меньше 100, то оба числа заменить нулями, если хотя бы одно из них отрицательно, то заменить их абсолютными значениями, в противном случае минимальное число оставить без изменения, а максимальное возвести в квадрат. 12. Даны действительные числа X и Y. Если X и Y отрицательны, то каждое значение заменить их произведением; если отрицательно только одно из них, то оба значения увеличить на 0,5; если оба значения неотрицательны и их сумма меньше 10, то меньшее из чисел заменить квадратом, в противном случае оставить без изменения. 13. Даны действительные числа а, в, с. Если сумма минимального и максимального из них меньше 5, то максимальное число заменить нулем, в противном случае заменить минимальное число произведением двух остальных. 14. Даны два действительных числа. Если оба они положительны, но минимальное из них не превышает 1, то заменить их нулями. Если минимальное число больше 1, но не превышает 10, то заменить только минимальное нулем, в противном случае поменять их местами. 15. Даны три действительных числа А, В, С. Если В <A<С, то все три числа удвоить , если А<В<C, то максимальное из этих трех чисел возвести в квадрат, в противном случае все три числа заменить минимальным из них. 16. Даны три действительных числа x, y, z. Те из них, которые меньше 2, разделить на 45, те которые принадлежат интервалу [4.1, 10.25] возвести в квадрат, остальные заменить их натуральным логарифмом. 17. Даны три действительные числа A, B, C. Те из них, которые принадлежат интервалу заменить нулем, а те, которые принадлежат интервалу удвоить, остальные оставить без изменения. 18. Если сумма трех различных чисел A, B, C равна 2, то наибольшее из этих чисел заменить наименьшим, если сумма больше 20 , то все числа возвести в квадрат, в противном случае наибольшее из этих трех чисел заменить числом 34.
Требования к отчёту по лабораторной работе: 1. оформить отчет по соответствующим требованиям (титульный лист) 2. сформулировать цель работы 3. задание; 4. схема алгоритм программы; 5. текст программы; 6. выводы по результатам выполнения лабораторной работы; 7. список используемой литературы (обязательно из электронной библиотеки).
|