Cod JavaScript Problema

Buna ziua ! Incerc sa rezolv un exercitiu unde mi-i se cere "Scrieţi o pagină HTML cu codul JavaScript care va calcula suprafaţa pătratului creând şi folosind funcţia JavaScript care primeşte trei parametri (lungimea laturii pătratului).

Lungimea laturii pătratului se poate alege arbitrar (adică aceste valori să fie hard-coded) sau îi puteţi oferi utilizatorului posibilitatea de a o introduce.

Astfel, nu ar trebui să fie posibil ca pentru aceste laturi ale pătratului să se introducă valori negative (0, teoretic, se poate, dar un pătrat cu dimensiuni negative nu există), valori care nu sunt cifre, nici să rămână câmpuri goale."

am lucrat cat de cat la el , dar nu este conform cu cerintele…

var patrat = function (lat,param1,param2){

var spatrat = return result;
		

		
	return "Patrat cu dimensiuni negative nu exista"
	
}

document.write('Parametrii introdusi = 4,7,9; Lungimea laturii pătratului = ' + window['patrat'](4,7,9) + "<br />");

De ce este nevoie de trei parametri? :confused:

Ne arăți și ce ai lucrat?

function computeSurface(side){

if (side < 0)
  alert ("latura patratului nu poate fi negativa")

return Math.pow(side1, 2).

Atat !
Nici eu nu inteleg ce ai scris pe acolo

exatc :slight_smile: habar n-am !

i-am scris la mentorul meu si asta e raspunsul

Bună ziua,

Asupra rezolvării acestui assignment trebuie să reveniţi, încât descrierea funcţiei şi aplicarea formulei de calcul al ariei pătratului, ce va fi implementată în cadrul funcţiei, să fie corect realizate.

Trebuie avut în vedere că aria pătratului se va calcula ca fiind lungimea laturii la puterea a doua. Lungimea laturii va fi transmiă printr-un parametru al funcţiei de calcul(din cei trei parametri ceruţi în enunţ).

Deci, funcţia de calcul ar putea avea forma:

function calculAriaPatrat(lat, param1, param2){

 ....

}

În codul de mai sus se observă că funcţia are trei parametri, din care primul parametru va fi utilizat pentru transmiterea valorii lungimii laturii, fiind deci considerat esenţial pentru funcţia de calcul. (…) va trebui să fie completat cu liniile de cod din cadrul corpului funcţiei. Ceilalţi doi parametri, param1 şi param2, aşa cum am precizat, li se pot atribui semnificaţii separate, putând avea valori sau nu în apelul funcţiei. Desigur că parametrii pot avea alt nume, iar funcţia poate avea alt nume, însă ceea ce este important este ca funcţia de calcul să aibă definit minim un parametru, care va fi corespunzător lungimii laturii, fiind utilizat în cadrul calculului ariei, implementat în funcţie.

Deoarece în caculul realizat de funcţiei, parametrul lat este considerat esenţial, în implementarea acestei funcţii se vor realiza verificarea ca valoarea transmisă prin acest parametru să fie o valoare numerică, iar dacă această condiţia este adevărată, se va verifica dacă valoarea este una pozitivă. Doar dacă ambele condiţii sunt adevărate se va calcula şi se va returna valoarea ariei.

Încercaţi să corectaţi rezolvarea acestui assignment, conform indicaţiilor din acest comentariu.

Pai eu cred ca ar trebui sa citesti atenta cerinta si sa faci pe hartie un algoritm simplu. Inclusiv cel cu care faci cursul ti-a dat indicatii :slight_smile:

Care este formula matematica care trebuie adaptata ?

cum calculez suprafata patratului ?
adica 4latura ?
o sa fie ceva de genul function calculAriaPatrat(lat, param1, param2), unde
adaptat la formula matematica va fi var result= lat
param1*param2?

si dupa aria se va calcula in urma rezultatului *2?

Nu inteleg pur si simplu logica …

l-am adaptat asa, dar tot nu e bine "function calculateRectArea(theObject){
if (theObject=>0) {
var result = theObject[0]theObject[1];
theObject[0] = result
result;
return result;
}
return error;
}

var rectDimensions = [7,4];

var result = calculateRectArea(rectDimensions);

document.write(‘Perimetrul patratului = 7; Lungimea laturi pătratului = ’ + window[‘result’] +"
");
document.write(’ Aria Patratului = ’ + window[‘rectDimensions’] +"
");"

Deci ai nevoie de ajutor la… matematică sau la JS?

Știi să calculezi aria unui corp regulat în 2d dau nu știi să implementezi algoritmul în js? Invers? Niciuna?

nu inteleg logica matematica pur si simplu… mai ales assignmentul cu cei 3 parametrii. de ce 3 ? care e rolul al 3 lea ? care e formula matematica adaptabila in cod,conform cu cerintele ?

Pasul 1:
Scrie o functie care calculeaza perimetrul patratului

Pasul 2:
Scrie o functie care calculeaza aria patratului (este facuta si este mai sus in discutie)

Pasul 3:
Apeleaza aceste functii unde ai nevoie

Mai simplu de atat nu pot explica. :confused:

Rezolva cum iti vine mai usor.

1 Like

si perimetrul cum il calculez ? 4 * L

var result = Lat(4)*param1(x)*param2(x); ?

Eu sunt foarte curios in ce context este acest exercitiu.

In primul rand, cred ca trebuie sa ai un input text din care sa preiei valoarea pentru calcul.
In al doilea rand, din ce inteleg eu, ceilalti 2 parametri nu iti folosesc la nimic:

Ceilalţi doi parametri, param1 şi param2, aşa cum am precizat, li se pot atribui semnificaţii separate, putând avea valori sau nu în apelul funcţiei

In al treilea rand, functia calculateArea(a, b, c) nu trebuie sa faca altceva decat sa verifice calitatea de integer pozitiv al primului parametru, sa calculeze aria patratului de latura a, si apoi sa returneze rezultatul pe care sa-l scrii intr-un element din dom. Parametrii b si c nu ii folosesti la nimic, avand in vedere ca patratul are toate laturile egale.

corect! eu am inteles gresit de la inceput contextul assignmentului.

acum inteleg si cred ca trebuie sa imbrig prin if else parametrii.
Bună ziua,

Asupra rezolvării acestui assignment trebuie să reveniţi, încât descrierea funcţiei şi aplicarea formulei de calcul al ariei pătratului, ce va fi implementată în cadrul funcţiei, să fie corect realizate.

Trebuie avut în vedere că aria pătratului se va calcula ca fiind lungimea laturii la puterea a doua. Lungimea laturii va fi transmiă printr-un parametru al funcţiei de calcul(din cei trei parametri ceruţi în enunţ).

Deci, funcţia de calcul ar putea avea forma:

function calculAriaPatrat(lat, param1, param2){

 ....

}

În codul de mai sus se observă că funcţia are trei parametri, din care primul parametru va fi utilizat pentru transmiterea valorii lungimii laturii, fiind deci considerat esenţial pentru funcţia de calcul. (…) va trebui să fie completat cu liniile de cod din cadrul corpului funcţiei. Ceilalţi doi parametri, param1 şi param2, aşa cum am precizat, li se pot atribui semnificaţii separate, putând avea valori sau nu în apelul funcţiei. Desigur că parametrii pot avea alt nume, iar funcţia poate avea alt nume, însă ceea ce este important este ca funcţia de calcul să aibă definit minim un parametru, care va fi corespunzător lungimii laturii, fiind utilizat în cadrul calculului ariei, implementat în funcţie.

Deoarece în caculul realizat de funcţiei, parametrul lat este considerat esenţial, în implementarea acestei funcţii se vor realiza verificarea ca valoarea transmisă prin acest parametru să fie o valoare numerică, iar dacă această condiţia este adevărată, se va verifica dacă valoarea este una pozitivă. Doar dacă ambele condiţii sunt adevărate se va calcula şi se va returna valoarea ariei.

Încercaţi să corectaţi rezolvarea acestui assignment, conform indicaţiilor din acest comentariu.

Raspunde-mi si mie te rog la intrebare. In ce context ai primit exercitiul: Interviu/ Scoala/ Facultate/ Cursuri online?

curs online

Small improvement. Daca e patrat, nu ai nevoie decat de un parametru. nu exista side1 si side2. exista doar side :slight_smile:

Aa

Ai dreptate :)))

Am corectat acum

bun. pana aici e clar .

<!DOCTYPE html>
<html>
<head>
    <script >
        var lat = prompt("Introduceți un număr întreg pentru lungimea pătratului.");

        function calculAriaPatrat(lat,param1,param2) {

           if (lat < 0) {
     alert ("doar numere pozitive");

        	}
            return lat*lat;

        }
   
        document.writeln('Aria patratului este ' + calculAriaPatrat(lat));        
            
    </script>
</head>
<body>
</body>
</html>

dar cum declar parametru si sa il leg diret cu de functie ?
de exemplu

if (lat < 0) {
     alert ("doar numere pozitive");

sa fie ceva de genul

if (lat < param1) {
     alert ("doar numere pozitive");. 

Declar variabila param1=0; si atat ? sau numesc o functie param1 unde ii declar blocul try catch pt eroare?

asta am primit ca raspuns de la mentor ;

"În funcţia de calcul, cele două verificări la care mă refeream, trebuie realizate doar pentru parametrul latura, acesta fiind parametrul considerat esenţial în calculul ariei. Deci, pentru a realiza succesiv cele două verificări va trebui să apară în principiu două if/else-uri imbricate. "