quiz matematicafisica



  • quiz matematica/fisica
    di Vecchio Frac data: 16/05/2013 14:43:40

    Per riposarsi tra un lavoro e l'altro... da copiare in un modulo (ma va bene anche un foglio).

    Cosa fa questo codice? che scenario propone? o meglio, quale modello della vita reale cerca di simulare?
    Domanda aperta a tutti, ovviamente.
     
    Option Explicit
    
    Sub abc()
    Dim a As Single, b As Single, v As Single, c As Single, j As Long, i As Long, k As Long
    
        a = 0
        b = 100
        v = 1
        c = 1
        
        j = 0
        
        [A:E].Clear
        
        i = 1
        For k = 1 To 4
            Cells(1, k) = Choose(k, "a", "b", "v", "c")
            Cells(2, k) = Choose(k, a, b, v, c)
        Next
        With [A1:D1]
            .HorizontalAlignment = xlHAlignCenter
            .Font.Bold = True
            .Font.Color = vbBlue
        End With
        
        i = 4
        For k = 1 To 5
            Cells(4, k) = Choose(k, "#", "P", "A", "D", "V")
        Next
        With [A4:E4]
            .HorizontalAlignment = xlHAlignCenter
            .Font.Bold = True
            .Font.Color = vbBlue
        End With
        
        i = 5
        Do
            a = a + v
            j = j + 1
            
            If b - a > 0 Then
                For k = 1 To 5
                    Cells(i, k) = Choose(k, j, a - v, a, b - a, v)
                Next
            Else
                For k = 1 To 5
                    Cells(i, k) = Choose(k, j, a - v, a, a - b, v)
                Next
            End If
            
            If a > b Then
                i = i + 1
                Cells(i, 1) = "----->"
                Cells(i, 1).HorizontalAlignment = xlHAlignCenter
                Cells(i, 2) = a
                Exit Do
            End If
            
            If v <= 0 Then
                For k = 1 To 4
                    With Cells(i, k)
                        .Value = ":("
                        .HorizontalAlignment = xlHAlignCenter
                        .Font.Color = vbRed
                    End With
                Next
                Exit Do
            End If
    
            v = Sqr((b - a) * 2 * c)
            Cells(i, 5) = v
                    
            i = i + 1
        Loop
        
        i = i + 1
        
        Cells(i, 1) = "** End **"
        [A1].Select
    End Sub
    






  • di totygno71 data: 16/05/2013 15:10:26

    Io lo so!!!! U_U

    Simula il rapporto di coppia_ ^_^



  • di Vecchio Frac data: 16/05/2013 18:39:46

    o.O





  • di totygno71 data: 16/05/2013 20:26:23

    c'ho azeccato? O.o



  • di Vecchio Frac data: 16/05/2013 20:46:28

    Ma daiiii un po' di serietà ^_^
    ...no, non ci hai preso (ma come ti è venuta in mente una cosa così?)





  • di mandoz (utente non iscritto) data: 16/05/2013 21:05:44

    ciao VF
    perchè il tuo codice mi segnala ... errore di runtime 1004
    dove sbaglio



  • di Vecchio Frac data: 16/05/2013 21:23:49

    Davvero? :/
    Non dovrebbe... non c'è niente di strano a parte qualche abbellimento estetico... sono solo calcoli.
    Su quale riga compare l'errore?





  • di mabolsie data: 16/05/2013 21:48:46

    a me funziona ma non ci ho capito un H !!!
    Ciao Max



  • di mandoz (utente non iscritto) data: 16/05/2013 22:02:56

    ciao. non riesco a riprodurre l'errore. a me non funziona



  • di mabolsie (utente non iscritto) data: 16/05/2013 22:10:05

    @ mandoz
    Ciao che versione di excel hai ?
    Come hai fatto per trascrivere il codice di VF nell'editor VBA ?
    io ho fatto cosi : ho copiato ed incollato il codice nell'editor di foglio1 poi nel foglio ho creato un CommandButton e gli ho assegnato la sub abc quindi premendolo si attiva la routine di Vecio...

    spero di esserti stato utile

    Max




  • di mandoz (utente non iscritto) data: 16/05/2013 22:17:22

    ciao mab
    uso la versione 2010
    io ho fatto crtl_c/crtl_v ed ho poi assegnato il ctrl_b per l'esecuzione

    p.s.
    mi segnali il testo su quale stai studiando vba - non penso si possa incorrere in crimini pubblicitari

    greazie



  • di mabolsie (utente non iscritto) data: 16/05/2013 22:21:14

    @mandoz

    titolo : EXCEL ED OFFICE VBA
    autore : Gianni Giaccaglini
    edizioni : Hoepli

    Ciao Max



  • di mandoz (utente non iscritto) data: 16/05/2013 22:37:29

    grazie mab.
    ancora una cosa. puoi allegare il tuo file funzionante



  • di mabolsie (utente non iscritto) data: 16/05/2013 22:44:36

    @mandoz

    Fatto ciao



  • di Textomb data: 16/05/2013 22:57:51

    il codice di VF, è un processo iterativo che simula l'avvicinamento progressivo del valore a ---> b secondo una legge quadratica del tipo ((a-b)x2c)^0,5 in cui "c" è una costante di accelerazione.
    Non mi chiedete da dove se l'ha tirata fuori perchè secondo me lo sa solo lui.




  • di mabolsie (utente non iscritto) data: 16/05/2013 23:01:56

    @textomb
    ...secondo me non lo sa nemmeno lui l'avrà scopiazzata da internet.
    comunque se la risposta è giusta Complimenti !!!!

    Max



  • di Vecchio Frac data: 17/05/2013 09:35:49

    Senza accrocchi strani, potete incollare il codice in un modulo e poi lanciare la macro da lì con F5 (o dal foglio, con Alt-F8 per mostrare le macro attive ed Esegui). Non serve quindi assegnarla ad un commandbutton (per eseguire codice al volo basta fare così, intendo).

    Nel merito, Textomb, che è ingegnere mica per niente, direi che ha risposto correttamente.
    Il programmino dovrebbe essere un simulatore del moto (uniformemente) accelerato.
    E perdonatemi se sono impreciso, non è il mio campo!
    Comunque non ho scopiazzato da internet, è un frammento di un programma più complesso che ho iniziato in un altro linguaggio di programmazione, per risolvere un problema di moto di un oggetto che deve spostarsi da un punto A a un punto B dopo avergli impresso una certa spinta iniziale e che va progressivamente decelerando finchè raggiunge l'obiettivo ovvero finchè non esaurisce la sua velocità di avvicinamento. Potete farvi un'idea del programmino pensando al Subbuteo o a un biliardo.

    Le mie conoscenze (quasi nulle) di matematica e fisica mi hanno costretto a chiedere aiuto nel forum di quel linguaggio, ho ottenuto facilmente l'aiuto sperato e poi ho tradotto la formula(ccia) in VBA. Traduzione abbastanza banale, ma il codice risulta molto più lungo dell'originale, la cui sintassi pulita e immediata è veramente da invidia :)

    Grazie a tutti per aver partecipato... ogni tanto tirerò fuori questi quiz per pura curiosità ^_^





  • di Textomb data: 17/05/2013 11:14:06

    ecco perchè c'ho azzeccato...
    sono appassionato di biliardo (5 birilli) all'italiana.



  • di mabolsie (utente non iscritto) data: 17/05/2013 13:05:55

    @ VF

    ...guarda che stavo scherzando, non ti sarai mica offeso !?! lo so che sei un professionista della programmazione io sono un hobbista seguo il vba quando ho un ritaglio di tempo libero non conosco le finezze di voi esperti.
    Ciao Buona giornata

    Max



  • di Vecchio Frac data: 17/05/2013 14:28:20

    Figurati!! nemmeno io sono un programmatore di professione ma un autodidatta e un appassionato!
    E' che io sono proprio negato con le leggi della fisica. Affascinanti ma difficili da tradurre in un modello al computer. Per questo hai indovinato dicendo che non era farina del mio sacco... perlomeno la formula, il resto del codice invece sì ^_^