Задания для самостоятельной работы
1. Дан радиус окружности. Вычислить длину окружности и площадь круга. 2. Даны 2 катета прямоугольного треугольника. Найти гипотенузу и площадь треугольника. 3. Найти площадь кольца, внутренний радиус которого равен 20, а внешний – заданному числу r (r>20). 4. Даны x, y, z. Вычислить a, b, если
А) Б) 5. Найти площадь равнобочной трапеции с основаниями a и b и углом a при большем основании a. (Примечание: углы компилятор принимает в радианах). 6. Известны длины трех сторон треугольника. Вычислить площадь треугольника. 7. Даны два целых числа. Найти среднее арифметическое этих чисел и среднее геометрическое их модулей. 8. Вычислить расстояние между двумя точками X1,Y1 и X2,Y2. 9. Дано четырехзначное целое число Х. Определить цифры числа. Ответ выдать в виде, например: 7 – thousands 3 – hundreds 4 – tens 6 - ones Лабораторная работа № 2 В первой лабораторной работе мы рассматривали линейные или последовательные алгоритмы, т.е. такие алгоритмы, где действия идут последовательно один за другим. Если же перед нами стоит выбор выполнения различных действий, используются разветвляющиеся алгоритмы. Программа в зависимости от выполнения логического условия обязательно должна пойти по одной из ветвей. Одной из альтернатив может и не быть.
Для реализации разветвляющихся алгоритмов используется условный оператор “if”. Оператор “if” имеет две формы записи: 1) if (<условие>) <оператор>; 2) if (<условие>) <оператор1>; else <оператор2>; Рассмотрим первый вид if (<условие>) <оператор>; Проверяется условие, если оно истинно, то выполняется “оператор”, иначе программа идет далее вниз по тексту. Пример: Дано вещественное число. Если оно отрицательно, то вывести его абсолютное значение.
#include <iostream> #include <сmath> using namespace std; int main() { double a; cin>>a; if (a<0) cout<<fabs(a)<<endl; return 0; }
Теперь рассмотрим второй вид if (<условие>) <оператор1>; else <оператор2>; Здесь проверяется условие, если оно истинно, то выполняется “оператор1”, иначе выполняется «оператор2», далее программа идет вниз по тексту. Пример: Даны два целых числа. Вывести наименьшее из них. #include <iostream> using namespace std; int main() { int a, b; cin>>a>>b; return 0;
Большинство операторов языка С++ в соответствии с синтаксисом могут выполнить только один оператор. В случае если по условию задачи требуется выполнить несколько операторов, они должны быть заключены в фигурные скобки {}. Операторы идущие после блока if, заключённые в фигурные скобки называются ”телом” оператора if. Имеется более короткий способ записи условного оператора: (<условие>)?<оператор1>:<оператор2>; Проверяется условие, если оно истинно, то выполняется “оператор1”, иначе “оператор2”. Применение данного оператора приводит к получению более компактного машинного кода. Пример: Даны 2 действительных числа. Найти наибольшее из этих 2-х чисел. #include <iostream> using namespace std; int main() { double x, y, max; cin>>x>>y; max=(x>y)?x:y; cout<<”max=”<<max<<endl; return 0; }
Для записи условия используют логические операции: >(больше), <(меньше), >=(больше или равно), <=(меньше или равно), = =(равно),!=(не равно) и логические операторы && (логическое и), || (логическое или),! (отрицание). Условие может принимать 2 значения: true(истина) или false(ложь). Для определения истинности сложного логического условия (выражения), записанного с помощью логических операций и операторов, применяется таблица истинности, где 1 – истина (true), а 0 – ложь (false).
Логический оператор “&&” (и) даёт истинное значение логического выражения только в том случае, когда оба операнда этого оператора являются истинными. Например: if ((x==5)&&(y==5)) – это выражение буден истинным только в том случае, когда x=5 и y=5. Логический оператор “||” (или) даёт истинное значение логического выражения в том случае, когда хотя бы один из операндов этого оператора является истинным. Например: if ((x==5)||(y==5)) – это выражение буден истинным в том случае, когда или x=5 или y=5. Логические операции так же как и арифметические операции имеют приоритет выполнения. Логические операции (>, <, <=, >=) имеют больший приоритет, чем логические операторы (!, ||, &&). Пример использования логических операторов: Даны 3 действительных числа. Проверить правильно ли выполняется следующее соотношение: a<b<c; #include <iostream> using namespace std; int main() { double a, b, c; cin>>a>>b>>c; if ((a<b)&&(b<c)) cout<<”Yes”; else cout<<”No”;
return 0;} Оператор множественного выбора “switch” В некоторых случаях использование оператора “if” может привести к возникновению конструкций с большим количеством вложений, значительно усложняющих восприятие программы. Для решения этой проблемы, предусмотрен оператор “switch”, который позволяет рассматривать сразу несколько условий. switch (<выражение>) { case <первое_значение>: <оператор>; break; case <второе_значение>: <оператор>; break; case <n-oe_значение>: <оператор>; break; default: <оператор>; break; } Выражение, заданное в скобках оператора “switch” сравнивается со значениями, указанными за операторами “case”. В случае совпадения значений выражения, выполняется оператор в строке соответствующего оператора “case”. Будут выполняться все строки программы после выбранного оператора “case” до тех пор, пока не закончится тело блока оператора “switch” или не повстречается оператор “break”. Выполнение оператора “break” приводит к выходу из оператора “switch”. Если “break” отсутствует, то управление передаётся следующему оператору “case” или оператору “default”. Если ни одно из значений операторов “case” не совпадает с выражением, то выполняются строки программы, стоящие после оператора “default”. Наличие оператора “default” не обязательно. В случае его отсутствия и несовпадения выражения ни с одним из значений, будет выполнен оператор стоящий после блока оператора “switch”.
Примечание: выражение оператора switch может быть только целочисленного типа или типа char. Пример: Требуется написать программу, которая по введённой оценке определяет статус учащегося. Решим задачу двумя способами для сравнения.
Выполнить на ЭВМ и оформить в тетради задания для самостоятельной работы.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|