Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
Aiuto su piccola applicazione in visual basic
Nuovo argomento   Rispondi    Indice del forum -> Programmazione
Precedente :: Successivo  
Autore Messaggio
giulioumif
Semidio
Semidio


Registrato: 21/07/05 14:00
Messaggi: 223
Residenza: Roma

MessaggioInviato: 28 Mag 2008 00:41    Oggetto: Aiuto su piccola applicazione in visual basic Rispondi citando

Non sono molto pratico di visual basic e chiedo se qualcuno sa illustrarmi questa piccola applicazione che chiede all'utente di inserire valori di base e altezza di un triangolo, ne calcola la base e poi calcola l'area massima e quella minima trovata. Soprattutto su questo ultimo punto non mi trovo(check??). Devo arrivare a riuscire a riscrivere questa applicazione da solo!!!


Private Sub Command1_Click()
Dim base(100) As Integer
Dim altezza(100) As Integer
Dim areetriangoli(100) As Double
Dim i As Integer
Dim ntriangoli As Integer
Dim areamax As Integer
Dim areamin As Integer


ntriangoli = Val(InputBox("quanti triangoli sono?"))
If ntriangoli < 2 Then
MsgBox ("i triangoli devono essere minimo DUE")
End
End If

For i = 1 To ntriangoli
base(i) = Val(InputBox("inserislci il valotre del " & i & "° base"))
If base(i) < 1 Then
MsgBox ("come puo essere il lato di un poligono pari o minore di 0")
End
End If

altezza(i) = Val(InputBox("inserisci il valore della " & i & "altezza"))
If altezza(i) < 1 Then
MsgBox ("come puo essere il lato di un poligono pari o minore di 0")
End
End If

areetriangoli(i) = base(i) * altezza(i) / 2
MsgBox ("il risultato è" & CStr(areetriangoli(i)))

Next i

areamax = areamassima(areetriangoli(), ntriangoli)
areamin = areaminima(areetriangoli(), ntriangoli)
MsgBox ("L'area massima è" & CStr(areamax) & ". L'area minima è" & CStr(areamin))

End Sub

Private Function areamassima(aree() As Double, naree As Integer) As Double
Dim check As Double

check = aree(1)
For i = 1 To naree

If aree(i) > check Then
check = aree(i)
End If
Next i

areamassima = check

End Function

Private Function areaminima(aree() As Double, naree As Integer) As Double
Dim check As Double

check = aree(1)
For i = 1 To naree

If aree(i) < check Then
check = aree(i)
End If
Next i

areaminima = check


End Function
Top
Profilo Invia messaggio privato HomePage
GrayWolf
Dio maturo
Dio maturo


Registrato: 03/07/05 17:24
Messaggi: 2325
Residenza: ... come frontiera i confini del mondo...

MessaggioInviato: 28 Mag 2008 22:25    Oggetto: Rispondi

Sono allocati tre vettori da 100 elementi ciascuno
uno per le basi
uno per le altezze
uno per le aree risultanti

Le richieste di base e altezza e il calcolo dell'area sono in un ciclo guidato dal numero di triangoli scelti.

le due funzioni richiamate [areamax e areamin] hanno la funzione di scegliere la più ampia e la più ristretta area.
Utilizzano un semplice meccanismo: il check [che è solo un transito all'interno delle funzioni].
I parametri passati alle due funzioni sono il vettore delle aree calcolate e il numero di triangoli scelto all'inizio [quest'ultimo per sapere quando fermarsi con l'analisi delle aree].

La funzione del check è quella di memorizzare il valore più alto o il più basso fra tutti.

un esempio:
supponiamo siano state calcolate 5 aree:
100 110 90 120 85
la funzione max restituirà 120 perché:

Codice:

check = 0  <<<valore in ingresso essendo una variabile locale
prima del ciclo check è impostato al valore del primo elemento
check = 100
esame 1° elemento: 100 = 100  => check invariato 100
esame 2° elemento: 110 > 100 => check = 110
esame 3° elemento: 90  < 110 => check invariato 110
esame 4° elemento: 120 > 110 => check = 120
esame 5° elemento: 85  < 120 => check invariato 120


nella funzione min avviene il contrario [infatti l'operatore di confronto è il contrario di quello nella funzione max].
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Programmazione Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi