Problemy s kodom javascriptu – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Problemy s kodom javascriptu – JavaScript, AJAX, jQuery – Fórum – Programujte.comProblemy s kodom javascriptu – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
tuden
~ Anonymní uživatel
49 příspěvků
20. 1. 2013   #1
-
0
-

rad by som sa spýtal prečo mi nefunguje príklad hladania prvocisel v javasripte. Ak viete pomoct tak vysvetlite v com je chyba a ako ju opravit:<html>

<head>
<script>
function cislo()
{
var i = prompt("zadaj do kolko cisel chces hladat","");
}
</script>
<script>
function findPrvocislo ()
{
var p = 0;
var k = 3;
var c=2;
for (i;
         while(c<k){if (k%c=0){p++}};
          if (p=0){getElementById("copy").innerHTLML=k} k++ )

}
</script>
</head>
<body>
<div id="copy" >toto sa zmení na prvocísla</div>
<button onclick="findPrvocislo()">stlac</button>
<button onclick="cislo()">totoprve</button>
</body>

</html>  

Nahlásit jako SPAM
IP: 176.101.176.–
Reklama
Reklama
JoDiK
~ Anonymní uživatel
981 příspěvků
20. 1. 2013   #2
-
0
-

#1 tuden
Tak především tam máš syntaktické chyby - tak je nejdřív odstraň a pak můžeme zkoumat co to dělá nebo nedělá.

Nahlásit jako SPAM
IP: 88.103.233.–
JoDiK
~ Anonymní uživatel
981 příspěvků
20. 1. 2013   #3
-
0
-

#2 JoDiK
Zdá se, že jsi úplně mimo (to co máš napsané, mi připadá jako nesmysl), takže rada: začni od základu a každý krok odlaď, než budeš pokračovat.

1. na stisk tlačítka vypiš jen nějaký text

2. místo textu vypiš číslo z proměnné, do které si uložíš třeba hodnotu 28

3. místo čísla vypiš zbytek po dělení toho čísla třemi

4. Místo zbytku vypiš seznam čísel 1, 2, 3...až to číslo

5. Místo seznamu čísel vypiš zbytky po dělení těmi čísly

A dál už to určitě zvládneš sám...

Připomínám, že nemáš jít na další krok, pokud předchozí nemáš odladěný!

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
22. 1. 2013   #4
-
0
-

spravil som vsetky príklady co si sem dal a príklad vyzerá takto:

<html>
<head>

<script>
function findPrvocislo ()
{
var i = prompt("zadaj do kolko cisel chces hladat","");
var k = 2;
var c=3;
var p = 0;
for(var c=0;c<i;c++)
                            {for(k=2;k<c;k++){if(c%k=0){p++}}
                            if(p=0){document.getElementById("copy").innerHTML="c"}}
}
</script>
</head>
<body>
<div id="copy" >toto sa zmení na prvocísla</div>
<button onclick="findPrvocislo()">stlac</button>
</body>
</html>

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
22. 1. 2013   #5
-
0
-

#4 tuden

Ukaž výsledek bodu 2

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
22. 1. 2013   #6
-
0
-

<html>
<head>

<script>
function cislo ()
{
var c=3;
document.getElementById("copy").innerHTML=c;
}
</script>
</head>
<body>
<div id="copy" >toto sa zmení na 3</div>
<button onclick="cislo()">stlac</button>
</body>
</html>

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
22. 1. 2013   #7
-
0
-

#6 tuden


Tak proč tam teď máš: .innerHTML="c"

?

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
22. 1. 2013   #8
-
0
-

no lebo som tam potom chcel dávať rad tých prvočísel 

Nahlásit jako SPAM
IP: 176.101.176.–
tuden
~ Anonymní uživatel
49 příspěvků
22. 1. 2013   #9
-
0
-

<html>
<head>

<script>
function findPrvocislo ()
{
var i = prompt("zadaj do kolko cisel chces hladat","");
var k = 2;
var c=3;
var p = 0;
var d=2;
for(var c=0;c<i;c++)
                            {for(k=2;k<c;k++){if(c%k=0){p++}}
                            if(p=0){document.getElementById("copy").innerHTML=d=d+" "+"c"}}
}
</script>
</head>
<body>
<div id="copy" >toto sa zmení na prvocísla</div>
<button onclick="findPrvocislo()">stlac</button>
</body>
</html>

asi takto

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
22. 1. 2013   #10
-
0
-

#8 tuden
Takhle to ale nefunguje...

uvědom si že zápis a=c znamená: do proměnné a ulož obsah proměnné c (třeba číslo 28)

zatímco zápis a="c" znamená: do proměnné a ulož písmeno "c" - s proměnnou c to nemá vůbec nic společného

měl by ses více věnovat studiu základů než se vrhneš na složitější algoritmy

úkol:

do proměnné c ulož číslo načtené z klávesnice

do proměnné d ulož zbytek po dělení tohoto čísla dvěma

jestliže je výsledek roven nule, vypiš zadané číslo a text "je sudé", jinak za číslo vypiš text "je liché"

výsledek ukaž

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
22. 1. 2013   #11
-
0
-

<html>
<head>

<script>
function findSudeLiche ()
{
var c = prompt("zadaj cislo ","");
var d=c%2;
if(d>0){document.getElementById("copy").innerHTML=c+" je liché "+d}
           else{document.getElementById("copy").innerHTML=c+" je sudé "+d}

}
</script>
</head>
<body>
<div id="copy" ></div>
<button onclick="findSudeLiche()">stlac</button>
</body>
</html>

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
22. 1. 2013   #12
-
0
-

#11 tuden
Dodržuj přesně zadání!

jestliže je výsledek roven nule, vypiš zadané číslo a text "je sudé", jinak za číslo vypiš text "je liché"

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
22. 1. 2013   #13
-
0
-

<html>
<head>

<script>
function findSudeLiche ()
{
var c = prompt("zadaj cislo ","");
var d=c%2;
if(d==0){document.getElementById("copy").innerHTML=c+" je sudé "+d}
           else{document.getElementById("copy").innerHTML=c+" je liché "+d}

}
</script>
</head>
<body>
<div id="copy" ></div>
<button onclick="findSudeLiche()">stlac</button>
</body>
</html>

Nahlásit jako SPAM
IP: 176.101.176.–
tuden
~ Anonymní uživatel
49 příspěvků
22. 1. 2013   #14
-
0
-

takto?

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
22. 1. 2013   #15
-
0
-

#14 tuden
Ano.

A teď se podívej na porovnávání tady a v tom tvém příkladu.

Už vidíš tu chybu?

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
22. 1. 2013   #16
-
0
-

Ďakujem:D

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
22. 1. 2013   #17
-
0
-

#16 tuden
Mimochodem, nevím v čem to zkoumáš, ale můj prohlížeč mi píše chybu na řádku 13 znak 53 což je právě to jedno rovnáse v podmínce...

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
22. 1. 2013   #18
-
0
-

kde sa to dá pozrieť?

Nahlásit jako SPAM
IP: 176.101.176.–
tuden
~ Anonymní uživatel
49 příspěvků
22. 1. 2013   #19
-
0
-

<html>
<head>

<script>
function findPrvocislo()
{
var i = prompt("zadaj do kolko cisel chces hladat","");
var k = 2;
var c=3;
var p = 0;
var d=2;
for(var c=3;c<i;c++){for(var k=2;k<c;k++){if(c%k==0){p++}}
                        if(p==0){document.getElementById("copy").innerHTML=d=d+" "+c}
                             }
}
</script>
</head>
<body>
<div id="copy" >toto sa zmení na prvocísla</div>
<button onclick="findPrvocislo()">stlac</button>
</body>
</html>

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
22. 1. 2013   #20
-
0
-

   

Nahlásit jako SPAM
IP: 88.103.233.–
JoDiK
~ Anonymní uživatel
981 příspěvků
22. 1. 2013   #21
-
0
-

#19 tuden
No sláva, tak teď už zbývaji jen logické chyby

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
22. 1. 2013   #22
-
0
-

no to až na zajtra:D

Nahlásit jako SPAM
IP: 176.101.176.–
tuden
~ Anonymní uživatel
49 příspěvků
22. 1. 2013   #23
-
0
-

stále sú v tom problémy lebo to vypisuje len niektoré.

Nahlásit jako SPAM
IP: 176.101.176.–
tuden
~ Anonymní uživatel
49 příspěvků
23. 1. 2013   #24
-
0
-

prosím v čom je problém

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
23. 1. 2013   #25
-
0
-

#24 tuden
V logických chybách.

Ukaž řešení úkolu 5.

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
23. 1. 2013   #26
-
0
-

<html>
<head>

<script>
function zvysok()
{
var i = prompt("zadaj cislo","");
var k=2;
var d= ;
for(var k=1;k<i;k++){document.getElementById("copy").innerHTML=d= d + " " + i%k}
}
</script>
</head>
<body>
<div id="copy" >toto sa zmení na prvocísla</div>
<button onclick="zvysok()">stlac</button>
</body>
</html>

Nahlásit jako SPAM
IP: 176.101.176.–
tuden
~ Anonymní uživatel
49 příspěvků
23. 1. 2013   #27
-
0
-

pockaj to nejde

takto:

<html>
<head>

<script>
function zvysok()
{
var i = prompt("zadaj cislo","");
var k=2;
var d= null;
for(var k=1;k<i;k++){document.getElementById("copy").innerHTML=d= d + " " + i%k}
}
</script>
</head>
<body>
<div id="copy" >toto sa zmení na prvocísla</div>
<button onclick="zvysok()">stlac</button>
</body>
</html>

inak neviem ako sa dáva null

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
23. 1. 2013   #28
-
0
-

Co podle tebe má dělá tento kód (popiš slovně)?

document.getElementById("copy").innerHTML=d= d + " " + i%k
Nahlásit jako SPAM
IP: 88.103.233.–
JoDiK
~ Anonymní uživatel
981 příspěvků
23. 1. 2013   #29
-
0
-

#28 JoDiK
co je to null

myslíš prázdný řetězec? ten se píše takto:

d=""

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
23. 1. 2013   #30
-
0
-

robi to ten zvysok po delení s prázdnou medzerou a v d-cku aby to slo do radu

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
23. 1. 2013   #31
-
0
-

#30 tuden
Aha, já to chtěl přesněji, něco jako :

do divu s názvem copy ulož hodnotu proměnné d.

V Javě je možné snad úplně všechno, já odkojený Pascalem bych to četl jako: do divu s názvem copy ulož jestli je pravda, že hodnota v proměnné d je rovna součtu hodnoty v proměnné d, mezery a zbytku po dělení.

Důležité je, jestli tomu rozumíš a víš co to dělá.

Každpoádně - opravdu je nutné, abys to do toho divu dával tisíckrát? Nebo-li tolikrát, kolik zbytků po dělení budeš počítat?

Totéž v tom tvém algoritmu. Ten prosímtě přepiš tak, aby byl přehledný - tenhle úsporný zápis je matoucí.

Až to budeš mít upravené (na každém řádku jen jeden příkaz a řádky odsazené podle úrovně vnoření do cyklů), okomentuj každý řádek - co podle tebe dělá.

Pak možná tu logickou chybu objevíš sám (to bude určitě lepší než kdybych ti napsal, kde to je...)

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
23. 1. 2013   #32
-
0
-

   

<html>
<head>

<script>
function findPrvocislo()
{
var i = prompt("zadaj do kolko cisel chces hladat","");
var k = 2;
var c=3;
var p = 0;
var d=2;
for( var c=3;c<i;c++)
                              {for(var k=2;k<c;k++)
                                                             {if(c%k==0) 
                                                                                {p++}}/*tu končí prvý for a vnorený for a aj if.Opakuj príkaz( opakuj príkaz( podmienka ak je zvyšok po     

                                                                                       delení k 0 tak zvýš p o 1 ) dokedy je c vačšie ako k a zisti či je p nula ak hej tak ho vypíš ) dokedy je  

                                                                                       i vačšie ako c  */
                                                               if(p==0) 
                                                                           {document.getElementById("copy").innerHTML=d=d+" "+c}
/*tu končí prvý for a vnorený for a aj if.Opakuj príkaz( opakuj príkaz( podmienka ak je zvyšok po delení k 0 tak zvýš p o 1 ) dokedy je c vačšie ako k a zisti či je p nula ak hej tak ho vypíš ) dokedy je i vačšie ako c  */
                                                                                                                              }
}
</script>
</head>
<body>
<div id="copy" >toto sa zmení na prvocísla</div>
<button onclick="findPrvocislo()">stlac</button>
</body>
</html>
Nahlásit jako SPAM
IP: 176.101.176.–
tuden
~ Anonymní uživatel
49 příspěvků
23. 1. 2013   #33
-
0
-

   

<html>
<head>

<script>
function findPrvocislo()
{
var i = prompt("zadaj do kolko cisel chces hladat","");
var k = 2;
var c=3;
var p = 0;
var d=2;
for( var c=3;c<i;c++)
                              {for(var k=2;k<c;k++)
                                                             {if(c%k==0) 
                                                                                {p++}}
                                                               if(p==0) 
                                                                           {document.getElementById("copy").innerHTML=d=d+" "+c}}
/*opakuj(opakuj (ak je zvyšok po delení 0 tak p zvačši o 1) 
dokedy c je vačšie ako k.  Ak je p nula tak vypíš ) 
dokedy i je vačšie ako c  */
                                                                                                                             
}
</script>
</head>
<body>
<div id="copy" >toto sa zmení na prvocísla</div>
<button onclick="findPrvocislo()">stlac</button>
</body>
</html>
Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
23. 1. 2013   #34
-
0
-

#32 tude

Nevadí ti, žes tam dvakrát zkopíroval to samé?

Zkus to znova a pro každý řádek zvlášť - dle vzoru:

<head>

<script>
function findPrvocislo()
{
var i = prompt("zadaj do kolko cisel chces hladat","");
var k = 2; /* tato proměnná bude použita na ... doplň */
var c=3;
var p = 0;
var d=2;
for ( var c=3;c<i;c++)  /*Tento cyklus projde všechna čísla od 3 do zadané hodnoty i*/
  {for(var k=2;k<c;k++) /* Tento cyklus... doplň a takhle pokačuj dál */
     {if(c%k==0) 
          {p++}
	  }/*tu NEkončí prvý for !!! tu končí IF !!! */
     if(p==0) 
         {document.getElementById("copy").innerHTML=d=d+" "+c}
                                                                                                    }
}/*teprve tady! končí prvý for !!! procházející čísla od 3 do zadané hodnoty i */
</script>
</head>
<body>
<div id="copy" >toto sa zmení na prvocísla</div>
<button onclick="findPrvocislo()">stlac</button>
</body>
</html>
Nahlásit jako SPAM
IP: 88.103.233.–
JoDiK
~ Anonymní uživatel
981 příspěvků
23. 1. 2013   #35
-
0
-

#34 JoDiK
Promiň to s tím skončením IF jsem přehlíd, opravdu tam končí FOR ale ten druhý!

Každopádně to uprav...

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
23. 1. 2013   #36
-
0
-

   

<html>
<head>

<script>
function findPrvocislo()
{
var i = prompt("zadaj do kolko cisel chces hladat","");
var k = 2;/*deklarujem k pre vnorené for .(podla mna to dvakrat nemusim písať tak by som to mohol vymazať)*/
var c=3;
var p = 0;
var d=2;
for( var c=3;c<i;c++)/*tu sa opakuje i-4 krát a pri c=i sa zastavuje*/
                              {for(var k=2;k<c;k++)/*tu sa opakuje príkaz a pri k=c konči*/
                                                             {if(c%k==0) 
                                                                                {p++}}/*v príkaze vnoreného for je podmienka: ak je zvyšok po delení 0 tak p zvýš o jedna. Končí tu druhý for*/
                                                               if(p==0) 
                                                                           {document.getElementById("copy").innerHTML=d=d+" "+c}}/*podmienka ak je p nula tak vypíše dané číslo. Končí tu prvý for*/

                                                                                                                             
}
</script>
</head>
<body>
<div id="copy" >toto sa zmení na prvocísla</div>
<button onclick="findPrvocislo()">stlac</button>
</body>
</html>
Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
23. 1. 2013   #37
-
0
-

#36 tuden
No nevím jak už ti to mám říct...

Odsazuje se jen o dva až pět znaků, vždyť takhle musíš rolovat i na širokoúhlém monitoru...

Doufal jsem, že ti to dojde a zkopíruješ si ten kód co jsem ti poslal a doplníš...

Každpopádně tam jen opisuješ co je v kódu, já ale chtěl, abys tam psal co to má dělat.

Takže místo "tu sa opakuje príkaz a pri k=c konči"

jsem chtěl vidět třeba něco jako: "pro každé zkoumané číslo i se hledají jeho dělitelé počínaje dvojkou a konče i-1"

místo "podmienka ak je p nula tak vypíše dané číslo. Končí tu prvý for"

mělo být: "pokud počet nalezených dělitelů je nulový, jedná se o prvočíslo"

Tak to zkusíme jinak.

Jedna logická chyba je s proměnnou d. Proč ji inicializuješ na hodnotu 2? Když v ní má být seznam prvočísel? Copak 2 je prvočíslo? Kdyby sis podle mé rady pospsal všechny proměnné, třeba by tě to trklo.

Druhá logická chyba je s proměnnou p. V ní se postupně sčítá celkový počet dělitelů všech zkoumaných čísel. 

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
23. 1. 2013   #38
-
0
-

k-cko inicializujem na dva lebo nechcem delit jednotkou aby mi to daco vypísalo.

A v čom je chyba v p?Podla mna je to akurat zataz na ramku inak v tom podla mna nieje problem.

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
23. 1. 2013   #39
-
0
-

#38 tuden
Čti podrobně každé slovo: V proměnné p se postupně sčítá celkový počet dělitelů všech zkoumaných čísel.

To je popis, k čemu tu proměnnou používá tvůj program. Je to správně?

Nahlásit jako SPAM
IP: 88.103.233.–
JoDiK
~ Anonymní uživatel
981 příspěvků
23. 1. 2013   #40
-
0
-

#38 tuden
"k-cko inicializujem na dva lebo nechcem delit jednotkou aby mi to daco vypísalo."

Já mluvil o proměnné d

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
23. 1. 2013   #41
-
0
-

aha prepáč no to je tam na to aby na začiatku bolo prvočíslo lebo by potom neskúšal to prvočíslo a rovno by ho písal.

Je to nanič. Keby to tam nebolo by si premenil c na dva a bolo by to aj tak dobre.

To p je tak správne.

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
23. 1. 2013   #42
-
0
-

#41 tuden
p tak není správně, protože má sloužit pro identifikaci prvočísla.

neboli pro každé zkoumané číslo se má zjistit počet jeho dělitelů. Pokud je nulový - jedná se o prvočíslo (nehledě na to, že to jde i jednodušeji a rychleji).

Takže tvůj program začíná trojkou a zjistí, že počet dělitelů trojky je nula - tedy jedná se o prvočíslo.

Pak jde na čtyřku - zjistí že počet dělitelů trojky a čtyřky je 1

Pak jde na pětku, a zjistí, že počet dělitelů trojky, čtyřky a pětky je pořád 1 a takhle to jde dál.

Po šestce je počet dosavadních dělitelů tři. Ať je to prvočíslo nebo ne, to už nezjistíš, protože v proměnné p počítáš "celkový počet dělitelů všech zkoumaných čísel"

Už ti to dochází?

Nahlásit jako SPAM
IP: 88.103.233.–
JoDiK
~ Anonymní uživatel
981 příspěvků
23. 1. 2013   #43
-
0
-

#42 JoDiK
Posledni rada, pokud nechces nazyvat promenne pravymi jmeny - misto d - seznamPrvocisel, misto p - pocetDelitelu, tak si je aspon popis v komentarich, snad se ti to bude mene plest a hlavne, kdyz nekoho pozadas o radu, tak se ten dotycny bude take lepe orientovat.

Jo a jeste - nauc se debugovat (ladit) vcetne vypisu obsahu promennych - hledani logickych chyb krokovanim programu se ti mnohem zjednodusi...

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
23. 1. 2013   #44
-
0
-

<head>

<script>
function findPrvocislo()
{
var i = prompt("zadaj do kolko cisel chces hladat","");
var k = 2; /* tato proměnná bude použita na opakovaní delenia v druhom opakovaní */
var c=3;
var p = 0;
var d=2;
for ( var c=3;c<i;c++)  /*Tento cyklus projde všechna čísla od 3 do zadané hodnoty i*/
  {for(var k=2;k<c;k++) /* Tento cyklus prejde všetky čísla a c vydelí prejdenými číslami. Zistí zvyšok po delení a ak je nula tak pripočíta k p jednotku. zisťuje či má delitele */
     {if(c%k==0)
          {p++}
   }
     if(p==0)
         {document.getElementById("copy").innerHTML=d=d+" "+c}
                                                                                                    }
}/*tu  sa opakuje tolko ako v prvom for. Zisťuje či je p  nula a ake hej pridá číslo do d. Ak má delitele nie je prvočíslo a nenapíše sa  */
</script>
</head>
<body>
<div id="copy" >toto sa zmení na prvocísla</div>
<button onclick="findPrvocislo()">stlac</button>
</body>
</html>

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
23. 1. 2013   #45
-
0
-

#44 tuden
Přečti si ještě jednou moje dva předchozí příspěvky a jestli ani pak nenajde štu chybu, tak to vzdávám...

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
23. 1. 2013   #46
-
0
-

prepáč posledné dva príspevky som nevidel ale prečo začína k od 1 šak tam má na začiatku deklarovanú dvojku nie?

Nahlásit jako SPAM
IP: 176.101.176.–
tuden
~ Anonymní uživatel
49 příspěvků
23. 1. 2013   #47
-
0
-

inak vedel som že v tomto bode problém ale myslel som že pri každom začatí toho druhého foru sa deklaruje k ako 2 a ide dalej

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
23. 1. 2013   #48
-
0
-

#46 tuden
Nerozumím, cituj, nebo popiš přesněji co "začíná od 1" - já nic takového nepsal...

Nahlásit jako SPAM
IP: 88.103.233.–
JoDiK
~ Anonymní uživatel
981 příspěvků
23. 1. 2013   #49
-
0
-

#47 tuden
Nemáš nějaké problémy s porozuměním čteného textu? O proměnné k jsem nepsal opravdu ani půl slova...

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
23. 1. 2013   #50
-
0
-

toto"Pak jde na čtyřku - zjistí že počet dělitelů trojky a čtyřky je 1".

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
23. 1. 2013   #51
-
0
-

#50 tuden
Ve které proměnné že to počítáme počet dělitelů? Aha? V proměnné p. Ta má na začátku deklarovanou hodnotu 0. A pak už se jen přičítá...

Nahlásit jako SPAM
IP: 88.103.233.–
JoDiK
~ Anonymní uživatel
981 příspěvků
23. 1. 2013   #52
-
0
-

#51 JoDiK
Výpis hodnot p pro zadaný rozsah do 10 (před dvojtečkou zkoumané číslo, za dvojtečkou hodnota p)

3:0 4:1 5:1 6:3 7:3 8:5 9:6

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
23. 1. 2013   #53
-
0
-

aha tak si mal povedať že musím vo for vždy na začiatku deklarovať p lebo zostane po štyrke 1

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
23. 1. 2013   #54
-
0
-

#53 tuden
Achjo, přesně tohle jsem ti ale psal! Několikrát! Jen ne tak doslova.

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
23. 1. 2013   #55
-
0
-

už to mám dobre ďakujem vela si mi pomohol (hlavne v prehľadnosti).

<html>
<head>

<script>
function findPrvocislo()
{
var i = prompt("zadaj do kolko cisel chces hladat","");
var k=2;
var c=3;
var p = 0;
var d=2;
for( var c=3;c<i;c++)/*opakuje sa dokedy sa c a i nerovnajú*/
                              {
var p=0;
for(var k=2;k<c;k++)/*tu sa opakuje príkaz a pri k=c konči*/
                                                             {
if(c%k==0)
                                                                                {p++}}/*v príkaze vnoreného for je podmienka: ak je zvyšok po delení 0 tak p zvýš o jedna. Končí tu druhý for*/
                                                               if(p==0)
                                                                           {document.getElementById("copy").innerHTML=d=d+" "+c}}/*podmienka ak je p nula tak vypíše dané číslo. Končí tu prvý for*/

                                                                                                                            
}
</script>
</head>
<body>
<div id="copy" >toto sa zmení na prvocísla</div>
<button onclick="findPrvocislo()">stlac</button>
</body>
</html>

Nahlásit jako SPAM
IP: 176.101.176.–
tuden
~ Anonymní uživatel
49 příspěvků
23. 1. 2013   #56
-
0
-

inak javascript je rýchlejší než ostatné programovacie jazyky. 

inde to laglo na 5 sekund pri 10000 hladaní.

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
23. 1. 2013   #57
-
0
-

#56 tuden
Tak si tam ještě oprav inicializaci d, první prvočíslo přece není 2!

Tu rychlost nekomentuju...

Dobrou..

Nahlásit jako SPAM
IP: 88.103.233.–
peter
~ Anonymní uživatel
2528 příspěvků
24. 1. 2013   #58
-
0
-

document.getElementById("copy").innerHTML=d=d+" "+c // nesmysl

document.getElementById("copy").innerHTML += " "+c; // a obalil bych to do funkce

if(c%k==0) {docu...+= " "+c; break;} // zadne p nepotrebujes

Vyznam d mi neni jasny.

Prvocisla zacinaji 1, 2, 3, 5 ... Tobe to zacina trojkou?

c=3;c<i - kdyz zadam, ze chci jedno prvocislo, napise mi "1" a kdyz zadam dve, napise mi "1, 2"?

Nekde jsem videl navod, ze tohle resili tak, ze nove cislo podelil vsemi cisly, ktere nasel pred nim jako prvocisla. Pro cislo 10.000 neprovadel 10.000 deleni, ale pouze podelil vsemi prvocisly pred nim, kterych by mohlo byt rekneme 600.

Nahlásit jako SPAM
IP: 2001:718:2601:400:0:5efe:...–
JoDiK
~ Anonymní uživatel
981 příspěvků
24. 1. 2013   #59
-
0
-

#58 peter
Teď koukám (děkuji za připomenutí) že dvojka je taky prvočíslo :-)

Nahlásit jako SPAM
IP: 88.103.236.–
JoDiK
~ Anonymní uživatel
981 příspěvků
24. 1. 2013   #60
-
0
-

#58 peter
 

document.getElementById("copy").innerHTML=d=d+" "+c // nesmysl

To je sice nesmysl, leč kupodivu funkční a dokonce dělá  to, co od něj tvůrce očekává...

Nahlásit jako SPAM
IP: 88.103.236.–
tuden
~ Anonymní uživatel
49 příspěvků
24. 1. 2013   #61
-
0
-

ako by si to napísal ty?

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
25. 1. 2013   #62
-
0
-

#61 tuden
Nevím, jestli se ptáš mě nebo petera, já bych to napsal na dvakrát.

Jestli se ptáš mě, tak jsem ti de fakto odpověděl v postech #28 a 31 přečti si je ještě jednou a pozorně...

Nebo-li dělal bych to nadvakrát - v tom cyklu bych jen přidával do d postupně všechna nalezená prvočísla a do divu "copy" bych umístil výsledek v proměnné d samozřejmě jen jednou, až po skončení hledání.

Nahlásit jako SPAM
IP: 88.103.236.–
peter
~ Anonymní uživatel
2528 příspěvků
25. 1. 2013   #63
-
0
-

Dalsim radkem hned za nesmysl jsem to preci ukazal, ne? Ale nepochopil jsem uplne, k cemu tam d mas, treba to mas ok.

innerHTML += " " + c;

JoDiK - on to je platny zapis, jen dela trosku neco jineho

var x, d; // var x = d = 0;
d = 5;
x = d = d + 'a';
alert(x); // '5a' by melo vypsat, jestli si to myslim spravne
alert(d); // '5a'
x = d = d + 'b';
alert(x); // '5ab'
alert(d); // '5ab'
x = d = x + 'c';
alert(x); // '5abc'
alert(d); // '5abc'
Nahlásit jako SPAM
IP: 2001:718:2601:400:0:5efe:...–
JoDiK
~ Anonymní uživatel
981 příspěvků
25. 1. 2013   #64
-
0
-

#63 peter
No, ale přesně tohle přece po tom chce...

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
25. 1. 2013   #65
-
0
-

ozaj rad by som sa este spýtal na tento príklad: mam zadany name obrázku "a1" a mam ho zmenit na obrázok "ax"

ked mám zadané x.

Nahlásit jako SPAM
IP: 176.101.176.–
tuden
~ Anonymní uživatel
49 příspěvků
25. 1. 2013   #66
-
0
-

ako napísať v document.getElementByTagName("obrázok").src=a"x".gif aby to dalo ten obrázok a čislo x?

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
25. 1. 2013   #67
-
0
-

#66 tuden
document.getElementById("obrázok").src="a"+x+".gif"

Nahlásit jako SPAM
IP: 88.103.233.–
tuden
~ Anonymní uživatel
49 příspěvků
26. 1. 2013   #68
-
0
-

<html>
<head>
<script>
function video()
{
var d=12;/*tu dávam d aby som ho mohol porovnávať s i*/
for (var i=2;i<d;i++)/*opakujem dokedy i je menšie ako d*/
{
document.getElementByTagName("robot").src.innerHTML="robot_strip"+i+".gif";/*tu mením obrázok robot_strip1.gif na obrázok robot_strip2.gif*/
if(i==11)/*ak i so rovná 11 tak sa prepíše na 0 a opakuje sa celý cyklus dokola*/
{
var i = 1;
}
document.getElementByTagName("robot").src.innerHTML.setTimeout(25);/*tu pridáva Timeout aby to počkalo 0,025 sekund */
}
}


</script>
</head>
<body>
<img name="robot" src="robot_strip1.gif">
</body>
</html>

no chcel som spraviť další program ako video prípadne ho doplním ale stále nejde.Už som videl aj ine ktorí to robily cez frameHeight.

Nahlásit jako SPAM
IP: 176.101.176.–
tuden
~ Anonymní uživatel
49 příspěvků
26. 1. 2013   #69
-
0
-

vopred sa ospravedlňujem za scroll.

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
26. 1. 2013   #70
-
0
-

#69 tuden
Vřele ti doporučuju projít si základy programování.

Nahlásit jako SPAM
IP: 88.103.233.–
peter
~ Anonymní uživatel
2528 příspěvků
28. 1. 2013   #71
-
0
-

document.getElementByTagName("robot").src.innerHTML

Tomu nerozumim. Proc?

1. ta funkce je getElementsByTagName("robot") a vraci pole (array) vsech nalezenych elementu od DOM urovne document. Ziskani prvku z pole je napr. getElementsByTagName("robot")[0]

2. jmeno prvku je diky IE nutne psat velkymi pismeny "ROBOT"

3. "getElements" z anglickeho vezmi elementy, "By" podle "TagName" jmena tagu. V html tag <robot> neexistuje. Jmeno tagu neni totez jako paramentr name uvnitr tagu.

4. Pro radio butony se pouziva stejny parametr name, aby slo mezi nimi prepinat

5. I kdyby ti ta funkce cirou nahodou tag vratila, dalsi v poradi mas ".src", jmeno parametru, kam se hodnota prirazuje pres rovnitko "=" a ne innerHTML. A za innerHTML mas dalsi nesmysly.

V cem konkretne ti reseni v odpovedi #66 nevyhovuje? <img id="obrázok"> nejlepe ale oboji id (js i html) bez diakritiky

http://programujte.com/…javascriptu/#…

Gif je mozne udelat animovany, nepotrebujes to resit pres setTimeout

Mozna ti pomuze.

http://peter-mlich.wz.cz/…w/index.html

Blikajici pozadi

Jinak doporucuji napsat wi jakpsatweb.cz, kliknout nahore javascript, priklady a projit si tam ty priklady. Pripadne porovnat s moji upravou. (Ja mel kdysi tu dobrou vuli, ze jim to prepisi, ale jejich inkvizitori v diskuzi se k prekopani webu uz 20 let nemaji)

Nahlásit jako SPAM
IP: 2001:718:2601:400:0:5efe:...–
tuden
~ Anonymní uživatel
49 příspěvků
28. 1. 2013   #72
-
0
-

<html>
<head>
<script language="javascript" type="text/javascript" >
function animacia()
{
for (var i=1;i<12;i++)
{
document.getElementById("ROBOT").src="robot_strip1"+i+".gif";
window.setTimeout("animacia()",25);
if (i==11){i=1};
}
}
</script>
</head>
<body >
<img id="ROBOT" src="robot_strip1.gif" onclick="animacia()">
</body>
</html>

no prerobil som to asi takto niekedy my to zacne blikat ale stály neuspech pozriem tie stránky

Nahlásit jako SPAM
IP: 176.101.176.–
tuden
~ Anonymní uživatel
49 příspěvků
28. 1. 2013   #73
-
0
-

ja si to potrebujem prcvicit pri inych veciach ako napr vyskakovacie okno s obrázkom atd.

Nahlásit jako SPAM
IP: 176.101.176.–
tuden
~ Anonymní uživatel
49 příspěvků
28. 1. 2013   #74
-
0
-

problem je ako napsat timeout ked nemas premennu

Nahlásit jako SPAM
IP: 176.101.176.–
peter
~ Anonymní uživatel
2528 příspěvků
29. 1. 2013   #75
-
0
-

Do promenne se to pise takto:

casovac = window.setTimeout("animacia()",25);

Mno a ted problemy. Interval jsi zvolil 25ms. To je na hranici nejrychlejsiho pohybu kuzoru mysi. Myslis, ze za tu dobu dokaze ze serveru naloadovat obrazek a jeste ho zobrazit? Nepodari se to. Co se pak stane? Nic. Zacne natahovat nasledujici obrazek uz jiny casovac. Mezitim se ten prvni tak nejak mozna nacte. Pokud se nenacte, tak se hned prepise nekterym, ktery se podari nacist. Ted to funguje tak, ze se ti po 25s spusti casovac, vytvori si svou promennou a pokousi se dokoncit script. Behem sekundy ti takovych casovacu naskace 40 a kazdy se snazi zmenit src. Po 3s uz mas casovacu v pameti 120 a teprve ted se mu rekneme podari z tech 120 stahovanych obrazku alespon jeden stahnout.

Co s tim? Spustit cele opakovani se zpozdenim a jeste pred tim si nacist vsechny obrazky do promennych.

Nebo cely program prepsat tak, aby si stahoval obrazek do promenne a po ukonceni akce onload ho prepsal do tagu. Po prepsani teprve spustit s 25ms zpozdenim dalsi casovac.

Zkus si zkouknout ten priklad na blikajici pozadi, dik :)

Nahlásit jako SPAM
IP: 2001:718:2601:400:0:5efe:...–
tuden
~ Anonymní uživatel
49 příspěvků
29. 1. 2013   #76
-
0
-

takže by som to mal robiť cez frameheight?

Nahlásit jako SPAM
IP: 193.87.175.–
tuden
~ Anonymní uživatel
49 příspěvků
29. 1. 2013   #77
-
0
-

<html>
<head>
<script language="javascript" type="text/javascript" >


var blik =
{
cas = 25;
var i = 1;
var barvy =

["0f2075","18297e","213287","293a8f","324398","3b4ca1","4354a9","4c5db2","5566bb","5d6ec3","6677cc","6f80d5","7788dd","8091e6","899aef","91a2f7","9aabff","a3b4ff","

abbcff","b4c5ff","bdceff"];
}
function animacia()
{
document.body..style.backgroundColor="#"+animacia.barvy[blik.i];
if (i==20 ){i=0};
i++;
}
function blikanie()
{
var casovacID=window.setInterval("animacia()",blik.cas);
}
</script>
</head>
<body   >
<button onClick="blikanie()">asdfasd</button>
</body>
</html>

Nahlásit jako SPAM
IP: 176.101.176.–
tuden
~ Anonymní uživatel
49 příspěvků
30. 1. 2013   #78
-
0
-

<html>
<head>
<script language="javascript" type="text/javascript">
cas = 25;
var i = 0;
var barvy= newArray("0f2075","18297e","213287","293a8f","324398","3b4ca1","4354a9",
"4c5db2","5566bb","5d6ec3","6677cc","6f80d5","7788dd","8091e6","899aef","91a2f7","9aabff","a3b4ff","abbcff","b4c5ff","bdceff");
function animacia()
{
document.body.style.backgroundColor="#"+barvy[i];
if (i==21){var i=0};
i +=1;
};
function blikanie()
{
var casovacID=window.setInterval("animacia()",cas);
};
</script>
</head>
<body>
<button onClick="blikanie()">asdfasd</button>
</body>
</html>

trocha prerobený no aj tak nevie a vôbec neviem prečo

Nahlásit jako SPAM
IP: 176.101.176.–
tuden
~ Anonymní uživatel
49 příspěvků
30. 1. 2013   #79
-
0
-

neviem prečo nejde pozeral som aj všetky syntaxy polí a časovačov možno niekde problém v odkazovaní

Nahlásit jako SPAM
IP: 176.101.176.–
JoDiK
~ Anonymní uživatel
981 příspěvků
30. 1. 2013   #80
-
0
-

#79 tuden

Prosímtě, už si najdi něco, co ti bude vypisovat syntaktické chyby...

A nezbývá mi než zopakovat: Vřele ti doporučuju projít si základy programování.

Nebo se raději bav něčím jiným...


Nahlásit jako SPAM
IP: 88.103.233.–
peter
~ Anonymní uživatel
2528 příspěvků
31. 1. 2013   #81
-
0
-

1. FF - Nastroje - Vyvoj webu - chybova konzola

2. konzola - vymazat

3. Stranka F5

Chyba: ReferenceError: newArray is not defined ... Řádek: 7

protoze vytvareni objektu je new mezera jmeno_tridy

if (i==21){var i=0};

Proc var? Var zapricini to, ze "i" se dal ve funkci bude povazovat za jinou promennou nez je globalini "i". A radek pod tim se provede, ale neulozi do globalni "i" ale ztrati po ukonceni funkce. Aspon si myslim. A nebo to mozna funguje, kdo vi.

Proc 21? 21 je nezpolehlive cislo, lepri je barva.length, coz vrati delku pole barva. kdyz tam jednu barvu pridas, to musis opravit na 22.

Navic jsi zrusil smer doprava a zpet doleva, takze to bude trosku zubate blikat.

Kdyz na foru kliknes na takovou tu ikonku editoru "<?", tak ti ten kod obarvi.

<html>
<head>
<script language="javascript" type="text/javascript">
var timer_id;
var timer_time = 25;
var i = 0;
var barvy = new Array(
"0f2075","18297e","213287","293a8f","324398","3b4ca1","4354a9","4c5db2",
"5566bb","5d6ec3","6677cc","6f80d5","7788dd","8091e6","899aef","91a2f7",
"9aabff","a3b4ff","abbcff","b4c5ff","bdceff"
);

function animacia()
{
document.body.style.backgroundColor = "#"+barvy[i];
i++;
i = i % (barvy.length-1); // to udela totez, jako if i<barvy.length
}
function blikanie()
{
timer_id = window.setInterval("animacia()",timer_time);
}

</script>
</head>
<body>
<button onclick="blikanie()">asdfasd</button>
</body>
</html>
Nahlásit jako SPAM
IP: 2001:718:2601:400:0:5efe:...–
peter
~ Anonymní uživatel
2528 příspěvků
31. 1. 2013   #82
-
0
-

Taky to muzes retezec rozdelit podle carky "," do pole. \ se musi dat na konec radku, pokud retezec pokracuje na dalsim radku (u php se \ prave davat nemusi, v tom je js trosku krecovitejsi)

var barvy = "\
0f2075,18297e,213287,293a8f,324398,3b4ca1,4354a9,4c5db2,\
5566bb,5d6ec3,6677cc,6f80d5,7788dd,8091e6,899aef,91a2f7,\
9aabff,a3b4ff,abbcff,b4c5ff,bdceff\
".split(",");
Nahlásit jako SPAM
IP: 2001:718:2601:400:0:5efe:...–
tuden
~ Anonymní uživatel
49 příspěvků
31. 1. 2013   #83
-
0
-

A takto isto s tymi obrázkami dať ich uložiť do premennej

aby sa nenacitavali tak dlho. Ďakujem:D

Nahlásit jako SPAM
IP: 176.101.176.–
tuden
~ Anonymní uživatel
49 příspěvků
31. 1. 2013   #84
-
0
-

takze takto to vyzerá keď sú už obrázky uložené v pamäti.

<html>
<head>
<script language="javascript" type="text/javascript" >
var i =0;
var time;
var obrazky = new Array("robot_strip1.gif","robot_strip2.gif","robot_strip3.gif","robot_strip4.gif",
"robot_strip5.gif","robot_strip6.gif","robot_strip7.gif","robot_strip8.gif","robot_strip9.gif","robot_strip10.gif","robot_strip11.gif");
function animacia()
{
document.getElementById("ROBOT").src=obrazky[i];
i++;
if(i==9){i=0};
}
function casovac()
{
time = window.setInterval("animacia()",50);
}
</script>
</head>
<body >
<img id="ROBOT" src="robot_strip1.gif" onclick="casovac()">
</body>
</html>
Nahlásit jako SPAM
IP: 176.101.176.–
peter
~ Anonymní uživatel
2528 příspěvků
1. 2. 2013   #85
-
0
-

"obrázky uložené v pamäti"

Ne, to mas ulozeny pouze seznam obrazku ulozeny v pameti, ne obrazky samotne. Musel bys pouzit pole slozene z new Image(), priradit src a pak pouzit ... id('obrazek')=pole[i].src, priradit src z toho pole.

Nahlásit jako SPAM
IP: 2001:718:2601:400:0:5efe:...–
tuden
~ Anonymní uživatel
49 příspěvků
1. 2. 2013   #86
-
0
-

aha ale tak či tak to neseká

Nahlásit jako SPAM
IP: 176.101.176.–
peter
~ Anonymní uživatel
2528 příspěvků
1. 2. 2013   #87
-
0
-

na localhostu urcite ne, to prijde, neboj :)

Nahlásit jako SPAM
IP: 2001:718:2601:400:0:5efe:...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

Podobná vlákna

Pomoc s kodom — založil Anny

Funkce v javascriptu — založil killermax

Kniha o Javascriptu — založil Jeyekomon

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý