|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
06.02.2010, 07:25 | #1 (permalink) |
Новичок
Регистрация: 06.02.2010
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
C++. Программа реализующая построение
Имеется вот такая задача: "Разработать программу, реализующую следующее построение. Строится заполненный круг радиуса R, затем четыре заполненных круга радиуса R/2, которые удалены от цен¬тра исходного круга на расстояние 2R. Этот процесс применяется к каждому кругу и т. д. Выполнить данное построение с помощью рекурсии, глубина которой определяется условием R≥4." Уже два дня бьюсь, ничего не получается (( Помогите, пожалуйста! Реализовать решение необходимо на языке C++ в Borland C 3.1 или в Borland C++ Builder 6. Буду рад любым конструктивным предложениям! |
06.02.2010, 07:25 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Ваша тема по содержанию очень схожа с данными обсуждениями Построение локальной сети + интернет Программа для ХР |
07.02.2010, 07:22 | #3 (permalink) |
Новичок
Регистрация: 06.02.2010
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
В проекте на C++ Builder 6.0 форма, на которой объект Image с именем Image1 и размерами 500х500. Еще имеется кнопка, при нажатии на которую выполняется следующий код:
Код:
void __fastcall TForm1::Button1Click(TObject *Sender) { int t, a=250, b=250, r=75; TCanvas* can = Image1->Canvas; can->Ellipse(a+r,b+r,a-r,b-r); can->Ellipse(a+r+r+r/2,b+r/2,a+r+r/2,b-r/2); can->Ellipse(a-r-r-r/2,b+r/2,a-r-r/2,b-r/2); can->Ellipse(a+r/2,b+r+r+r/2,a-r/2,b+r+r/2); can->Ellipse(a+r/2,b-r-r-r/2,a-r/2,b-r-r/2); } КАК выделить код в отдельную функцию? И еще был бы рад идеям по поводу того, как находить координаты нарисованных кругов и как их закрашивать. Функция выглядит вот так: Код:
void five_range(int a, int b, int r) { TCanvas* can = Form1->Image1->Canvas; can->Ellipse(a+r,b+r,a-r,b-r); can->Ellipse(a+r+r+r/2,b+r/2,a+r+r/2,b-r/2); can->Ellipse(a-r-r-r/2,b+r/2,a-r-r/2,b-r/2); can->Ellipse(a+r/2,b+r+r+r/2,a-r/2,b+r+r/2); can->Ellipse(a+r/2,b-r-r-r/2,a-r/2,b-r-r/2); five_range(a+2*r,b+2*r,r/2); } Последний раз редактировалось babich; 07.02.2010 в 08:49 Причина: ... |
07.02.2010, 13:53 | #4 (permalink) |
Banned
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
|
Рекурсивная функция должна получать координаты, радиус, уровень вложенности и объект, на котором нужно рисовать.
Она должна рисовать одну окружность (самую большую) а затем вызывать себя для рисования всех меньших окружностей. |
18.02.2010, 08:05 | #5 (permalink) |
Новичок
Регистрация: 06.02.2010
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Задача сделана и завтра будет сдана, всем спасибо!
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
12.05.2010, 02:29 | #6 (permalink) |
Новичок
Регистрация: 12.05.2010
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Ребята пожалуйста. Нужно написать программу с использованием циклов, без массивов
Ввести с клавиатуры 30 действительных чисел (положительных и отрицательных). Определить максимальную длину положительной подпоследовательности. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|