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.042
149
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.042
149
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.042
149
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.042
149
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.042
149
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.042
149
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
M Sintassi "personalizzata" per mysql workbench? MySQL 0
D Troviamo gratuitamente influencer per collaborazioni Annunci servizi di Social Media Marketing 0
MarcoGrazia Categorie per settore merceologico di Google SEO e Posizionamento 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
matteoraggi Local seo per un B&B di Forli SEO e Posizionamento 3
D Ical: Sto realizzando un gestionale per i miei appartamenti di casa vacanza PHP 0
N Non Autorizzato. Dovresti rimuovere il parametro customize_messenger_channel per visualizzare l'anteprima in frontend. WordPress 1
P Aiuto per rendere un Bot Telegram Privato PHP 1
V Query per una somma PHP 2
A Tabella con bottoni per aggiornamento record PHP 6
G Consigli SEO per scrittura e struttura pagine SEO e Posizionamento 6
P Passare solo alcuni parametri a script per CSV PHP 0
A Consiglio per creazione sito web CMS (Content Management System) 0
A Regex per isolare link interni con rel noopener PHP 0
L form immagini per il database PHP 0
S CREAZIONE DI SITO PER CORSI DI FORMAZIONE WordPress 2
I [cerchiamo][retribuito] Grafico/a per stickers Offerte e Richieste di Lavoro e/o Collaborazione 0
R Cercarsi programmatore per GDR PBC Offerte e Richieste di Lavoro e/o Collaborazione 0
L Sessione e array per utenti PHP 0
A Sottoquery con group by per mese MySQL 0
G Appicazione HTML per inserimento dai in Database Access Microsoft HTML e CSS 0
V [Cerco] Socio e Sviluppatore per App PlacesFinder Offerte e Richieste di Lavoro e/o Collaborazione 0
M user agent per il download di api PHP 0
B Stringa sql per ricerca su più campi Database 1
Cosina Upload multiplo con invio allegati per email PHP 0
P Editor per la realizzazione di siti HTML e CSS 2
M Versione nativa per M1. Photoshop 1
A Aiuto per pagina php PHP 0
M [Cerco] aiutanti per creare sito Offerte e Richieste di Lavoro e/o Collaborazione 8
T [cerco] scrittore/scrittrice per articoli web Offerte e Richieste di Lavoro e/o Collaborazione 5
L Interfaccia grafica per gestire sql server .NET Framework 1
B javascript per problemi con pdf e Safari Javascript 0
R Plugin per Gestire videocorsi a pagamento WordPress 3
Y Vorrei selezionare un colore di sfondo per una pagina web Javascript 0
C media per riga MySQL 1
I Cerca: blogger IT per articoli di prova Offerte e Richieste di Lavoro e/o Collaborazione 0
R Plugin per Registrazione Utente e Pagamento prodotto WordPress 2
M Quando ha l'immagine ingrandita è possibile fare rotazione per ritagliare? Photoshop 0
D modificare questo codice per inserimento in text e non in tabella jQuery 1
U [Cerco ] incremento traffico per il mio sito Vendere e Acquistare pubblicita' online 0

Discussioni simili