Jump to content

Cálculo da distância dos Raios


Recommended Posts

Posted

http://show.imagehosting.us/show/1771681/0/nouser_1771/T0_-1_1771681.JPG

Em tempos como os de agora, com muitas trovoadas este programa pode dar algum jeito quando não se tem nada que fazer  😄

Este programa efectua o cálculo, a partir dos segundos entre o Relâmpago (Luz) e o Trovão (Som), a distância a que o Raio caiu, de duas formas:

- 1 - Fornecendo os segundos directamente

- 2 - Fazendo um "live count", carregando num botão quando se vê o relâmpago e carregando novamente quando se ouve o trovão.

Desenvolvi (no papel) este programa numa aula de Física em que estava a dar esta matéria 😄

Está muito simples, ainda assim espero que gostem.

Cumps 🙂

PS: Mais logo posto o source code  😄

Edit: Se a imagem inicial não aparecer usem este link aqui

Daniel Correia

Posted

Deves indicar qual a linguagem que utilizaste

Done 😄

Ja postavas o executavel 😄

Há gajos mesmo cegos 😄

Está lá em cima o .rar com tudo 🙂

Têm de ter o .Net Framework 2.0 não se esqueçam!

Cumps 🙂

Daniel Correia

Posted

Bem, o código fonte é este: (se preferirem os ficheiros .vb e de projecto digam)

Public Class Form1
    Dim vsom_noar As Integer = 343
    Dim valor_metros As Integer
    Dim valor As Integer
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        valor_metros = (Val(txtTempo.Text) * vsom_noar)
        lblResultado.Text = "Resultado: " & valor_metros & " metros ou " & (valor_metros / 1000) & " km."
    End Sub

    Private Sub Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer.Tick
        lblTempo2.Text = Val(lblTempo2.Text) + 1
        valor = lblTempo2.Text
    End Sub

    Private Sub cmdAccao_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAccao.Click
        If cmdAccao.Text = "Começar" Then
            cmdAccao.Text = "Parar"
        Else
            cmdAccao.Text = "Começar"
        End If
        lblMetros.Text = "Resultado em metros " & (valor * vsom_noar) & "m"
        lblKm.Text = "Resultado em Kilómetros " & ((valor * vsom_noar)/1000) & "km"
        lblTempo2.Text = 1
        If Timer.Enabled = False Then
            Timer.Enabled = True
        Else
            Timer.Enabled = False
        End If
    End Sub
End Class

Daniel Correia

Posted

esses 343m/s do som são tãaaaaaaaaaaaaaao relativos 🙂

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Posted

1º: Gente cega é uma coisa... A única pessoa que deve ser cega deve ser um familiar teu ou mesmo tu, pois ninguém te deu o direito de falar dessa maneira...

2º: Quando falei em excutável falei mesmo em .exe. exe=EXEcutável

3º: Fui irónico no meu post, mas aquele smile dizia tudo, não!?

www.videosloucos.net

Posted

1º Estava a brincar contigo, não precisas de responder dessa maneira

2º Tens lá o .application que vai dar ao mesmo que o .exe, porque não consegui publicar aquilo para .exe

Cumps 🙂

Daniel Correia

Posted

Bem após algum tempo à volta disto já consegui meter num só .exe 🙂 Finalmente

Estou aberto a mais funcionalidades para o programa, alguém tem ideias?  ?

Daniel Correia

Posted
Em 26/11/2006 às 00:34, AriOps disse:

Bem após algum tempo à volta disto já consegui meter num só .exe 😄 Finalmente

Estou aberto a mais funcionalidades para o programa, alguém tem ideias?  ?

Tenho uma excelente ideia para ti...

Citação

The speed varies depending on atmospheric conditions; the most important factor is the temperature. Humidity has little effect on the speed of sound, nor does air pressure per se. Air pressure has no effect at all in an ideal gas approximation.

Ou seja, incluais também a temperatura ambiente  🙂 .

E claro, incluías uma margem de erro. Essa margem de erro era definido pelo utilizador. Tipo: 7 +- 0.1 seg -> que dava [ dist. mínima ; dist. máxima ]

Cumpr. bk@ero

Posted

 

Muito boa ideia 🙂 Vou estudar isso 😄

@pintassilgo:

Olha que isso não havia de ser muito difícil de fazer 😄

Cumps 😄

Daniel Correia

Posted
E claro, incluías uma margem de erro. Essa margem de erro era definido pelo utilizador. Tipo: 7 +- 0.1 seg -> que dava [ dist. mínima ; dist. máxima ]

Não percebi bem essa parte  ?

Mas a da temperatura ambiente já está a bombar  😄

Aqui vai o source e o .exe 😉

Public Class Form1
    Dim temp As Integer
    Dim vsom_noar As Double = (331.5 * ((1 + (temp / 273.15)) ^ (1 / 2)))
    Dim valor_metros As Double
    Dim valor As Integer
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        temp = Val(txtTemp.Text)
        valor_metros = Math.Round((Val(txtTempo.Text)) * (331.5 * ((1 + (temp / 273.15)) ^ (1 / 2))), 2)
        lblResultado.Text = "Resultado: " & valor_metros & " metros ou " & Math.Round((valor_metros / 1000), 2) & " km."
    End Sub

    Private Sub Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer.Tick
        lblTempo2.Text = Val(lblTempo2.Text) + 1
        valor = lblTempo2.Text
    End Sub

    Private Sub cmdAccao_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAccao.Click
        If cmdAccao.Text = "Começar" Then
            cmdAccao.Text = "Parar"
            temp = Val(txtTemp.Text)
            lblMetros.Text = "Resultado em metros:"
            lblKm.Text = "Resultado em Kilómetros:"
        Else
            cmdAccao.Text = "Começar"
            lblMetros.Text = "Resultado em metros: " & Math.Round((valor * (331.5 * ((1 + (temp / 273.15)) ^ (1 / 2)))), 4) & "m"
            lblKm.Text = "Resultado em Kilómetros: " & Math.Round(((valor * (331.5 * ((1 + (temp / 273.15)) ^ (1 / 2)))) / 1000), 4) & "km"
            lblTempo2.Text = 1
        End If
        If Timer.Enabled = False Then
            Timer.Enabled = True
        Else
            Timer.Enabled = False
        End If
    End Sub
End Class

Cumps 🙂

Daniel Correia

Posted

Então e um sensor para meter na rua que detecte a luz do relampago e o som do trovão? 🙂😄 :D 😄   Nugun, meke? eheh 🙂😄

Era "muita ninja, néra" ?

lollololl

epa... não esta nada mal pensado não  😄

Cumps

Posted
Em 26/11/2006 às 11:00, AriOps disse:

Não percebi bem essa parte  ?

Em vez de calculares uma distância, calculas duas distancias:

distância maior = d( tempo + erro )

distância menor = d( tempo - erro )

Cumpr. bk@ero  🙂

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.