Автор работы: Пользователь скрыл имя, 10 Октября 2013 в 17:42, лабораторная работа
Цель: написать программу вычисления значения выражения при заданных исходных данных. Сравнить полученное значение с указанным правильным результатом.
Белорусский
государственный университет
Кафедра вычислительных методов и программирования
Лабораторная работа № 3
Тема: «Реализация циклических алгоритмов»
Вариант 8
Выполнил студент
группы ххххххххх
Принял: Беспалов С.А.
Минск 2011
Цель: написать программу вычисления значения выражения при заданных исходных данных. Сравнить полученное значение с указанным правильным результатом.
Индивидуальные задания. Вариант 8.
, .
При a = 0,1; b = 1,0; h = 0,1; n=10
Блок схема алгоритма.
Оконный режим:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <math.h>
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double a, b, h, y, s,r, x;
int n;
a = StrToFloat(Edit1->Text);
n = StrToInt(Edit3->Text);
b = StrToFloat(Edit2->Text);
h = StrToFloat(Edit4->Text);
Memo1->Clear();
Memo1->Lines->Add("Laba 3");
Memo1->Lines->Add("Under A = " + FloatToStrF(a, ffFixed, 7, 7)
+ "; N = " + IntToStr(n) + "; B = " + FloatToStrF(b, ffFixed, 7, 7)
+ "; H = " + FloatToStrF(h, ffFixed, 7, 7));
Chart1->Series[0]->Clear();
Chart1->Series[1]->Clear();
for(x = a; x <= b; x += h)
{
y = exp(2*x);
r=s = 1;
for(int k = 1; k <= n; k++)
{
r=r*2*x/k ;
s+=r ;
}
Chart1->Series[0]->AddXY(x, y);
Chart1->Series[1]->AddXY(x, s);
Memo1->Lines->Add("X = " + FloatToStrF(x, ffFixed, 7, 7)
+ "; Y(x) = " + FloatToStrF(y, ffFixed, 7, 7)
+ "; S(x) = " + FloatToStrF(s, ffFixed, 7, 7)
+ "; |Y(x) - S(x)| = " + FloatToStrF(fabs(y - s), ffFixed, 7, 7));
}
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Memo1->Clear();
}
Результаты работы программы.
Консольный режим
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include <conio.h>
#include <math.h>
#pragma argsused
int main(int argc, char* argv[])
{
double a, b, h, x, y, s, r;
int n;
printf("Laba 3\n");
printf("\nPlease enter value (a, b, h, n): ");
scanf("%lf%lf%lf%d", &a, &b, &h, &n);
printf("Under a = %7.7lf; b = %7.7lf; h = %7.7lf; n = %d\n", a, b, h, n);
for(x = a; x <= b; x += h)
{
y = exp(2*x);
r = s = 1;
for(int k = 1; k <= n; k++)
{
r=r*2*x/k ;
s+=r ;
}
printf("X = %7.7lf; Y(x) = %7.7lf; S(x) = %7.7lf; |Y(x) - S(x)| = %7.7lf\n",
x, y, s, fabs(y - s));
}
printf("\nPress any key ...\n");
getch();
return 0;
}
Результаты работы программы.