Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабы 1-й сем / лаба 3 / 3_lab_12_team

.CPP
Скачиваний:
5
Добавлен:
09.01.2023
Размер:
3 Кб
Скачать
#include "math.h"
#include "graphics.h"
#include "conio.h"

int main()
{
    int gd, gm, error;
    detectgraph(&gd, &gm);
    error = graphresult();
    if (error == grOk)
    {
        initgraph(&gd, &gm, "//TurboC3//BGI");
        error = graphresult();
	if (error == grOk)
	{
        int cX = 20, cY = 150, step_y = 30, k = 0;
	    char number_v[5][3] = {" 2", " 1", " 0", "-1", "-2"};
        char number_h[26][3] = {
		"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"};
        setviewport(10, 75, 630, 400, 1);
	    rectangle(0, 0, 620, 300);
	    setcolor(7);
	    setbkcolor(0);
	    setlinestyle(0, 0, 3);
	    settextstyle(0, 0, 1);
	    line(cX, 1, cX, 299);
	    for (int i = (cY - (step_y * 2)); i <= (cY + (step_y * 2)); i += step_y)
	    {
            line(15, i, 25, i);
            outtextxy(2, i + 5, number_v[k]);
            k++;
	    }
	    line(1, cY, 619, cY);
	    for (int j = 1; j <= 26; j++)
	    {
            double x = j * 634 / (9 * M_PI);
            double fraction, integer;
            fraction = modf(x, &integer);
            if (fraction >= 0.5)
                integer += 1;
            int cPX = integer;
            line(cX + cPX, 145, cX + cPX, 155);
            outtextxy(cX + cPX, 160, number_h[j - 1]);
	    }
	    setlinestyle(2, 0, 1);
	    setcolor(7);
	    line(20 + 35, 1, 20 + 35, 299);
	    outtextxy(20 + 35 + 10, 30, "Pi/2");
	    line(20 + 564, 1, 20 + 564, 299);
	    outtextxy(20 + 564 + 10, 30, "8Pi");
	    double minRX = M_PI_2, maxRX = 8 * M_PI, minRY = -1., maxRY = 1., max_y = 0;
	    int minPX = 35, maxPX = 564, minPY = -step_y, maxPY = step_y;
	    int rangePX = maxPX - minPX, rangePY = maxPY - minPY;
	    double rangeRX = maxRX - minRX, rangeRY = maxRY - minRY;
	    for (int coor_x = minPX; coor_x <= maxPX; coor_x += 1)
	    {
            double x = (coor_x - minPX) * rangeRX / rangePX + minRX;
            double y = pow(sin(x), 3) - pow(cos(x), 2);
            double real_coor_y = (y - minRY) * rangePY / rangeRY + minPY;
            double fraction, integer;
            fraction = modf(fabs(real_coor_y), &integer);
            if (fraction >= 0.5)
                integer += 1;
            if (real_coor_y < 0)
                integer = -integer;
            int coor_y = integer;

            if (y > max_y)
                max_y = y; // max value = 1
            putpixel(cX + coor_x, cY - coor_y, 10);
	    }
	    setviewport(490, 380, 630, 400, 1);
	    setcolor(15);
	    bar(0, 0, 140, 20);
	    setcolor(0);
	    moveto(140 / 2, 20 / 2);
	    settextjustify(1, 1);
	    outtext("Max value = 1");
	    getch();
	    cleardevice();
	    closegraph();
	}
	else
	{
	    cprintf("%s", grapherrormsg(error));
	    getch();
	}
    }
    else
    {
	cprintf("%s", grapherrormsg(error));
	getch();
    }

    return 0;
}
Соседние файлы в папке лаба 3