-1Информатика Лабораторная работа 1-12 Лабораторная работа 1-12 Условные операторы и операторы цикла в С 1. ЦЕЛЬ РАБОТЫ Целью работы является разработка, отладка и выполнение программы на C с использованием условных операторов и операторов цикла. 2. СОСТАВ РАБОЧЕГО МЕСТА 2.1. Оборудование: IBM-совместимый персональный компьютер (ПК). 2.2. Программное обеспечение: операционная система Windows интегрированная оболочка Dev C++. и 3. КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ 3.1. Операции отношения и логические операции Операции отношения сравнивают первый операнд со вторым. следующие операции отношения: Операция < > <= Проверяемое соотношение Первый второго. Первый второго. операнд меньше операнд больше Первый операнд меньше или равен второму. Операция >= == != В C имеются Проверяемое соотношение Первый операнд больше или равен второму. Первый операнд равен второму. Первый операнд не равен второму. В языке C нет логического типа данных, и результат сравнения имеет тип int. Если результат сравнения является ложным, то ему присваивается значение 0, иначе – 1. В C любое число или выражение, имеющее тип int, может трактоваться как логическое значение, при этом значение 0 трактуется как ложь, а все остальные значения трактуются как истина. Операнды операции сравнения могут числовыми или символьными (в последнем случае сравниваются числовые коды символов). Операнды в операциях отношения не могут быть строками (для сравнения строк используются функции стандартной библиотеки). Приоритет операций отношения ниже, чем арифметических операций. Среди операций отношения операции ">", "<", ">=" и "<=" имеют более высокий приоритет, чем операции "==" и "!=". Логические операции выполняют над своими операндами логические функции "И", "ИЛИ" и "НЕ". Результат логической операции так же, как и операции отношения, имеет тип int и имеет значение 1 для логического значения «истина» и 0 – для логического значения «ложь». Операция "НЕ" (отрицание) обозначается в C символом восклицательный знак – "!". Эта операция выполняется над одним операндом. Результатом выполнения операция Файл: Document1 Создан: 16.10.2012 Модифицирован: 02.05.2016 В.А. Автор: Прищепа Т. А., Шонин -2Информатика Лабораторная работа 1-12 отрицания будет 1, если операнд имеет значение «ложь» (равен 0) и 0, если операнд имеет значение «истина» (ненулевое значение). Операции "И" и "ИЛИ" выполняются над двумя операндами. Операция "И" (логическое умножение) обозначается с помощью двух символов амперсанта – "&&". Результат этой операции равен 1 только в том случае, если оба операнда имеют ненулевое значение, в остальных случаях результат операции равен 0. Операция "ИЛИ" (логическое сложение) обозначается с помощью двух символов вертикальной черты – "||". Операция вырабатывает значение 1, если хотя бы один из операндов имеет ненулевое значение и 0 – в противном случае. Типы первого и второго операнда могут отличаться. Логические операции вычисляют операнды и сравнивают их с нулем. Операция "!" ("НЕ") имеет тот же приоритет, что и операции инкремента ("++") и декремента ("--"), т.е. выше, чем у арифметических операций. Приоритет операций "И" ("&&") и "ИЛИ" ("||") ниже, чем приоритет операций отношения, причем приоритет операции "И" ("&&") как логического умножения выше, чем приоритет операции "ИЛИ" ("||") как логического сложения. Изменение приоритета выполнения операций производится с помощью скобок. 3.2. Условный оператор Условный оператор if...else выполняет оператор или блок операторов в зависимости от значения выражения в условии. Оператор имеет следующий формат: if(выражение-1) блок-операторов-1 else if (выражение-2) блок-операторов-2 ... else блок-операторов-n где: выражение-1 и выражение-2 – любые выражения, которые могут быть оценены как «истина» или «ложь»; блок-операторов-1, блок-операторов-2 и блок-операторов-n – один оператор или несколько операторов – блок операторов (блок операторов должен быть заключен в фигурные скобки). Сначала вычисляется выражение-1. Если значение выражения – ненулевое («истина»), то выполняется блок-операторов-1 и происходит переход к выполнению оператора, следующего за условным оператором. Если выражение-1 равно 0 («ложь»), производится проверка выражения-2, и, если оно истинно, выполняется блок-операторов2 и выполнение условного оператора заканчивается и т. д. Блок-операторов-n выполняется, когда все предыдущие условия не выполняются. Операторы else if и else могут быть опущены. В этом случае, если значение выражения-1 – «ложь», блокоператоров-1 не выполняется и сразу выполняется оператор, следующий в программе за оператором if. 3.3. Операторы цикла В C существует три вида операторов цикла: оператор пошагового выполнения цикла for; Файл: Document1 Создан: 16.10.2012 Модифицирован: 02.05.2016 В.А. Автор: Прищепа Т. А., Шонин -3Информатика Лабораторная работа 1-12 оператор выполнения цикла по условию с проверкой условия в начале цикла while; оператор выполнения цикла по условию с проверкой условия в конце цикла do...while. Оператор пошагового выполнения цикла for имеет следующий формат: for(начальное-выражение; условное-выражение; выражение-приращения) блок-операторов Первым шагом при выполнении цикла является вычисление начальноговыражения (если оно имеется). Затем блок-операторов, представляющий собой один оператор или несколько операторов, заключенных в фигурные скобки, выполняется до тех пор, пока условное-выражение не будет иметь нулевое значение («ложь»). При выполнении тела цикла может использоваться выражение-приращения (если оно есть). Любое из трех выражений может отсутствовать, но символы ";" опускать нельзя. При отсутствии начального-выражения и выражения-приращения считается, что их просто нет в данном цикле, при отсутствии условного-выражения, полагается, что его значение – всегда не равно 0 («истина»). Оператор выполнения цикла по условию формат: while и do...while имеют следующий while(условное-выражение) блок-операторов и do блок-операторов while(условное-выражение); Блок-операторов – один оператор или несколько операторов – блок операторов (в фигурных скобках) выполняются до тех пока условное-выражение не будет иметь значение 0 («ложь»). Отличие цикла while от цикла do...while в том, что в цикле while значение условного-выражения вычисляется до начала выполнения блока-операторов, а в цикле do...while – после, т.е. цикл do...while всегда выполняется хотя бы один раз. 3.4. Операторы перехода Для досрочного завершения выполнения операторов цикла for, while и do...while, а также оператора switch используется оператор break. Этот оператор вызывает немедленный выход из самого внутреннего из охватывающих его циклов. Оператор продолжения continue вызывает переход на следующую итерацию в операторах цикла for, while и do...while. При этом операторы тела цикла, следующие за оператором continue, не выполняются. В операторах цикла while и do...while следующая итерация начинается с вычисления условного выражения, а для оператора for – с вычисления выражения приращения, а затем условного выражения. Оператор перехода goto, имеющий формат: goto метка; передает управление оператору в той же функции, помеченному меткой, за которой следует символ ":". Метка представляет собой обычный идентификатор языка С. Файл: Document1 Создан: 16.10.2012 Модифицирован: 02.05.2016 В.А. Автор: Прищепа Т. А., Шонин -4Информатика Лабораторная работа 1-12 Можно войти в блок, тело цикла, условный оператор и оператор-переключатель по метке, однако нельзя передать управление на операторы case или default в теле операторапереключателя. Хотя использование оператора goto не считается хорошим стилем в программировании и его по возможности следует избегать, однако в некоторых случаях этот оператор может пригодиться (например, при выходе из самого внутреннего из нескольких вложенных циклов за пределы самого внешнего цикла). 4. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ 1. Составить программу для вычисления суммы ряда или полинома с точностью -5 =10 , с заданными ограничениями на область значения аргумента и при указанных значениях аргументов по одному из вариантов, приведенных в следующей таблице. Значения аргумента, точности и результат вывести на экран дисплея. Выражение для ряда или полинома Допустима я область значений аргумента Значение аргумента ( x 1)2 n1 ln x 2 n 1 n 0 ( 2 n 1)( x 1) x>0 x=1.5 0x2 x=1.5 3. ( x 1) n ln x nx n n 1 x > 0.5 x=1.5 4. x2 sin x x 1 k 2 k 1 0.1 x 16 x=2.3 5. x 2 n 1 sin x ( 1) ( 2n 1)! n 0 0.1 x 16 x=2.3 6. 4x 2 cos x 1 2 2 2k 1 k 1 0.1 x 16 x=1.7 7. x2 sinh x x 1 k 2 k 1 0.2 x 20 x=1.2 0.1 x 12 x=1.4 |x| < 1 x=0.58 |x| < 1 x=0.58 № варианта 1. 2. ln x ( 1) n 1 n 1 ( x 1) n n n 8. x 2k cosh x 1 k 1 ( 2k )! (2n 1) x 2 n 1 n 1 ( 2n)( 2n 1) 9. 10. arcsin x x arccos x 2 (2n 1) x 2 n 1 n 1 ( 2n)( 2n 1) x Файл: Document1 Создан: 16.10.2012 Модифицирован: 02.05.2016 В.А. Автор: Прищепа Т. А., Шонин -5Информатика Лабораторная работа 1-12 № варианта Допустима я область значений аргумента Значение аргумента x 2 n 1 2n 1 |x| < 1 x=0.45 1 (2n 1) x 2 n 1 |x| >1, a = /2 при x>1 и a = -/2 при x<-1 x=3.49 |x| < 1 x=0.45 sin x x 2 n1 dx ( 1) n x ( 2n 1)!( 2n 1) n 0 0 0.1 x 10 x=1.55 cos x x 2n dx 0.577216 ln x (1) n n 1 x (2n )! (2n ) 0 0.1 x 10 x=1.49 ex xn dx 0 . 577216 ln( x ) x n 1 n ! n x<0 x = -3.54 |x| < 1 x=0.71 x>1 x=2.25 |x| < 1 x=0.54 a>0 a = 5.12, x = 3.8 |x| <1 , целое m > 0 m = 5, x = 0.39 |x| <1, целое m < 0 m = -3, x = 0.39 |x| < /2 x = 1.48 0 < |x| < x = 2.8 |x| < /2 x = 0.53 0 < |x| < x = 2.8 Выражение для ряда или полинома ( 1)n arctg x 11. n 0 12. arctg x a (1) n n 0 13. arcctg x ( 1) n 2 n 0 x 2 n 1 2n 1 x 14. Si ( x ) 15. Ci( x ) x x 16. Ei ( x ) (2n 1) x 2 n 1 (2n) (2n 1) 17. 18. Arsh x x (1)n n 1 (2n 1) Arch x ln( 2 x) 2n n 1 (2n) (2n) x x 2 n1 (2n 1) Arth x 19. n 0 ( x ln a) n n! n 1 a x 1 20. n 21. (1 x ) m 1 ( m k 1) k 1 n! n 1 xn n 22. (1 x ) m 1 ( m k 1) k 1 n! n 1 23. tg x x 2(22 n 1)bn x 2 n1 n 1 24. ctg x 25. sc x 1 n 1 26. 2n xn 1 2n k k=1 , где bn = 1 2bn x 2 n1 1 , где b = n 2n 2n x n1 k=1 k 22 n 2 en x 2 n 2 n 1 , где en = ( 1)k 1 k=1 1 (2k 1)2 n1 1 ( 2 2 n1 1)bn x 2 n1 1 csc x , где bn = 2 n 2 n 2 2 n x n1 2 k=1 k Файл: Document1 Создан: 16.10.2012 Модифицирован: 02.05.2016 В.А. Автор: Прищепа Т. А., Шонин -6Информатика Лабораторная работа 1-12 № варианта 27. Выражение для ряда или полинома F= 2n x 1 n 1 bn x 1 ( 1 ) , где b = n x 2 n 1 2 n 2n e 1 2 n 1 k=1 k 28. 29. bn x 2 n 1 , где b = n 2n 2n n 1 n k=1 k F = ln sin x ln x sin( x a ) n x n sin a 2 n! n 0 30. ln( x 1) ( 1) n 1 n 1 xn n x 2 n bn ,где 2n n n 1 Допустима я область значений аргумента Значение аргумента |x| < 2 x = 2.93 0 < |x| < x = 2.42 a>0 a = 4.42, x = 1.4 -1<x1 x = 0.35 0< |x| < x = 1.54 0<|x| < /2 x = 1.24 |x| < 1 x=0.48 x>1 x=1.42 0.1 x 12 x=1.4 ln sin x ln x 31. 1 2n k=1 k bn = 2(2 2 n 1)bn x 2 n ,где 2n n n 1 ln tg x ln x 32. 1 bn = 2 n k=1 k 33. s ( x) 3 (1) n n 0 34. u ( x) 8.5 (1) n 35. z ( x) 12.5 n 0 x 2 n1 2n 1 x 2 n1 (2n 1)!n x 2k k 1 ( 2k )!k 2. Введите программу с клавиатуры в среде Dev C++. 3. Выполните отладку программы и запустите ее на выполнение. 4. Покажите преподавателю программу и результаты ее работы и скопируйте текст программы и результат работы программы в окно текстового редактора Блокнот с заголовками "Текст программы имя-программы" и "Результат работы программы имяпрограммы". 5. Скопируйте полученный в окне текстового редактора Блокнот документ на свою дискету или флэш-карту. 5. СОДЕРЖАНИЕ ОТЧЕТА В отчете должно быть представлено содержимое созданного вами документа. 6. ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ 1. Какие операции отношения и логические операции используются в C, и какова их приоритетность по отношению друг к другу и логическим операциям? 2. Как представляются логические значение «истина» и «ложь» в C? Файл: Document1 Создан: 16.10.2012 Модифицирован: 02.05.2016 В.А. Автор: Прищепа Т. А., Шонин -7Информатика Лабораторная работа 1-12 3. 4. 5. 6. 7. Как записывается и как работает условный оператор C? Как записывается и как работает оператор пошагового выполнения цикла в C? Как работают циклы по условию? В чем отличие цикла while от цикла do...while? Какие операторы перехода определены в C, и какие действия они выполняют? Файл: Document1 Создан: 16.10.2012 Модифицирован: 02.05.2016 В.А. Автор: Прищепа Т. А., Шонин