EPI, s.r.o. INT Dokumentace algoritmů javascriptu Vyučující: Ing. Petrucha Jindřich, PhD Jméno a příjmení Třída Podpis 1. Jiří Nepraš 2EPi Zadání: Zpracujte dokumentaci, kde popíšete jednotlivé algoritmy javascriptu s popisem proměnných a zobrazením obrazovky výpočtu. - 1 -
POPIS ALGORITMU VÝPOČTU OBSAHU A OBVODU KRUHU A OBDÉLNÍKU - vytvoření dvou funkcí resp. funkce kruh a funkce obdélník. Pro vytvoření výpočtu obsahu a obvodu kruhu budeme požadovat vstupní informaci o průměru kruhu resp. vstupní proměnnou x. Na základě aritmetických operací získáme výstupní proměnné plocha a obvod. Vstupní a výstupní proměnné definujeme poli formuláře, kde zadáme vstupní informaci hodnoty proměnné x a následně vyvoláním funkce dostaneme zpětně do polí formuláře příslušné hodnoty proměnných plocha a obvod, které převedeme do příslušného textového pole formuláře. Vývojový diagram: - 2 -
Analogicky postupujeme i při výpočtu hodnot funkce obdélník. <script language="javascript"> function kruh(f) { x=parsefloat(f.edice1.value) plocha=x*x*3.14/4 alert(plocha) f.edice2.value=plocha - deklarace funkce kruh - deklarace proměnné x (průměr) edit. polem form. edice1 - výpočet proměnné plocha vzorcem r 2 x π - zobrazení informativní výstrahy s hodnotou prom. plocha - přiřazení poli formuláře hodnoty proměnné plocha obvod=x*3.14 alert(obvod) f.edice3.value=obvod - výpočet proměnné obvod vzorcem r x π - zobrazení informativní výstrahy s hodnotou prom. plocha - přiřazení poli formuláře hodnoty proměnné obvod } function obdelnik(g) { y=parsefloat(g.edice4.value) z=parsefloat(g.edice5.value) plocha_ob=y*z g.edice6.value=plocha_ob - deklarace funkce obdélník - deklarace prom. y (strana A) edit. polem form. edice4 - deklarace prom. z (strana B) edit. polem form. edice5 - výpočet proměnné plocha - přiřazení poli formuláře hodnoty proměnné plocha obvod_ob=2*(y+z) g.edice7.value=obvod_ob } <FORM NAME="HODNOTY"> <p class="kruh">zadejte průměr kruhu</p> <span class="kruh"> Průměr <INPUT TYPE="text" NAME="edice1" SIZE=5> mm Vypočítané hodnoty: Plocha <INPUT TYPE="text" NAME="edice2" SIZE=10> mm^2 - pole formuláře hodnota edice1 - pole formuláře hodnota edice2 Obvod <INPUT TYPE="text" NAME="edice3" SIZE=10> mm - pole formuláře hodnota edice3 <INPUT TYPE="button" VALUE="VYPOČTI" onclick="kruh(this.form)"> </p> </span> </FORM> <span class="kruh"> - 3 -
</p> </span> <h1 align="center" class="nadpisy"> <span class="obdelnik">obdélník </span></h1> <FORM NAME="HODNOTY"> <p class="obdelnik">zadejte délku stran A a B</p> <span class="obdelnik"> Strana A <INPUT TYPE="text" NAME="edice4" SIZE=5> mm Strana B <INPUT TYPE="text" NAME="edice5" SIZE=5> mm Vypočítané hodnoty: Plocha <INPUT TYPE="text" NAME="edice6" SIZE=10> mm^2 Obvod <INPUT TYPE="text" NAME="edice7" SIZE=10> mm <INPUT TYPE="button" VALUE="VYPOČTI" onclick="obdelnik(this.form)"> </p> </span> </FORM> <p align="center"><span class="zpet"><a href="index.html">zpět NA HLAVNÍ STRÁN- KU</a></span><br /> </p> </body> </html> - 4 -
Obrázek realizovaných výpočtů: - 5 -
POPIS ALGORITMU VÝPOČTU KVADRATICKÉ ROVNICE - vytvoření funkce s vnořenými podmínkami zpracování výpočtu a zobrazení. Pro vytvoření výpočtu kvadratické rovnice budeme požadovat vstupní informaci o třech proměnných - koeficientech a,b,c. Na základě aritmetických operací získáme hodnotu diskriminantu, která bude pro nás rozhodující v postupu dalších výpočtů. Podmíněným zpracování pomocí příkazů IF zajistíme aritmetické zpracování proměnných s výstupními proměnnými x. Vývojový diagram: - 6 -
Vstupní a výstupní proměnné definujeme poli formulářů, kde zadáme vstupní informaci hodnoty proměnné a, b, c následně vyvoláním funkce dostaneme zpětně do polí formuláře příslušné hodnoty proměnných x.., které převedeme do příslušného textového pole formuláře. Výpis programuj JS a polí formuláře <script language="javascript"> <!-- Hiding var a,b,c,d,e,f,g,h,i,j,k function rovnice(f) { a=parsefloat(f.edice1.value) //alert(a) if (a==0) alert("nelze ZADAT HODNOTU a = 0 - ZADEJTE JINÉ CELÉ ČÍSLO!!!"); b=parsefloat(f.edice2.value) //alert(b) c=parsefloat(f.edice3.value) //alert(c) //výpočet diskriminantu d=b*b -(4*a*c) f.edice4.value=d //výpočet rovnice pro D=0 if (d==0) {e= (-b)/2*a ; f.edice5.value=e} else {e=' ' ; f.edice5.value=e}; //výpočet rovnice pro D>0 if (d>0) {g= (-b)+math.sqrt(d)/2*a; f.edice6.value=g ; h= (-b)-math.sqrt(d)/2*a; f.edice7.value=h} else {g=' ' ; f.edice6.value=g; h=' ' ; f.edice7.value=h }; //výpočet rovnice pro D<0 if (d<0) {i= '['+(+b)+'+i*'+'sqrt('+d+')]/'+2*a; f.edice8.value=i ; j= '['+(-b)+'+i*'+'sqrt('+d+')]/'+2*a; f.edice9.value=j} else {i=' ' ; f.edice8.value=i; j=' ' ; f.edice9.value=j }; } // --> </script> - 7 -
</head> <body bgcolor="#ebebeb"> <div style="width: 900px; margin-left: auto; margin-right: auto; position: relative;"> <p class="nadpis_ukolu">výpočet kvadratické rovnice:</p> <p class="nadpis_ukolu"> </p> <p> </p> <FORM NAME="HODNOTY"> <p class="kruh"> Tvar kvadratické rovnice: <strong><u>a</u>x^2 + <u>b</u>x + <u>c</u> = 0 </strong> Zadejte koeficienty a, b, c </p> <span class="kruh"> Koeficient a: <INPUT TYPE="text" NAME="edice1" SIZE=5> Koeficient b: <INPUT TYPE="text" NAME="edice2" SIZE=5> Koeficient c: <INPUT TYPE="text" NAME="edice3" SIZE=5> Zahajte výpočet <INPUT TYPE="button" VALUE="VYPOČTI" onclick="rovnice(this.form)"> Výpočet diskriminantu D = b^2-4ac: Diskriminant <INPUT TYPE="text" NAME="edice4" SIZE=20> Řešení rovnice pro D=0, resp.x1=x2 odp.: x= (-b)/2a: x= <INPUT TYPE="text" NAME="edice5" SIZE=20> Řešení rovnice pro D>0, má dvě řešení resp. x1,2= (-b +- sqrt(d) / 2a x1= <INPUT TYPE="text" NAME="edice6" SIZE=20> x2= <INPUT TYPE="text" NAME="edice7" SIZE=20> Řešení rovnice pro D<0, nemá v oboru reálných čísel řešení Zápis proměnné x1 jako komplexní číslo <INPUT TYPE="text" NAME="edice8" SIZE=20> Zápis proměnné x2 jako komplexní číslo <INPUT TYPE="text" NAME="edice9" SIZE=20> </p> - 8 -
</span> </FORM> Obrázek realizovaných výpočtů: ZÁVĚR: Na příkladech byla procvičena práce s poli formuláře, zadávání a práce s proměnnými v JS resp. předávání hodnot mezi poli formuláře a proměnnými v JS, zobrazení alert hlášení, práce s funkcemi v JS a aritmetické operace s proměnnými na konkrétních příkladech pro využití ve výpočtech geometrických útvarů. - 9 -