|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.03.2008, 18:05 | #1 |
Пользователь
Регистрация: 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. |
15.03.2008, 18:32 | #2 |
Участник клуба
Регистрация: 30.04.2007
Сообщений: 1,307
|
Я немного не до понял, очисти это окно (ClrScr) и продолжай работать, если пользователь ответил "Y" (да) на вопрос "продолжить?", "N" (нет) - закрывай окно.
Всё гениальное - просто!
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подскажите | 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 |