Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Izracunavanje n-tog stepena celog broja

[es] :: Pascal / Delphi / Kylix :: Izracunavanje n-tog stepena celog broja

[ Pregleda: 10190 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bratovuk
Belgrade

Član broj: 134201
Poruke: 95
*.adsl-1.sezampro.yu.



Profil

icon Izracunavanje n-tog stepena celog broja23.03.2007. u 19:58 - pre 187 meseci
Zadatak:
Napisati program za izracunavanje n-tog stepena celog broja a.

Resenje: ( Iz Cabarkapine knjige..)
Code:

program stepen(input,output);
  var a,n,i,stepen:integer;
  begin 
     readln(a,n);
     stepen:=1;
     i:=1;
     while i<=n do
         begin
            stepen:=stepen*a;
            i:=i+1;
          end;
        writeln('stepen=', stepen);
      readln;
    end.


Pitanja:
1) zbog cega se dodeljuje vrednost: stepen:=1; i i:=1?
2) zbog cega se pise: while i<=n do?
3) zasto je sad stepen:=stepen*a?
4) zasto je i:=i+1?

PS. Ostalo znam
PS2. Nemojte mi reci da je pascal najlaksi jezik?!?...(ps3..postajem depresivan,krenuo sam pre mesec dana da ucim T pascal, mnogo sporo napredujem, jel to normalno?)

Hvala svima unapred.......
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4894
*.dynamic.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+637 Profil

icon Re: Izracunavanje n-tog stepena celog broja23.03.2007. u 21:38 - pre 187 meseci
Citat:

1) zbog cega se dodeljuje vrednost: stepen:=1; i i:=1?

stepen:=1 je takozvana inicijalna vrednost za množenje, jer bi u suprotnom,
unutar brojača stepen:=stepen*a, trenutne rezultate množio sa NULOM i ne
bi ništa postigao, rezultat bi ostao NULA.

Citat:

2) zbog cega se pise: while i<=n do?

To je uslov koji obezbeđuje petlji da se vrti dok god je ispunjen (i<=n).
i se uvećava u svakom prolazu dok god ne bude veći od N kada se izlazi iz petlje.

Citat:

3) zasto je sad stepen:=stepen*a?

Ovo je isto kao kod brojača, vrednost sa desne strane se dodeljuje levoj strani.

Citat:

4) zasto je i:=i+1?

To je brojač koji se uvećava, i dovodi do vrednosti kada se izlazi iz petje.

Ovo je malo nejasno jer se moglo postići i sa FOR petljom, prirodnije. To je verovatno
bio neki primer za WHILE.
 
Odgovor na temu

bratovuk
Belgrade

Član broj: 134201
Poruke: 95
*.adsl-1.sezampro.yu.



Profil

icon Re: Izracunavanje n-tog stepena celog broja25.03.2007. u 10:30 - pre 187 meseci
Citat:
To je verovatno
bio neki primer za WHILE.


...upravo tako!.. Hvala X Files na detaljima :)!
 
Odgovor na temu

Wajda.W
Vladimir Vajda
Zrenjanin

Član broj: 127039
Poruke: 323
*.dial.cpe.InfoSky.Net.



+101 Profil

icon Re: Izracunavanje n-tog stepena celog broja27.03.2007. u 11:20 - pre 187 meseci
koliko se meni cini to je samo za vrednosti n>=0
treba dodati uslov sa grananjem za n>=0 i n<0
posle izracunavanja stepena. nesto ovako:

Code:

.
.
.
while i<=n do
         begin
            stepen:=stepen*a;
            i:=i+1;
          end;
if(n<0) than stepen:=1/stepen;
writeln('stepen=', stepen);
      readln;
    end.

mozda ima gresaka jer se bas ne doznam mnogo u pascal
 
Odgovor na temu

bratovuk
Belgrade

Član broj: 134201
Poruke: 95
*.adsl-1.sezampro.yu.



Profil

icon Re: Izracunavanje n-tog stepena celog broja28.03.2007. u 01:50 - pre 187 meseci
Citat:
mozda ima gresaka jer se bas ne doznam mnogo u pascal

ima greska!...pokusao sam da resim al mi treba mala pomoc:
Code:

program BrojANaBrojN;
           var:  a,i,n:integer;
                  stepen:real;
           begin
              readln(a,n);
              stepen:=1;
              i:=1;
              while i<=n do
                 begin
                   stepen:=stepen*a;
                   i:=i+1;
                 end;
              if (n<0) then
                 begin
                    stepen:=BROJ a NA BROJ abs(n); { Kako ovo da napisem u pascalu?????}
                    stepen:=1/stepen;
                 end;
             writeln('stepen=',stepen:10:2);
             readln;
            end. 


Trebalo bi da sam sve napisao ispravno.
Fali mi samo...stepen:=BROJ a NA BROJ abs(n), kako to da napisem? Da li moze preko exp(x)?

Hvala.



 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4894
*.tekostolac.co.yu.

Jabber: xfiles@elitesecurity.org


+637 Profil

icon Re: Izracunavanje n-tog stepena celog broja28.03.2007. u 07:24 - pre 187 meseci
Citat:

Da li moze preko exp(x)?

Trebalo bi da može ovako (nisam testirao):
an = exp ( n * ln ( a ) )
...ali svakako obrati pažnju na *tipove*, da ne bi rezultat bio približan.

Odavno nisam u Pascal svetu, pa ne znam šta kažu standardi, ali svakako proveri i da li može:
an = a ** n

... ili čak i:
an = POW ( a, n )
(ukoliko kompajler ima neku (ne)standardnu ekstentiju)
 
Odgovor na temu

Wajda.W
Vladimir Vajda
Zrenjanin

Član broj: 127039
Poruke: 323
*.dial.cpe.InfoSky.Net.



+101 Profil

icon Re: Izracunavanje n-tog stepena celog broja28.03.2007. u 09:42 - pre 187 meseci
E a mozda da u while petlji stavis abs(n) to moze "peske" da se napise kao sqrt(n*n)
i onda ti while petlja racuna uvek za pozitivne vrednosti i posle samo proveris da li je manje od 0 i ako jeste napravis reciprocnu vrednost.
tako bar moze u c-u , verovatno moze i u pascalu
 
Odgovor na temu

bratovuk
Belgrade

Član broj: 134201
Poruke: 95
*.adsl-2.sezampro.yu.



Profil

icon Re: Izracunavanje n-tog stepena celog broja28.03.2007. u 13:45 - pre 187 meseci
@X Files
Hvala, al ne ide:(
Citat:
an = exp ( n * ln ( a ) )

kada to ubacim resava stepen:=1/stepen kao stepen:=stepen*a, ne razumem zasto..

Citat:
an = a ** n

... ili čak i:
an = POW ( a, n )

Citat:
Odavno nisam u Pascal svetu, pa ne znam šta kažu standardi, ali svakako proveri i da li može


Hehe...ne moze, error:)!..
Hvala na trudu...mucicu se ja jos malo :)!
Tnx!
 
Odgovor na temu

bratovuk
Belgrade

Član broj: 134201
Poruke: 95
*.adsl-2.sezampro.yu.



Profil

icon Re: Izracunavanje n-tog stepena celog broja28.03.2007. u 13:50 - pre 187 meseci
@Wajda.W
Ti mi vajda zagorca zivot :) sa ovim:
Citat:
koliko se meni cini to je samo za vrednosti n>=0
treba dodati uslov sa grananjem za n>=0 i n<0
posle izracunavanja stepena.

Budi sad ljubazan i resi misteriju;)!

inace, ovo ne pali u pascalu, barem ne kod mene:
Citat:
E a mozda da u while petlji stavis abs(n) to moze "peske" da se napise kao sqrt(n*n)
i onda ti while petlja racuna uvek za pozitivne vrednosti i posle samo proveris da li je manje od 0 i ako jeste napravis reciprocnu vrednost.
tako bar moze u c-u , verovatno moze i u pascalu


Pozdrav!

 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
212.200.34.*

ICQ: 246436949


+10 Profil

icon Re: Izracunavanje n-tog stepena celog broja28.03.2007. u 15:05 - pre 187 meseci
Napisi sam funkciju za dizanje nekog broja na neki stepen... npr ovako:
Code:
function Pow(n, s: Longint): Longint;
begin
  if s = 0 then
    Pow := 1
  else
    Pow := n * Pow(n, s - 1);
end;

i onda je samo pozovi u kodu
Code:
stepen:= Pow(BROJ, abs(n));

 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2708



+84 Profil

icon Re: Izracunavanje n-tog stepena celog broja28.03.2007. u 15:36 - pre 187 meseci
> an = exp ( n * ln ( a ) )
> kada to ubacim resava stepen:=1/stepen kao stepen:=stepen*a, ne razumem zasto..

Nisam razumeo šta ti ne radi.

function Power(const a, n: Extended): Extended;
begin
Result := Exp(Ln(a) * n);
end;

A na N = Power(A, N);
Nti koren iz A = Power(A, 1 / N);

Power(2, 5) = 32;
Power(2, 1 / 2) = 1.41...;

 
Odgovor na temu

bratovuk
Belgrade

Član broj: 134201
Poruke: 95
*.adsl-2.sezampro.yu.



Profil

icon Re: Izracunavanje n-tog stepena celog broja28.03.2007. u 16:04 - pre 187 meseci
@Srki82
Citat:
Opravi ga Srki svaka mu cast!
:)
Radi! Hvala.
@savkic
Tnx na odgovoru, pokusacu i na taj nacin!
Pozdrav!
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Izracunavanje n-tog stepena celog broja28.03.2007. u 17:02 - pre 187 meseci
Radi i moje, a radi i kod koji je napisao savkic, a moze da se uradi i na jos nacina... poenta nije u tome da li radi ili ne, nego u tome da li ti razumes zasto nesto radi ili ne. Namerno sam napisao funkciju onako kako sam je napisao da bih video da li ti je jasno sta se u njoj desava... i... da li znas zasto to radi?
 
Odgovor na temu

bratovuk
Belgrade

Član broj: 134201
Poruke: 95
*.adsl-2.sezampro.yu.



Profil

icon Re: Izracunavanje n-tog stepena celog broja28.03.2007. u 19:16 - pre 187 meseci
@Srki82

Pocetnik sam.Paskal ucim od 1.Marta.
Da budem iskren, nije mi jasno! Cak ni ne znam sta radi f-ja u TP, kakve osobine ima...
Sa ucenjem sam stigao do petlji (while-do, repeat-until,for..)..

Koja je uloga f-ja u TP? Ako nije problem da se objasni,"odokativno", Hvala:).

..
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2708



+84 Profil

icon Re: Izracunavanje n-tog stepena celog broja29.03.2007. u 00:47 - pre 187 meseci
> Pocetnik sam.Paskal ucim od 1.Marta.
> Da budem iskren, nije mi jasno! Cak ni ne znam sta radi f-ja u TP, kakve osobine ima...
> Sa ucenjem sam stigao do petlji (while-do, repeat-until,for..)..
> Koja je uloga f-ja u TP? Ako nije problem da se objasni,"odokativno", Hvala:).

To je proces koji moraš sam preći, moj ti je savet da nabaviš neku knjigu (za Pascal je najbolja Turbo Pascal Kompletan vodič - Stephen O'Brien) i naučiš osnove jezika. Ukucaj dobijene primere u editor i startuj izvršavanje programa red po red (moraš naučiti rad sa debuggerom) i proveri koliko god da treba, dan, dva, nedelju u prolasku kroz primere dok ne shvatiš.
 
Odgovor na temu

bratovuk
Belgrade

Član broj: 134201
Poruke: 95
*.adsl-1.sezampro.yu.



Profil

icon Re: Izracunavanje n-tog stepena celog broja29.03.2007. u 14:34 - pre 187 meseci
Citat:
(za Pascal je najbolja Turbo Pascal Kompletan vodič - Stephen O'Brien)


ne moguca misija:)..hvala na savetu!
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Izracunavanje n-tog stepena celog broja

[ Pregleda: 10190 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.