Results 1 to 6 of 6
Thread: Åäíà JavaScript Çàäà÷êà
Hybrid View
-
7th July 2006 02:00 #1
Åäíà JavaScript Çàäà÷êà
Èìàì åäíà çàäà÷êà äà ïðàâÿ è ìè ñå îìîòà ãëàâàòà
Ùå ãî íàïèøà ïî ñòðàíåí íà÷èí:
4 ïúòè window.prompt - ìîëÿ âúâåäåòå "ê" çà êðúã èëè "ï" çà ïðàâîúãúëíèê. Ñòîéíîñòèòå ñå çàïàçâàò â ìàñèâ.
Çà âñÿêà åäíà ñòîéíîñò/ôîðìà:
àêî å âúâåäåíî "ê"
ìîëÿ âúâåäåòå ðàäèóñúò íà êðúãà â ñàíòèìåòðè
àêî å âúâåäåíî "ï"
ìîëÿ âúâåäåòå åäíàòà ñòðàíà â ñàíòèìåòðè
ìîëÿ âúâåäåòå äðóãàòà ñòðàíà â ñàíòèìåòðè
Ñëåä òîâà ñëåäâàò ñìåòêè çà ïëîùòà íà âñÿêà ãåîìåòðè÷íà ôîðìà.
Äî òóê ñúì ñòèãíàë:
ÏÎÌÎÙCode:var heightArray = new Array (4); var lengthArray = new Array (4); var radiusArray = new Array (4); var shape = new Array (4); var counter2 = 0; var rectangle = 1; for (var counter = 0; counter < 4; counter = counter + 1) {shape[counter] = window.prompt('Please enter r for rectangle or c for circle.')} for (var counter1 = 0; counter1 < 4; counter1 = counter1 + 1) if (shape[counter1] == 'r') {heightArray[counter2] = window.prompt('Please enter the height of rectangle number ' + rectangle + ' in centimetres') lengthArray[counter2] = window.prompt('Please enter the length of rectangle number ' + rectangle + ' in centimetres') counter2 = counter2 + 1 rectangle = rectangle + 1}
Gigabyte X570 AORUS Ultra | 5950X | Arctic Liquid Freezer II 240 | Corsair Vengeance LPX 2x8GB 3200Mhz | Samsung 980 Pro 1TB + Samsung 970 Pro 1TB | Gigabyte AORUS GeForce RTX 3080 Ti Master 12GB | Fractal Design Meshify C Dark TG | Corsair AX860i | Samsung U32H850 32" 4K
-
7th July 2006 09:56 #2
Âñè÷êî ìîæå äà ñå íàïðàâè â åäèí öèêúë, íî ùîì èñêàø ïîðåäíîñòòà íà äåéñòâèÿòà äà å òàêàâà ...
HTML Code:var heightArray = new Array (4); var lengthArray = new Array (4); var radiusArray = new Array (4); var shape = new Array (4); var arrArea = new Array(4); var circCount = 0; var rectCount = 0; i = 0; while( i < 4 ) { chr = window.prompt('Please enter r for rectangle or c for circle.'); if( chr == 'c' || chr == 'r' ) { shape[i] = chr; i++; } } for ( var counter1 = 0; counter1 < 4; counter1 = counter1 + 1) { if (shape[counter1] == 'r') { heightArray[rectCount] = parseFloat( window.prompt('Please enter the height of rectangle number ' + ( rectCount+1 ) + ' in centimetres') ); lengthArray[rectCount] = parseFloat( window.prompt('Please enter the length of rectangle number ' + ( rectCount+1 ) + ' in centimetres') ); arrArea[counter1] = heightArray[rectCount]*lengthArray[rectCount]; rectCount++; } else if( shape[counter1] == 'c' ) { radiusArray[circCount] = parseFloat( window.prompt('Please enter the radius of circle number ' + ( circCount+1 ) + ' in centimetres') ); arrArea[counter1] = 3.14 * radiusArray[circCount] * radiusArray[circCount]; circCount++; } else { alert( "undefined shape no "+(counter1+1)+": "+shape[counter1] ); } } for( q = 0; q<4; q++ ) { switch( shape[q] ) { case 'c': document.write( "The area of shape "+(q+1)+" ( circle ) is "+arrArea[q].toFixed( 2 )+"<br />"); break; case 'r': document.write( "The area of shape "+(q+1)+" ( rectangle ) is "+arrArea[q].toFixed( 2 )+"<br />"); break; default: alert( "undefined shape no "+(q+1)+": "+shape[q] ); break; } }
-
9th July 2006 03:18 #3
Íà íÿêîé àêî ìó ñå çàíèìàâà ìîæå äà ïðîâåðè çà ãðåøêè, ÷å ëóäíàõ
Âàæíîòî å, ÷å ðàáîòè. Ìåðñè íà genn çà íà÷àëíèÿ òëàñúê
Çàäà÷àòà å ñúùàòà îò ïúðâèÿ ïîñò, íî èìà íÿêîëêî ïðîìåíè:
Ïîòðåáèòåëÿò òðÿáâà äà èçáåðå äàëè ùå ðàáîòè ñ èí÷îâå èëè ñàíòèìåòðè
Êðàéíèòå ñìåòêè îáà÷å âèíàãè ñà â ñàíòèìåòðè
Êðàéíèòå ñìåòêè ñå çàêðúãëÿò äî 2 çíàêà ñëåä äåñåòè÷íàòà çàïåòàÿ
function roundToTwoPlaces (originalNumber)
{
var roundedNumber = 0.0;
roundedNumber = Math.round(originalNumber * 100) / 100;
return roundedNumber;
}
function convertToCentimetres (xxx)
{
if (units == 'Inches' || units == 'inches')
{
return xxx * 2.54
}
else
{return xxx * 1
}
}
var heightArray = new Array (4);
var lengthArray = new Array (4);
var radiusArray = new Array (4);
var shape = new Array (4);
var area = new Array(4);
var cCount = 0;
var rCount = 0;
var units = window.prompt('Please enter Inches or Centimetres for the desired units input')
for (var counter1 = 0; counter1 < 4; counter1 = counter1 + 1)
{
shape[counter1] = window.prompt('Please enter the name of shape number ' + (counter1 + 1));
}
for (var counter2 = 0; counter2 < 4; counter2 = counter2 + 1)
if (shape[counter2] == 'rectangle' || shape[counter2] == 'Rectangle')
{
heightArray[rCount] = parseFloat( window.prompt('Please enter the height of rectangle number ' + (rCount + 1) + ' in ' + units) );
lengthArray[rCount] = parseFloat( window.prompt('Please enter the length of rectangle number ' + (rCount + 1) + ' in ' + units) );
area[counter2] = convertToCentimetres(roundToTwoPlaces(he ightArray[rCount]*lengthArray[rCount]));
rCount = rCount + 1;}
else
if(shape[counter2] == 'circle' || shape[counter2] == 'Circle')
{radiusArray[cCount] = parseFloat( window.prompt('Please enter the radius of circle number ' + (cCount + 1) + ' in ' + units) );
area[counter2] = convertToCentimetres(roundToTwoPlaces(3. 142 * radiusArray[cCount] * radiusArray[cCount]));
cCount = cCount + 1;}
else
{document.write('There is something wrong with input number ' + (counter2 + 1) + '. Please try again by refreshing the page ' + '<BR>')}
{document.write('<BR>')}
for (var counter3 = 0; counter3 < 4; counter3 = counter3 + 1)
{document.write('The area of shape number ' + (counter3 + 1) + ' which is ' + shape[counter3] + ' is ' + area[counter3] + ' square centimetres ' + '<BR>')}
Gigabyte X570 AORUS Ultra | 5950X | Arctic Liquid Freezer II 240 | Corsair Vengeance LPX 2x8GB 3200Mhz | Samsung 980 Pro 1TB + Samsung 970 Pro 1TB | Gigabyte AORUS GeForce RTX 3080 Ti Master 12GB | Fractal Design Meshify C Dark TG | Corsair AX860i | Samsung U32H850 32" 4K
-
9th July 2006 11:26 #4
Çàêðúãëÿâàíåòî äî äâà çíàêà ñëåä äåñåòè÷íàòà çàïåòàÿ àç ãî áÿõ íàïðàâèë îùå â ïúðâèÿ ïîñò, íî òè ãëåäàì ñè ãî ìàõíàë è çàêðúãëÿâàø ïðè ñàìîòî ñìÿòàíå... êîåòî ñïîðåä ìåí å ãðåøíî. Àêî ìàëêî ïî-íàäîëó ïðèìåðíî èñêàø äà ïîêàæåø äî 3 çíàêà ñëåä äåñ. çàïåòàÿ, êàêâî ùå ïðàâèø ?
Òîâà çà èí÷îâåòå èëè ñàíòèìåòðèòå íÿìà äà ïðîìåíè êîé çíàå êîëêî ñêðèïòà - ïðîñòî èçâåæäàø åäèí window.confirm, ÷å ùå ñå ðàáîòè â ñàíòèìåòðè ïðèìåðíî. Àêî ïîòðåáèòåëÿò íàòèñíå ÎÊ - îñòàâàø íà ñàíòèìåòðè. Àêî íàòèñíå Cancel - ìèíàâàø íà èí÷îâå... â ñêðèïòà ïðîñòî ñåòâàø åäèí ôëàã, êîèòî ãî ïðîâåðÿâàø ïðè ñìÿòàíåòî ...
Ñúùî íå å äîáðå, ÷å ïîçâîëÿâàø íà ïîòðåáèòåëÿ äà âúâåäå êàêâîòî ñè èñêà è äà ìó ïèøåø äà ðåôðåøíå ñòðàíèöàòà, çà äà îïèòà îòíîâî
.Àêî âúâåäå íåùî ðàçëè÷íî îò êðúã èëè ïðàâîúãúëíèê, ïðîñòî íå ãî çàïèñâàø è èçâåæäàø ïðîìïòà îòíîâî.
Öÿëàòà èäåÿ ñ ïèñàíåòî íà òîâà êàêâî èñêàø íå ìè õàðåñâà îñîáåíî...òàêà ëè òè å çàäàíèåòî íà çàäà÷à. Ìíîãî ïî-óäà÷íî ùå å äà èìà áóòîí "Äîáàâè êðúã" è "Äîáàâè ïðàâîúãúëíèê". Äîáðå, ÷å ñå âúâåæäàò ñàìî 4 ôèãóðè ... àêî áåøå ïîâå÷å àç ëè÷íî áèõ íàïñóâàë ïðîãðàìèñòà, ÷å ìå êàðà ñòî ïúòè äà ïèøà äóìè÷êàòà êðúã/ïðàâ. Àêî ïúê èñêàø äà ãî íàïðàâèø íàèñòèíà êàòî õîðàòà, ìîæå äà íàïðàâèø åäíà ôîðìà...âúîáùå äà íå ïîëçâàø ïðîìïò, çàùîòî íå å óäîáíî è íå å user-friendly. Ïðâèø ôîðìà ñ äâà ðàäèî áîêñà - ïîòðåáèòåëÿ èçáèðà äàëè ùå äîáàâÿ êðúã èëè ïðàâ. Ñïîðåä èçáîðúò ìó ôîðìàòà ñå ïðîìåíÿ è ñå ïîÿâÿâàò ïîëåòà çà âúâåæäàíå íà äàííèòå. Ñëåä âñÿêî íàòèñêàíå íà "Äîáàâè" ôèãóðàòà ñå äîáàâÿ â ñïèñúê, êîéòî ñå âèæäà îòäîëó. Ïîòðåáèòåëÿò ïî âñÿêî âðåìå ìîæå äà èçòðèå âúâåäåíà ôèãóðà èëè ïúê äà ÿ ðåäàêòèðà...
Ìîæå è äà çâó÷è ìàëêî ñëîæíî, íî âñúùíîñò âêëþ÷âà åäèíñòâåíî åëåìåíòàðíè îïåðàöèè çà ðàáîòà ñ input, íî ïúê çà ñìåòêà íà òîâà, ùå èçãëåæäà íàïúëíî ïðîôåñèîíàëíî
-
9th July 2006 22:03 #5
:)
genn, ìåðñè îòíîâî. Îòíîñíî çàäà÷àòà - èìàì òî÷íî îïðåäåëåíè ïðàâèëà, êîèòî òðÿáâà äà ñëåäâàì - ïúê è JavaScript ãî ó÷èì îòãîðå, îòãîðå (ñëåä òîâà ùå ó÷èì è Java) . Çà ìåí íàé-âàæíîòî å, ÷å ðàáîòè è å òàêà, êàêòî ãî èñêàò. Òðÿáâà äà ïîêàæà, ÷å ðàçáèðàì functions - ïîëçâàë ñúì ãè íàé-îòãîðå. À êîäúò, êîéòî òè ìè íàïèñà - ëåêî íå ãî ðàçáèðàì êúì êðàÿ - òèÿ case è swtich íå ñúì ãè ó÷èë
, äàæå íå ñúì ðàçáðàë, ÷å èìà çàêðúãëÿíå
Ïîíå ñõâàíàõ èäåÿòà äå.
Ìåðñè îòíîâî
Gigabyte X570 AORUS Ultra | 5950X | Arctic Liquid Freezer II 240 | Corsair Vengeance LPX 2x8GB 3200Mhz | Samsung 980 Pro 1TB + Samsung 970 Pro 1TB | Gigabyte AORUS GeForce RTX 3080 Ti Master 12GB | Fractal Design Meshify C Dark TG | Corsair AX860i | Samsung U32H850 32" 4K
-
9th July 2006 22:13 #6
switch ... case ìîæå ñïîêîéíî äà ãî çàìåñòèø ñ
if()
...
else if()
...
else
...
Èíà÷å çàêðúãëÿâàíåòî ñå ïðàâè ñ ôóíêöèÿòà
toFixed( <áðîé çíàöè ñëåä çàïåòàÿòà> ). Âèæ òàì, êúäåòî ïðàâÿ document.write, ñúì ãî ñëîæèë
ÏÏ çà íèùî




Reply With Quote
Lenovo ThinkPad 15 èëè IdeaPad 15
5th May 2023, 22:16 in Ìîáèëíè êîìïþòðè