Results 1 to 6 of 6

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Registered User CYPER's Avatar
    Join Date: May:2004
    Location: Ðóñå
    Posts: 9,357

    Åäíà 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

  2. #2
    Registered User genn's Avatar
    Join Date: Feb:2003
    Location: Ãåðìàíèÿ
    Posts: 1,215
    Âñè÷êî ìîæå äà ñå íàïðàâè â åäèí öèêúë, íî ùîì èñêàø ïîðåäíîñòòà íà äåéñòâèÿòà äà å òàêàâà ...

    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;
    	}
    }

  3. #3
    Registered User CYPER's Avatar
    Join Date: May:2004
    Location: Ðóñå
    Posts: 9,357
    Íà íÿêîé àêî ìó ñå çàíèìàâà ìîæå äà ïðîâåðè çà ãðåøêè, ÷å ëóäíàõ
    Âàæíîòî å, ÷å ðàáîòè. Ìåðñè íà 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

  4. #4
    Registered User genn's Avatar
    Join Date: Feb:2003
    Location: Ãåðìàíèÿ
    Posts: 1,215
    Çàêðúãëÿâàíåòî äî äâà çíàêà ñëåä äåñåòè÷íàòà çàïåòàÿ àç ãî áÿõ íàïðàâèë îùå â ïúðâèÿ ïîñò, íî òè ãëåäàì ñè ãî ìàõíàë è çàêðúãëÿâàø ïðè ñàìîòî ñìÿòàíå... êîåòî ñïîðåä ìåí å ãðåøíî. Àêî ìàëêî ïî-íàäîëó ïðèìåðíî èñêàø äà ïîêàæåø äî 3 çíàêà ñëåä äåñ. çàïåòàÿ, êàêâî ùå ïðàâèø ?

    Òîâà çà èí÷îâåòå èëè ñàíòèìåòðèòå íÿìà äà ïðîìåíè êîé çíàå êîëêî ñêðèïòà - ïðîñòî èçâåæäàø åäèí window.confirm, ÷å ùå ñå ðàáîòè â ñàíòèìåòðè ïðèìåðíî. Àêî ïîòðåáèòåëÿò íàòèñíå ÎÊ - îñòàâàø íà ñàíòèìåòðè. Àêî íàòèñíå Cancel - ìèíàâàø íà èí÷îâå... â ñêðèïòà ïðîñòî ñåòâàø åäèí ôëàã, êîèòî ãî ïðîâåðÿâàø ïðè ñìÿòàíåòî ...

    Ñúùî íå å äîáðå, ÷å ïîçâîëÿâàø íà ïîòðåáèòåëÿ äà âúâåäå êàêâîòî ñè èñêà è äà ìó ïèøåø äà ðåôðåøíå ñòðàíèöàòà, çà äà îïèòà îòíîâî .Àêî âúâåäå íåùî ðàçëè÷íî îò êðúã èëè ïðàâîúãúëíèê, ïðîñòî íå ãî çàïèñâàø è èçâåæäàø ïðîìïòà îòíîâî.

    Öÿëàòà èäåÿ ñ ïèñàíåòî íà òîâà êàêâî èñêàø íå ìè õàðåñâà îñîáåíî...òàêà ëè òè å çàäàíèåòî íà çàäà÷à. Ìíîãî ïî-óäà÷íî ùå å äà èìà áóòîí "Äîáàâè êðúã" è "Äîáàâè ïðàâîúãúëíèê". Äîáðå, ÷å ñå âúâåæäàò ñàìî 4 ôèãóðè ... àêî áåøå ïîâå÷å àç ëè÷íî áèõ íàïñóâàë ïðîãðàìèñòà, ÷å ìå êàðà ñòî ïúòè äà ïèøà äóìè÷êàòà êðúã/ïðàâ. Àêî ïúê èñêàø äà ãî íàïðàâèø íàèñòèíà êàòî õîðàòà, ìîæå äà íàïðàâèø åäíà ôîðìà...âúîáùå äà íå ïîëçâàø ïðîìïò, çàùîòî íå å óäîáíî è íå å user-friendly. Ïðâèø ôîðìà ñ äâà ðàäèî áîêñà - ïîòðåáèòåëÿ èçáèðà äàëè ùå äîáàâÿ êðúã èëè ïðàâ. Ñïîðåä èçáîðúò ìó ôîðìàòà ñå ïðîìåíÿ è ñå ïîÿâÿâàò ïîëåòà çà âúâåæäàíå íà äàííèòå. Ñëåä âñÿêî íàòèñêàíå íà "Äîáàâè" ôèãóðàòà ñå äîáàâÿ â ñïèñúê, êîéòî ñå âèæäà îòäîëó. Ïîòðåáèòåëÿò ïî âñÿêî âðåìå ìîæå äà èçòðèå âúâåäåíà ôèãóðà èëè ïúê äà ÿ ðåäàêòèðà...
    Ìîæå è äà çâó÷è ìàëêî ñëîæíî, íî âñúùíîñò âêëþ÷âà åäèíñòâåíî åëåìåíòàðíè îïåðàöèè çà ðàáîòà ñ input, íî ïúê çà ñìåòêà íà òîâà, ùå èçãëåæäà íàïúëíî ïðîôåñèîíàëíî

  5. #5
    Registered User CYPER's Avatar
    Join Date: May:2004
    Location: Ðóñå
    Posts: 9,357

    :)

    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

  6. #6
    Registered User genn's Avatar
    Join Date: Feb:2003
    Location: Ãåðìàíèÿ
    Posts: 1,215
    switch ... case ìîæå ñïîêîéíî äà ãî çàìåñòèø ñ

    if()
    ...
    else if()
    ...
    else
    ...

    Èíà÷å çàêðúãëÿâàíåòî ñå ïðàâè ñ ôóíêöèÿòà
    toFixed( <áðîé çíàöè ñëåä çàïåòàÿòà> ). Âèæ òàì, êúäåòî ïðàâÿ document.write, ñúì ãî ñëîæèë

    ÏÏ çà íèùî

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Copyright © 1999-2011 Õàðäóåð ÁÃ. Âúçìîæíî å ñúäúðæàíèåòî íà òàçè ñòðàíèöà äà å îáåêò íà àâòîðñêè ïðàâà.
iskamPC.com | mobility.BG | Bloody's Techblog | Êðèïòîâàëóòè è ìàéíèíã | 3D Vision Blog | Ìàãàçèí çà åëåêòðîííè öèãàðè