Forum Komputerowe E-comp Strona Główna
FAQ :: Szukaj :: Użytkownicy :: Grupy :: Rejestracja :: Zaloguj

Poprzedni temat «» Następny temat
[Pascal] Silnia - typ zmiennej
Autor Wiadomość
michaelxp91 
Administrator
Master of Puppets




Wiek: 17
Dołączył: 11 Cze 2006
Posty: 2686
Otrzymał 4 piw(a)
Skąd: Ruda Śląska
Wysłany: 2007-12-02, 22:55 [Pascal] Silnia - typ zmiennej


Tak wiec od jakiegos czasu tluke w szkole pascala, zabralem sie za kilka podstawowych algorytmow, i tak o to maly problem z silnia. Oto kodzik:

Kod
program silnia;
uses crt;
var n: longint;

function silnia(n: longint): longint;
begin
if n = 0 then silnia := 1
else silnia := n * silnia(n - 1);
end;

begin
clrscr;
writeln('Program oblicza silnie z dowolnej liczby');
write('Podaj liczbe: ');
readln(n);
writeln(n,'!= ',silnia(n));
repeat until keypressed;
end.

I tu pytanie - jakiego typu zmiennej uzyc? Integer z tego co pamietam liczy silnie dla max. n = 11, longint dla max. n = 19... Jest jakis sposob na to, aby liczylo dla wiekszych wartosci?
_________________
Postaw piwo autorowi tego posta
 
 
 
thalcave 
Support
debian sid user




Wiek: 24
Dołączył: 01 Lip 2006
Posty: 360
Skąd: gdynia
Wysłany: 2007-12-03, 14:05 


Napisalem programik ale w C++ i iteracyjnie nie rekurencyjnie gdzxie silnia byla zmienna typu long unsigned int i program liczyl silnie az do 65!, dopiero przy 66 sie zerowal.
Mysle, ze w takim przypadku mozna zastosowac vector, stos etc. by zwiekszyc mozliwosci silni, ale nie wiem jak z tym jest dla Pascala
_________________
Uczyń swój komputer wolnym ubuntu
Postaw piwo autorowi tego posta
 
 
michaelxp91 
Administrator
Master of Puppets




Wiek: 17
Dołączył: 11 Cze 2006
Posty: 2686
Otrzymał 4 piw(a)
Skąd: Ruda Śląska
Wysłany: 2007-12-03, 22:43 


Mozesz zalaczyc kod tego programu? Rzuce okiem, nie pisalem jeszcze silni iteracyjnie.
_________________
Postaw piwo autorowi tego posta
 
 
 
thalcave 
Support
debian sid user




Wiek: 24
Dołączył: 01 Lip 2006
Posty: 360
Skąd: gdynia
Wysłany: 2007-12-05, 16:58 


Kod
#include <iostream>


int main()
{
using std::cout;
using std::endl;
using std::cin;

cout << "Podaj liczbe naturalna: ";
int N;
cin >> N;

//algorytm
long unsigned int silnia = 1;

for ( int i = 1; i <= N; i++)
{
silnia *= i;
};

cout << N << "!=" << silnia << endl;
return 0;
};
_________________
Uczyń swój komputer wolnym ubuntu
Postaw piwo autorowi tego posta
 
 
michaelxp91 
Administrator
Master of Puppets




Wiek: 17
Dołączył: 11 Cze 2006
Posty: 2686
Otrzymał 4 piw(a)
Skąd: Ruda Śląska
Wysłany: 2007-12-05, 17:25 


PHP tez liczy silnie z tego co pamietam do n = 20, nie mam tu serwera, musialbym sprawdzic.

PHP Code:
<?php

function silnia($n) {

	if($n == 0) {
	return 1;
	} else {
	return $n * silnia($n - 1);
	}
	
}

?>

<html>
<head>
<title>Silnia</title>
<meta name="Content-Type" content="text/html; charset=iso-8859-2;" />
</head>
<body>
<form action="silnia.php" method="post">
<li>Podaj liczbe:&nbsp;
<input type="text" name="n" /></li><br>
<input type="submit" value="Wylicz." /><br><br>
</form>

<?php

$n = $_POST['n'];

if(!$n or !is_numeric($n)) {

echo "<br>";

} else {

echo "$n! = " . silnia($n);

}

?>

</body>
</html>

Nadal nie znalazlem jakiegos dobrego sposobu na liczenie silni dla wiekszych liczb... :/ Coz, sprobuje jeszcze interacyjnie na longincie w pascalu to zrobic.
_________________
Postaw piwo autorowi tego posta
 
 
 
thalcave 
Support
debian sid user




Wiek: 24
Dołączył: 01 Lip 2006
Posty: 360
Skąd: gdynia
Wysłany: 2007-12-05, 20:22 


michaelxp91, nie znam sie na PHP ale w 29 lini cos nie tak:
http://ftims.info/~thalcave/proba/
_________________
Uczyń swój komputer wolnym ubuntu
Postaw piwo autorowi tego posta
 
 
michaelxp91 
Administrator
Master of Puppets




Wiek: 17
Dołączył: 11 Cze 2006
Posty: 2686
Otrzymał 4 piw(a)
Skąd: Ruda Śląska
Wysłany: 2007-12-05, 21:16 


E, to akurat zalezy od konfiguracji Apache. Linia:

PHP Code:
$n = 0;

Na poczatku skryptu zalatwilaby sprawe, z tym, ze musialbym wtedy zmodyfikowac if'a.
_________________
Postaw piwo autorowi tego posta
 
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Nie możesz ściągać załączników na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Template eGris created by INIM & Bonus. Done by Forum Komputerowe.
Forum Akwarystyczne Aqua-NetAkwarystyka roślinnaForum KomputerowePolskie Centrum phpBB - ephpBB.euphpBB3 Styles
Harmonijka ustnaForum dyskusyjnePraca i życie w HolandiiKalkulator the crimsAMX-Board - polski support AMX i AMXX
Forum reklamowe