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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2012, 13:32   #1
shrek1993
Пользователь
 
Регистрация: 24.10.2010
Сообщений: 67
По умолчанию Несколько вопросов

Я делаю одну программу и у меня возникло несколько вопросов
1 подскажите как уменьшить обём кода
Код:
	pechat(pole);
	rast(4,4);
	pechat(pole);
	rast(3,3);
	pechat(pole);
	rast(3,3);
	pechat(pole);
	rast(2,2);
	pechat(pole);
	rast(2,2);
	pechat(pole);
	rast(2,2);
	pechat(pole);
	rast(1,1);
	pechat(pole);
	rast(1,1);
	pechat(pole);
	rast(1,1);
	pechat(pole);
	rast(1,1);
	pechat(pole);
2 столкнулся с такой проблемой:
я вызываю из функции другую функцию (косвенную рекурсию)
Код:
void rast_P(int g,int n){
...
afto_ogr(i,j,0,1);
}
void afto_ogr(int i, int j,int t,int w){
...
}
На что он пишет
"error C3861: afto_ogr: идентификатор не найден"
хотя все используемые переменные объявлены.
Если я нарушил какие-либо правила прошу простить и сообщить...
shrek1993 вне форума Ответить с цитированием
Старый 02.08.2012, 14:13   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

1.
Код:
for (int i = 1; i <= 4; ++i)
 {
 for (int j = 1; j <= i; ++j)
  {
  pechat(pole);
  rast(5 - i, 5- i);
  }
 }
pechat(pole);
2. Попробуйте объявить вызываемую функцию ДО ее первого использования.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 02.08.2012, 14:24   #3
shrek1993
Пользователь
 
Регистрация: 24.10.2010
Сообщений: 67
По умолчанию

Большое спасибо помогло
Если я нарушил какие-либо правила прошу простить и сообщить...
shrek1993 вне форума Ответить с цитированием
Старый 05.08.2012, 18:53   #4
shrek1993
Пользователь
 
Регистрация: 24.10.2010
Сообщений: 67
По умолчанию

Возник ещё один вопрос
Код:
void afto_ogr(int i, int j,int tip){
        if(i+1>=0&&i+1<=9){
		if(mas[i+1][j]==1){
			if(tip!=3)
				afto_ogr(i+1,j,1);}
		else{
			if(tip!=3)
				mas[i+1][j]=2;
			if(j+1>=0&&j+1<=9){
				mas[i+1][j+1]=2;
				if(tip!=4){
					if(mas[i][j+1]==1)
						afto_ogr(i,j+1,2);
					else
						mas[i][j+1]=2;}}
			if(j-1>=0&&j-1<=9)
				mas[i+1][j-1]=2;}
	}
	if(i-1>=0&&i-1<=9){
		if(mas[i-1][j]==1){
			if(tip!=1)
				afto_ogr(i-1,j,3r);}
		else
			if(tip!=1)
				mas[i-1][j]=2;
		if(j-1>=0&&j-1<=9){
			mas[i-1][j-1]=2;
			if(tip!=2){
				if(mas[i][j-1]==1)
					afto_ogr(i,j-1,4);
				else
					mas[i][j-1]=2;}}
		if(j+1>=0&&j+1<=9)
			mas[i-1][j+1]=2;}
Данная функция обрисовывает фигуру
пример
ххх
х0х
х0х
х0х
ххх
Работает по принципу от первой точки к следующим
проблема возникает тогда когда он описывает такие фигуры
ххх ххххх
х0х х008
х0х хх
х8
где 8 это начало фигуры он описывает их не до конца
P.C. Пытался разобраться сам но не получилось.
Если я нарушил какие-либо правила прошу простить и сообщить...

Последний раз редактировалось shrek1993; 05.08.2012 в 18:55.
shrek1993 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
несколько вопросов spydark91 Общие вопросы Delphi 2 18.07.2011 13:48
Несколько вопросов. Miron86 Компоненты Delphi 3 09.09.2009 18:25
несколько вопросов fitc Общие вопросы Delphi 28 14.07.2009 21:20
Несколько вопросов pix_l Общие вопросы Delphi 1 29.03.2009 22:26
Несколько вопросов Зубоскалик Общие вопросы Delphi 14 20.11.2008 14:28