Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

10.12.2007, 21:00
|
|
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме: 409147
Репутация:
33
|
|
паскаль, вы программер?
вот собственно не могу разхобраться с длинной арифметикой,
Составить программу для вычисления точного значения суммы 1!+2!+3!+..+n! при n>10.
может кто подскажет задачу?)
народ кто в блок-схемах фарит?
оч нужно к ней:
program two;
uses crt;
const
MAX=20;
type
line=Array[1..MAX] of real;
var
smin:real;
imin:Integer;
i,j,n,m:Integer;
x:Array[1..MAX] of line;
buf:line;
juf:Array[1..MAX] of Integer;
inp:Text;
begin
Assign(inp,'matrix.txt');
Reset(inp);
Read(inp,n,m);{Є®«ЁзҐбвў® бвp®Є Ё бв®«Ўж®ў}
if (MAX<n) or (MAX<m) then
Write('*Ґ¦Ґ«*о бзЁв*вм! ')
else begin
for i:=1 to n do
for j:=1 to m do
Read(inp,x[i][j]);
for i:=1 to n do begin
buf[i]:=x[i][1];
juf[i]:=1;
for j:=2 to m do
if buf[i]<x[i][j] then begin
buf[i]:=x[i][j];
juf[i]:=j
end
end;
smin:=buf[1];
for i:=2 to n do begin
if smin>buf[i] then begin
smin:=buf[i];
imin:=i
end
end;
Writeln;
Write('‘Ґ¤«®ўaп в®зЄa x=',juf[imin],' y=',imin)
end;
Close(inp)
end.
вот.
|
|
|

10.12.2007, 21:41
|
|
Участник форума
Регистрация: 08.09.2006
Сообщений: 194
Провел на форуме: 1627025
Репутация:
163
|
|
может это поможет разобраться:
Задача:
Рекурсивная функция, считающая факториал числа.
Код:
Код:
program Factorial;
var n:integer;
function Factor(n:integer):real;
var v:real;
Begin
if n in [0,1] then Factor:= 1 else Factor:= n*Factor(n-1);
end;
begin
Write('Введите число(0..33): ');
Readln(n);
Write('Факториал этого числа равен: ', Factor(n):11:0);
Readln;
End.
|
|
|

11.12.2007, 04:28
|
|
Участник форума
Регистрация: 30.09.2006
Сообщений: 165
Провел на форуме: 535407
Репутация:
57
|
|
Блин начни сам составлят ьблок схему - только перед этим приведи прогу к нормальному виду - всмысле чтобы циклы и фунции шли с отступом - ка ктолько отформатишь - блок схему ля такой мелкой программки ты сам напишешь как два пальца об асфальт.
|
|
|

12.12.2007, 20:38
|
|
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме: 409147
Репутация:
33
|
|
собственно насчет задачи я, эта прога считает факториал(до 33 ), но мне надо вида:
1!+2!.. до вводимого числа о0 вот.
|
|
|

13.12.2007, 00:54
|
|
Участник форума
Регистрация: 30.09.2006
Сообщений: 165
Провел на форуме: 535407
Репутация:
57
|
|
Writeln('vvedite chislo');
Readln(n);
sum:=0;
fact:=1;
for i:=1 to n do begin
fact:=fact*i;
sum:=sum+fact;
end;
writeln(sum);
readln;
end.
Это без выпендрежа - голый алгоритм вычисления.
|
|
|

13.12.2007, 07:36
|
|
Новичок
Регистрация: 14.06.2007
Сообщений: 7
Провел на форуме: 30728
Репутация:
34
|
|
Чуваку нужна длинная арифметика. Представленные листинги на паскале умрут после 18! - проверено еще в 96 году прошлого века.
to rubik-nerubik пиши модуль работы с длинной арифметикой, или качай из сети.
|
|
|

13.12.2007, 17:02
|
|
Участник форума
Регистрация: 30.09.2006
Сообщений: 165
Провел на форуме: 535407
Репутация:
57
|
|
ай мама моя дорогая... какое ж это западло - стандартный инт вешаеться после факториала 18...
А Double? а самому написать объект? И определить для него методы? (подсказка - определяешь массив(можно динамический) и в каждый элемент - помещаешь число - от 1-до 10 - вот тебе интерпретация числа. И просто напросто пишешь для него функцию умножения - типа там смещаться должно туда-то итд - сам напиши - полезно для мозгов). Но это если уж тебе совсем надо большой факториал найти. А если так по мелочи дабла должно хватить. А вот за рекурсию я бы нафиг руки отрубал...
ПС проверять тут нечего - детская программа - все устно считаеться на сколько у тебя хватит размерности.
|
|
|

13.12.2007, 17:35
|
|
Новичок
Регистрация: 06.12.2007
Сообщений: 17
Провел на форуме: 150294
Репутация:
31
|
|
Lexx, вы много знаете о haskell?  Программами на этом языке нужно любоваться) А вы так про реккурсию плохо отзываетесь
rubik-nerubik, надыбай модуль для работы с длиннющими числами и вот те с longint, реккурентное соотношение нашел, функцию написал), работает реактивно и никаких циклов! Паскаль:
Код:
program Good;
uses crt;
var
k,max:byte;
function fuck(k:byte):longint;
begin
if k=1 then fuck:=1
else fuck:=(max-k+2)*fuck(k-1)+1;
end;
begin
readln(k); max:=k;
writeln(fuck(k));
end.
|
|
|

13.12.2007, 19:23
|
|
Участник форума
Регистрация: 30.09.2006
Сообщений: 165
Провел на форуме: 535407
Репутация:
57
|
|
Ага офигенно - вот какраз про это я и говорю... А вы когда-нить слышал и о таком предмете как исследование операций? Так вот - рекурсия - это худщшее что может быть для вычиления каки-бы то ни было больших или маленьких чисел...
А еще блин ну что это такое... рекурсией каждый раз считать факториал... Просто стот сравнить количество операций для вычиления всего задания по моему алгоритму и по вашему...
У мен якаждый раз мы используем предыдущий член - тот который уже вычислен. Конечно это неявная рекурсия, но здесь она вполне допустима - нету операций с плавающей точкой.
А предыдущая программа как раз и захлебнеться, причем скорее всего где-то в районе 150-200. - Только из-за недостатка оперативы... А нет даже раньше - у паскаля задействовано памяти на 600 000 интовых элементов. так что считаем...
|
|
|

13.12.2007, 19:30
|
|
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме: 409147
Репутация:
33
|
|
~Lexx~
флудишь больше)))
HulkRus этот пример точно по моему заданию? не только факториал??
Составить программу для вычисления точного значения суммы 1!+2!+3!+..+n! при n>10.
?????
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|