Программа запустилась, но не возводит в квадрат число
Посмотрите пожалуйста, может есть какие нибудь ошибки
Код:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils,
Un_list in 'Un_list.pas',
Windows;
function Found_last_elem(L:TList):TList;
begin
result:=L;
while(result^.next<>nil)and (result^.info mod 2=0 ) do
result:=result^.next;
end;
Var L:TList;
Podd: TList;
newItem:Tlist;
begin
setConsoleOutputCP(1251);
SetConsoleCP(1251);
Create_Order_from_file(L, 'input.txt');
Print_to_file(L,'output.txt');
Podd:=Found_last_elem(L);
if Podd = Nil then writeln('нет нечетных.')
else
begin
New(NewItem);
Newitem^.Info := sqr(Podd^.info);
Newitem^.next := Podd^.next;
Podd^.next := NewItem;
end;
Print_to_file(L,'output.txt');
Clear(L);
writeln('Файл создан ');
readln;
end.
и
Код:
unit Un_list;
interface
type
TInfo=integer;
Tlist=^Node;
Node=record
info:TInfo;
next:Tlist;
end;
Procedure Create_Order_from_file(var L:Tlist; file_name:string);
Procedure Print_to_file(L:Tlist; file_name:string);
Procedure Clear(var L:Tlist);
Function Del_After_Node(var Pnode:TList):TInfo;
implementation
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_after_Node(var PNode:TList; new_elem:TInfo);
var p:TList;
begin
new(p);
p^.info:=new_elem;
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_elem:TInfo):TList;
begin
result:=L;
While(result^.next<>nil) and (result^.next^.info< new_elem) do
result:=result^.next;
end;
Procedure Create_Order_from_file(var L:TList; file_name:string);
var f:Textfile;
new_elem:TInfo;
place:TList;
begin
Init(L);
AssignFile(f,file_name);
Reset(f);
While not eof(f) do
begin
read(f,new_elem);
place:=Found_place(L, new_elem);
Add_after_Node (Place,new_elem);
end;
closeFile(f);
end;
Procedure Print_to_file(L:TList; file_name:string);
var
p:TList;
f:Textfile;
begin
p:=L^.next;
AssignFile(f,file_name);
Rewrite(f);
While p<> nil do
begin
Write(f,p^.info, ' ');
p:=p^.next;
end;
CloseFile(f);
end;
Procedure Clear(var L:TList);
begin
While not Empty(L) do
Del_after_Node(L);
dispose(L);
end;
end.