HTML zápis - obvod a obsah čtverce
Zdravím, nevím si rady s tímhle:
Pro výpočet obsahu a obvodu kruhu ve scriptu mi funguej kod:
function obvodK(r){
o=2*Math.PI*eval(r);
alert("Obvod kruhu je "+o);
}
function obsahK(r){
s=Math.PI*eval(r)*eval(r);
alert("Obsah kruhu je "+s);
}
Jak podle tohohle vzorce udělat obvod a obsah čtverce?
Tohle mi nefunguje, nevím kde je chyba???
function obvodC(){
o=4*a;
alert("Obvod čtverce je "+o);
}
function obsahC(){
s=a^2;
alert("Obsah čtverce je "+s);
}
Zmena predmetu, pôvodne: HTML zápis (los)
Nemáš a v argumentu funkce :
Kdybych chtěl udělat funkci pro výpočet obsahu a obvodu obdelníka tak:
function obvodO(){
o=2*(a+b)
alert(Obvod obdelníka je "+o);
}
function obsahO(){
s=a*b;
alert("Obsah obdelníka je "+s);
}
_______________________________________¨
Jak poznám co doplnit do argumentu funkce?
Ta funkce počítá s nějakými vstupními daty, tak je tam doplň. (Na vstupu musí být rozměry toho obdélníka, čili...?)
a,b
Musíš ji nakrmit, v tomto případě a a b :
Tomu bych rozuměl, ale nekde je tam chyba
Co tohle?
Vykašli se na to a začni se učit hezky od začátku. Co to je vůbec programování, co to je proměnná, jaký je správný zápis, jak hledat chyby atd. Na první pohled je vidět, že tady:
chybí uvozovky na začátku Obvod obdelnika
function obvodO(a,b){
o=2*eval(a,b);
alert(Obvod obdelníka je "+o);
}
function obsahO(a,b){
s=a*b;
alert("Obsah obdelníka je "+s);
}
Tohle nevím proč nefunguje??
Jen tak od oka ti u prvního alertu chybí uvozovky.
Šmankote, co to je eval(a,b), když už tak eval(a+b), ne?
(Poslední kus programu jsem napsal v roce 1994, tak se snad nepletu.) A ty uvozovky.
1994? To se já narodil . Jinak jo, teď jsem to zkusil, funguje jak eval(a+b);, tak i eval("a+b");
To jsem ti napsal už v předchozím příspěvku, dočítej prosím do konce. Navíc eval(a,b) nedává smysl, buď tam dáš o=2*(a+b); nebo o=2*eval("a+b"); atd.
function obvodO(a,b){
o=2*eval("a+b")
alert("Obvod obdelníka je "+o);
}
function obsahO(a,b){
s=eval(a)*eval(b);
alert("Obsah obdelníka je "+s);
}
Tohle funguje, ale při výpočtu mi píše ___ NaN
NaN znamená "Not a Number" a výsledkom je napr. vtedy, ak násobíš nezmysly (napr. 5*"a"). Takže si skontroluj, čo za argumenty tam posielaš.
To odkiaľ si zobral takú lamerinu, že eval? Funkciu eval vôbec na takéto jednoduché veci nepotrebuješ, nepotrebuješ ju dokonca ani na zložitejšie veci, ani na superzložité veci. Existuje len jeden jediný výnimočný prípad, kedy takú funkciu môžeš potrebovať, s ktorým sa ale pravdepodobne v živote nestretneš.
Keď používaš vo funkciách pomocné premenné (konkrétne premenné o a s), tak ich deklaruj pomocou kľúčového slova var, aby si obmedzil ich rozsah platnosti na danú funkciu. V opačnom prípade ti hrozí, že ak použiješ globálnu premennú o alebo s, tak si ich nechtiac prepíšeš.
Doporučil bych používat při programování v Javascriptu nějaký debugger, tam se ti hned objeví chyba, kvůli které to nefunguje. Dělat to metodou pokus/omyl jde, ale je to o hodně pomalejší a jakmile máš delší kód, tak se z toho zblázníš .
tohle není žádný html zápis, tohle je javascript ...
pokud v něm hledáš chybu použij debugger, v internetovém prohlížeči
ve Firefoxu a v Chromu najdeš chybovou konzoli javascriptu pod klávesovou zkratkou CTRL+SHIFT+J
tam se snadno dozvíš v čem je chyba
function obvodT(a,b,c){
o=a+b+c;
alert("Obvod trojúhelníka je "+o);
}
function obsahT(a,b,c){
s=a+b+c/2;
alert("Obsah trojúhelníka je "+s);
}
Nechápu tady ty principy, počítání.
Jak se PROSÍM VÁS vypočítá obvod a obsah trojuhelnika když počítáme i s výškou Va
Funkce se jmenuje obsahT, ale počítá také obvod trojúhelníka lomeno 2.
Jako kdybys své dívce Martině říkal Karel. Byla by to pořád Martina.
Pokud zadáváme a,b,c :
Pokud zadáváme a,Va
Spíš a*Va/2 ne?
Ok, jsem blbec, opravím to.