Графика

Тема в разделе "WASM.BEGINNERS", создана пользователем Luna, 6 май 2010.

  1. Luna

    Luna New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2009
    Сообщения:
    288
    Дан класс :равносторонний треугольник, вписанный в окружность. В самом конце ошибка: declaration terminated incorrectly. Как её устранить?


    Код (Text):
    1. #include <math.h>
    2. #include <conio.h>
    3. #include <graphics.h>
    4.  //tre.cpp
    5.  class tre
    6.  {int xq, yq, lq;
    7.  public:
    8.  void drawtre()
    9.  
    10.    {int d=lq/2;
    11.  
    12.     line (xq-d, yq-d, xq+d, yq-d);
    13.     line (xq-d, yq-d, xq, yq+d);
    14.     line (xq+d, yq-d, xq, yq+d);
    15.     }
    16.  
    17.  tre(int xi,int yi,int li)
    18.   {xq=xi,yq=yi,lq=li;}
    19.  
    20.  void draw()
    21.  {drawtre();}
    22.  
    23.  void hide()
    24.  {int bk,cc;
    25.  bk=getbkcolor();
    26.  cc=getcolor();
    27.  setcolor(bk);
    28.  drawtre();
    29.  setcolor(cc);
    30.   }
    31.  
    32.  };
    33.  
    34.  
    35. //circ.cpp
    36.  
    37.  class circ
    38.  {int xc, yc, rc;
    39.  public:
    40.  
    41.  circ(int xi,int yi,int ri)
    42.   {xc=xi;yc=yi;rc=ri;}
    43.  
    44.  void draw()
    45.  {circle(xc,yc,rc);}
    46.  
    47.  void hide()
    48.  {int bk,cc;
    49.  bk=getbkcolor();
    50.  cc=getcolor();
    51.  setcolor(bk);
    52.  circle(xc,yc,rc);
    53.  setcolor(cc);
    54.   }
    55.  
    56.  };
    57.  
    58.  
    59.  class trecirc:public tre, public circ
    60.  
    61.   {public:
    62.   trecirc(int xi, int yi, int ri):
    63.   tre(xi,yi,sqrt(3)*ri),
    64.   circ(xi,yi,ri){} ;
    65.  
    66.  
    67.   void draw()
    68.   { circ::draw();
    69.     tre::draw();
    70.   }
    71.    void hide()
    72.   { circ::hide();
    73.     tre::hide();
    74.   }
    75.  
    76.  
    77.  
    78.   void main()
    79.   {
    80.    int dr=DETECT,
    81.   mod;
    82.   initgraph(&dr,&mod,"c:\\borlandc\\bgi");
    83.  
    84.   trecirc A1(10,10,60);
    85.   trecirc F4(40,30,50);
    86.  
    87.   A1.draw();
    88.   getch();
    89.  
    90.   F4.draw();
    91.   getch();
    92.  
    93.   F4.hide();
    94.   getch();  
    95.  
    96.   A1.hide();
    97.   getch();
    98.   closegraph();
    99.    }
     
  2. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    что такого плохого тебе сделал С++, что ты с ним так поступаешь?
     
  3. Luna

    Luna New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2009
    Сообщения:
    288
    Comer_
    Мы на занятиях уже разбирали класс- окр-ть, впис-я в квадрат-..Так что здесь надо было только исправить функцию рисования квадрата и параметры конструктора квадрата..Что с ошибкой-то делать?
     
  4. Phuntik

    Phuntik New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2008
    Сообщения:
    318
    Luna
    Ну укажи хотя бы, на какую строку компилятор ругается.
    Извини, при таком стиле оформления нет никакого желания смотреть.
    Будь я твоим преподом, ты б писала как Пушкин.
     
  5. Luna

    Luna New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2009
    Сообщения:
    288
    Phuntik
    Извини, но это хороший стиль оформления, все методы разделены пробелами - всё отлично воспринимается)
    Ошибка declaration terminated incorrectly в самом конце после closegraph();
    }
     
  6. Mankubus

    Mankubus New Member

    Публикаций:
    0
    Регистрация:
    14 авг 2009
    Сообщения:
    76
    Luna, поставьте
    Код (Text):
    1. };
    после класса trecirc хотя бы... При беглом анализе кода обнаружил несбалансированность скобок.

    Comer_, Си жалко T_T
     
  7. Luna

    Luna New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2009
    Сообщения:
    288
    Mankubus
    ААААААААААААААААА!!!!!!!!!!!!!!!!!!!!С П А С И Б О Т е Б е Б О Л Ь Ш О Е, Mankubus!!!!!!!ТЫ ЧУДО-ЧЕЛОВЕК!!!!!!!!!!!!!!!!!!=)
    Программа работает ураааааааааааааааааааааа!!!!!!!!!!!!!!!!(на самом деле- 2-1 случай в жизни, где запятая играет столь важное значение)Треугольник равносторонний, только не совсем вписывается в окружность
    .......эээээээээ....а как фотку загрузить?
     
  8. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    Luna
    Сначала на куда-нибудь на http://imageshack.com
    Потом используем тег img.

    [​IMG]
     
  9. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    Microedition
    это знак)
    вчера подумывал скачать и погамать в пикрилейтед )
     
  10. Luna

    Luna New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2009
    Сообщения:
    288
    Microedition
    так запутанно..; по-моему раньше в меню было "прикрепить файл"
     
  11. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Luna
    Оно и сейчас есть - жми ответить справа внизу топика, только с тех пор как запретили редактирование отобразить его в тексте поста стало несколько сложнее ;), хотя при наличии штатной "смотрелки" форума это терпимо.
     
  12. Luna

    Luna New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2009
    Сообщения:
    288
    Y_Mur
    ок)
     
  13. Luna

    Luna New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2009
    Сообщения:
    288
    Не понимаю, почему при запуске не получается треугольника, вписанного в окружность(он немного поднят над нею)?вроде параметры заданы правильно.......
     
  14. diamond

    diamond New Member

    Публикаций:
    0
    Регистрация:
    21 май 2004
    Сообщения:
    507
    Адрес:
    Russia
    Потому что математику таки имеет смысл знать. Треугольник с вершинами (xq-d,yq-d), (xq+d,yq-d), (xq,yq+d) (который и рисуется в drawtre) не является равносторонним, а только равнобедренным, и его центр (в смысле центра масс или пересечения медиан) находится вовсе не в (xq,yq). Равносторонний треугольник со стороной lq=2d и центром (xq,yq) может, например, иметь координаты вершин (xq-d,yq-d/sqrt(3)), (xq+d,yq-d/sqrt(3)), (xq,yq+d*2/sqrt(3)).
     
  15. Luna

    Luna New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2009
    Сообщения:
    288
    diamond
    Вы чудо)Спасибо вам за то, что вы есть)))
    .....да, теперь программа на все 100% работает, и треугольник отменный получается ;)..А координаты вершин вы при помощи чертежа вывели?
     
  16. diamond

    diamond New Member

    Публикаций:
    0
    Регистрация:
    21 май 2004
    Сообщения:
    507
    Адрес:
    Russia
    Угу, с помощью чертежа, довольно стандартная планиметрия.