Студопедия

КАТЕГОРИИ:


Архитектура-(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

Имя Описание
acos арккосинус
asin арксинус
atan арктангенс
atan2 арктангенс с двумя параметрами
ceil округление до ближайшего большего целого числа
cos косинус
cosh гиперболический косинус
exp вычисление экспоненты
fabs абсолютная величина (числа с плавающей точкой)
floor округление до ближайшего меньшего целого числа
fmod вычисление остатка от деления нацело для чисел с плавающей точкой
frexp разбивает число с плавающей точкой на мантиссу и показатель степени.
ldexp умножение числа с плавающей точкой на целую степень двух
log натуральный логарифм
log10 логарифм по основанию 10
modf(x,p) извлекает целую и дробную части (с учетом знака) из числа с плавающей точкой
pow(x,y) результат возведения x в степень y, xy
sin синус
sinh гиперболический синус
sqrt квадратный корень
tan тангенс
tanh гиперболический тангенс

 

Многие из функций можно выразить через другие. При этом следует использовать следующие формулы:

· , пусть , тогда

·

·

·

·

·

· и др.

Программа для вычисления значения 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

Номер набора Исходные данные Результат
x y z
  -1 -1 -1 неверно
  -1 -1   неверно
  -1   -1 неверно
  -1     неверно
    -1 -1 неверно
    -1   неверно
      -1 неверно
        верно

 

 
 

 

 


Выполнение задания 3.

Даны числа x и E (E>0). Вычислить приближенное значение суммы

,

где . Нужное приближение получено, если очередное слагаемое меньше E.

Алгоритм нахождения требуемой суммы представлен блок-схемой на рис. Л.1.4.


 
 

 

 


Рассмотрим один из тестов. Пусть x=2 и E=0.5, тогда будет получен следующий результат , т.к. , а . Результат работы данной программе на рассмотренных тестовых данных представлен на рис.Л1.17.

 

 
 

 


Контрольные вопросы к защите

К защите лабораторной работы №1 следует подготовить вопросы для повторения темы 1 и темы 2.




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 366; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.027 сек.