Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2009, 16:06   #1
ptichka
Новичок
Джуниор
 
Регистрация: 19.12.2009
Сообщений: 5
По умолчанию 2 задания по С++Builder2009!

Задача№1
графика на с++ Builder2009

Нужно тремя кликами мышки нарисовать Ромб(вот тут я тоже не пойму как с 3 шёлчков можно ромб нарисовать?у него же 4 координаты!), а чётвёртым вписать в него окружность, которая касается хотябы трёх его сторон

==================================
задача №2
Имеется текстовой файл, нужно вывести таблицу встречаемости символов в другой файл!
например содержимое первого файла - balala and ololo
во втором файле должно быть:
b -1
a - 4
l - 4
n- 1
d - 1
o - 3
-----------------------
или можно вывести не во второй файл а в диалоговое окно, вобщем без разницы! Помогите!
ptichka вне форума Ответить с цитированием
Старый 19.12.2009, 19:00   #2
ptichka
Новичок
Джуниор
 
Регистрация: 19.12.2009
Сообщений: 5
По умолчанию

выручайте нужно лабу в понедельник сдать )
ptichka вне форума Ответить с цитированием
Старый 19.12.2009, 19:50   #3
Stepler
Форумчанин
 
Аватар для Stepler
 
Регистрация: 03.02.2008
Сообщений: 213
По умолчанию

Цитата:
Нужно тремя кликами мышки нарисовать Ромб(вот тут я тоже не пойму как с 3 шёлчков можно ромб нарисовать?у него же 4 координаты!)
Задать центр, координаты 2 вершин которые бы непринадлежали одной строго вертикальной и строго горизонтальнйо прямой...
Ну логичнее если задвать 2 вершини боковую и верхнею а центр вычслять...
Пишу программы на заказ, контакты под аватаром!
Отзывы тут
Stepler вне форума Ответить с цитированием
Старый 19.12.2009, 20:22   #4
ptichka
Новичок
Джуниор
 
Регистрация: 19.12.2009
Сообщений: 5
По умолчанию

как мне это всё программно сделать? в коде?
ptichka вне форума Ответить с цитированием
Старый 19.12.2009, 20:32   #5
Stepler
Форумчанин
 
Аватар для Stepler
 
Регистрация: 03.02.2008
Сообщений: 213
По умолчанию

Сначала на бумаге расчеты провести, вспомнить школьную геометрию... когда все хорошо будет ложистя на бумаге тогда только начинать программировать код...

Цитата:
а чётвёртым вписать в него окружность, которая касается хотябы трёх его сторон
Что-то нелогично все это, окружность в ромбе проходит через все 4 стороны... если через 3 проходит значит и проходит через 4...
Пишу программы на заказ, контакты под аватаром!
Отзывы тут
Stepler вне форума Ответить с цитированием
Старый 19.12.2009, 20:59   #6
ptichka
Новичок
Джуниор
 
Регистрация: 19.12.2009
Сообщений: 5
По умолчанию

что бы вписать окружность, нужно знать её радиус.
r=d1*d2/4a , где
r- радиус вписанной в ромб окружности;
d1, d2 - длины диагоналей ромба;
a- длина стороны ромба.

длина отрезка находится по формуле sqrt(sqr(x1-x2)+sqr(y1-y2)), то есть зная координаты каждой точки ромба можно вычислить длину диагоналей и длину стороны, следовательно найти радиус окружности!
ptichka вне форума Ответить с цитированием
Старый 21.12.2009, 01:26   #7
ptichka
Новичок
Джуниор
 
Регистрация: 19.12.2009
Сообщений: 5
По умолчанию

up!!!!!!!!
ptichka вне форума Ответить с цитированием
Старый 22.12.2009, 11:41   #8
mirso
Новичок
Джуниор
 
Аватар для mirso
 
Регистрация: 29.03.2009
Сообщений: 2
По умолчанию

Два клика вполне достаточно для построения ромба.
Код:
//---------------------------------------------------------------------------

#include "math.h"
void __fastcall TForm1::FormMouseUp(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
    static TPoint rb[4];

    //------------------------------------------------------------
    static i;
    rb[i] = Point ( X, Y );

    if ( i % 2 ) Form1->Repaint();
    else        { i++; return; }
    i = 0;
    //============================================
    int x0 = (rb[0].x + rb[1].x)>>1 , y0 = (rb[0].y + rb[1].y)>>1,
         x1 = (rb[1].x -  rb[0].x)>>1 , y1 = (rb[1].y -  rb[0].y)>>1;

    rb[0] = Point ( x0     , y0 - y1 ),
    rb[1] = Point ( x0 + x1, y0     ),
    rb[2] = Point ( x0     , y0 + y1),
    rb[3] = Point ( x0 - x1, y0      );

    Canvas->Pen->Width = 3;
    Canvas->Pen->Color = clTeal;

    Canvas->Polygon ( rb, 3 );                             // ромб
    //============================================
    Canvas->Pen->Color = clRed;

    int r = x1*y1/sqrt(x1*x1 + y1*y1);

    Canvas->Ellipse ( x0 - r, y0 - r, x0 + r, y0 + r );
                                                     // акружность
    //------------------------------------------------------------
}
//---------------------------------------------------------------------------
mirso вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
3 задания Си nariku Помощь студентам 39 22.10.2009 15:43
Задания по паскалю Metall Помощь студентам 7 14.07.2009 09:40
4 задания по Паскалю. Евгений2 Помощь студентам 14 22.05.2009 15:18
4 задания по qBasic matsode Помощь студентам 11 11.05.2009 22:39