js per calcolo area [Aiuto per programmino!!]

sabiuf

Nuovo Utente
1 Giu 2012
13
0
0
Per favore, qualcuno potrebbe aiutarmi con questo programmino? (sono ai primi passi con Javascript!!)
L'obbiettivo è quello di trovare l'area di un poligono scomponibile in + triangoli..
Ho provato ciò che segue, ma senza ottenere risultati!!

PHP:
<html>
	<head>
		<title> triangoli </title>
	</head>


	<body>

		<SCRIPT LANGUAGE=Javascript>
		var triangoli=prompt("digita il numero dei triangoli che compongono il poligono: ") 
		var t1 = new Array()
		var i
		var l1
		var l2
		var l3
		var sp
		var a =new array(triangoli)
		var x

		for (i=0; i<triangoli; i++)
		{
		t1[0]=  prompt("digita la lunghezza del primo lato di un triangolo: ");
		t1[1]=	prompt("digita la lunghezza del secondo lato dello stesso triangolo: ");
		t1[2]=	prompt("digita la lunghezza del terzo lato dello stesso triangolo: ")
		sp= (t1[0]+t1[1]+t1[2])/2
		a[x]= Math.sqrt(sp*(sp-t1[0])*(sp-t1[1])*(sp-t1[2]))
		}
		
			document.write("a" + "br")



		</script>
		

	</body>

</html>

dove sono gli errori??
e come faccio a dirgli di salvare a (l'area) per ogni triangolo inseriro??
e come faccio a sommare tutte le aree??

Ringrazio di cuore chi è disposto ad aiutarmi!!
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
mi sembra che sia questo quello che vuoi
HTML:
<html>
<head>
<title> triangoli </title>
</head>
<body>
<script type="text/javascript">
	var triangoli=prompt("digita il numero dei triangoli che compongono il poligono: ");
	var t1 = new Array();
	var i;
	//var l1
	//var l2
	//var l3
	var sp;
	var a =new Array();
	var x;
	var totale= 0;
	for (i=1; i<=triangoli; i++)
	{
		t1[0]=  prompt("digita la lunghezza del primo lato del triangolo "+i+": ");
        t1[1]=    prompt("digita la lunghezza del secondo lato del triangolo "+i+": ");
        t1[2]=    prompt("digita la lunghezza del terzo lato del triangolo "+i+": ");
        sp= (t1[0]+t1[1]+t1[2])/2;
        a[i]= Math.sqrt(sp*(sp-t1[0])*(sp-t1[1])*(sp-t1[2]));
		document.write("area triangolo " + i + ": "+a[i]+"<br>");
		totale = totale + a[i];
	}
	document.write("area totale poligono: " + totale +"<br>");
</script>
</body>
</html>
poi se per salvare intendi "ricordare per sempre" devi ricorrere a un db, ma credo che in questo casi devi ricorrere ad un linguaggio lato server

p.s.
cerca di scrivere i titoli del post più adeguati
 

sabiuf

Nuovo Utente
1 Giu 2012
13
0
0
Ti ringrazio per l'impegno.....

ma il programma dà risultati sbagliati....Per esempio se nel 1° triangolo inserisco i lati di 3, 4 e 5 l'area risulta di 28726.767488050235 !!
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ho trovato l'errore (dopo vari tentativi e modifiche)
come vedi ho messo un sacco di alert per seguire cosa fa e cosi mi sono accorto dove sbagliava (leggi i commenti)


HTML:
<html>
<head>
<title> triangoli </title>
</head>
<body>
<script type="text/javascript">
	var triangoli=prompt("digita il numero dei triangoli che compongono il poligono: ");
	//var t1 = new Array();
	var i;
	var t1 = new Array();
	var t2 = new Array();
	var t3 = new Array();
	var sp = new Array();
	var a =new Array();
	var totale= 0;
	for (i=1; i<=triangoli; i++)
	{
		sp[i]=0;
		alert ("semiperimetro inizio "+sp[i]);//sin qui ok
		t1[i]=  prompt("digita la lunghezza del primo lato del triangolo "+i+": ");
		alert ("lato uno non numero"+t1[i]);//sin qui ok
		t2[i]=  prompt("digita la lunghezza del secondo lato del triangolo "+i+": ");
		alert ("lato due "+t2[i]);//sin qui ok
        t3[i]=  prompt("digita la lunghezza del terzo lato del triangolo "+i+": ");
		alert ("lato tre "+t3[i]);//sin qui ok
        //sp[i]= t1[i]+t2[i]+t3[i];//!!!!!!l'errore è qui inserendo 1, 2 , 3 risulta 123 invece di 6
		sp[i]= t1[i]*1+t2[i]*1+t3[i]*1;//moltiplicando *1 i valori risulta 6 come dovrebbe essere
		alert ("perimetro "+sp[i]);
		sp[i]= sp[i]/2;
        alert ("semiperimetro "+sp[i]);
		a[i]= Math.sqrt(sp[i]*(sp[i]-t1[i]*1)*(sp[i]-t2[i]*1)*(sp[i]-t3[i]*1));
		document.write("area triangolo " + i + ": "+a[i]+"<br>");
		totale = totale + a[i];
	}
	document.write("area totale poligono: " + totale +"<br>");
</script>
</body>
</html>
 

sabiuf

Nuovo Utente
1 Giu 2012
13
0
0
che dire....... grazie! sei un grande!!!!
Ti chiedo un'ultima cosa... come si può inserire un prompt in cui scrivere l'unità di misura (a risposta chiusa)??
per esempio all'inizio "Seleziona l'unità di misura: mm, cm, dm, m, dam, hm, km"
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non credo che ci sia la possibilità di usare come in html le <select>
al massimo si può fare un controllo sulla variabile u_m, es se vuota o diversa dall'elenco di default vengono metri

HTML:
<script type="text/javascript">
	var triangoli=prompt("digita il numero dei triangoli che compongono il poligono: ");
	var u_m=prompt("scegli unit&agrave; di misura (mm, cm, dm, m, dam, hm, km)");
	// eccetera
	
	document.write("area totale poligono: " + totale +" "+u_m+"<sup>2</sup><br>");
</script>


p.s.
poi togli tutti gli alert (altrimenti uno impazzisce nell'inserire i dati)
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Ciao,

per una addizione 1 + 2 + 3 puoi utilizzare una dichiarazione eval per non avere 123 ma 6

//sp= t1*1+t2*1+t3*1;//moltiplicando *1 i valori risulta 6 come dovrebbe essere

sp= eval(t1+t2+t3);


Valeria.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao vale
sei sicura?

HTML:
sp[i]=eval(t1[i]+t2[i]+t3[i]);
alert ("perimetro "+sp[i]);
risulta perimetro 123

anche se sinceramnte non so perchè. js non è stato mai la mia passione
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao vale
ecco così funzia
ma visto che a me (mi) piace la polemica
se conti i caratteri che devi digitare il col mio sistema ne digiti meno (occhio allo spreco - vedi striscia)
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Ciao,

il problema non è la quantità di caratteri da scrivere per una funzione.

Javascript calcola prima le moltiplicazioni e le divisoni nell'ordine scritto, dopo le addizioni e sottrazioni nell'ordine scritto,

quindi prima esegue le *1 *1 *1 e dopo i + e alcuni Browser non lo digeriscono.

se fai un calcolo 7+3/2 ti da come risultato 8.5 non 5.

Per avere 5 (7+3)/5

Math.sqrt(numero) per la radice quadra.

Valeria.
 

sabiuf

Nuovo Utente
1 Giu 2012
13
0
0
vi ringrazio per il tempo dedicato!!
:byebye: mi è stato davvero utile..
Potreste consigliarmi qualche buona guida per imparare Javascript o altri linguaggi di programmazione?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
@sabiuf
se guardi in home tre le guide puoi trovare qualcosa che ti interessa.

@vale
se un bw (e come la maggior parte dei linguaggi) non segue la precedenza degli operatori vuol dire che è un bw o linguaggio "quasi" polacco.

1+2*3 da 7
5+6/3 da 3
4-7%3 da 1
dico quasi polacco perche non credo che ci siano linguaggi o bw che seguano la notazione polacca inversa
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Ciao,

come detto prima * e / dopo + e - nell'ordine scritto.

1+2*3 da 7 SI 3*2+1 se segui la sequenza 1+2 = 3 * 3 = 9

5+6/3 da 7 SI 6/3 = 2 + 5 = 7 non 3 se segui la sequenza 5+6 =11 / 3 = 3.6666666666666665

4-7%3 da 3 SI 7%3 = 1 4-1 = 3 sequenza 4-1 = 3

L'operazione che devi eseguire per prima tra parentesi


Codice:
<script type="text/javascript">
document.write("1+2*3 = " + (1+2*3)) // = 7
document.write("<br>")
document.write("5+6/3 = " + (5+6/3)) // = 7
document.write("<br>")
document.write("4-7%3 = " + (4-7%3)) // = 3
</script>

In sequenza

Codice:
<script type="text/javascript">
document.write("1+2*3 = " + ((1+2)*3)) // = 9
document.write("<br>")
document.write("5+6/3 = " + ((5+6)/3)) // = 3.6666666666666665
document.write("<br>")
document.write("4-7%3 = " + (4-(7%3))) // = 3
</script>

Saluti, Valeria.
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Problema con php per calcolo costo percentuale PHP 7
claudio_lorenzo [Javascript] aiuto su jquery per calcolo altezze dom Javascript 1
N [Java] Piccolo jform per calcolo totale da 2 campi i double Java 0
matteoraggi VPS specifica per calcolo ffmpeg Server Dedicati e VPS 1
T [PHP] Calcolo anzianità soggetti [era: Help me :( Esercizio per me impossibile] PHP 9
D Creare script per calcolo ore PHP 11
M php / mysql calcolo prezzo base preventivo per hotel PHP 34
N [risolto] Funzione per calcolo età PHP 4
M Aiuto!!! Variabili date per calcolo preventivo Classic ASP 0
frankiedeguello Javascript per calcolo sconti Javascript 6
felino Lubuntu 18.04 Requisiti per applicazione console .net core 7.0 Linux e Software 0
M pulsante per aprire una maschera che contiene controllo schede MS Access 0
E Aiuto per query PHP 8
E Il punto di riferimento italiano per Trailers cavalli Discussioni Varie 0
F CERCO Servizi SEO di Qualità per Agenzie di Servizi SEO e Posizionamento 3
D Miglior modo per estrarre le occorrenze di un elemento in un set di più file xml e quindi scrivere il risultato in una tabella Excel o magari in JSON XML 0
A Cerco programmatore/sviluppatore per creare forum Offerte e Richieste di Lavoro e/o Collaborazione 2
R Plugin di base per WordPress WordPress 0
D [COMPRO/CERCO] GUEST POST o scambio link per sito di Spiritualità ed Esoterismo. Vendere e Acquistare pubblicita' online 0
L Suggerimento Pagespeed per non vedenti HTML e CSS 0
M Analisi sito per pulire codice inutile HTML e CSS 1
Paolo69 Risolto reCAPTCHA v2 per ASP Classic ASP 0
M Hosting VPS per server di gioco Minecraft Hosting 0
N Grazie per il benvenuto Presentati al Forum 0
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
R Filtri e plugin per photoshop Photoshop 0
AkTaRuS DIsabilitare il tasto destro tranne che per code e pre Javascript 1
0 [Retribuito] Cercasi programmatore per GdR PbC Offerte e Richieste di Lavoro e/o Collaborazione 0
A Adempimenti per magazine on line Leggi, Normative e Fisco 0
R Recupero di permalink di un sito che è stato eliminato per errore WordPress 5
I aiuto urgente per thunderbird Posta Elettronica 0
A Web master per semplice sito web Offerte e Richieste di Lavoro e/o Collaborazione 2
M [Cerco][Gratuito] Artista/designer per creazione grafica gioco di società Offerte e Richieste di Lavoro e/o Collaborazione 0
M Un saluto per cominciare Presentati al Forum 1
N MAX() + ADD_DATE - per update su Mysql MySQL 0
G Qualcuno conosce questo software per gestire le telecamere IP Cam e Videosorveglianza 0
A [CERCO] Articolista per siti a tema eventi e feste private Offerte e Richieste di Lavoro e/o Collaborazione 0
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
I aiuto per outlook Posta Elettronica 0
L Script per convertire numeri in parole Javascript 2
J [Cerco] [Collaborazione gratuita] Grafico per piccoli lavori di grafica Offerte e Richieste di Lavoro e/o Collaborazione 0
M Memorizzazione temi per le diverse pagine del sito Javascript 1
otto9due Proteggere file caricati dall'esterno ma renderli accessibili per gli utenti loggati. PHP 4
E Consigli per hosting reseller Hosting 0
T aiuto per trasformare un quiz fatto in JS in un quiz in JQUERY jQuery 0
F Cerco fotografo per sito abiti da sposa Discussioni Varie 2
R [cerco][retribuito] Collaborazione per creazioni loghi ed altro Offerte e Richieste di Lavoro e/o Collaborazione 0
M Unire 2 funzioni per l'invio di un form e con l'apertura di un div Javascript 0
seranto Blocco preventivo e Registro dei Consensi per Cookie tecnici? Leggi, Normative e Fisco 2
D Come estendere la tariffa per Wordpress con Visa? Hosting 1

Discussioni simili