Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2016, 17:33   #1
Smile189
Пользователь
 
Регистрация: 01.10.2016
Сообщений: 25
По умолчанию Найти первое нечетное число

Программа запустилась, но не возводит в квадрат число, стоящее за первым нечетным .
Посмотрите пожалуйста, может ошибки какие то есть
Задача: Дан текстовый файл input.txt, в котором хранятся целые числа. Создать упорядоченный по возрастанию список. За первым нечетным числом поставить квадрат того числа . Полученную последовательность записать в тестовый фаил output.txt. (упорядоченный список получился)



Код:
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.
Smile189 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
дано вещественное число a, найти последовательность чисел, первое число больше a derenikp1996 Помощь студентам 3 23.05.2015 12:16
Четное и нечетное число на PHP petroviya94 Помощь студентам 0 29.03.2015 21:18
Среди чисел найти первое число, большее n Кристина Н Паскаль, Turbo Pascal, PascalABC.NET 5 01.12.2011 20:31
Четное или нечетное число turtles Общие вопросы по Java, Java SE, Kotlin 3 25.08.2011 08:54
найти первое положительное число drylozav Помощь студентам 2 15.10.2010 09:30