Отчет по лабораторной работе №2



Федеральное агентство по образованию

ГОУ ВПО Уральский федеральный университет
имени первого Президента России Б.Н. Ельцина

 

 

Кафедра «Вычислительная техника»

 

 

Курсовая работа по технологии программирования

 

 

Преподаватель                                                          В. Г. Томашевич

 

Студент                                                                             Д.Д. Митюнин

группы Фт-290801

 

 

Отчет по лабораторной работе №1

Постановка задачи

 

1. Вычислить значение выражения при различных вещественных типах данных (float и double). Вычисления следует выполнять с использованием промежуточных переменных. Сравнить и объяснить полученные результаты при а=1000, b=0.0001

  

2. Вычислить значения выражений. Объяснить полученные результаты.

1) m+--n

 2) m++<++n

3) n--< --m

Программа решения задания 1.

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include <iostream.h>

#include <conio.h>

#include <math.h>

//---------------------------------------------------------------------------

 

#pragma argsused

int main(int argc, char* argv[])

{

           double a,w,t,b,q,e,r,func;

           a = 1000; b = 0.0001;

 

           q = pow(a-b,3);

           w = pow(a,3);

           e = pow(b,3);

           r = pow(b,2);

           t = pow(a,2);

 

           func = (q - w) / (e - 3*a*r - 3*t*b);

 

           float a1,w1,t1,b1,q1,e1,r1,func1;

               

           a1 = 1000; b1 = 0.0001;

 

           q1 = pow(a1-b1,3);

           w1 = pow(a1,3);

           e1 = pow(b1,3);

           r1 = pow(b1,2);

           t1 = pow(a1,2);

 

           func1 = (q1 - w1) / (e1 - 3*a1*r1 - 3*t1*b1);

 

           cout << "double: " << func << endl << "float: " <<func1;

           getch();

           return 0;

}

Программа решения задания 2.

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include <iostream.h>

#include <conio.h>

//---------------------------------------------------------------------------

#pragma argsused

 

int main(int argc, char* argv[])

{

           int m;

           int n;

           int f,f2,f3;

 

           cout << "m = ";

           cin >> m; // вводим m

           cout << "n = ";

           cin >> n; // вводим n

 

           cout << "m+--n : ";

           f = m+--n;

           cout << f << endl;

 

           cout << "m = "<<m << endl;

           cout << "n = "<<n << endl;

               

           cout << endl;

 

           cout << "m++<++n : " ;

           f2 = m++<++n;

           cout << f2 << endl;

           cout << "m = "<<m << endl;

           cout << "n = "<<n << endl;

 

           cout << endl;

 

           cout << "n--<--m : " ;

           f3 = n--<--m;

           cout << f3 << endl;

           cout << "m = "<< m << endl;

           cout << "n = "<< n << endl;

           cout << endl;

 

           getch();

           return 0;

}

//---------------------------------------------------------------------------


Результат работы программы

Задача 1:  

Задача 2:

 


 

Объяснения результатов

Задача 1:

По завершении вычисления выражения мы можем видеть результат. При переменных типа double у нас получается единица, а при переменных типа float число 1.28. Различие в ответах заключается не только в типах данных переменных, но и в самой структуре выражения. Типы данных double является более точным, т.к этот тип занимает 8 байт, а тип float всего 4 байта. Поэтому, когда у нас идет вычисление выражения = , то число b степени выше 1 обнуляется при типе данных float, отчего и получаем число 1.28, то есть возникает погрешность вычисления. А при типе данных double нет обнуления, отчего получаем в результате единицу.

Задача 2:

       При начальных условиях m=1 и n=1 мы видим, что если перед переменной стоит два минуса(--) , то переменная уменьшается на 1 и происходит дальнейшее действие. Если после переменной стоят два плюса(++), то происходит сначала действие, потом увеличение переменной на 1. Если перед переменной (++), то сначала увеличение на 1, потом действие. Если же после переменной (--), то сначала происходит действие, а потом увеличение числа на 1.

 

 


Отчет по лабораторной работе №2

 

Постановка задачи

Найти сумму ряда с точностью e=10-4, общий член которого

Программа решения.

//---------------------------------------------------------------------------

 

#include <vcl.h>

#pragma hdrstop

#include <iostream.h>

#include <conio.h>

#include <math.h>

//---------------------------------------------------------------------------

 

#pragma argsused

int main()

{

     float sum,an,anext;

     float t = 0.001; // точность

     int n;

     cout << "e = " << t << endl;

     an = 0.25; // первый член ряда

     sum = an; // в сумму записываем первый член

     for (n = 2; ; n++)

     {

           if (an < t)

           {

           cout << "sum = " << sum << endl;

           break;

           }

           else

           {

           anext = an*(3*n-2)/(3*n+4);

           sum = anext + sum;

           an = anext;

           }

 

     }

     getch();

     return 0;

}

//---------------------------------------------------------------------------


Результат работы программы

 

 

 

 


Дата добавления: 2018-05-13; просмотров: 520; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!