.EXO Posted April 15, 2009 at 01:23 PM Report #256901 Posted April 15, 2009 at 01:23 PM Bem... eu ainda sou bastante verde nestas andanças e para aprender a fazer algumas coisas estou a tentar fazer uma pequena quiz. A quiz funciona assim: Aparece uma pergunta numa form, selecciono a resposta em quatro possibilidades e carrego em "próxima", depois de carregar a form desaparece e aparece uma nova com uma nova pergunta. A parte de por a aparecer e a desaparecer e isso já está mas agora estou com dois problemas. 1º - Como é que eu faço para se escolher a resposta certa ter X pontos e se errar 0 pontos e depois no final aparecer a pontuação final numa TextBox? 2º - Como é que faço para aparecer uma janela a dizer "Erro" se não se escolher nenhuma resposta? Desde já obrigado^^
scorch Posted April 15, 2009 at 02:37 PM Report #256909 Posted April 15, 2009 at 02:37 PM 1º - Fazes, na primeira form: Public Property pontuacao() As Integer Get End Get 'etc Depois verificas se a resposta é a correcta, então adicionas-lhe a pontuação, senão não adicionas. 2º - MessageBox.Show("A resposta está errada!"); PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.
ricafilipe Posted April 16, 2009 at 12:23 AM Report #257021 Posted April 16, 2009 at 12:23 AM 1º- -Crias uma variável para a pontuação: dim pontuacao as integer -Depois vais somando pontos se a resposta estiver certa: dim resposta_certa as boolean=false if resposta_certa=true then pontuacao += 1 (ou outro valor, depende dos pontos que queiras dar) end if 2º- Não sei bem com o que estás a trabalhar, pode ser com checkbox, radiobutton, ... Por isso vou dizero código do programa todo em geral: -Se não estiverem seleccionadas respostas então: dim resposta_seleccionada as boolean=false if resposta_seleccionada=true then 'verifica se a resposta está certa: if resposta=true then 'dá pontuação: pontuacao += 1 end if -mostrar próxima pergunta else msgbox("Resposta errada", "Aviso!") end if Metes isto dentro de um botão. Fiz com variáveis booleans. 🙂
.EXO Posted April 16, 2009 at 05:16 PM Author Report #257126 Posted April 16, 2009 at 05:16 PM 1º - Fazes, na primeira form: Public Property pontuacao() As Integer Get End Get 'etc Depois verificas se a resposta é a correcta, então adicionas-lhe a pontuação, senão não adicionas. 2º - MessageBox.Show("A resposta está errada!"); Não percebi bem como utilizar o código no 1º problema. Podes explicar melhor? Obrigado também ao ricafilipe pela ajuda 😉
scorch Posted April 16, 2009 at 07:09 PM Report #257152 Posted April 16, 2009 at 07:09 PM Dim propriedade As Integer = 0 Public Property valor_pontuacao() As Integer Get Return propriedade End Get Set(ByVal value As Integer) propriedade = value End Set End Property 'Para aceder ao valor da propriedade 'nome_do_form_em_que_foi_daclarada_a_propriedade.nome_da_propriedade.Text frm_main.valor_pontuacao.Text Assim, tratas isto como uma variável. 😉 PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.
jpaulino Posted April 16, 2009 at 08:09 PM Report #257173 Posted April 16, 2009 at 08:09 PM @scorch, Por uma questão de melhor interpretação do código deves usar como variável temporária da propriedade um nome semelhante ao da propriedade. Neste caso se a propriedade é valor_pontuacao, o nome da variável interna deveria ser m_valor_pontuacao ou _valor_pontuacao.
.EXO Posted April 17, 2009 at 04:24 PM Author Report #257319 Posted April 17, 2009 at 04:24 PM Bem... para entenderem melhor o que estou a fazer vou por uns prints aqui. Primeiro aparece isto: http://img262.imageshack.us/img262/2430/61376691.png Carrego em começar para iniciar o questionário. Depois começam as questões: http://img147.imageshack.us/img147/268/62089076.png Eu quero que ao carregar no botão "Próximo" mude de questão e se tiver escolhido a opção certa contabilize 10 pontos, se estiver errada 0 e se não responder apareça uma janela a dizer "Escolha uma opção" e não mude de questão. No fim aparece isto: http://img144.imageshack.us/img144/325/41256886.png E quero que dentro da textbox apareça o somatório dos pontos. Basicamente é isto. Agora vamos lá ver se entendi o que disseram... Eu tenho que meter o código que o scorch me deu no código do botão "próximo" em todas as questões (não sei se é isto). Mas tenho que alterar algumas coisas no código adaptando-o à situação. Pelo que percebi tenho que alterar o "propriedade" e o "valor_pontuação" (digam-me se faltar algo). Isto tudo para o somatório da pontuação. Para a janela de erro não percebi muito bem. Desculpem lá o incómodo e o estar a ser um bocado chato mas eu quero mesmo aprender e quando quero muito uma coisa sou um chato do pior lol. Desculpem lá também a minha lentidão a compreender isto xD Desde já um grande obrigado a todos^^
nokPT Posted April 17, 2009 at 06:28 PM Report #257352 Posted April 17, 2009 at 06:28 PM 1º as perguntas são sempre as mesmas, não mudam de ordem? 2º a posição das múltiplas respostas são sempre as mesmas, não mudam de ordem? Se não mudam é muito simples, é uma questão de criar uma variável para saber em que pergunta estás (incrementas essa variável no evento do botão "Próximo") e usas o código se pergunta=X e resposta=Y então somas (pontuação = pontuação +10), caso contrário msgbox com a dizer que falhou. Agora se a ordem das perguntas varia, se não são sempre as mesmas (por exemplo 10 de 100), se a posição das respostas também não é sempre a mesma, então dá um bocado de trabalho. Ricardo Timóteo
.EXO Posted April 17, 2009 at 07:37 PM Author Report #257359 Posted April 17, 2009 at 07:37 PM Não, não variam... As ordens são sempre as mesmas. Obrigado pela ajuda^^
nokPT Posted April 17, 2009 at 09:22 PM Report #257374 Posted April 17, 2009 at 09:22 PM Então é muito fácil: Arrancas pergunta=0 No evento do botão "Proximo" Se pergunta 0 Muda as labels das perguntas e das resposta para a próxima pergunta, limpa os botões radio e incrementa pergunta Se pergunta 1 e resposta 3 (por exemplo) soma, senão mensagem de erro Muda as labels das perguntas e das resposta para a próxima pergunta, limpa os botões radio e incrementa pergunta Se pergunta 2 e resposta 2 (por exemplo) soma, senão mensagem de erro Muda as labels das perguntas e das resposta para a próxima pergunta, limpa os botões radio e incrementa pergunta etc... Ricardo Timóteo
ricafilipe Posted April 17, 2009 at 10:40 PM Report #257392 Posted April 17, 2009 at 10:40 PM Para mudar a ordem também é simples, crias um random.
Tim§id€ Posted April 17, 2009 at 11:21 PM Report #257404 Posted April 17, 2009 at 11:21 PM Não, não variam... As ordens são sempre as mesmas. Obrigado pela ajuda^^ Ate podes fazer de uma maneira mais fácil pk não fazes assim... não mostras a msgbox("Erro na pregunta!?")... assim se a pergunta for certa fazes um variável_cont=integer(no inicio do prog!? depois dizes que a variável_cont+=10(cada vez que acerta?) depois quando e para mostrar: fazes o seguinte... crias labels label1"Acertou em X preguntas e os pontos sao Y" label2"Errou X perguntas,devia estudar mais sobre energias renovaveis... 😄 " para saber as erradas cada vez que errou...(fazes outra variavel_errou=integer depois vais somando...(acho que assim fica mais amigável o programa do que os pontos numa BOX!?..) Força ai com esse projecto... 😁 ...º(>_<)º...
.EXO Posted April 18, 2009 at 12:43 PM Author Report #257469 Posted April 18, 2009 at 12:43 PM Bem... gostei do método do Tim mas não entendi bem como criar a variável e onde coloca-la... faço isso no evento do botão "Próximo"? Aquela parte das labels agradou-me mas como faço para aparecer o nº de respostas certas e a pontuação na label1? A mesma coisa para a label2.
Tim§id€ Posted April 18, 2009 at 01:02 PM Report #257472 Posted April 18, 2009 at 01:02 PM Bem... gostei do método do Tim mas não entendi bem como criar a variável e onde coloca-la... faço isso no evento do botão "Próximo"? Aquela parte das labels agradou-me mas como faço para aparecer o nº de respostas certas e a pontuação na label1? A mesma coisa para a label2. entao fazes assim: no inicio do prog declaras as variasveis!? certo? depois na load? vais dizer? acertou=0 pontos=0 errou=0 depois para aparecer fazes assim Label1.text="Acertou em "+variavel_acertou+" preguntas ganho"+variavel_pontos+" Pontos" fazes o mesmo para a lebel 2 soq ue mudas a s variaveis... (para cada pregunta podes por uma imagem acerca da pregunta)... ...º(>_<)º...
.EXO Posted April 24, 2009 at 07:23 PM Author Report #258876 Posted April 24, 2009 at 07:23 PM Dim propriedade As Integer = 0 Public Property valor_pontuacao() As Integer Get Return propriedade End Get Set(ByVal value As Integer) propriedade = value End Set End Property Eu estou a usar este código para criar as variáveis... mas eu já tentei usar de 1001 formas e nada... Eu coloquei este código em todos os eventos do botão "Próximo" e alterei onde diz "propriedade" para "pontuacao". Mas é assim... 1º - não sei se estou a fazer certo e 2º - se está certo não sei o que fazer depois... Podem me ajudar... o que me custa é a primeira vez... depois de entrar no cérebro não sai mais lol xD
Tim§id€ Posted April 26, 2009 at 12:43 PM Report #259150 Posted April 26, 2009 at 12:43 PM Dim propriedade As Integer = 0 Public Property valor_pontuacao() As Integer Get Return propriedade End Get Set(ByVal value As Integer) propriedade = value End Set End Property Eu estou a usar este código para criar as variáveis... mas eu já tentei usar de 1001 formas e nada... Eu coloquei este código em todos os eventos do botão "Próximo" e alterei onde diz "propriedade" para "pontuacao". Mas é assim... 1º - não sei se estou a fazer certo e 2º - se está certo não sei o que fazer depois... Podem me ajudar... o que me custa é a primeira vez... depois de entrar no cérebro não sai mais lol xD Não tou a ver para que estas a fazer dessa maneira-.- quando podes fazer de maneira mais facil -.-" ...º(>_<)º...
.EXO Posted April 26, 2009 at 06:37 PM Author Report #259192 Posted April 26, 2009 at 06:37 PM Então explica-me ao pormenor a maneira mais fácil... xDDDDD É que eu tentei e não consegui também... devo estar a fazer algo mal lol
Tim§id€ Posted April 26, 2009 at 07:38 PM Report #259202 Posted April 26, 2009 at 07:38 PM Então explica-me ao pormenor a maneira mais fácil... xDDDDD É que eu tentei e não consegui também... devo estar a fazer algo mal lol entao posta aqui o codigo como é que tentas fazer!? ...º(>_<)º...
.EXO Posted April 26, 2009 at 07:50 PM Author Report #259207 Posted April 26, 2009 at 07:50 PM Tu disseste para criar as variáveis... Eu pus isto no evento da form, fora do evento do botão "Próximo": Dim pontuacao As Integer = 0 E pus em todas as forms das perguntas... E depois usei no botão "Próximo" de cada form com pergunta este para aparecer a pontuação na textbox da ultima form: If RadioButton1,2,... (depende da resposta).Checked = True Then TextBox1.Text = +10 End If E depois não fiz mais nada pois dá um erro neste código no TextBox1.Text Eu sei que estou a fazer mal pois nao estou a dar uso à variável... mas também não sei como usa-la...
Tim§id€ Posted April 26, 2009 at 08:01 PM Report #259212 Posted April 26, 2009 at 08:01 PM Tu disseste para criar as variáveis... Eu pus isto no evento da form, fora do evento do botão "Próximo": Dim pontuacao As Integer = 0 E pus em todas as forms das perguntas... E depois usei no botão "Próximo" de cada form com pergunta este para aparecer a pontuação na textbox da ultima form: If RadioButton1,2,... (depende da resposta).Checked = True Then TextBox1.Text = +10 End If E depois não fiz mais nada pois dá um erro neste código no TextBox1.Text Eu sei que estou a fazer mal pois nao estou a dar uso à variável... mas também não sei como usa-la... faz assim: no inicio do progrma defina: dim acertou,errado as Integer na form1_load metes acertou=0 errou=0 depois se a o Radiobutton1..=true(se for o certo)? acertou+=10 assim sucesivamente cada ves que a resposta for certa? depois metes um else(se nao for esse radiobutton entao) errou+=1 👍 ...º(>_<)º...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now