ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

паскаль, вы программер?
  #1  
Старый 10.12.2007, 21:00
rubik-nerubik
Участник форума
Регистрация: 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.

вот.
 
Ответить с цитированием

  #2  
Старый 10.12.2007, 21:41
LolFEm
Участник форума
Регистрация: 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.
 
Ответить с цитированием

  #3  
Старый 11.12.2007, 04:28
~Lexx~
Участник форума
Регистрация: 30.09.2006
Сообщений: 165
Провел на форуме:
535407

Репутация: 57
Отправить сообщение для ~Lexx~ с помощью ICQ
По умолчанию

Блин начни сам составлят ьблок схему - только перед этим приведи прогу к нормальному виду - всмысле чтобы циклы и фунции шли с отступом - ка ктолько отформатишь - блок схему ля такой мелкой программки ты сам напишешь как два пальца об асфальт.
 
Ответить с цитированием

  #4  
Старый 12.12.2007, 20:38
rubik-nerubik
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме:
409147

Репутация: 33
По умолчанию

собственно насчет задачи я, эта прога считает факториал(до 33 ), но мне надо вида:
1!+2!.. до вводимого числа о0 вот.
 
Ответить с цитированием

  #5  
Старый 13.12.2007, 00:54
~Lexx~
Участник форума
Регистрация: 30.09.2006
Сообщений: 165
Провел на форуме:
535407

Репутация: 57
Отправить сообщение для ~Lexx~ с помощью ICQ
По умолчанию

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.

Это без выпендрежа - голый алгоритм вычисления.
 
Ответить с цитированием

  #6  
Старый 13.12.2007, 07:36
Aristarh Dark
Новичок
Регистрация: 14.06.2007
Сообщений: 7
Провел на форуме:
30728

Репутация: 34
По умолчанию

Чуваку нужна длинная арифметика. Представленные листинги на паскале умрут после 18! - проверено еще в 96 году прошлого века.
to rubik-nerubik пиши модуль работы с длинной арифметикой, или качай из сети.
 
Ответить с цитированием

  #7  
Старый 13.12.2007, 17:02
~Lexx~
Участник форума
Регистрация: 30.09.2006
Сообщений: 165
Провел на форуме:
535407

Репутация: 57
Отправить сообщение для ~Lexx~ с помощью ICQ
По умолчанию

ай мама моя дорогая... какое ж это западло - стандартный инт вешаеться после факториала 18...
А Double? а самому написать объект? И определить для него методы? (подсказка - определяешь массив(можно динамический) и в каждый элемент - помещаешь число - от 1-до 10 - вот тебе интерпретация числа. И просто напросто пишешь для него функцию умножения - типа там смещаться должно туда-то итд - сам напиши - полезно для мозгов). Но это если уж тебе совсем надо большой факториал найти. А если так по мелочи дабла должно хватить. А вот за рекурсию я бы нафиг руки отрубал...

ПС проверять тут нечего - детская программа - все устно считаеться на сколько у тебя хватит размерности.
 
Ответить с цитированием

  #8  
Старый 13.12.2007, 17:35
HulkRus
Новичок
Регистрация: 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.
 
Ответить с цитированием

  #9  
Старый 13.12.2007, 19:23
~Lexx~
Участник форума
Регистрация: 30.09.2006
Сообщений: 165
Провел на форуме:
535407

Репутация: 57
Отправить сообщение для ~Lexx~ с помощью ICQ
По умолчанию

Ага офигенно - вот какраз про это я и говорю... А вы когда-нить слышал и о таком предмете как исследование операций? Так вот - рекурсия - это худщшее что может быть для вычиления каки-бы то ни было больших или маленьких чисел...
А еще блин ну что это такое... рекурсией каждый раз считать факториал... Просто стот сравнить количество операций для вычиления всего задания по моему алгоритму и по вашему...
У мен якаждый раз мы используем предыдущий член - тот который уже вычислен. Конечно это неявная рекурсия, но здесь она вполне допустима - нету операций с плавающей точкой.
А предыдущая программа как раз и захлебнеться, причем скорее всего где-то в районе 150-200. - Только из-за недостатка оперативы... А нет даже раньше - у паскаля задействовано памяти на 600 000 интовых элементов. так что считаем...
 
Ответить с цитированием

  #10  
Старый 13.12.2007, 19:30
rubik-nerubik
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме:
409147

Репутация: 33
По умолчанию

~Lexx~
флудишь больше)))

HulkRus этот пример точно по моему заданию? не только факториал??
Составить программу для вычисления точного значения суммы 1!+2!+3!+..+n! при n>10.
?????
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ