Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

График,используя рекурсию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализовать шаблон класса Array и шаблоны функций ввода/вывода http://www.cyberforum.ru/cpp-beginners/thread1111414.html
Помогите, пожалуйста, разобраться с шаблонами. Само задание такое: Реализовать шаблон Array, как класс-шаблон числового массива с задаваемыми пределами индексов. Реализовать операции ввода/вывода...
C++ Определить массив, создать две переменные типа указатель и сравнить Определить одномерный массив размерностью 10 элементов, * значение которых целого типа (заполнять вручную). * Создать две переменные типа указатель: start - указывает на начало массива, end -... http://www.cyberforum.ru/cpp-beginners/thread1111408.html
C++ Расположить первые N натуральных чисел так, чтобы между любыми двумя из расположенных не было их среднего арифметического
Расположить первые N натуральных чисел так, чтобы между любыми двумя из расположенных не было их среднего арифметического.
Написать программу, которая по заданной фамилии выводит на экран сведения о сотруднике C++
Ребят, только начали Объектно-Ориентированное и я не могу придумать ничего. Задание: В текстовом файле хранится база отдела кадров предприятия. На предприятии 100 сотрудников. Каждая строка файла...
C++ Мультисписки. Функция добавление элемента для магазинов и сотрудников с использованием БЕЗТИПОВЫХ указателей http://www.cyberforum.ru/cpp-beginners/thread1111394.html
Товарищи! Помогите пожалуйста! Проблема: работа с мультисписком, а точнее с реализацией функций. Нужно сделать функцию добавление элемента мультисписка для магазинов и сотрудников, но с...
C++ Найти вектор x, как решение данной системы уравнений Найти вектор x, как решение данной системы уравнений подробнее

Показать сообщение отдельно
gunslinger
случайный прохожий
1142 / 760 / 194
Регистрация: 20.07.2013
Сообщений: 2,093
06.03.2014, 01:34
Хотя теоретически любой "цикл" можно перевести в рекурсию (и наоборот), тут случай, когда рекурсия "хуже".
Получилось так (пришлось использовать глобальную переменную):
C++
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//...........................................................................
int tag;
 
void recur_draw(int n)
{
  const p = 512;
  int k, i, j, x, y, temp;
  TColor B = clBlack, W = clWhite;
  if (n <= tag/10 && n > 0)
  {
    k = tag%10;
    temp = pow(2, k-1);
    for (i = 1; i <= temp; i++)
      for (j = 1; j <= temp; j++)
      {
        x = (i*2-1)*p/temp/2;
        y = (j*2-1)*p/temp/2;
        if (pixel(x, y) == B)
        {
          pen(W);
          brush(W);
        }
        else
        {
          pen(B);
          brush(B);
        }
        rectangle(x, y, i*p/temp, j*p/temp);
      }
    tag++;
    recur_draw(tag%10);
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  InvalidateRect(NULL, NULL, 1);
  Color = clBlack;
  int n = 4;
  tag = n*10+1;
  recur_draw(n);
  Caption = "Рисунок, n = " + String(n);
}
//---------------------------------------------------------------------------
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru