Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Институт радиоэлектроники и информационных техн....docx
Скачиваний:
3
Добавлен:
21.04.2019
Размер:
282.12 Кб
Скачать
      1. Выполнение программы

Для вызова программы необходимо перейти в каталог программы и запустить файл метод прогонки.exe.

5.3.4 Входные и выходные данные

Входными данными для этой программы являются номер fi и s (s=0,5). После ввода входных данных не обязательно нажать клавишу Enter.

Выходные данные: значения функции Y(X), рассчитанные методом прогонки для всех s и f. Результат выводится на экран и сохраняется в файл с расширением xls.

5.3.5 Сборка программы

Средой разработки программы является Microsoft Visual Studio 2008. Программа написана на языке С++.

5.3.6 Текст программы

#include <stdio.h>

#include <math.h>

#include "stdafx.h"

#include <windows.h>

#include <iostream>

#include <conio.h>

#include <time.h>

#include <ctime>

#include <stdlib.h>

#include <string.h>

#include <locale.h>

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <math.h>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

setlocale( LC_ALL, "Russian" ); //и вот эта команда

float y0=0;// значения функции У на концах интервала

float y1=1;

float A=0;

float B=0;

float a=0;// концы

float b=1;

float a0=1;// для ЛК. Берем из логики рисунка + задания.

float a1=0;

float b0=1;

float b1=0;

int Nom;

int n=5;

int u=1;

int s;

float h= (b-a)/n;

float im=0;

//функция перед 1й производной/ Значения записываются по fi, после чего изменяется Xi.Строчка

float p[6];

cout<<"VVEDI NOMER FUNC 1-5";

//cin>> Nom;

FILE * f = fopen("пакет.xls","w+");

fseek(f, 0, SEEK_END);

int z = ftell(f);

fseek(f, 0, SEEK_SET);

fprintf (f, "%s" ,"\n");

for(Nom=1;Nom<6;Nom++)

{switch (Nom)

{

case 1:

{

p[0]= -1.7930;

p[1]= -1.7863;

p[2]= -1.7800;

p[3]= -1.7700;

p[4]= -1.7600;

p[5]= -1.7500;

break;

}

case 2:

{

p[0]= -1.7012;

p[1]= -1.6877;

p[2]= -1.6776;

p[3]= -1.6709;

p[4]= -1.6673;

p[5]= -1.6668;

break;

}

case 3:

{

p[0]= -1.6184;

p[1]= -1.5994;

p[2]= -1.5838;

p[3]= -1.5714;

p[4]= -1.5630;

p[5]= -1.5555;

break;

}

case 4:

{

p[0]= -1.5432;

p[1]= -1.5200;

p[2]= -1.5000;

p[3]= -1.4832;

p[4]= -1.4692;

p[5]= -1.4581;

break;

}

case 5:

{

p[0]= -1.4747;

p[1]= -1.4480;

p[2]= -1.4246;

p[3]= -1.4043;

p[4]= -1.3869;

p[5]= -1.3722;

break;

}

}

for (int i=0;i<6;i++)//Вывод p

{

cout<<"p"<<i<<"="<<p[i]<<"\n";

}

cout<< "VVEDI S";

//cin>>s;

for (s=0;s<6;s++)

{cout<< "VIBRANO S="<<s<<"\n";

float q[6];

for (int i=0;i<6;i++)// Для всех точек f1

{

q[i]=cos((im/5)*(0.7+0.05*s));//im/5 - смена х

im=im++;

}

for (int i=0;i<6;i++)//Вывод q

{

cout<<"q"<<i<<"="<<q[i]<<"\n";

}

float m[4];

float k[4];

for (int i=0;i<4;i++)

{

m[i]=( -2+1/(5*p[i]));

k[i]=(1-(h*p[i])+ (h*h*q[i]));

}

for (int i=0;i<4;i++)

{

cout<<"m"<<i<<"="<<m[i]<<"\n";

}

for (int i=0;i<4;i++)

{

cout<<"k"<<i<<"="<<k[i]<<"\n";

}

float c[4];

float d[4];

c[0]=(a1-(a0*h))/(m[0]*(a1-a0*h)+(k[0]*a1));

d[0]=((k[0]*A*h)/(a1-a0*h) + (2*0*0+2*0-4));/////////////////////////////

for (int i=1;i<4;i++)

{

c[i]=( 1/(m[i]-(k[i]*c[i-1])));

d[i]=(( 2*i*i+2*i-4)*h*h)-(k[i]*c[i-1]*d[i-1]);//////////////////////////////

}

for (int i=0;i<4;i++)

{

cout<<"c"<<i<<"="<<c[i]<<"\n";

}

for (int i=0;i<4;i++)

{

cout<<"d"<<i<<"="<<d[i]<<"\n";

}

float y[6];

y[5]=(b1*c[3]*d[3]+B*h)/(b1*(1+c[3])+b0*h);

for (int i=3;i>-1;i--)

{

y[i+1]=(c[i]*(d[i]-y[i+2]));

}

y[0]=(a1*y[1]-A*h)/(a1-a0*h);

for (int i=0;i<6;i++)

{

cout<<"y"<<i<<"="<<y[i]<<"\n";

}

// fprintf (f, "%c %c %c %c %c %c %c %c %c %c %c %c %c" ,"S","\t","Номер fi","\t","\t","\t","\t","\t","\t","\t","\t","\t","\n");

fprintf (f, "%i %s %i %s %f %s %f %s %f %s %f %s %f %s %f %s %s" , s,"\t", Nom,"\t", y[0],"\t", y[1],"\t",y[2],"\t",y[3],"\t",y[4],"\t", y[5],"\t","\n");

getch();

}}

getch();

return 0;

}