//#include <graphics.h>
//#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main(void)
{
const int n=20; //длина массивов
float x[n], y=1.5, f[n], st=7; // параметры рассчитываемой функции
// параметры экрана и массивы функций для отображения на экране
int scrxmin=1, scrxmax=640, scrymin=1, scrymax=480, xs[n], fs[n], xs0, ys0;
// вспомогательные минимумы и максимумы
float xtmin=9e9, xtmax=-9e9, ftmin=9e9, ftmax=-9e9;
int xsmin=32768, xsmax=-32768, fsmin=32768, fsmax=-32768;
int i1;
for (i1=0; i1<n; ++i1) // основной цикл расчета функции
{
if(i1==0) x[i1]=-100.2; else x[i1]=x[i1-1]+st;
f[i1]=(x[i1]+y)/(y+1)-(x[i1]*y-12)/(34+x[i1]);
// printf("x = %g, y = %g\n",x[i1],f[i1]);
if(x[i1]<xtmin) xtmin=x[i1]; // выявление минимума по х
if(x[i1]>xtmax) xtmax=x[i1]; // выявление максимума по у
if(f[i1]<ftmin) ftmin=f[i1]; // выявление минимума по х
if(f[i1]>ftmin) ftmax=f[i1]; // выявление максимума по у
}
printf("xmin=%g,\txmax=%g,\tfmin=%g,\tfmax=%g\n",xtmin
,xtmax
,ftmin
,ftmax
); for(i1=0; i1<n; ++i1) // цикл пересчета "натуральной" функции в экранную
{
xs[i1]=(x[i1]-xtmin)/(xtmax-xtmin)*(scrxmax-scrxmin)+1;
fs[i1]=scrymax-(f[i1]-ftmin)/(ftmax-ftmin)*(scrymax-scrymin);
if(xs[i1]<xsmin) xsmin=xs[i1];
if(xs[i1]>xsmax) xsmax=xs[i1];
if(fs[i1]<fsmin) fsmin=fs[i1];
if(fs[i1]>fsmax) fsmax=fs[i1];
}
printf("xscrmin=%d,\txscrmax=%d,\tfscrmin=%d,\tfscrmax=%d\n",xsmin
,xsmax
,fsmin
,fsmax
); xs0=-xtmin/(xtmax-xtmin)*(scrxmax-scrxmin)+1; // расчет экранного 0 по х
ys0=scrymax+ftmin/(ftmax-ftmin)*(scrymax-scrymin)+1; // расчет экранного 0 по у
printf("xs0=%d,\tys0=%d\n",xs0
,ys0
); // initgraph();
// line(scrxmin, ys0, scrxmax, ys0); // рисование осей координат
// line(xs0, scrymin, xs0, scrymax); // рисование осей координат
for(i1=0; i1<n; ++i1) // рисование экранной функции
{
// line(xs[i1-1], fs[i1-1], xs[i1], fs[i1]);
}
//_getch();
//restorecrtmode ();
return 0;
}
Ly8jaW5jbHVkZSA8Z3JhcGhpY3MuaD4KLy8jaW5jbHVkZSA8Y29uaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPG1hdGguaD4KCmludCBtYWluKHZvaWQpCnsKCWNvbnN0IGludCBuPTIwOyAvL9C00LvQuNC90LAg0LzQsNGB0YHQuNCy0L7QsgoJZmxvYXQgeFtuXSwgeT0xLjUsIGZbbl0sIHN0PTc7IC8vINC/0LDRgNCw0LzQtdGC0YDRiyDRgNCw0YHRgdGH0LjRgtGL0LLQsNC10LzQvtC5INGE0YPQvdC60YbQuNC4CgkvLyDQv9Cw0YDQsNC80LXRgtGA0Ysg0Y3QutGA0LDQvdCwINC4INC80LDRgdGB0LjQstGLINGE0YPQvdC60YbQuNC5INC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNGPINC90LAg0Y3QutGA0LDQvdC1CglpbnQgc2NyeG1pbj0xLCBzY3J4bWF4PTY0MCwgc2NyeW1pbj0xLCBzY3J5bWF4PTQ4MCwgeHNbbl0sIGZzW25dLCB4czAsIHlzMDsKCS8vINCy0YHQv9C+0LzQvtCz0LDRgtC10LvRjNC90YvQtSDQvNC40L3QuNC80YPQvNGLINC4INC80LDQutGB0LjQvNGD0LzRiwoJZmxvYXQgeHRtaW49OWU5LCB4dG1heD0tOWU5LCBmdG1pbj05ZTksIGZ0bWF4PS05ZTk7CglpbnQgeHNtaW49MzI3NjgsIHhzbWF4PS0zMjc2OCwgZnNtaW49MzI3NjgsIGZzbWF4PS0zMjc2ODsKCWludCBpMTsKCWZvciAoaTE9MDsgaTE8bjsgKytpMSkgLy8g0L7RgdC90L7QstC90L7QuSDRhtC40LrQuyDRgNCw0YHRh9C10YLQsCDRhNGD0L3QutGG0LjQuAoJCXsKCQkJaWYoaTE9PTApIHhbaTFdPS0xMDAuMjsgZWxzZSB4W2kxXT14W2kxLTFdK3N0OwoJCQlmW2kxXT0oeFtpMV0reSkvKHkrMSktKHhbaTFdKnktMTIpLygzNCt4W2kxXSk7Ci8vCQkJcHJpbnRmKCJ4ID0gJWcsIHkgPSAlZ1xuIix4W2kxXSxmW2kxXSk7CgkJCWlmKHhbaTFdPHh0bWluKSB4dG1pbj14W2kxXTsgLy8g0LLRi9GP0LLQu9C10L3QuNC1INC80LjQvdC40LzRg9C80LAg0L/QviDRhQoJCQlpZih4W2kxXT54dG1heCkgeHRtYXg9eFtpMV07IC8vINCy0YvRj9Cy0LvQtdC90LjQtSDQvNCw0LrRgdC40LzRg9C80LAg0L/QviDRgwoJCQlpZihmW2kxXTxmdG1pbikgZnRtaW49ZltpMV07IC8vINCy0YvRj9Cy0LvQtdC90LjQtSDQvNC40L3QuNC80YPQvNCwINC/0L4g0YUKCQkJaWYoZltpMV0+ZnRtaW4pIGZ0bWF4PWZbaTFdOyAvLyDQstGL0Y/QstC70LXQvdC40LUg0LzQsNC60YHQuNC80YPQvNCwINC/0L4g0YMKCQl9CglwcmludGYoInhtaW49JWcsXHR4bWF4PSVnLFx0Zm1pbj0lZyxcdGZtYXg9JWdcbiIseHRtaW4seHRtYXgsZnRtaW4sZnRtYXgpOwoJZm9yKGkxPTA7IGkxPG47ICsraTEpIC8vINGG0LjQutC7INC/0LXRgNC10YHRh9C10YLQsCAi0L3QsNGC0YPRgNCw0LvRjNC90L7QuSIg0YTRg9C90LrRhtC40Lgg0LIg0Y3QutGA0LDQvdC90YPRjgoJCXsKCQkJeHNbaTFdPSh4W2kxXS14dG1pbikvKHh0bWF4LXh0bWluKSooc2NyeG1heC1zY3J4bWluKSsxOwoJCQlmc1tpMV09c2NyeW1heC0oZltpMV0tZnRtaW4pLyhmdG1heC1mdG1pbikqKHNjcnltYXgtc2NyeW1pbik7CgkJCWlmKHhzW2kxXTx4c21pbikgeHNtaW49eHNbaTFdOwoJCQlpZih4c1tpMV0+eHNtYXgpIHhzbWF4PXhzW2kxXTsKCQkJaWYoZnNbaTFdPGZzbWluKSBmc21pbj1mc1tpMV07CgkJCWlmKGZzW2kxXT5mc21heCkgZnNtYXg9ZnNbaTFdOwoJCX0KCXByaW50ZigieHNjcm1pbj0lZCxcdHhzY3JtYXg9JWQsXHRmc2NybWluPSVkLFx0ZnNjcm1heD0lZFxuIix4c21pbix4c21heCxmc21pbixmc21heCk7Cgl4czA9LXh0bWluLyh4dG1heC14dG1pbikqKHNjcnhtYXgtc2NyeG1pbikrMTsgLy8g0YDQsNGB0YfQtdGCINGN0LrRgNCw0L3QvdC+0LPQviAwINC/0L4g0YUKCXlzMD1zY3J5bWF4K2Z0bWluLyhmdG1heC1mdG1pbikqKHNjcnltYXgtc2NyeW1pbikrMTsgLy8g0YDQsNGB0YfQtdGCINGN0LrRgNCw0L3QvdC+0LPQviAwINC/0L4g0YMKCXByaW50ZigieHMwPSVkLFx0eXMwPSVkXG4iLHhzMCx5czApOwovLwlpbml0Z3JhcGgoKTsKLy8JbGluZShzY3J4bWluLCB5czAsIHNjcnhtYXgsIHlzMCk7IC8vINGA0LjRgdC+0LLQsNC90LjQtSDQvtGB0LXQuSDQutC+0L7RgNC00LjQvdCw0YIKLy8JbGluZSh4czAsIHNjcnltaW4sIHhzMCwgc2NyeW1heCk7IC8vINGA0LjRgdC+0LLQsNC90LjQtSDQvtGB0LXQuSDQutC+0L7RgNC00LjQvdCw0YIKZm9yKGkxPTA7IGkxPG47ICsraTEpIHByaW50ZigiJWQsICIseHNbaTFdKTsgcHJpbnRmKCJcbiIpOwoJZm9yKGkxPTA7IGkxPG47ICsraTEpIC8vINGA0LjRgdC+0LLQsNC90LjQtSDRjdC60YDQsNC90L3QvtC5INGE0YPQvdC60YbQuNC4CgkJewoJCQlwcmludGYoIiVkLCAiLGZzW2kxXSk7Ci8vCQkJbGluZSh4c1tpMS0xXSwgZnNbaTEtMV0sIHhzW2kxXSwgZnNbaTFdKTsKCQl9Ci8vX2dldGNoKCk7Ci8vcmVzdG9yZWNydG1vZGUgKCk7CnJldHVybiAwOwp9
xmin=-100.2, xmax=32.8, fmin=-41.9317, fmax=13.1631
xscrmin=1, xscrmax=640, fscrmin=1, fscrmax=480
xs0=482, ys0=116
1, 34, 68, 101, 135, 169, 202, 236, 270, 303, 337, 370, 404, 438, 471, 505, 539, 572, 606, 640,
480, 456, 433, 410, 388, 367, 348, 333, 330, 423, 84, 153, 148, 133, 113, 92, 70, 47, 24, 1,