КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Пример выполнения работы. 2. Верно ли, что каждое из чисел x, y, z больше нуля?
Задания: 1. Вычислить 2. Верно ли, что каждое из чисел x, y, z больше нуля? 3. Вычислить: ,
Выполнение задания 1. Для написания программы вычисляющей значения a и b по заданным формулам воспользуемся стандартными математическими функциями языка Си. Все заголовки математических функций перечислены в файле math.h. Базовые функции сведены в табл.Л1.2. Все эти функции принимают double, если не определено иначе. Для работы с типами float и long double используются функции с постфиксами f и l соответственно. Все функции, принимающие или возвращающие угол, работают с радианами. Таблица Л1.2
Многие из функций можно выразить через другие. При этом следует использовать следующие формулы: · , пусть , тогда · · · · · · и др. Программа для вычисления значения a и b по заданным формулам будет следующей: #include <stdio.h> #include <stdlib.h> #include <math.h> double a,b; float x,y,z; int main (void) { setbuf (stdout, NULL); printf ("ЛАБОРАТОРНАЯ РАБОТА №1\n"); printf ("x(рад.)="); scanf ("%f",&x); printf ("y="); scanf ("%f",&y); printf ("z="); scanf ("%f",&z); a=(0.5* cos (x+1)* cos (x+1)- sqrt (sqrt (exp (2*y))))/(y+8+0.1* cos (x+1)); printf ("a=%f\n",a); b= exp (-z*y)- pow (exp (2*y),1.0/5.0); printf ("b=%f\n",b); printf ("Работа программы завершена.\n"); return EXIT_SUCCESS; } Создадим проект "Лаб.раб.1" (см.рис.Л1.3, Л1.10).
Ведем текст программы. Обратите внимание на команду setbuf(stdout, NULL). Данная команда нужна для перевода консоли в общепринятый режим работы. Выполним компиляцию (рис.Л1.8) и запустим программу на выполнение. Результат представлен на рис. Л1.11.
Обратите внимание на запись pow(exp(2*y),1.0/5.0) в тексте программы. Здесь для извлечения корня пятой степени (возведение в степень 1/5) используется запись 1.0/5.0. Если использовать запись 1/5, то результат будет неверным (Рис.Л1.12). Это связано с тем, что запись 1/5 определяет целочисленное деление 1 на 5. Подбор тестовых данных выполните самостоятельно.
Выполнение задания 2. Для определения факта, что каждое из заданных чисел x, y, z больше нуля можно предложить несколько алгоритмов. Три из таких алгоритмов представлены блок-схемами на рис.Л1.13-Л1.15. Алгоритм 1 (рис.Л1.13) в условных блоках содержать только одну операцию отношения. Алгоритм 2 (рис.Л1.14) имеет один условный блок, в котором записано логическое выражение, состоящее из операций отношения и логических операций. Алгоритмы 1 и 2 не используются рабочие переменные. В алгоритме 3 (рис.Л1.15) используется целочисленная рабочая переменная в качестве счётчика.
Достаточно реализовать один из вариантов алгоритма. Программа, реализующая второй вариант алгоритма (рис.Л1.14) будет следующей: #include <stdio.h> #include <stdlib.h> float x,y,z; int main (void) { setbuf (stdout, NULL); printf ("ЛАБОРАТОРНАЯ РАБОТА №1 (задание 2)\n"); printf ("x="); scanf ("%f",&x); printf ("y="); scanf ("%f",&y); printf ("z="); scanf ("%f",&z); if ((x>0)&&(y>0)&&(z>0)) printf ("Верно\n"); else printf ("Неверно\n"); printf ("Работа программы завершена.\n"); return EXIT_SUCCESS; }
Тестовые данные представлены в табл.Л1.3. Результат работы программы представлен на рис.Л1.16. Таблица Л1.3
Выполнение задания 3. Даны числа x и E (E>0). Вычислить приближенное значение суммы , где . Нужное приближение получено, если очередное слагаемое меньше E. Алгоритм нахождения требуемой суммы представлен блок-схемой на рис. Л.1.4.
Рассмотрим один из тестов. Пусть x=2 и E=0.5, тогда будет получен следующий результат , т.к. , а . Результат работы данной программе на рассмотренных тестовых данных представлен на рис.Л1.17.
Контрольные вопросы к защите К защите лабораторной работы №1 следует подготовить вопросы для повторения темы 1 и темы 2.
Дата добавления: 2014-12-27; Просмотров: 384; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |