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

problem sa zadatkom u Pascal-u

[es] :: Pascal / Delphi / Kylix :: problem sa zadatkom u Pascal-u

[ Pregleda: 1980 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dusansilni95
Banja Luka, RS, BiH

Član broj: 296104
Poruke: 15
89.111.229.*



+11 Profil

icon problem sa zadatkom u Pascal-u09.02.2012. u 17:31 - pre 148 meseci
ZADATAK: Koristeci funkciju za izdvajanje cijelog dijela realnog broja, napisati program koji ucitava n razlicitih realnih brojeva i nalazi sumu cijelih dijelova tih realnih brojeva.

Ovo je moje vidjenje tog zadatka ali nesto ne valja:

Code:
program blabla;
 uses wincrt;
  var
   a,x:real;
   i,s,n:integer;
  function izdvajanje(a:real):integer;
   var
    b:integer;
   begin
    b:=trunc(a);
   end;
  begin
   i:=0;
   writeln('Koliko puta ce mo ucitati realni broj:');
   readln(n);
    repeat
     writeln('Unesi realne brojeve:');
     readln(x);
     i:=i+1;
    until i=n;
   s:=0;
    repeat
     s:=s+izdvajanje(x);
     i:=i+1;
    until i=n;
   writeln('Suma n razlicitih realnih brojeva iznosi: ', s);
  end.
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: problem sa zadatkom u Pascal-u09.02.2012. u 17:50 - pre 148 meseci
Svaka funkcija treba da vrati neki rezultat, a taj rezultat dodeljujes tako sto napises: ime_funkcije := neka_vrednost. Ti u izdvajanje() funkciji dodeljujes promenljjivoj b vrednost, i posto nista nije dodeljeno rezultatu funkcije, ona ne vraca nista. Dake, umesto b := trunc(a) stavi izdvajanje := trunc(a) i trebalo bi da radi.

Takodje, preporucujem ti da koristis for..do petlju umesto repeat..until, za ucitavanje brojeva i njihovo sumiranje, posto je for..do bas namenjena za takve stvari.
Learn Pascal Programming Tutorial Lesson 6 - Loops

I "ce mo" se pise spojeno :)
 
Odgovor na temu

dusansilni95
Banja Luka, RS, BiH

Član broj: 296104
Poruke: 15
89.111.229.*



+11 Profil

icon Re: problem sa zadatkom u Pascal-u09.02.2012. u 18:03 - pre 148 meseci
-ne razumijem to za "result" sto si objasnjavo

-repeat petlju koristim jer moram. Mozemo birati izmedju while ili repeat, kaze profesor da se naviknemo na njih
-a to "ce mo", ma svejedno na brzinu sam napiso, pa nisam ni gledo


usput ako nesto pomaze ovaj zadatak mogu pokrenuti i sve bude u redu, ali na kraju uvijek izbaci rezultat nula

i u ovoj liniji:
writeln('Suma n razlicitih realnih brojeva iznosi: ', s);
ako stavim ovako: s:5:2 izbacuje mi gresku kod 5, to isto ne razumijem zasto
 
Odgovor na temu

Marko Simulak
123456adada

Član broj: 272268
Poruke: 104



+1 Profil

icon Re: problem sa zadatkom u Pascal-u09.02.2012. u 18:27 - pre 148 meseci
Pa ako koristis funkciju, i vec uvedes neku lokalnu promenljivu, u ovom slucaju b, i b dodelis neku vrednost, moras navesti u funckiji da kao rezultat izbacuje to b...npr: b:=trunc(a); izdvajanje:=b;...

[Ovu poruku je menjao Marko Simulak dana 09.02.2012. u 19:53 GMT+1]
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: problem sa zadatkom u Pascal-u09.02.2012. u 18:41 - pre 148 meseci
Izbaci rezultat nula jer funkcija izdvajanje() ne vraca nikakav rezultat. Unutar svake funkcije u pascalu negde moras da joj "dodelis" rezultat koji ce da vrati, a to radis tako sto napises:

Code:
ime_funkcije := rezultat


s:5:2 ne radi jer se ta anotacija koristi kod brojevnih tipova sa decimalnim ostatkom, dok je tebi s integer tipa.
 
Odgovor na temu

dusansilni95
Banja Luka, RS, BiH

Član broj: 296104
Poruke: 15
89.111.229.*



+11 Profil

icon Re: problem sa zadatkom u Pascal-u09.02.2012. u 18:42 - pre 148 meseci
evo dodo sam to ali opet ne izbacuje rezultat tj. uvijek rezultat bude nula


Code:

program blabla;
 uses wincrt;
  var
   a,x:real;
   i,s,n:integer;
  function izdvajanje(a:real):integer;
   var
    b:integer;
   begin
    b:=trunc(a);
    izdvajanje:=b;       <-----mislis na ovo
   end;
  begin
   i:=0;
   writeln('Koliko puta ce mo ucitati realni broj:');
   readln(n);
    repeat
     writeln('Unesi realne brojeve:');
     readln(x);
     i:=i+1;
    until i=n;
   s:=0;
    repeat
     s:=s+izdvajanje(x);
     i:=i+1;
    until i=n;
   writeln('Suma n razlicitih realnih brojeva iznosi: ', s);
  end.
 
Odgovor na temu

Marko Simulak
123456adada

Član broj: 272268
Poruke: 104



+1 Profil

icon Re: problem sa zadatkom u Pascal-u09.02.2012. u 18:49 - pre 148 meseci
Ubaci pod jednu petlju sve
 
Odgovor na temu

dusansilni95
Banja Luka, RS, BiH

Član broj: 296104
Poruke: 15
89.111.229.*



+11 Profil

icon Re: problem sa zadatkom u Pascal-u09.02.2012. u 20:02 - pre 148 meseci
evo sad kad sam sve stavio pod jednu petlju radi, ne znam zasto al bitno da radi
cak nisam moro ni da stavim ono s:=0, ne znam ni to zasto
mislim da je to to

Code:

program blabla;
 uses wincrt;
  var
   a,x:real;
   i,s,n:integer;
  function izdvajanje(a:real):integer;
   var
    b:integer;
   begin
    b:=trunc(a);
    izdvajanje:=b;
   end;
  begin
   i:=0;
   writeln('Unesi koliko cemo puta ucitati realne brojeve:');
   readln(n);
    repeat
     writeln('Unesi realne brojeve');
     readln(x);    
     s:=s + izdvajanje(x);
     i:=i+1;
    until i=n;
   writeln('Suma n razlicitih realnih brojeva iznosi: ', s);
  end.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: problem sa zadatkom u Pascal-u

[ Pregleda: 1980 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

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