Лабораторная работа №5
«Отладка и интеграция модулей.
Выполнил: студент группы
Проверил:
ЦЕЛЬ РАБОТЫ:
Приобретение навыков отладки и интеграции модулей в единую программу.
ЗАДАНИЕ:
Собрать разработанные и оттестированные модули в единую программу и провести ее отладку.
ВЫПОЛНЕНИЕ:
Соберем разработанные в предыдущих лабораторных работах модули в единую программу. При этом роль модулей будут выполнять соответствующие им функции.
Текст программы:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
float mysin(float x)
{
while (x>M_PI) x-=2*M_PI;
while (x<-M_PI) x+=2*M_PI;
float S=x, A=x,q,eps=0.001,n=1;
while(fabs(A)>=eps)
{
q=-x/(2*n)*x/(2*n+1);
A*=q;
S+=A;
n+=1;
}
return S;
}
float F(float t, float eps)
{
float x,s,a,q,n;
x=t;
n=1; a=(x-1)/x; s=(x-1)/x;
do {
q=n/((n+1)*(x-1)/x);
a=a*q;
s=s+a;
n=n+1;
} while (fabs(a)>=eps);
return s;
}
float fi(float t, float z)
{
return (t*z/10+t*mysin(z));
}
void main(void)
{
float t, z, eps, t0, tk, ht, z0, zn, hz, U, F_, fi_, mysin_;
clrscr();
printf("Эта программа вычисляет значение функции U(t,z).\n");
for(;;) {
printf("Введите t0 (|t0|<5) = ");
scanf("%f", &t0);
if (fabs(t0) < 5)
break;
else {
printf("|t0|>=5. Не может быть такого!\nВведите другое значение!\n");
}
}
for(;;) {
printf("Введите tk (|tk|>=5, tk >= t0) = ");
scanf("%f", &tk);
if (fabs(tk) < 5 && tk >= t0)
break;
else {
if(fabs(tk)>=5) printf("|tk|>5.");
if(tk<t0) printf("tk<t0.");
printf("Не может быть такого!\nВведите другое значение!\n");
}
}
for(;;) {
printf("Введите ht (ht>0, ht<=(tk-t0)) = ");
scanf("%f", &ht);
if ((ht <= (tk - t0)) && ht > 0)
break;
else {
if(ht > (tk - t0)) printf("ht > (tk - t0).");
if(ht <= 0) printf("ht <= 0.");
printf("Не может быть такого!\nВведите другое значение!\n");
}
}
for(;;) {
printf("Введите z0 (|z0|>=5) = ");
scanf("%f", &z0);
if (fabs(z0) < 5)
break;
else printf("|z0|>5. Не может быть такого!\nВведите другое значение!\n");
}
for(;;) {
printf("Введите zn (|zn|>=5, zn>z0)= ");
scanf("%f", &zn);
if (fabs(zn) < 5 && zn >= z0)
break;
else {
if(fabs(zn)>=5) printf("|zn|>=5.");
if(zn < z0) printf("zn < z0.");
printf("Не может быть такого!\nВведите другое значение!\n");
}
}
for(;;) {
printf("Введите hz (hz>0, hz<=(zn-z0))= ");
scanf("%f", &hz);
if ((hz <= (zn - z0)) && hz > 0)
break;
else {
if(hz > (zn - z0)) printf("hz > (zn - z0).");
if(hz <= 0) printf("hz <= 0.");
printf("Не может быть такого!\nВведите другое значение!\n");
}
}
for(;;) {
printf("Введите eps (0<eps<0.99)= ");
scanf("%f", &eps);
if (eps > 0 && eps <0.99)
break;
else {
if(eps<=0) printf("eps<=0.");
if(eps>=0.99) printf("eps>=0.99.");
printf("Не может быть такого!\nВведите другое значение!\n");
}
}
printf("Результаты работы программы:\n");
printf("-------------T-----------------------------------м\n");
printf("ж Значения ж Значения параметров ж\n");
printf("ж функции +-----------------T-----------------+\n");
printf("ж U ж t ж z ж\n");
printf("+------------+-----------------+-----------------+\n");
for (t = t0; t <= tk; t += ht) {
for (z = z0; z <= zn; z += hz) {
if (fabs(fi(t,z))<0.00001) {
printf("-хыхэшх эр 0!");
exit(1);
}
U = F(t, eps)*mysin(t*z)/fi(t, z);
printf("ж % 2.4f ж % .2f ж % .2f ж\n", U, t, z);
}
}
printf("L------------+-----------------+------------------\n");
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.