Kezdőoldal » Számítástechnika » Programozás » Ilyet, hogy lehet Pascalban?

Ilyet, hogy lehet Pascalban?

Figyelt kérdés

Faktoriálist szeretnék csinálni, ezzel csak az a baj h a változók számát pontosan tudni kell, ezért azt szeretném , hogy a amit bekér számot, hogy kiírja a faktoriálisát mindig annyi változót generáljon automatikusan úgy h 1 változó x-1 a második már x-2 legyen (az x az amit bekér számot)


Remélem érthetően írtam le


2014. ápr. 5. 16:37
 1/8 ejbenjaro ***** válasza:

A ciklusokról ugye hallottál már? Mindössze 3 változóval megoldottam neked a problémát (és még az sem kizárt, hogy kevesebb változó is elég lenne):


program faktorialis;


var

n: integer;

i: integer;

eredmeny: longint;


begin

write('Kerem a szamot (n): ');

readln(n);


eredmeny:=1;


if n>0 then

begin

for i:=1 to n do

eredmeny:=eredmeny*i;

end

else eredmeny:=1;


writeln(n,'!= ',eredmeny);

end.


Ezt a problémát rekurzióval is meg lehet oldani. Google-ben keress Free Pascal Factorial kifejezésre.

2014. ápr. 5. 17:31
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
0%

miért kellene előre tudni?


Be: szam

fakt:=0

ciklus i:=szam-tól 1-ig

fakt:=i*i-1

Ki: fakt


szerintem működik, de nem teszteltem

2014. ápr. 5. 17:34
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:
0%

és nem jó mert

fakt:=fakt+i*i-1

2014. ápr. 5. 17:37
Hasznos számodra ez a válasz?
 4/8 A kérdező kommentje:
De én olyanra gondoltam mikor a számok ismétlődhetnek ..tehát pl 5-re az van hogy 5*5*5*5*5=3125
2014. ápr. 6. 18:36
 5/8 ejbenjaro ***** válasza:
Jó lenne megtanulni fogalmazni. Amit akarsz az hatványozás és ahhoz van talán beépített függvény is (math unit).
2014. ápr. 6. 19:48
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:
51%

Szam:=1;

For i:= 1 to beszam do

Begin szam:=beszam*szam;

end;

Magyarul ez pl. az 5-öt az 5-dikre emeli...

2014. ápr. 6. 23:10
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:

-Faktoriális:

{szam bekérése}

for i:=2 to szam-1 do

szam:=szam*i;


-Hatvány:

{szam és hatvany bekérése}

eredmeny:=1;

for i:=1 to hatvany do

eredmeny:=eredmeny*szam;

2014. ápr. 7. 12:20
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:

uses crt;

var k:integer;


function fakt(n:integer):longint;

begin

if n>0 then fakt:=n*fakt(n-1)

else fakt:=1;

end;


begin

clrscr;

write('Kerek egy egesz szamot (0..12): ');

readln(k);

writeln(k,'! = ',fakt(k));

end.

2014. jún. 29. 18:18
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!