Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 15 odgovora
  • 13.150 pregleda

Najnovija ↓

Izracunavanje n-tog stepena celog broja 23.03.2007. u 20:58 · pre 238 meseci #1
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:D
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.......;)
Re: Izracunavanje n-tog stepena celog broja 23.03.2007. u 22:38 · pre 238 meseci #2
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.
Re: Izracunavanje n-tog stepena celog broja 27.03.2007. u 12:20 · pre 238 meseci #4
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
Re: Izracunavanje n-tog stepena celog broja 28.03.2007. u 02:50 · pre 238 meseci #5
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.



Re: Izracunavanje n-tog stepena celog broja 28.03.2007. u 08:24 · pre 238 meseci #6
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)
Re: Izracunavanje n-tog stepena celog broja 28.03.2007. u 10:42 · pre 238 meseci #7
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
Re: Izracunavanje n-tog stepena celog broja 28.03.2007. u 14:45 · pre 238 meseci #8
@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!
Re: Izracunavanje n-tog stepena celog broja 28.03.2007. u 14:50 · pre 238 meseci #9
@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!

Re: Izracunavanje n-tog stepena celog broja 28.03.2007. u 16:05 · pre 238 meseci #10
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));
Potpis
Play Store
Re: Izracunavanje n-tog stepena celog broja 28.03.2007. u 16:36 · pre 238 meseci #11
> 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...;
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Izracunavanje n-tog stepena celog broja 28.03.2007. u 18:02 · pre 238 meseci #13
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?
Potpis
Play Store
Re: Izracunavanje n-tog stepena celog broja 28.03.2007. u 20:16 · pre 238 meseci #14
@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:).

..
Re: Izracunavanje n-tog stepena celog broja 29.03.2007. u 01:47 · pre 238 meseci #15
> 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š.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme