![]() |
паскаль, вы программер?
вот собственно не могу разхобраться с длинной арифметикой,
Составить программу для вычисления точного значения суммы 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. вот. |
может это поможет разобраться:
Задача: Рекурсивная функция, считающая факториал числа. Код: Код:
|
Блин начни сам составлят ьблок схему - только перед этим приведи прогу к нормальному виду - всмысле чтобы циклы и фунции шли с отступом - ка ктолько отформатишь - блок схему ля такой мелкой программки ты сам напишешь как два пальца об асфальт.
|
собственно насчет задачи я, эта прога считает факториал(до 33 ), но мне надо вида:
1!+2!.. до вводимого числа о0 вот. |
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. Это без выпендрежа - голый алгоритм вычисления. |
Чуваку нужна длинная арифметика. Представленные листинги на паскале умрут после 18! - проверено еще в 96 году прошлого века.
to rubik-nerubik пиши модуль работы с длинной арифметикой, или качай из сети. |
ай мама моя дорогая... какое ж это западло - стандартный инт вешаеться после факториала 18...
А Double? а самому написать объект? И определить для него методы? (подсказка - определяешь массив(можно динамический) и в каждый элемент - помещаешь число - от 1-до 10 - вот тебе интерпретация числа. И просто напросто пишешь для него функцию умножения - типа там смещаться должно туда-то итд - сам напиши - полезно для мозгов). Но это если уж тебе совсем надо большой факториал найти. А если так по мелочи дабла должно хватить. А вот за рекурсию я бы нафиг руки отрубал... ПС проверять тут нечего - детская программа - все устно считаеться на сколько у тебя хватит размерности. |
Lexx, вы много знаете о haskell? :) Программами на этом языке нужно любоваться) А вы так про реккурсию плохо отзываетесь :mad:
rubik-nerubik, надыбай модуль для работы с длиннющими числами и вот те с longint, реккурентное соотношение нашел, функцию написал), работает реактивно и никаких циклов! Паскаль: Код:
program Good; |
Ага офигенно - вот какраз про это я и говорю... А вы когда-нить слышал и о таком предмете как исследование операций? Так вот - рекурсия - это худщшее что может быть для вычиления каки-бы то ни было больших или маленьких чисел...
А еще блин ну что это такое... рекурсией каждый раз считать факториал... Просто стот сравнить количество операций для вычиления всего задания по моему алгоритму и по вашему... У мен якаждый раз мы используем предыдущий член - тот который уже вычислен. Конечно это неявная рекурсия, но здесь она вполне допустима - нету операций с плавающей точкой. А предыдущая программа как раз и захлебнеться, причем скорее всего где-то в районе 150-200. - Только из-за недостатка оперативы... А нет даже раньше - у паскаля задействовано памяти на 600 000 интовых элементов. так что считаем... |
~Lexx~
флудишь больше))) HulkRus этот пример точно по моему заданию? не только факториал?? Составить программу для вычисления точного значения суммы 1!+2!+3!+..+n! при n>10. ????? |
| Время: 10:43 |