Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

помогите разобраться с рекурсией

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
петя
Гость





СообщениеДобавлено: Вс Июн 13 2004 14:52    Заголовок сообщения: помогите разобраться с рекурсией Ответить с цитатой

всем привет
помогите пожалуйста

есть двумерный массив 10 на 10 с числами от 1 до 4 (целые)
и начальная точка, неободимо определить какое максимально возможное количество ходов можно сделать,
перемещаться можно только по горизонтали и вертикали на количество клеток, кот указано в ячейке. пересекать уже пройденные ячейки нельзя.

1 3 4 3 2 3,3 начальная точка я могу походить на 1 вверх,
2 3 1 2 3 на 2 ячейки влево и т.д.
1 2 0 1 2
3 2 1 2 2
1 1 2 2 1
после того как я прошел на 2 ячейки влево массив примет вид
1 3 4 3 2
2 3 1 2 3
0 0 0 1 2
3 2 1 2 2
1 1 2 2 1


не могу разобраться куда мне вставить процедуру FillNum(it, jt, kol, -1, 0); т.к. у меня почемуто не все возможные варианты находит

FillZero(it, jt, kol, -1, 0) заполняет нулями kol ячеек в заданном направлении (-1, 0-это направление )
FillNum(it, jt, kol, -1, 0) наоборот заполняет начальными значениями kol ячеек в заданном направлении

procedure Wave(it,jt,napr,score:integer; st:string;
var kol:integer;
x1,y1:integer;
//k:integer;
begin
kol:=NumInt[it-1,jt];
if (kol<>0) and (it - kol >0) then
begin
if FillZero(it, jt, kol, -1, 0)=true then
wave(it-kol, jt, 8, score+kol, st);
FillNum(it, jt, kol, -1, 0);
end;

kol:=NumInt[it,jt+1];
if (kol<>0) and (jt + kol <=10) then
begin
if FillZero(it, jt, kol, 0, 1)=true then
wave(it,jt+kol, 6,score+kol,st);
FillNum(it, jt, kol, 0, 1);

end;

kol:=NumInt[it+1,jt];
if (kol<>0) and (it + kol<=10)then
begin
if FillZero(it, jt, kol, 1, 0)=true then
wave(it+kol, jt, 4, score+kol, st);
FillNum(it, jt, kol, 1, 0);
end;

kol:=NumInt[it,jt-1];
if (kol<>0) and (jt - kol>0)then
begin
if FillZero(it, jt, kol, 0, -1)=true then
wave(it, jt-kol, 2, score+kol, st);
FillNum(it, jt, kol, 0, -1);
end;
end;

может кто делал чего подобное или знает где можно найти
Вернуться к началу
Родион



Зарегистрирован: 18.01.2004
Сообщения: 183

СообщениеДобавлено: Вс Июн 13 2004 19:31    Заголовок сообщения: Ответить с цитатой

мне лень писать, а вообще такие задания надо делать самому, именно они развивают логику, а кнопки по форме тасксть и малыш сможет!
_________________
RTFM
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...