Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 03.05.2014, 17:29   #1 (permalink)
drawww
Новичок
 
Регистрация: 03.05.2014
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Post Помогите исправить код. Pascal

Помогите исправить код!!:


{Ввести последовательность натуральных чисел.
Если последовательность упорядочена по невозрастанию или по неубыванию,
удалить из последовательности числа, в которые входят цифры 2 и 8 (одновременно),
и продублировать числа, заканчивающиеся цифрой 5.
В противном случае упорядочить последовательность по неубыванию.
Последовательность хранить в односвязном списке.
Перед завершением программы очистить динамическую память с помощью процедуры Dispose.}

Type List=^Elem;
Elem=Record
Data:integer;
Next:List;
End;
Procedure VVod (head:List);
Var P,P1:List;
Input:Text;
Begin

Assign (input,'input.txt');

Reset (input);
New(head);
head^.next:=Nil;
While not SeeKeOf(input) do begin
New(P);
Read (input,P^.data);
If head=Nil then head:=P
else P1:=P^.next;
P1:=P;
close(input);
End;
end;
Function Proverka_1(head:list): Boolean;
Var p:list;
begin
proverka_1:=true;
p:=head^.next;
while p^.next<>head
do begin
if p^.data>p^.next^.data then begin
proverka_1:=false;
exit;
end
else p:=p^.next;
end;
end;
Function Proverka_2(head:list): Boolean;
Var p:list;
begin
proverka_2:=true;
p:=head^.next;
while p^.next<>head
do begin
if p^.data<p^.next^.data then begin
proverka_2:=false;
exit;
end
else p:=p^.next;
end;
end;
Function magic2(x:integer):boolean;
Var k:integer;
begin
magic2:=false;
While x>0 do begin
k:=x mod 10;
If k=2 then
magic2:=true;
x:=x div 10;
end;
end;
Function magic8(x:integer):boolean;
Var k:integer;
begin
magic8:=false;
While x>0 do begin
k:=x mod 10;
If k=8 then
magic8:=true;
x:=x div 10;
end;
end;
Procedure Del (var head:List);
Var P,P1:List;
Begin
While (head<>Nil) and ((magic2(head^.data)=true) or (magic8(head^.data)=true)) do begin
P:=head;
head:=head^.next;
dispose(p);
end;
P:=head;
While p^.next<> Nil do
If (magic2(p^.next^.data)=true) or (magic8(p^.next^.data)=true) then begin
p1:=p^.next;
p^.next:=p^.next^.next;
Dispose(P1);
end
Else p:=p^.next;
end;
Procedure Dubl (var head:List);
Var p,p1:List;
begin
p:=head;
While p<>Nil do begin
If p^.data mod 10=5 then begin
New(p1);
p1^.data:=p^.data;
p1^.next:=p^.next;
p^.next:=p1;
p:=p1^.next;
end;
end;
end;
Procedure Sort(var head:List);
Var p,p1:List;
x:integer;
begin
p:=head;
While p^.next<>Nil do begin
p1:=p^.next;
While p1<>Nil do begin
If p^.data>p1^.data then begin
x:=p^.data;
p^.data:=p1^.data;
p1^.data:=x;
end;
p1:=p1^.next;
end;
p:=p^.next;
end;
end;
Procedure DISP(var head:List);
var P,P1:List;
Begin
P:=head;
While p<>Nil do begin
p1:=p;
p:=p1^.next;
Dispose(p1);
end;
End;
Procedure Vivod(var head:list);
Var P:list;output:text;
begin
assign(output,'output.txt');
rewrite(output);
p:=head^.next;
While P<>head do begin
Write (output, P^.data, ' ');
P:=P^.next;
end;

close(output);
end;
VAR
zyu:List;
BEGIN
Vvod(zyu);
if (proverka_1(zyu)=true)or (proverka_2(zyu)=true) then begin
dubl(zyu);
del(zyu);
end
else sort(zyu);
Vivod(zyu);
Disp(zyu);
END.
drawww вне форума   Ответить с цитированием

Старый 03.05.2014, 17:29
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Имеет смысл прочитать данное ниже

Помогите исправить, пожалуйста
Помогите исправить ошибку, пожалуйста

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Метки
pascal abc, односвязные списки, паскаль, помогите, ^.next

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 19:25.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.