Kezdőoldal » Számítástechnika » Programozás » Hatványozás Pascalban?

Hatványozás Pascalban?

Figyelt kérdés

Sziasztok!


Kaptam egy feladatot miszerint a programnak be kell olvasnia egy számot és annak megadja a negyedik hatványát. Nos, ez ugye elég alap feladat, ezért én szeretném annyival bonyolítani hogy bekérje azt is hogy hányadik hatványára vagyunk kíváncsiak a számnak.

Egy példa: beírjuk hogy a szám legyen 2, megkérdezi hogy hányadik hatványa érdekel, beírjuk hogy a 2. és kiírja az eredményt.

Volt egy ötletem ami sajnos csak ötlet marad.. Az hogy case of elágazással írom meg, pl: case hatvany of 1 : szam; 2 : szam * szam; 3 : szam * szam * szam stb..

Ugye ez elég hülyeség lenne és még hosszadalmas is.. Soha nem érnénk a végére. Van valami más módja ennek?



2016. jan. 20. 14:52
1 2 3
 11/23 anonim ***** válasza:

Ha választható akkor az eléggé keresztbe tesz, a bonyolultságának:


5^2

5^0

5^0.5

5^1.5

5^-1.75

2016. jan. 20. 16:29
Hasznos számodra ez a válasz?
 12/23 anonim ***** válasza:

Most olvastam végig a kérdést.

Ez így nem túl elegáns.


A CASE-zel választod ki a kitevőt és ahol a selekció érvényesül, ott hívódik meg a függvény (amely a hatványozást végzi) a függvény paraméterei pedig az alap és a kitevő.

2016. jan. 20. 16:38
Hasznos számodra ez a válasz?
 13/23 anonim ***** válasza:

De miért kellene case?

x^y esetében, ahol y >=0

Nyilván a nem egész és negatívokat jelen esetben nem akarja kezelni, mert a ciklus is probléma.


result = 1

for i = 0 to y-1

..result *= x

..++i

return result

2016. jan. 20. 16:56
Hasznos számodra ez a válasz?
 14/23 anonim ***** válasza:
0%

Nem feltétlenül kell CASE, sőt, de ha Ő szeretne?


Elvégre tanul.

2016. jan. 20. 16:59
Hasznos számodra ez a válasz?
 15/23 anonim ***** válasza:

Esetleg még rekurzióval is lehet ha úgy könnyebb:


függvény hatvány(alap, kitevő):

. . ha kitevő == 0:

. . . . visszatér 1-gyel.

. . visszatér hatvány(alap, kitevő - 1) * alappal.

2016. jan. 20. 17:13
Hasznos számodra ez a válasz?
 16/23 ejbenjaro ***** válasza:

Csak egész számokkal működik (1 és 10 közötti), Free Pascallal fordítható.


program Project1;


{$mode objfpc}{$H+}


uses

SysUtils;


var

alap, kitevo, i, eredmeny:int64;


begin

Repeat

Write('Alap: ');

Readln(Alap);

Until (alap>=1) and (alap<=10);


Repeat

Write ('Kitevo: ');

Readln(Kitevo);

Until (kitevo<=10) and (kitevo>=1);



eredmeny:=alap;


for i:=1 to kitevo-1 do

begin

writeln(i,' ',eredmeny);

eredmeny:=eredmeny*alap;

end;


Write('Eredmeny: ',eredmeny);

Readln;

end.

2016. jan. 20. 17:35
Hasznos számodra ez a válasz?
 17/23 tabaki ***** válasza:
No jó, én már többedszerre olvasom el a feladatot, de nem látok benne többet, mint az előbb linkelt kérdésben (inkább kevesebbet, mert ott a kiírással is figuráztunk).
2016. jan. 20. 17:38
Hasznos számodra ez a válasz?
 18/23 anonim ***** válasza:
80%

"Nem feltétlenül kell CASE, sőt, de ha Ő szeretne? Elvégre tanul."


Muszáj ezt a hülyeséget nyomatni?

Én már ott problémát látok, hogy tudja a kérdező, hogy mi az a for ciklus, de egy hatványozáshoz mégis a case-t akarja használni.


(mentségére szóljon, már a kérdésben is leszögezte, hogy szerinte ez hülyeség, leglább ne tereljük már el ettől a szép gondolatától, jó?)

2016. jan. 20. 18:11
Hasznos számodra ez a válasz?
 19/23 anonim ***** válasza:
0%

#18:


"Muszáj ezt a hülyeséget nyomatni?"


A stílus maga az ember.

2016. jan. 20. 18:46
Hasznos számodra ez a válasz?
 20/23 A kérdező kommentje:

#18

Légyszíves ne ilyen arrogáns módon beszélj! Köszönöm! Mint már említettem, rájöttem magamtól is hogy nagy butaság lenne többszörös elágazással szórakozni, illetve magam is rájöttem hogy for ciklust kell használni, ezért is kérdeztem tőled még az elején hogy arra gondolsz-e. Egyedül a megvalósítással volt probléma, de valaki linkelt egy előző kérdést ahol ez a program tökéletesen le van írva. Köszönöm szépen a segítséget!

2016. jan. 20. 19:36
1 2 3

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!