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

Рекурсия. Заливка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Обьясните прогграмму со структурами http://www.cyberforum.ru/cpp-beginners/thread128457.html
#include "stdafx.h" #include <stdio.h> #include <conio.h> #include <string.h> #include <iostream> #define a 1 using namespace std; /* Описание структуры, которая представляет монастырь */ struct mon {
C++ Файловые потоки. Подскажите, где ошибка Добрый день! Помогите разобраться, плиз: суть задачи в подсчете количества ненулевых элементов в заранее заготовленном файле. Вот что я написал: #include <iostream.h> #include <fstream.h> #include <conio.h> void main() { ifstream myf; http://www.cyberforum.ru/cpp-beginners/thread128427.html
C++ Структуры(сортировка)
есть программа с описание структуры......вбиваем начальный маршрут(точка отправки) и конечный(точка прибытия), а также его номер........ЭТА программа сортирует все эти рейсы по НОМЕРУ МАРШРУТА! НО!!!СОРТИРУЮТСЯ ТОЛЬКО НОМЕРА МАРШРУТОВ, а сами маршруты "стоят на месте" ....помогите плз ! как сделать, чтобы не только номера"сортировались"...но и соответствующие им маршруты :wall: #include...
C++ Ошибка в рекурсивном шаблоне функции
Добавлено через 9 минут template <int from,int much> int getRangeSum(){ return from+getRangeSum<from+1,much-1>(); }; template <int from> int getRangeSum<from,0>(){ return from; }; такой код тоже не работает, хоть должен(((
C++ не верно высчитывает факториал http://www.cyberforum.ru/cpp-beginners/thread128375.html
помогите найти ошибку :) я добавил рисунок с результатом работы проги. не верно считает факториал как это исправить???? #include <iostream> #include <math.h> #include <clocale> #include <iomanip> using namespace std; int main() {
C++ Вывести минимальную прибыль Нуно вывисти Минимальную прибыль в этой проге щас все выводит норм но если поставить другую функцыю или вместо 6.15 поставить 1.15 то все рушыца ПОМОГИТЕ У МЕНЯ УЖЕ БАШКА БОЛИТ А НА ЗАВТРА ЗДАТЬ НУНО #include<iostream.h> #include<math.h> #include <conio.h> #define N 10 void main() { clrscr(); float y; подробнее

Показать сообщение отдельно
AIRWALK
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 19

Рекурсия. Заливка - C++

12.05.2010, 11:12. Просмотров 908. Ответов 1
Метки (Все метки)

Написать функцию заливки, используя закон
1
4 * 2
3
(единица и тройка над звёздочкой и под звёздочкой соответственно)
Начальная точка – (100-9*10;100-9*10).


Из теоретических сведений:
Открыть
Рассмотрим применение рекурсии на примере функции заливки замкнутой области. Опишем закон заливки как


1


4
*
2


3










где * - начальная точка. Заливку выполняет рекурсивная функция, которая сначала проверяет, не залита еще точка с переданными ей координатами, в этом случае происходит выход из функции. Иначе функция вызывает сама себя до тех пор, пока не найдет следующую залитую точку.

Рассмотрим заливку квадрата 10*10. Начальная точка заливки – (8;3). Сначала функция ставит точки, двигаясь вверх, пока не встретит границу квадрата. Потом вправо, потом вниз, потом влево.



0
1
2
3
4
5
6
7
8
9
10

1
100
81
80
61
60
41
40
3
4
5

2
99
82
79
62
59
42
39
2
23
6

3
98
83
78
63
58
43
38
1
22
7

4
97
84
77
64
57
44
37
24
21
8

5
96
85
76
65
56
45
36
25
20
9

6
95
86
75
66
55
46
35
26
19
10

7
94
87
74
67
54
47
34
27
18
11

8
93
88
73
68
53
48
33
28
17
12

9
92
89
72
69
52
49
32
29
16
13

10
91
90
71
70
51
50
31
30
15
14


Программу напишем с помощью учебной программы Grafics.



void zal (int x, int y) //функция заливки

{

if (GetPixel(x,y)==GetPixel(100,100))return; //если цвет текущей точки равен границе, выход

PutPixel(x,y); //иначе ставим точку с координатами х и у.

zal(x,y-1); //вызов функции самой себя с

//движением по у вверх

zal(x+1,y); //вызов функции самой себя с движением по х

//вправо

zal(x,y+1); //вызов функции самой себя с движением по у

//вниз

zal(x-1,y); //движение по х влево



}



int main(LPVOID param)



{



Line(0,0,100,0); // рисуем квадрат 100*100

//начиная с начала координат

LineTo(100,100);

LineTo(0,100);

LineTo(0,0);



zal(51,50); //вызываем функцию заливки с начальной точкой

//(51;50)

return 0;



}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru