Страница 1 из 1
Pascal. Факториал
Добавлено: 10 июн 2008, 21:50
Den4ik
Напишите пожалуйста прогу для вычисления факториала из 16. Используя стеки и очереди.
Re: Помогите с задачей по Паскалю!!!!!!! Зачет горит!!!!!!!
Добавлено: 10 июн 2008, 22:32
somewhere
F16 = 20922789888000

Re: Помогите с задачей по Паскалю!!!!!!! Зачет горит!!!!!!!
Добавлено: 10 июн 2008, 22:44
Den4ik
Я и сам знаю что 16!=20922789888000.

Re: Помогите с задачей по Паскалю!!!!!!! Зачет горит!!!!!!!
Добавлено: 10 июн 2008, 22:49
somewhere
Зачем тогда писать бесполезную программу, если это число вычисляется всего один раз?
Re: Помогите с задачей по Паскалю!!!!!!! Зачет горит!!!!!!!
Добавлено: 11 июн 2008, 00:58
Den4ik
Эта задача по практике, если я ее не сдам тогда меня не допустят к экзаменам.
Я не знаю как работать с очередями, т.к . пропустил эту тему во время семестра.
Если можете помогите горе студенту с программой.
Re: Помогите с задачей по Паскалю!!!!!!! Зачет горит!!!!!!!
Добавлено: 11 июн 2008, 01:05
somewhere
Юзайте поиск в разделе "Алгоритмы", там лежит функция вычисления факториала. Ее надо только немного видоизменить
Re: Pascal. Факториал
Добавлено: 13 июн 2008, 22:32
Den4ik
Я написал программу если можете проверьте и еще помогите написать к ней описание, а то у меня нет времяни скоро экзамен.
program asd;
type EXO = ^ O;
O = record
Data: longint;
Next: EXO;
end;
var BeginO, EndO: EXO;
summ,k,t,i:longint;
procedure writeO(var BeginO, EndO : EXO; c:longint);
var u : EXO;
Begin
new(u);
u^.Data := c;
u^.Next := Nil;
if BeginO = Nil then BeginO := u else EndO^.Next := u;
end;
procedure readO(var BeginO, EndO : EXO; var c:longint);
var u:EXO;
function FreeO(x1:EXO) : boolean;
begin
FreeO := (x1=Nil);
end;
begin
if FreeO(BeginO) then writeln('Free') else
begin
c:=BeginO^.Data;
u := BeginO;
BeginO := BeginO^.Next;
dispose(u);
end;
end;
begin
write('Please, enter numb: ');
readln(t);
if t > 16 then
begin
writeln('t > 16. Exit!');
readln;
halt(1);
end;
summ:=1;
for i:=1 to t do
begin
writeO(BeginO,EndO,i);
readO(BeginO,EndO,k);
summ:=summ*k;
end;
writeln('Summ: ',summ);
readln;
end.