Advertisement
huutho_96

Untitled

Mar 12th, 2015
337
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "graphics.h"
  2. #include "process.h"
  3. #include "dos.h"
  4. #include "iostream"
  5. using namespace std;
  6. int P, W = 30, H = 200, D = 50, N = 6, X = 400, Y = 50;
  7. #define M_PI 3.14
  8. void menu();
  9. struct Diem
  10. {
  11.     int x, y;
  12. };
  13. void hcos()
  14. {
  15.     int mh = 0, mode = 2;
  16.     initgraph(&mh, &mode, "");
  17.     setbkcolor(BLUE);
  18.     settextstyle(5, 0, 10);
  19.     outtextxy(220, 30, " Do thi ham so y = cos(x)");
  20.     setviewport(getmaxx() / 8, getmaxy() / 8, 7 * getmaxx() / 8, 7 * getmaxy() / 8, 1);
  21.     rectangle(0, 0, 3 * getmaxx() / 4, 3 * getmaxy() / 4);
  22.     setfillstyle(1, YELLOW);//chon kieu duong  
  23.     floodfill(getmaxx() / 2, getmaxy() / 2, YELLOW);
  24.     setviewport(getmaxx() / 2, getmaxy() / 2, 7 * getmaxx() / 8, 7 * getmaxy() / 8, 0);
  25.     setcolor(BLUE);
  26.     line(-3 * (getmaxx() / 8), 0, 3 * getmaxx() / 8, 0);
  27.     line(0, -3 * (getmaxy() / 8), 0, 3 * getmaxy() / 8);
  28.     outtextxy(0, 0, "(0,0)");
  29.     outtextxy(3 * (getmaxx() / 8) - 7, 0, "x");
  30.     outtextxy(0, -3 * (getmaxy() / 8) - 7, "y");
  31.     int x, y;
  32.     for (int i = -400; i <= 400; ++i)
  33.     {
  34.         //x=2*M_PI*i*20/200;  
  35.         x = 2 * M_PI*i * 20 / 200;
  36.         y = -2000 * cos(2 * M_PI*i / 200) / 60;
  37.         putpixel(x, y, RED);
  38.         delay(10);
  39.     }
  40.     setcolor(WHITE);
  41.     outtextxy(220, 200, " Thoat ESC");
  42.     char c;
  43.     c = getch();
  44.     if (c == 27)
  45.     {
  46.         closegraph();
  47.         menu();
  48.     }
  49. }
  50. void hsin()
  51. {
  52.     int mh = 0, mode = 2;
  53.     initgraph(&mh, &mode, "");
  54.     setbkcolor(GREEN);
  55.     settextstyle(5, 0, 10);
  56.     outtextxy(220, 30, " Do thi ham so y = sin(x)");
  57.     setviewport(getmaxx() / 8, getmaxy() / 8, 7 * getmaxx() / 8, 7 * getmaxy() / 8, 1);
  58.     rectangle(0, 0, 3 * getmaxx() / 4, 3 * getmaxy() / 4);
  59.     setfillstyle(1, BLUE);
  60.     floodfill(getmaxx() / 2, getmaxy() / 2, YELLOW);
  61.     setviewport(getmaxx() / 2, getmaxy() / 2, 7 * getmaxx() / 8, 7 * getmaxy() / 8, 0);
  62.     setcolor(BLACK);
  63.     line(-3 * (getmaxx() / 8), 0, 3 * getmaxx() / 8, 0);
  64.     line(0, -3 * (getmaxy() / 8), 0, 3 * getmaxy() / 8);
  65.     outtextxy(0, 0, "(0,0)");
  66.     outtextxy(3 * (getmaxx() / 8) - 7, 0, "x");
  67.     outtextxy(0, -3 * (getmaxy() / 8) - 7, "y");
  68.     int x, y;
  69.     for (int i = -400; i <= 400; ++i)
  70.     {
  71.         x = 2 * M_PI*i * 20 / 200;
  72.         y = -2000 * sin(2 * M_PI*i / 200) / 60;
  73.         putpixel(x, y, RED);
  74.         delay(10);
  75.     }
  76.     setcolor(WHITE);
  77.     outtextxy(220, 200, " Thoat ESC");
  78.     char c;
  79.     c = getch();
  80.     if (c == 27)
  81.     {
  82.         closegraph();
  83.         menu();
  84.     }
  85. }
  86. unsigned int visualpage, centre, stangle, endangle;
  87. void init()
  88. {
  89.     int a0, a1, r, r1, r2, r3, r4, r5, r6;
  90.     int y1, xc, yc, x1, x2, y2, x3, y3, x4, y4, x5, y5;
  91.     int mh = 0, mode = 2;
  92.     initgraph(&mh, &mode, "");
  93.     setbkcolor(WHITE);
  94.     setcolor(RED);
  95.     outtextxy(10, 10, "Bam phim Esc de thoat");
  96.     setcolor(YELLOW);
  97.     setfillstyle(1, 5);
  98.     centre = getmaxx() / 2;
  99.     r = getmaxy() / 8;
  100.     r1 = 1 + r / 2;
  101.     r2 = 1 + r / 4;
  102.     r1 = r / 10;
  103.     xc = centre - r1;
  104.     yc = 180 - r;
  105.     x1 = xc - (r + r1) / 2 + 5;
  106.     y1 = yc - (r + r1)*sqrt(3 / 4) + 5;
  107.     x2 = xc - (r + r2); y2 = yc - 10;
  108.     x3 = xc + (r + r2) / 2;
  109.     y3 = yc - (r + r2)*sqrt(3 / 4) + 10;
  110.     x4 = x1 - (r1 / 2)*sqrt(3 / 4) + 1;
  111.     y4 = y1 + (r1 / 2) - 7;
  112.     x5 = x1 + (r1 / 2)*sqrt(3 / 4) - 1;
  113.     y5 = y1 - (r1 / 2) + 7;
  114.     stangle = 270;
  115.     endangle = 340;
  116. }
  117. void bacnhat()
  118. {
  119.     int mh = 0, mode = 2, a, b;
  120.     initgraph(&mh, &mode, "");
  121.     setbkcolor(BLUE);
  122.     outtextxy(220, 10, " Do thi ham so y = ax+b");
  123.     cout << "\n";
  124.     cout << "    Nhap a= ";
  125.     cin >> a;
  126.     cout << "\n";
  127.     cout << "    Nhap b= ";
  128.     cin >> b;
  129.     settextstyle(5, 0, 10);
  130.     setviewport(getmaxx() / 2, getmaxy() / 2, getmaxx(), getmaxy(), 0);
  131.     setcolor(WHITE);
  132.     line(-(getmaxx() / 2), 0, getmaxx() / 2, 0);
  133.     line(0, -(getmaxy() / 2), 0, getmaxy() / 2);
  134.     outtextxy(0, 0, "(0,0)");
  135.     outtextxy((getmaxx() / 2) - 10, 0, "x");
  136.     outtextxy(0, (getmaxy() / 2) - 10, "y");
  137.     setcolor(YELLOW);
  138.     line(-(getmaxx() / 2) * 10, (a*(-1)*(getmaxy() / 2) + b) * 10, (getmaxx() / 2) * 10, (a*(getmaxy() / 2) + b) * 10);
  139.     delay(40);
  140.     outtextxy(200, (getmaxy() / 2) - 30, "Thoat: ESC ");
  141.     char c;
  142.     c = getch();
  143.     if (c == 27)
  144.     {
  145.         closegraph();
  146.         menu();
  147.     }
  148. }
  149. void parabol()
  150. {
  151.     int mh = 0, mode = 2, a, b, e, w, t;
  152.     initgraph(&mh, &mode, "");
  153.     setbkcolor(BLUE);
  154.     settextstyle(5, 0, 10);
  155.     outtextxy(220, 30, " Do thi ham so y = a*x*x+bx+c");
  156.     cout << "\n";
  157.     cout << "   Nhap a=";
  158.     cin >> a;
  159.     cout << "   Nhap b=";
  160.     cin >> b;
  161.     cout << "   Nhap c=";
  162.     cin >> e;
  163.     w = (b*b - 4 * a*e) / 2 * a;
  164.     t = -b / (2 * a);
  165.     setviewport(getmaxx() / 2, getmaxy() / 2, getmaxx(), getmaxy(), 0);
  166.     line(-(getmaxx() / 2), -w, getmaxx() / 2, -w);
  167.     line(-t, -(getmaxy() / 2), -t, getmaxy() / 2);
  168.     outtextxy(0, 0, "(0,0)");
  169.     outtextxy((getmaxx() / 2) - 10, 0, "x");
  170.     outtextxy(0, (getmaxy() / 2) - 10, "y");
  171.     float x, y, j;
  172.     for (int i = -200; i <= 200; ++i)
  173.     {
  174.         x = i;
  175.         y = -a*pow(x, 2) - b*x - e; j = y;
  176.         putpixel(x, j, YELLOW);
  177.         //           delay(0);
  178.     }       outtextxy(200, (getmaxy() / 2) - 30, "Thoat: ESC ");
  179.     char c;
  180.  
  181.     c = getch();
  182.     if (c == 27)
  183.     {
  184.         closegraph();
  185.         menu();
  186.     }
  187. }
  188. void hambac3()
  189. {
  190.     int mh = 0, mode = 0, a, b, d, e;
  191.     initgraph(&mh, &mode, "");
  192.     setbkcolor(BLUE);
  193.     settextstyle(5, 0, 10);
  194.     outtextxy(220, 30, " Do thi ham so y = a*x*x*x");
  195.     cout << "Nhap a="; cin >> a;
  196.     setviewport(getmaxx() / 2, getmaxy() / 2, getmaxx(), getmaxy(), 0);
  197.     line(-(getmaxx() / 2), 0, getmaxx() / 2, 0);
  198.     line(0, -(getmaxy() / 2), 0, getmaxy() / 2);
  199.     outtextxy(0, 0, "(0,0)");
  200.     outtextxy((getmaxx() / 2) - 10, 0, "x");
  201.     outtextxy(0, (getmaxy() / 2) - 10, "y");
  202.     float x, y, j;
  203.     for (int i = -200; i <= 200; ++i)
  204.     {
  205.         x = i;
  206.         y = a*pow(x, 3); j = y / 4000;
  207.         putpixel(x, j, YELLOW);
  208.         delay(10);
  209.     }
  210.     outtextxy(200, (getmaxy() / 2) - 30, "Thoat: ESC ");
  211.     char c;
  212.     c = getch();
  213.     if (c == 27)
  214.     {
  215.         closegraph();
  216.         menu();
  217.     }
  218. }
  219. void goi(int h)
  220. {
  221.     if (h == 1) hsin();
  222.     if (h == 2) hcos();
  223.     if (h == 3) bacnhat();
  224.     if (h == 4) parabol();
  225.     if (h == 5) hambac3();
  226. }
  227. void Ve(int P)
  228. {
  229.     int i;
  230.     for (i = 0; i<N; ++i)
  231.     {
  232.         setbkcolor(1); setcolor(3);
  233.         line(X - H, Y + i*D, X - H, Y + i*D + W);
  234.         line(X - H, Y + i*D, X, Y + i*D);
  235.         line(X, Y + i*D, X, Y + i*D + W);
  236.         line(X - H, Y + i*D + W, X, Y + i*D + W);
  237.         setcolor(4);
  238.         if (i == 0) outtextxy(220, 60, "Do thi ham so sin(x)");
  239.         if (i == 1) outtextxy(220, 110, "Do thi ham so cos(x)");
  240.         if (i == 2) outtextxy(220, 160, "Do thi ham bac nhat");
  241.         if (i == 3) outtextxy(220, 210, "Do thi ham bac hai");
  242.         if (i == 4) outtextxy(220, 260, " Ham bac ba");
  243.         if (i == 5) outtextxy(220, 310, " Thoat chuong trinh");
  244.         outtextxy(100, 360, " SVTH: Phi Thi Hai Yen");
  245.     }
  246.     setcolor(15);
  247.     line(X - H, Y + (P - 1)*D, X - H, Y + (P - 1)*D + W);
  248.     line(X - H, Y + (P - 1)*D, X, Y + (P - 1)*D);
  249.     setcolor(8);
  250.     line(X, Y + (P - 1)*D, X, Y + (P - 1)*D + W);
  251.     line(X - H, Y + (P - 1)*D + W, X, Y + (P - 1)*D + W);
  252. }
  253.  
  254. void main()
  255. {
  256.     P = 1;
  257.     menu();
  258.     getch();
  259. }
  260. void menu()
  261. {
  262.     int mh = 0, mode = 2;
  263.     char c;
  264.     initgraph(&mh, &mode, "D:\TC\bin");
  265.     outtextxy(200, 20, "DO THI MOT SO HAM SO SO CAP");
  266.     Ve(P);
  267.     do
  268.     {
  269.         c = getch();
  270.         if (c == 13)        
  271.         {
  272.             closegraph();
  273.             if (P == 6) exit(0);
  274.             else
  275.                 goi(P);
  276.         }
  277.         if (c == 72)
  278.             if (P>1)
  279.             {
  280.                 P -= 1;
  281.                 Ve(P);
  282.             }
  283.             else            
  284.             {
  285.                 P = N;
  286.                 Ve(P);
  287.             }
  288.         if (c == 80) if (P<N)
  289.         {
  290.             P += 1;
  291.             Ve(P);
  292.         }
  293.         else
  294.         {
  295.             P = 1;
  296.             Ve(P);
  297.         }
  298.     } while (1);
  299. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement