Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje
Uputstvo Članstvo Kalendar Današnje poruke Pretraži

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 5.12.2005, 22:19   #1
doom_lord
Član
 
Član od: 2.11.2005.
Lokacija: Beograd
Poruke: 71
Zahvalnice: 7
Zahvaljeno 2 puta na jednoj poruci
Određen forumom Problem sa kodom u paskalu

Imam za domaci da napisem program koji ce iz ucitanog niza navi najveci parni i najmanji neparni broj. Ja sam napisao takav program ali on pravi probleme sa negativnim neparnim braojevima. Evo programa:

Kod:
program dz2;
uses crt;
Var
   Pmax,NPmin,i,N : integer;
   A:array [1..300] of integer;
begin
Repeat

Repeat
write ('Unesi broj elemenata niza: ');
read (N);
until (n>0) ;

Pmax:=1;
NPmin:=0;
For i:=1 to n do
Begin
   write ('Unesi ',i,'-ti element niza: ');
   readln(A[i]);
  If ((abs(A[i]) mod 2=0) and ((A[i] > Pmax) or (Pmax=1))) then Pmax:=A[i];
 If ((abs(A[i]) mod 2=1) and ((A[i] < NPmin) or (NPmin=0))) then NPmin:=A[i];
end;
If (Pmax=1) then
            writeln ('Ne postoji ni jedan paran broj')
            else
            WriteLn ('Maximalan paran broj je ',Pmax);
If (NPmin=0) then
            writeln ('Ne postoji ni jedan neparan broj')
            else
            WriteLn ('Minimalan neparan broj je ',NPmin);
Until  (n<=1);
Readln;
end.

Poslednja ispravka: Marko_L (10.12.2005 u 3:27) Razlog: dodati code tagovi
doom_lord je offline   Odgovor sa citatom ove poruke
Stara 9.12.2005, 22:13   #2
Reloader
Starosedelac
 
Član od: 25.10.2005.
Lokacija: Kragujevac - The Soul of Serbia
Poruke: 1.318
Zahvalnice: 98
Zahvaljeno 28 puta na 20 poruka
Određen forumom Re: Problem sa kodom u paskalu

Mislim da si previse zakomplikovao, moze to i lakse
Reloader je offline   Odgovor sa citatom ove poruke
Stara 9.12.2005, 23:52   #3
Anak1n
Član
 
Član od: 2.11.2005.
Lokacija: Cenzurisano
Poruke: 283
Zahvalnice: 0
Zahvaljeno 0 puta na 0 poruka
Slanje poruke preko ICQ-a korisniku Anak1n Slanje poruke preko MSN-a korisniku Anak1n Slanje poruke preko Yahooa korisniku Anak1n
Određen forumom Re: Problem sa kodom u paskalu

Citat:
doom_lord kaže:
until (n>0) ;
Mozda lupam al ako je n > 0 a kolko znam negativni su manji od nule
Nemam neko iskustvo sa programskim jezicima...
Anak1n je offline   Odgovor sa citatom ove poruke
Stara 10.12.2005, 0:29   #4
Reloader
Starosedelac
 
Član od: 25.10.2005.
Lokacija: Kragujevac - The Soul of Serbia
Poruke: 1.318
Zahvalnice: 98
Zahvaljeno 28 puta na 20 poruka
Određen forumom Re: Problem sa kodom u paskalu

Vidi se

n je promenljiva...
Reloader je offline   Odgovor sa citatom ove poruke
Stara 10.12.2005, 1:02   #5
3dM@niak
Ponosni Eipixovac :)
 
Član od: 2.12.2005.
Lokacija: Ludnica... Opet :( :( :(
Poruke: 1.212
Zahvalnice: 72
Zahvaljeno 80 puta na 52 poruka
Slanje poruke preko Yahooa korisniku 3dM@niak
Određen forumom Re: Problem sa kodom u paskalu

Evo ti kod:

Kod:
var u,n,i,max,min,i1,i2:integer;
a:array [1..300] of integer;

begin
max:=0;
min:=0;
i1:=0;
i2:=0;

writeln('Unesite broj elemenata niza');
readln(n);

for i:=1 to n do
begin
writeln('Unesi broj');
readln(u);
a[i]:=u;

if ((u mod 2 = 0) and ((u>max) or (i1=0))) then
  begin
  max:=u;
  i1:=1;
  end;

if((abs(u mod 2) =1) and ((u<min) or (i2=0))) then 
  begin
  min:=u;
  i2:=1
  end;

end;

if i1=1 then
writeln ('maximalni parni broj je',max)
else
writeln ('Nisu unoseni parni brojevi');

if i2=1 then
writeln ('minimalni neparni broj je',min)
else
writeln ('Nisu unoseni neparni brojevi');


end.

niz je tu chisto reda-radi, da se sacuvaju podaci... inache ti ni na treba...

Poslednja ispravka: Marko_L (10.12.2005 u 3:27) Razlog: dodati code tagovi
3dM@niak je offline   Odgovor sa citatom ove poruke
Stara 10.12.2005, 16:12   #6
Nemesis
Veteran
 
Član od: 29.11.2005.
Lokacija: Novi Beograd
Poruke: 1.181
Zahvalnice: 24
Zahvaljeno 44 puta na 31 poruka
Slanje poruke preko MSN-a korisniku Nemesis
Određen forumom Re: Problem sa kodom u paskalu

Jedan savet za sve.
Nemojte odmah dodeljivati vrednost za min i max pre ulaska u petlju.

Pretpostavimo da je dat niz A tipa integer, promenljiva MAX koja treba da vrati najvecu vrednost niza, kao i da je uneta promenlijva N koja oznacava dimenziju niza...

Do greske ce doci ako na primer napisete:
Kod:
max := 0;

for i := 1 to n do
  if a[i] > max then max := a[i];
jer ako su u nizu svi elementi negativni program ce za MAX zadrzati 0.


Mnogo je bolje PRVI element niza proglasiti za najmanji / najveci, a potom sa njim uporedjivati. Npr:
Kod:
max := a[1];

for i := 2 to n do
  if a[i] > max then max := a[i];

Poslednja ispravka: Nemesis (10.12.2005 u 16:19)
Nemesis je offline   Odgovor sa citatom ove poruke
Stara 10.12.2005, 16:13   #7
doom_lord
Član
 
Član od: 2.11.2005.
Lokacija: Beograd
Poruke: 71
Zahvalnice: 7
Zahvaljeno 2 puta na jednoj poruci
Određen forumom Re: Problem sa kodom u paskalu

Nasao sam gresku u mom kodu, to jest nije bila greska u kodu vec u tome sto nisam kompajlirao program pa je pokretao pogresnu verziju. U svakom slucaju hvala na pomoci.

PS: until (n<0) se odnosi na duzinu niza a ne na clanove niza.
doom_lord je offline   Odgovor sa citatom ove poruke
Stara 10.12.2005, 17:15   #8
3dM@niak
Ponosni Eipixovac :)
 
Član od: 2.12.2005.
Lokacija: Ludnica... Opet :( :( :(
Poruke: 1.212
Zahvalnice: 72
Zahvaljeno 80 puta na 52 poruka
Slanje poruke preko Yahooa korisniku 3dM@niak
Određen forumom Re: Problem sa kodom u paskalu

@nemesis: Da...ali ovde je problem sto imamo dva dela : pozitivne i negativne brojeve, pa bi se moglo desiti da se ne unese recimo neparan broj, i on za najmanji neparan ispishe prvi uneti broj... zato sam stavio i1 i i2 kao indikatore da li su uopste uneti parni i neparni brojevi.
eto, samo toliko....
3dM@niak je offline   Odgovor sa citatom ove poruke
Stara 10.12.2005, 18:03   #9
doom_lord
Član
 
Član od: 2.11.2005.
Lokacija: Beograd
Poruke: 71
Zahvalnice: 7
Zahvaljeno 2 puta na jednoj poruci
Određen forumom Re: Problem sa kodom u paskalu

@nemesis: kod mene je to reseno postavljanjem Pmax (NPmin) na neparan (paran) broj, i ako taj broj takav i ostane znaci da nema parnih (neparnih).
doom_lord je offline   Odgovor sa citatom ove poruke
Stara 11.12.2005, 3:13   #10
Nemesis
Veteran
 
Član od: 29.11.2005.
Lokacija: Novi Beograd
Poruke: 1.181
Zahvalnice: 24
Zahvaljeno 44 puta na 31 poruka
Slanje poruke preko MSN-a korisniku Nemesis
Određen forumom Re: Problem sa kodom u paskalu

3dM@niak: U pravi si. Nisam se lepo izrazio. Hteo sam samo da napomenem generalni slucaj trazenja min/max u nizu, pa se deo koda odnosi na opsti problem, s obzirom da su takvi zadaci cesti.

Sto se konkretnog problema tvoj pristup je OK, jedino sto bih umesto i1 i i2 kao integer koristio boolean vrednosti. No, to je samo stvar ukusa.

Poslednja ispravka: Nemesis (11.12.2005 u 3:19)
Nemesis je offline   Odgovor sa citatom ove poruke
Stara 11.12.2005, 3:17   #11
3dM@niak
Ponosni Eipixovac :)
 
Član od: 2.12.2005.
Lokacija: Ludnica... Opet :( :( :(
Poruke: 1.212
Zahvalnice: 72
Zahvaljeno 80 puta na 52 poruka
Slanje poruke preko Yahooa korisniku 3dM@niak
Određen forumom Re: Problem sa kodom u paskalu

ok
3dM@niak je offline   Odgovor sa citatom ove poruke
Stara 16.1.2006, 18:44   #12
kinteC
paparazzo
 
Član od: 24.12.2005.
Lokacija: Zip fajl!
Poruke: 1.165
Zahvalnice: 121
Zahvaljeno 601 puta na 179 poruka
Wink Re: Problem sa kodom u paskalu

Citat:
Nemesis kaže:
Jedan savet za sve.
Nemojte odmah dodeljivati vrednost za min i max pre ulaska u petlju.

Pretpostavimo da je dat niz A tipa integer, promenljiva MAX koja treba da vrati najvecu vrednost niza, kao i da je uneta promenlijva N koja oznacava dimenziju niza...

Do greske ce doci ako na primer napisete:
Kod:
max := 0;

for i := 1 to n do
  if a[i] > max then max := a[i];
jer ako su u nizu svi elementi negativni program ce za MAX zadrzati 0.


Mnogo je bolje PRVI element niza proglasiti za najmanji / najveci, a potom sa njim uporedjivati. Npr:
Kod:
max := a[1];

for i := 2 to n do
  if a[i] > max then max := a[i];
reklo bi se da je sve jedno, sta mislis?
ps: ovo je napisao moj ortak, valjda je u pravu

Poslednja ispravka: kinteC (16.1.2006 u 20:13)
kinteC je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi


Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
Age Of Empires II vladale Strateške igre 60 2.2.2012 21:27
Problem sa CSI: Miami + Splinter Cell 3 dzambo O igrama uopšte 14 3.5.2008 18:51
Quick TV problem... The Dark Gamer Video/TV softver 12 24.12.2005 17:02
U.S. Robotics problem Nikola Milosavljevic Kvarovi 7 12.12.2005 0:36
Problem sa Bojnim poljem 1942 zukov Mrežne igre 8 14.11.2005 13:33


Sva vremena su po Griniču +2 h. Sada je 14:01.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2025, vBulletin Solutions, Inc.
Hosted by Beograd.com