Autor Zpráva
Tin
Profil
Jak by se tohle dalo zjednodušit, aby to neházelo hlášku "Out of memory"?

function nahodnorm1(){
ran1 = Math.ceil ( Math.random () * 1000 );
if ( ran1>=document.getElementById("od").value && ran1<=document.getElementById("do").value ) {
document.getElementById("obrazky").innerHTML = "<a href=\"kytka_velka_" + ran1 + ".JPG\" target=\"_blank\"><img src=\"kytka_mala_" + ran1 + ".JPG\"></a><br><br><br>";
nahodnorm2()
}
else {
nahodnorm1();
}
}

Pozn.:
Určím náhodný číslo "ran1" od 1 do 1000
Zkoušim jestli "od" > ran1 > "do"
~NE: znovu
~ANO: Zobrazím obrázek s příslušnym číslem obalenej odkazem
Zavolám další takovouhle funkci (je jich 10)
centi
Profil
Mám taký dojem, že v javascripte musí byť každá časť podmienky v zátvorkách. Čiže ako prvé by som skúsil upravit IF na:

if ((ran1>=document.getElementById("od").value) && (ran1<=document.getElementById("do").value))
peta
Profil *
function objGet(x) {return document.getElementById(x)}
function getv(x) {return objGet(x).value}

function nahodnorm1()
{
var a=Math.ceil(Math.random()*1000);
if ( a>=getv("od") && a<=getv("do") ) {
objGet("obrazky").innerHTML = '<a href="kytka_velka_' + a + '.JPG" target="_blank"><img src="kytka_mala_' + a + '.JPG"></a>';
nahodnorm2();
}
else nahodnorm1();
}

a misto BR pouzit margin-bottom:4.5em nebo neco podobnyho.

centi Nemusi.
funguje zapis aa||bb aa&&bb (aa<bb && bb<cc)
hlavne u if musi byt zavorka
if (aa<bb) dd="xxx";else dd="yyy";
dd=aa<bb?"xxx":"yyy";
peta
Profil *
Tin to out of memory to hlasi, protoze to mas zacykleny v sobe asi 1000x mozna donekonecna. Kdybys dal odkaz na stranku...

function nahodnorm1()
{
var a=Math.ceil(Math.random()*1000);
if () nahodnorm2();
else nahodnorm1();
}
Tin
Profil
no právě - ten kód je šílenej, opakuje se to snad 10000x nebo co já vim...
celá stránka je tady http://ucdam-hb.wz.cz/data/index.html
ale v tom se asi nikdo nevyznáte (věcí tohodle typu tam je víc (4 základní funkce, někt. se ještě větví a pak teprve takovejhle šílenej kód.... a bez poznámek!).
Ale kromě toho out of memory to všechno funguje tak jak chci - teda občas...
Tin
Profil
Ještě zajímavá věc: V IE to hází Out of memory, ale O. i Moz. jsou OK
Asi se vykašlu na IE. Stejně ho už požívám tak na 70%

Lidi už to neřešte.
peta
Profil *
Tin
pockej, co to ma jako delat, cely?

Pozn.:
Určím náhodný číslo "ran1" od 1 do 1000
Zkoušim jestli "od" > ran1 > "do"
~NE: znovu
~ANO: Zobrazím obrázek s příslušnym číslem obalenej odkazem
Zavolám další takovouhle funkci (je jich 10)

- volas 10x tu samou funkci, ne?
- a davas nahodne cislo mezi necim, co sazet na jistotu?
Co tohle?

function objGet(x) {return document.getElementById(x)}
function getv(x) {return objGet(x).value}

function nahoda()
{
var a,b;
b=getv("do")
a=getv("do")-b;
a=Math.ceil(Math.random()*a);
a+=b;
objGet("obrazky").innerHTML = '<a href="kytka_velka_' + a + '.JPG" target="_blank"><img src="kytka_mala_' + a + '.JPG"></a>';
}

function startobrazky()
{var i;for (i=0;i<10;i++) nahoda()}

- nebo to ma jako 10x zkusit najit nejaky obrazek? Pak ti staci jen 1x spustit nahoda() , protoze to jiste jisto najde cislo v rozsahu.
peta
Profil *
b=getv("od") ... sory :)
Tin
Profil
UŽ TO NEŘEŠ, V OPEŘE TO FUNGUJE
habendorf
Profil
UŽ TO NEŘEŠ, V OPEŘE TO FUNGUJE

Když už něco považuješ za vyřešené, tak to zamkni.
Tin
Profil
Je tam funkce pro zobrazení všech kytek v intervalu (serie), to samý pozpátku(negser), konkrétní čísla (kytky) a náhodný výběr v intervalu od-do (nahod, větví se na náhodná normální a reverzní)
peta
Profil *
Tin jenze opera je 2% prohlizec :) mozilla ma kolem 20%, ie kolem tech 70%. Kdyz ti to funguje jen v opere, tak je to podle mne nepouzitelny script.
Tin
Profil
ad a) Když si ho dělám pro OSOBNÍ potřebu, tak jde o to, aby MĚ běžel
ad b) IE to u mně (jinde třeba jo) nezvládá výpočtově, skript je ok (jinak by přece neběžel vůbec a nikde)
peta
Profil *
Tin Jj, dobry. Script podle mne neni oki, ale nevim, co to ma presne delat. Jestli jen nahodne vybrat 1 z 1000 obrazku v rozsahu, ktery zadam do poli od-od, pak je lepsi to moje reseni, kde se nema, co zacyklit do 10.000 cyklu.
Jestli sem to spravne pochopil, tak ty tam das treba od 200 do 600 a pak vyberes nahodne cislo do 1000. Coz je teda jaksi divny. Odectu 600-200=400, udelam random 400, to mi vyhodi treba 158 ( :))) ) a pak dam 200+158 = 358 je cislo obrazku. Zadne rozhodovani, zda je cislo v nejakem rozsahu od do.
Fred
Profil
peta Že na to máš nervy.

http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=8&topic=55 41
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=8&topic=51 40
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=3&topic=51 57
Toto téma je uzamčeno. Odpověď nelze zaslat.

0