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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2008, 18:05   #1
Ser
Пользователь
 
Регистрация: 25.02.2008
Сообщений: 17
По умолчанию Подскажите

НЕ поскажите как сделать после выполнения программы, а именно вывода результата в окне, запросить на продолжение новых данных в новом окне!
Спасибо!
Вот текст:
{Имеется n населенных пунктов, пронумерованных от 1 до n. Некоторые пары пунктов соединены дорогами.
Определить можно ли попасть по этим дорогам из 1-го пункта в n-й. Информация о дорогах задается
в виде последовательности пар чисел i и j (i<j), указывающих, что i-й и j-й пункты соединены дорогой.}
program reqursia;
uses crt;
const
nn=10;
type
TArray = array[00..nn, 00..nn] of char;
Procedure Okno(x1,y1,x2,y2,cf,ct:Byte);
{ Процедура формирования окна }
Begin
Window(x1,y1,x2,y2); { Установка параметров окна }
TextBackGround(cf); { Установка цвета фона }
TextColor(ct); { Установка цвета текста }
ClrScr { Очистка окна }
End;{ Okno }
procedure router(otkuda,gde,kuda:integer; var ok:boolean; var a:TArray); {rekyrsivnaya procedura}
var i:integer; r:string;
begin
a[gde,otkuda]:='?';
if gde=kuda then begin str(kuda,r); ok:=true end
else
for i:=1 to nn do {цикл проверки пути по всем направлениям}
begin
if (ok=false) and (a[i,gde]='y') then
begin
router(gde,i,kuda,ok,a); {рекурсивный вызов процедуры}
if ok=true then str(gde,r);
end
end;
a[gde,otkuda]:='y'; {в данном направлении есть дорога}
a[otkuda,gde]:='y';
end;
var
rout:string;
c:char;
i,j,n:integer;
ok:boolean;
a:TArray;
y:char;
begin {начало программы}
okno(1,1,80,25,1,15);
okno(1,1,38,7,3,15);
writeln(' О задаче');
writeln(' Определить можно ли попасть по этим');
writeln('дорогам из 1-го пункта в n-й.');
{расстояние между окнами}
okno(1,9,38,15,2,15);
writeln(' Запрос на ввод');
writeln('Будите вводить, нажмите y(да)/n(нет)?'); readln(y);
if y='y' then begin
okno(45,1,75,10,5,15);
writeln('Введите путь'); end
else if y='n' then exit;
repeat
write('Откуда ');
readln(i);
if i<>0 then begin
write('Куда ');
readln(j);
writeln(i,'=>',j);
if j<>0 then
if (i>nn) or (j>nn) then writeln('Неверный ввод')
else
begin a[i,j]:='y'; a[j,i]:='y';
end else;
end
until (i=0) or (j=0);
{ okno(1,18,38,23,5,15); }
repeat
ok:=true;
repeat
write('Куда попасть из 1 ?');
rout:='';
readln(n);
if n<=0 then writeln('нет такого')
else if n=1 then writeln('Уже здесь')
else ok:=false;
until ok=false;
router(0,1,n,ok,a); {результат: ok=false-дороги нет, ok=true-дорога есть}
okno(45,14,75,23,7,15);
if ok=false then writeln('Нельзя')
else writeln('Можно');
c:=readkey;
until c='';
end.
Ser вне форума Ответить с цитированием
Старый 15.03.2008, 18:32   #2
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Я немного не до понял, очисти это окно (ClrScr) и продолжай работать, если пользователь ответил "Y" (да) на вопрос "продолжить?", "N" (нет) - закрывай окно.
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите Yana Общие вопросы Delphi 2 23.12.2007 00:21
Подскажите код Romuald Microsoft Office Excel 2 26.11.2007 13:53
Подскажите что тут не так!? dcl Общие вопросы Delphi 5 28.03.2007 08:15