Forum » Programiranje » [Turbo pascal] Max Min tezave
[Turbo pascal] Max Min tezave
roba87 ::
Spravil sem se sprogramirat program ki prebere naključnih 100 števil in izpiše maximalno in minimalno cifro.
Primer:
program vaja;
uses crt;
var i,max,min,a:integer;
begin
randomize;
min:=100;
for i:=1 to 100 do
begin
a:=random(100)+1;
if a > max then
max:=a;
if a < min then
min:=a;
end;
writeln;
writeln('min je ' , min);
writeln('max je ' , max);
readln;
end.
Torej za maximalno število mi izpiše 100 za minimalno pa 1. Kje je problem da mi ne izpiše pravilno?
Primer:
program vaja;
uses crt;
var i,max,min,a:integer;
begin
randomize;
min:=100;
for i:=1 to 100 do
begin
a:=random(100)+1;
if a > max then
max:=a;
if a < min then
min:=a;
end;
writeln;
writeln('min je ' , min);
writeln('max je ' , max);
readln;
end.
Torej za maximalno število mi izpiše 100 za minimalno pa 1. Kje je problem da mi ne izpiše pravilno?
- spremenilo: snow ()
matejv ::
na hitro pogledano je vse pravilno. ti 100× izpišeš random cifro med 1 in 100. Zgleda da se vedno pojaviti tudi ti dve števili. Poskusiti spremeniti random(100) v random(1000) in poglej kaj se bo zgodilo. naj pa povem, da se ne spoznam na pascal.
Gundolf ::
Jah max nimaš nastavljen na začetku.
Obstaja tudi zelo dober način initializacije min in max spremenljivk, kadar veš da iščeš po seznamu z vsaj enim elementom. Obe vrednosti namreč nastaviš kar na vrednost prvega elementa in greš potem v zanki le še od drugega elementa dalje - huda optimizacija ;) Če pa damo šalo na stran - berljivost algoritma se poveča.
Obstaja tudi zelo dober način initializacije min in max spremenljivk, kadar veš da iščeš po seznamu z vsaj enim elementom. Obe vrednosti namreč nastaviš kar na vrednost prvega elementa in greš potem v zanki le še od drugega elementa dalje - huda optimizacija ;) Če pa damo šalo na stran - berljivost algoritma se poveča.
roba87 ::
Saj dela zaj. Sem nastavil da izbira cifre med 1 in 32000 tako da je zaj vredu. Hvala.
poprava:
max:=0;
min:=32000;
a:=random(32000)+1;
ostalo sem pustil nespremenjeno.
edit: kolega mi ga je popravil takole :
program vaja;
uses crt;
var i,max,min,a:integer;
begin
randomize;
i:=1;
min:=100;
for i:=1 to 100 do
begin
a:=random(50)+1;
if (i=25) or (i=25) or (i=25) or (i=25) then // zakaj je ta if stavek nimam pojma.
writeln(a,'')
else
write(a,'');
if a > max then
max:=a;
if a < min then
min:=a;
end;
writeln;
writeln('min je ' , min);
writeln('max je ' , max);
readln;
end.
poprava:
max:=0;
min:=32000;
a:=random(32000)+1;
ostalo sem pustil nespremenjeno.
edit: kolega mi ga je popravil takole :
program vaja;
uses crt;
var i,max,min,a:integer;
begin
randomize;
i:=1;
min:=100;
for i:=1 to 100 do
begin
a:=random(50)+1;
if (i=25) or (i=25) or (i=25) or (i=25) then // zakaj je ta if stavek nimam pojma.
writeln(a,'')
else
write(a,'');
if a > max then
max:=a;
if a < min then
min:=a;
end;
writeln;
writeln('min je ' , min);
writeln('max je ' , max);
readln;
end.
Zgodovina sprememb…
- spremenil: roba87 ()
mjakop ::
Vrži tole ven:
if (i=25) or (i=25) or (i=25) or (i=25) then // zakaj je ta if stavek nimam pojma.
writeln(a,'')
else
write(a,'');
Po temle pa tudi ni potrebe, saj se i določi v zanki: i:=1;
luli: Fora randomize je ravno v tem, da neko vrednost nastavi Randseed na podlagi katerega se generirajo naključna števila(da mu vrednost milisekund..vsaj v delphiju je tko). Če tega ne uporabiš ti števila meče ven vedno v istem zaporedju(mislim po novem zagonu programa).
if (i=25) or (i=25) or (i=25) or (i=25) then // zakaj je ta if stavek nimam pojma.
writeln(a,'')
else
write(a,'');
Po temle pa tudi ni potrebe, saj se i določi v zanki: i:=1;
luli: Fora randomize je ravno v tem, da neko vrednost nastavi Randseed na podlagi katerega se generirajo naključna števila(da mu vrednost milisekund..vsaj v delphiju je tko). Če tega ne uporabiš ti števila meče ven vedno v istem zaporedju(mislim po novem zagonu programa).
luli ::
Poznam : Vendar se mi je včasih dogajalo, da če sem imel randomize in sem izbral polje naključnih števil, je to polje bilo vedno enako. Zakaj? Po resnici ne vem. Nekaj sem v zvezi s tem čital po takratnih swagih in prišel do spoznanja, da nisem edini s tem problemom. Kasneje sem uporabljal za random druge unite!
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Java[naloga]Oddelek: Šola | 880 (687) | Bizkit45 |
» | Algoritmi - diagrami potekaOddelek: Šola | 2189 (1890) | lebdim |
» | Šah [Pacsal]Oddelek: Programiranje | 2222 (1825) | NeOman |
» | [Turbo Pascal] Pomoč...Oddelek: Programiranje | 1468 (1370) | Grey |
» | Pomoč pri Turbo Pascalu. Nujno!Oddelek: Programiranje | 1161 (894) | Gundolf |