• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Gondim

VB.2005 Express Edition - Arrays

12 mensagens neste tópico

Boas,  sou novo por este forum e também em programação  :fartnew2:

Estava a fazer um jogo em Visual basic 2005 Express Edition  cheguei a um ponto que nao sie o que  fazer

Estou a fazer um quiz sobre a Uniao Europeia com arrays

As perguntas quero que elas saiam numa label mas nao estou a conseguir,

tenhu as perguntas e as opçoes que iram sair nos radio butoms que serão as opçoes para acertar na resposta certa

por agora presisava de ajuda para por as perguntas a sair aleatoriamente

vejam a minha "calinada" e corrigam os erros e digam o que tenhu de fazer sff ....

Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        inicia()

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Randomize()

        Dim value As Integer = CInt(Int((30 * Rnd())))

        Dim i As Integer

        Dim Pergunta(13) As String

        For i = 0 To 13

            Label1.Text = Pergunta(i)

        Next

        Pergunta(0) = "Qual das seguintes Peninsulas nao faz parte do litoral Europeu ??"

        Pergunta(1) = "Em que dia se celebra o Dia da Europa ?"

        Pergunta(2) = "Qual o pais mais rico da União europeia ?"

        Pergunta(3) = "O maior Vulcão da União Europeia é ..."

        Pergunta(4) = "Qual a maior ilha na Europa ?"

        Pergunta(5) = "Por quantos estados-membros é composta a União Europeia ?"

        Pergunta(6) = "Segundo a Mitologia Grega 'Europa' foi..."

        Pergunta(7) = "Qual o maior rio da europa?"

        Pergunta(8 ) = "Qual destes paises nao foi fundador da União Europeia "

        Pergunta(9) = "Qual destes paises nao faz parte da União Europeia ?"

        Pergunta(10) = "Na Letónia fala-se o ... "

        Pergunta(11) = "Porque e que a bandeira da UE tem doze estrelas ?"

        Pergunta(12) = "Em que ano Portugal aderiu á CEE ?"

        Pergunta(13) = "Qual dos seguintes objectivos nao é da União europeia ?"

        For i = 0 To 13

            Label1.Text = Pergunta(i)

        Next

    End Sub

Para ja so gostava da ajuda nas perguntas a sair aleatoriamente na label, também ja tentei fazer com Case e nao deu assim como eu cria  :(

Desde já agradeço  :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá,

Experimenta assim:

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim Pergunta(13) As String

        Pergunta(0) = "Qual das seguintes Peninsulas nao faz parte do litoral Europeu ??"

        Pergunta(1) = "Em que dia se celebra o Dia da Europa ?"

        Pergunta(2) = "Qual o pais mais rico da União europeia ?"

        Pergunta(3) = "O maior Vulcão da União Europeia é ..."

        Pergunta(4) = "Qual a maior ilha na Europa ?"

        Pergunta(5) = "Por quantos estados-membros é composta a União Europeia ?"

        Pergunta(6) = "Segundo a Mitologia Grega 'Europa' foi..."

        Pergunta(7) = "Qual o maior rio da europa?"

        Pergunta(8 ) = "Qual destes paises nao foi fundador da União Europeia "

        Pergunta(9) = "Qual destes paises nao faz parte da União Europeia ?"

        Pergunta(10) = "Na Letónia fala-se o ... "

        Pergunta(11) = "Porque e que a bandeira da UE tem doze estrelas ?"

        Pergunta(12) = "Em que ano Portugal aderiu á CEE ?"

        Pergunta(13) = "Qual dos seguintes objectivos nao é da União europeia ?"

      Dim rnd As New Random

      Dim result As Byte = rnd.Next(0,13)

      Label1.Text = Pergunta(result)

    End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim assim ja apareceu lás as perguntas na label

muito obrigado jpaulinho...és o rei  ;D

Agora qeria saber como irei fazer para quando selecionar o radiobutton com a resposta do utilizador

como irei fazer para aceitar a resposta certa e a errada ?

tenhu um ideia mas ja tentei ia ta-me a atrofiar :X

é o 1º ano de programaçao :(

Desde ja agradeço ...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O ideal para este tipo de projecto era criares uma base de dados. Entao fazias corresponder da seguinte forma.

Tabela Perguntas

ID - Pegunta

Tabela Respostas

ID - IDPergunta - Resposta - Certa

Depois tinhas de manipular a informação da db. Ao selecionares uma pergunta ias buscar as respostas possíveis. Dá um pouco de trabalho mas fica bonito.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ya acho que vai ser isso que vou fazer , base de dados comecei a pouco

mas talves falando ao meu prof pode ser que ele me dê uma ajudinha ;D

tnk's jpaulinho...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá,

Experimenta assim:

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim Pergunta(13) As String

        Pergunta(0) = "Qual das seguintes Peninsulas nao faz parte do litoral Europeu ??"

        Pergunta(1) = "Em que dia se celebra o Dia da Europa ?"

        Pergunta(2) = "Qual o pais mais rico da União europeia ?"

        Pergunta(3) = "O maior Vulcão da União Europeia é ..."

        Pergunta(4) = "Qual a maior ilha na Europa ?"

        Pergunta(5) = "Por quantos estados-membros é composta a União Europeia ?"

        Pergunta(6) = "Segundo a Mitologia Grega 'Europa' foi..."

        Pergunta(7) = "Qual o maior rio da europa?"

        Pergunta(8 ) = "Qual destes paises nao foi fundador da União Europeia "

        Pergunta(9) = "Qual destes paises nao faz parte da União Europeia ?"

        Pergunta(10) = "Na Letónia fala-se o ... "

        Pergunta(11) = "Porque e que a bandeira da UE tem doze estrelas ?"

        Pergunta(12) = "Em que ano Portugal aderiu á CEE ?"

        Pergunta(13) = "Qual dos seguintes objectivos nao é da União europeia ?"

      Dim rnd As New Random

      Dim result As Byte = rnd.Next(0,13)

      Label1.Text = Pergunta(result)

    End Sub

Reparei assim repete as perguntas, até mesmo sai duas iguais seguidas, se fizer com for isto ja nao acontece pois não ?

se conseguirem agradecia como faço com o for ...

Desde já o muito obrigado ;D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao ligues ao portugues ja tou meio a dormir xD

o que queria saber era se usar o ' for

se as perguntas saiam repetidas ?

se conseguires fazer com que as perguntas nao sai.ssem repetidas agradecia

pois não tem muita logca sairam 2 perguntas iguais seguidas :S

mas pelo menos ja saem as perguntas :(

Agradeço ... ;D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes fazer qualquer coisa do género:

    Private myResultList As New List(Of Byte)

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim rnd As New Random

        Dim result As Int16

        Dim maxResults As Byte = 14

        If myResultList.Count < maxResults Then

            Do

                result = rnd.Next(0, maxResults)

                If myResultList.Count = 0 Then Exit Do

            Loop Until Not myResultList.Contains(result)

            Label1.Text = Pergunta(result)

            myResultList.Add(result)

        Else

            MessageBox.Show("Fim das perguntas ...")

            myResultList.Clear()

        End If

    End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Opps! Esqueci de colocar as perguntas. É so acrescentares :-)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

jpaulino, pk tas a dimensionar como byte?

Podes meter a resposta correcta numa colecção, em vez de bd.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

>> Podes meter a resposta correcta numa colecção, em vez de bd.

É apenas um exemplo claro e com não deveram existir mais do 255 perguntas um byte é o suficiente.

De qualquer maneira as colecções existem no .NET por uma questão de compatibidade com as versões anteriores do VB(namespace Microsoft.VisualBasic), como é o caso do VB6. Actualmente são mais utilizadas as Lists por são strong type ou seja obriga o programador a utilizar o formato correcto na sua utilização, evitando error no desenvolvimento. São bastantes leves em termos de recursos para o sistema e fáceis de utilizar.

Existem também as ArrayList, que são também fáceis de usar, mas são mais "pesadas".

Acho ainda que utilizar colecções ou outro tipo para armazenar dados não é um método muito versátil pois obriga a algo estático. Com um pequena db (nem que seja com recursos a um ficheiro txt ou xml), basta actualizar a fonte de dados  e temos um novo programa.

Acho que será um bom teste e um projecto engraçado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

jpaulinho obrigado ^^

ja dá como eu qeria !!!

nao havia uma maneira de fazer isto , eu inda nao dei mas disseram que dava apara fazer com uma cena

tipo  for i to ... ?

nao sei muito bem ...

mas assim ja ta bacano agora so me falta por a aceitar a resposta certa e dizer se ta errada.

vou tentando

mais um a vez muito obrigado jpaulinho  :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora