Дан текстовый файл input.txt, в котором хранятся целые числа. Создать упорядоченный по возрастанию список. За первым четным числом поставить утроенное произведение того числа . Полученную последовательность записать в тестовый фаил output.txt. Если четных чисел нет , помимо последовательности в фаил записать соответствующее сообщение.
Тут почти всё есть, помогите со 2-ой частью программы .
И нужно написать это по Unit-ам. Подскажите пожалуйста, как это сделать .
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | uses
type
TInfo= integer ;
Tlist=~Node;
Node= record
info:TInfo;
next:Tlist;
end ;
procedure Init( var L:Tlist);
BEGIN
new(L);
L^.next:= nil ;
end ;
Function Empty(L:Tlist): boolean ;
begin
result:=L^.next:= nil ;
end ;
Procedure Add_to_head( var PNode:Tlist; new_element:Tinfo);
var p:Tlist;
begin
new(p);
p^.info:=new_element;
p^.next:=PNode^.next;
Pnode^.next:=p;
end ;
Function Del_After_Node( var Pnode:Tlist):Tinfo;
var p:Tlist;
begin
p:=PNode^.next;
PNode^.next:=p^.next;
result:=p^.info;
p^.next:= nil ;
dispose(p);
end ;
Function Found_Place(L:Tlist; new_element:Tinfo):TList;
begin
result:=L;
While (result^.next<> nil ) and (result^.next^.info< new_element) do
result:=result^.next;
end ;
Procedure Create_Order_from_file( var L:Tlist; file_name: string );
var f:Textfile;
new_element:Tinfo;
place:Tlist;
begin
Init(L);
Assign File (f,file_name);
Reset(f);
While not eof(f) do
begin
read(f,new_element);
place:=Found_place(L, new_element);
Add_after_Node(Place,new_element);
end ;
close File (f);
end ;
Procedure Print_to_file(L:Tlist; file_name: string );
var
p:Tlist;
f:Textfile;
begin
p:=L^.next;
Assign File (ffile_name);
Rewrite(f);
While p<> nil do
begin
Write (f,p^.info, ' ' );
p:=p^.next;
end ;
Close File (f);
end ;
Procedure Clear( var L:Tlist);
begin
While not Empty(L) do
Del_after_Node(L);
dispose(L);
end ;
Var L:Tlist;
begin
SetCousdOutputCP( 1251 );
(SetConsoleCP( 1251 );
Create_Order_from_file(L, 'input.txt' );
Print_to_file(L, 'input.txt' );
Clear(L);
Writeln ( 'Файл создан ' );
readln;
end ;
|
Админ: Пользуемся тегами при оформлении кода!