1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
| #include <conio.h>
#include <malloc.h>
#include <stdlib.h>
#include <vcl.h>
#include <iostream.h>
#include <stdio.h>
#include <math.h>
double Min(double xmin, double xmax, double step) //Функция вернет ymin
{
double min;
min=sin(xmin*xmin);
for (double i=xmin+step; i<=xmax; i+=step)
{
if (sin(i*i)<min) min=sin(i*i);
}
return min;
}
double Max(double xmin, double xmax, double step) //Функция вернет ymax
{
double max;
max=sin(xmin*xmin);
for (double i=xmin+step; i<=xmax; i+=step)
{
if (sin(i*i)>max) max=sin(i*i);
}
return max;
}
int main()
{
int m,n;
double ymin, ymax,x,dx,dy,y,f,d;
double xmin,xmax;
xmin=-3.14, xmax=3.14;
printf("Lab N1. \nFunction: sin(x*x).\nRange: [-Pi;Pi]\n");
//Получить n и d
printf("\nInput n: \n");
cin>>n;
printf("\nInput d: \n");
cin>>d;
if (n<=0||d<=0){ cout<<"ERROR\n"; system("pause"); return 0;}
//Рассчитать ymax и ymin
ymin=Min(xmin,xmax, d);
ymax=Max(xmin,xmax, d);
//Рассчет m
m=(n*(ymax-ymin)/(xmax-xmin));
cout<<"m = "<<m<<endl;
//Объявление матрицы
char **M;
M=new char* [m];
for (int i=0; i<m; i++)
M[i]=new char[n];
//Заполнение матрицы
dx=(xmax-xmin)/n;//Щаг по x
dy=(ymax-ymin)/m;//Шаг по y
x=xmin;
int j=0,i;
while (j<n){
f=sin(x*x);
i=m-1; y=ymin;
while (i>=0){
if (fabs(y-f)<=d )
M[i][j]='0';
else M[i][j]='_';
i--; y=y+dy;
}
j++; x=x+dx;
}
//Вывод матрицы
//printf("Initial matrix: \n");
//for (i=0;i<m;i++)
//{ for(j=0;j<n;j++)
// {
// printf("%5i",M[i][j]);
// fprintf(OutputFile,"%4d",M[i][j]);
// }
// printf("\n");
// fprintf(OutputFile,"\n");
//}
for (i=0;i<m;i++)
{ for(j=0;j<n;j++)
cout<<M[i][j];
cout<<"\n";
}
for (int i = 0; i < m; i ++ )
delete M[i];
delete M;
cout<<endl;
system("pause");
return 0;
} |