O funcție numită calculAriaPatrat calculează, așa cum îi zice și numele, aria unui pătrat și are nevioe de exact un parametru. Orice alt parametru în plus înseamnă că funcția face mai mult decât îi spune numele, deci trebuie redenumită.
Unde faci cursul ăsta online?
Un mentor nu ar trebui să te scutească de întrebari pe forumuri? I.e. n-ar trebui să-ți explice lucrurile ce nu le înțelegi, mai ales dacă vorbim de lucruri de bază? Faptul că nu îți dă mentorul răspunsul dar ți-l dăm noi nu te ajută prea mult în procesul de învățare.
PS: codul pe forum nu se pune între ghilimele, se pune între trei backticks (```)
Da, am inteles si mi-a explicat si mentorul.
Cursul il fac pe o platforma online care nu cred ca are vreo importanta.
Imi place programarea si tocmai din cauza asta intreb pe diverse forumuri ce si cum trebuie facut, pt ca vreau sa inteleg de ce.
Mentorul este ok si imi raspunde in general destul de promt dar chiar si asa vreau sa inteleg de ce si cum functioneaza asta fiind motivul sa vin si aici.
Sunt incepator si ca orice incepator sunt curios presupun ca pentru multi de aici e joaca de copii… Pe mine ma doare capul deja…
var lat = prompt ("Introduceți un număr întreg pentru lungimea pătratului.");
function calculAriaPatrat(lat,param1,param2) {
param1 = 0;
if (lat >= param1)
{
return lat*lat
}
else if (lat < param1 ) {
alert("Introduceți un numar intreg fara valoare negativa.")
return "Invalida.Introduceți din nou"
}
else{alert("Introduceți doar cifre.")
return "Invalida.Introduceți din nou"}
}
document.writeln('Aria patratului este ' + calculAriaPatrat(lat));
</script>
```
nu stiu cum as putea sa folosesc parametrii la aria patratului in context.
Mentorul mi a sugerat o metoda de folosire " param1 ar putea reprezenta precizia de zecimale cu care va fi afişat rezultatul, iar param2 va fi corespunzător numărului de poziţii cu care rezultatul va fi deplasat spre dreapta(fiind corespunzător numărului de caractere spaţiu ce vor fi adăugate înainte de valoarea calculată), sau lui param1 şi param2 li se pot asocia alte întrebuinţări."
Dar pur si simplu m-am blocat… am inebunit youtube ul si alte forumuri de profil si n-am gasit nicio solutie si sunt foarte curios de rezolvarea sa.
As aprecia f mult daca cineva mi-ar arata un model si sa inteleg de ce.
Mai jos am definit functia care se apeleaza. O functie se defineste folosind cuvantul cheie function. Functiile pot primi 0 sau n parametrii. In cazul nostru functia nu are parametrii.
Ceea ce este intre acolade reprezinta corpul functie. Acolo scrii ceea ce vrei sa faca functia. In cazul de fata:
Citeste valoarea pe care o scrii in casuta. getElementById("laturaPatrat").value extrage valoarea din acel camp. Observam ca primeste ca parametru id-ul elemetrului input type, id care se cheama laturaPatrat
Face o verificare daca adimensiunea este negativa, intrucat nu exista patrat cu dimensiunea < 0.
Mai folosesc inca o data getElementById, dar o apelez cu numele tag-ului unde doresc sa scriu rezultatul. In cazul nostru, elementul <p id="rezultat"></p>.
Pt calcul, am nevoie sa ridic la patrat dimensiounea, asa ca folosesc pachetul Math unde am functia pow(baza, exponent). Baza este dimensiunea laturii patratului si exponentul este 2 (dimensiune^2). Alternativ pot folosi si dimensiune * dimensiune
<script>
function calculeazaArie() {
let dimensiune = document.getElementById("laturaPatrat").value //citim ceea ce am introdus in text box
if (dimensiune < 0)
document.getElementById("rezultat").innerHTML = "Latura unui patrat nu poate fi negativa"
document.getElementById("rezultat").innerHTML = Math.pow(dimensiune, 2); //ridica la patrat. sau dimensiune * dimensiune
}
</script>
Sper ca am explicat de cat de clar se poate.
Nota:
O alta verificare care ar trebui facuta este ca inputul sa fie numeric. Ce se intampla daca introduc o litera in campul pt dimensiune ?
Multumesc frumos pentru raspuns. Am inteles si inteleg destul de bine, ce nu am inteles a fost introducerea celor doi parametri si cum sa le dau un rol in functia de fata.
Salut! Cred ca acelasi curs fac si eu, cerintele fiind identice.
Ai reusit pana la urma ? Ti-a acceptat assingmentul ?
Daca da, ne scrii si noua te rog ?
Multumesc :-*
Multumesc, am inteles. Am cautat si o solutie
“else if (isNaN(x)) document.writeln(“Latura unui patrat trebuie sa fie un numar pozitiv”);”
Dar nu functioneaza. Care ar fi solutia ?
Multumesc.
Salut. Multumesc pt raspuns.
Dar cerinta, pe care nu reusesc sa o indeplinesc este asa: “nu ar trebui să fie posibil ca pentru aceste laturi ale pătratului să se introducă valori negative, valori care nu sunt cifre, nici să rămână câmpuri goale.”
Aici nu ma descurc, am cautat pe mai multe site-uri.
Multumesc.
var a = prompt("Introduceti dimesiunea laturii patratului ");
var b;
var c;
function area(a, b, c) {
return a*a; //functia de calcul (nu afiseaza date)
}
if (a < 0) //structurile conditionale
document.writeln("Latura unui patrat trebuie sa fie un numar pozitiv");
else if (isNaN(a))
document.writeln("Latura unui patrat trebuie sa fie un numar pozitiv");
else
document.writeln(area(a, b, c)); //val returnata ".
Problema este ca: “Verificările asupra valorii lungimii laturii trebuie realizate în cadrul implementării funcției, și nu separat de implementarea acesteia. Daca verific întâi, dacă valoarea lungimii laturii este numerica, iar apoi pozitiva nu functioneaza.”
Pai nu ai nevoie ca functia sa aibe 3 parametrii avand in vedere ca un patrat are toate laturile egale
Pui acele if-uri in functia ta
Codul ar arata cam asa
var a = prompt("Introduceti dimesiunea laturii patratului ");
function area(a) {
if (a < 0) //structurile conditionale
document.writeln("Latura unui patrat trebuie sa fie un numar pozitiv");
else if (isNaN(a))
document.writeln("Latura unui patrat nu poate fi un string de caractere");
else
return a * a; //functia de calcul (nu afiseaza date)
}
document.writeln(area(a))
Salut multumesc de rapuns, dar asa scrie in cerinta: “o functie care primeste 3 parametri” (ma gandesc ca urmatorul assingment va fi ceva mai complicat care chiar are nevoie de 3 parametri)
Cum am scris mai sus: “Daca verific întâi, dacă valoarea lungimii laturii este numerica, iar apoi pozitiva nu functioneaza.””
Rezolvarea corecta ar fi:
Cu variabila în care va fi stocată valoarea lungimii laturii se va apela funcția, iar dacă funcția va returna valori, atunci se va utiliza o structură condițională pentru a afișa anumite mesaje în funcție de valorile returnate la apelul funcției.
Altfel spus:
if (x == -1) {
document.writeln(“Latura unui patrat trebuie sa fie un numar pozitiv”);
}
s.a.m.d.
Apreciez mult ajutorul.
Stati pe faza ca mai am unu’ imediat un pic mai greu
Multumim frumos ca ne oferi acces gratuit la un curs care probabil valoreaza cateva mii de euro.
Asteptam exercitiul urmator sa ii dam de cap impreuna.