![]() |
Паскаль, можно ли...
можно ли заменить в коде , числа на слова?
Само задание: Восстановить стек, содержащий строки, из текстового файла. Вот сам код type List=^TList; {Указатель на элемент типа TList} TList=record {А это наименование нашего типа "запись" обычно динамические структуры описываются через запись} data:integer; {данные, хранимые в элементе} next:List; {указатель на следующий элемент} end; procedure ReadFile(var f:text;var stek1:List);{Процедура чтения файла в стек} var tmp:List; x:integer; begin while not eof(f) do begin new(tmp); {выделяем в памяти место для нового элемента} tmp^.next:=stek1; {указатель на следующий элемент "направляем" на вершину стека} read(f,x); tmp^.data:=x; {добавляем к элементу данные} stek1:=tmp; {вершина стека изменилась, надо перенести и указатели на неё} end; end; procedure WriteFile(var f:text;stek1:List); {Процедура вывода стека в файл} var x:real; begin while stek1<>nil do {пока указатель stek1 не станет указывать в пустоту} begin {а это произойдёт как только он перейдёт по ссылке последнего элемента} x:=stek1^.data; Writeln(f,x); {выводить данне} stek1:=stek1^.next {и переносить указатель вглубь по стеку} end; end; Procedure FreeStek(stek1:List); {Процедура освобождения памяти занятой стеком} var tmp:List; begin while stek1<>nil do {пока stek1 не станет указывать в "пустоту" делать} begin tmp:=stek1; {указатель tmp направим на вершину стека} stek1:=stek1^.next; {вершину стека перенесём на следующий за данной вершиной элемент} dispose(tmp); {освободим память занятую под старую вершину} end; end; var f,g:text; L:List; begin assign(f,'C:\Documents and Settings\Admin\Рабочий стол\i.txt'); reset(f); assign(g,'C:\Documents and Settings\Admin\Рабочий стол\u.txt'); rewrite(g); ReadFile(f,L); WriteFile(g,L); FreeStek(L); close(f); close(g); end. |
Время: 21:46. |
Время: 21:46.
© OSzone.net 2001-