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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2014, 16:48   #1
Aunura11
 
Регистрация: 09.06.2014
Сообщений: 5
По умолчанию «Очередь. Стек. Дек» (TurboPascal)

Помогите плз с лабой на тему «Очередь. Стек. Дек» а именно методом Очередь.
Пусть даны две очереди Х и У, содержащие вещественные числа. Из каждой очереди одновременно извлекается по одному числу х и у соответственно. Если x<y, то число (x+y) помещается в конец очереди, иначе число (x-y) помещается в конец очереди У. Необходимо определить число шагов, через которое одна из очередей станет пустой.

Последний раз редактировалось Aunura11; 09.06.2014 в 17:07.
Aunura11 вне форума Ответить с цитированием
Старый 09.06.2014, 19:09   #2
Aunura11
 
Регистрация: 09.06.2014
Сообщений: 5
По умолчанию

Помогите пожалуйста
Aunura11 вне форума Ответить с цитированием
Старый 10.06.2014, 13:22   #3
Aunura11
 
Регистрация: 09.06.2014
Сообщений: 5
По умолчанию

Помогите пожалуйста
Aunura11 вне форума Ответить с цитированием
Старый 10.06.2014, 15:30   #4
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Условие задачи - это конечно хорошо... А самостоятельные попытки решить были?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 10.06.2014, 16:57   #5
Aunura11
 
Регистрация: 09.06.2014
Сообщений: 5
По умолчанию

К сожалению нечего не получается,так как именно с данной темой проблемы. Вот и написал тут в надежде на помощь.

Последний раз редактировалось Aunura11; 10.06.2014 в 18:32.
Aunura11 вне форума Ответить с цитированием
Старый 10.06.2014, 18:32   #6
Aunura11
 
Регистрация: 09.06.2014
Сообщений: 5
По умолчанию

полазив по сети ,нашел это (может ли ее кто изменить?)
Цитата:
type ukazatel=^s;
s=record
dan:real;
next:ukazatel;
end;
Var h,i:integer;
g,g1,y,u,x,u1:ukazatel;
s1,s2:string;
f:text;

procedure see;
begin
writeln('');
u1:=u;
while u1<>nil do begin
write(u1^.dan:3:0);
u1:=u1^.next;
end;
writeln('');
g1:=g;
while g1<>nil do begin
write(g1^.dan:3:0);
g1:=g1^.next;
end;
writeln;
end;
begin
assign(f, '3.txt');
reset(f);
while not eof (f) do
begin
readln (f, s1);
readln (f, s2);
end;
writeln(s1);
writeln(s2);
h:=0;
new(u);
u^.dan:=StrToInt(s1[1]);
u^.next:=nil;
x:=u;
for i:=2 to 5 do begin
x^.next:=new(ukazatel);
x:=x^.next;
x^.dan:=StrToInt(s1[i]);
x^.next:=nil
end;

new(g);
g^.dan:=StrToInt(s2[1]);
g^.next:=nil;
y:=g;
for i:=2 to 5 do begin
y^.next:=new(ukazatel);
y:=y^.next;
y^.dan:=StrToInt(s2[i]);
y^.next:=nil
end;

see;
repeat
if u^.dan<g^.dan then begin
x^.next:=New(ukazatel);
x:=x^.next;
x^.next:=nil;
x^.dan:=u^.dan+g^.dan
end
else begin
y^.next:=New(ukazatel);
y:=y^.next;
y^.next:=nil;
y^.dan:=u^.dan-g^.dan
end;
u1:=u;
u:=u^.next;
dispose(u1);
g1:=g;
g:=g^.next;
dispose(g1);
h:=h+1;
see;
until (u=nil) or (g=nil);

writeln('chislo shagov =',h);
readln;
end.
Aunura11 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ДЕК очередь Тёма_) Visual C++ 2 02.11.2012 13:56
Цепочки, Отчереди, Стек, Дек TriS[56rus] Паскаль, Turbo Pascal, PascalABC.NET 1 19.04.2012 03:20
Очередь и дек С++ mego4el Помощь студентам 3 13.03.2011 21:31
Очередь, стек, дек в Delphi Katen'ka Помощь студентам 1 12.06.2009 22:23