1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Всем привет.Требуется помощь в написании программы с использованием многосвязных список. Тему плохо понял, поэтому требуется помощь. Задание: Найти короткую строку. Сам код программы есть, требуется лишь поспотроить МС -)
VAR F:TEXT; I:WORD; C:CHAR; N:WORD; BEGIN CLRSCR; ASSIGN(F,'C:\F1.TXT'); RESET(F); I:=0; N:=60000; WHILE NOT EOF(F) DO BEGIN IF EOLN(F) THEN BEGIN IF I<N THEN N:=I; I:=0; READ(F,C); READ(F,C); END; READ(F,C); I:=I+1; END; IF I<N THEN N:=I; IF N=60000 THEN I:=0 ELSE I:=N; WRITE('MIN = '); WRITELN(I);
вот тебе немног другая реализация,но как я и говрил вполне кустарно....Кстати вопрос больше в Лапу,когда я в дату списка записываю стринг,а потом скидываю строку во временный txt файл,то у меня окончание ознаменуется #26 это конец файла чтоли или как?
USES CRT; CONST PATH='C:\TPascal\F1.TXT'; TYPE DATA=string; LINK=^RS; RS=RECORD VAL:DATA; LNK:LINK; END; TF=TEXT; VAR F:TF; A:LINK; B,ch:WORD; cch:char; str:text;
PROCEDURE ADD(VAR A:LINK;B:DATA); BEGIN IF A<>NIL THEN ADD(A^.LNK,B) ELSE BEGIN NEW(A); A^.VAL:=B; A^.LNK:=NIL; END; END;
PROCEDURE LOAD(VAR F:TF;VAR A:LINK); VAR I:DATA; BEGIN ASSIGN(F,PATH); RESET(F); A:=NIL; WHILE NOT EOF(F) DO BEGIN READ(F,I); ADD(A,I); readln(f); END; END;
PROCEDURE OUTPUT(A:LINK); BEGIN WHILE A<>NIL DO BEGIN WRITE(A^.VAL); A:=A^.LNK; writeln; END; END;
PROCEDURE MIN(A:LINK;VAR B:WORD); VAR I:WORD; BEGIN B:=256; WHILE A<>NIL DO BEGIN ch:=0; rewrite(str); write(str,a^.val); reset(str); read(str,cch); while cch<>#26 do begin read(str,cch); ch:=ch+1; end; IF ch<B THEN B:=ch; A:=A^.LNK; END; IF B=256 THEN B:=0; END;
BEGIN CLRSCR; assign(str,'C:\TPascal\f2.txt'); LOAD(F,A); OUTPUT(A); MIN(A,B); WRITELN; WRITELN('MIN=',B); READLN; END.
Еще так как это не рабочий вариант,то я файлы не закрыл,думаю сам справишся.