Eu fiz o código.. até onde consegui.. mas o programa entra direto no pedido de dados (opção 1 do menu :(... quando deveria entrar no MENU.
Já tentei trocar o lugar do menu com o main.. mas dá pau...
Há alguma maneira de ajeitar esta ordem...?
O código que fiz é este:
_______________________________________
Module Program
Sub Main()
' Declaração dos vectores
Dim vec_pontos (10) As Integer
Dim vec_filmes (10) As String
Dim contador As Integer
'Nomes dos Filmes
vec_filmes(1)= ("A Volta dos que não foram")
vec_filmes(2)= ("Meu tio é filho único")
vec_filmes(3)= ("As longas tranças da Vovó Careca")
vec_filmes(4)= ("Poeira em Alto Mar")
vec_filmes(5)= ("O Mudo da Voz Rouca")
vec_filmes(6)= ("O Suvaco da Cobra")
vec_filmes(7)= ("O Daltônico que só usava roxo")
vec_filmes(8)= ("O Desenrrolador de Rocambole")
vec_filmes(9)= ("Agentes somus uns inguinorantes!")
vec_filmes(10)= ("Quem trabalha não tem tempo para ganhar dinheiro!")
'Dim voto As Integer
' Listar Nome dos 10 Filmes
Console.WriteLine("SELECCIONE O FILME")
Console.WriteLine("#############################")
Console.WriteLine("")
Console.WriteLine("1: A Volta dos que não foram")
Console.WriteLine("2: Meu tio é filho único")
Console.WriteLine("3: As longas tranças da Vovó Careca")
Console.WriteLine("4: Poeira em Alto Mar")
Console.WriteLine("5: O Mudo da Voz Rouca")
Console.WriteLine("6: O Suvaco da Cobra")
Console.WriteLine("7: O Daltônico que só usava roxo")
Console.WriteLine("8: O Desenrrolador de Rocambole")
Console.WriteLine("9: Agentes somus uns inguinorantes!")
Console.WriteLine("10: Quem trabalha não tem tempo para ganhar dinheiro!")
Console.WriteLine("")
Console.WriteLine("#############################")
Console.WriteLine("")
' Pedir votações ao utilizador
'ciclo
For contador=1 To 10
Console.Write("Escreva o seu voto para o filme: " & vec_filmes(contador) & " :")
vec_pontos(contador)=console.readline
' Ciclo de verificação para garantir números válidos - 1 à 20
If vec_pontos(contador) > 20 Then
'Escrever para a tela erro!'
Console.WriteLine("Erro!!!")
Console.Writeline("Por Favor Introduza valores entre 0 - 20.")
Console.Write("####################################")
Do
Console.Write("Escreva o seu voto para o filme " & contador & " :")
vec_pontos(contador)=console.readline
Loop Until vec_pontos(contador) < 20
If vec_pontos(contador) > 0 Then
Console.WriteLine("Erro!!!")
Console.Writeline("Por Favor Introduza valores entre 0 - 20.")
End If
End If
Next
console.readline
End Sub
' Procedimento para criação do menu
Sub Menu(ByRef vec_pontos() As Integer)
Dim opcoes As Integer
Console.Clear()
Console.WriteLine("M E N U")
Console.WriteLine("############################")
Console.WriteLine()
Console.WriteLine("1: Inserir Dados")
Console.WriteLine("2: Gerar Dados Aldrabados :)")
Console.WriteLine("3: Alterar Dados")
Console.WriteLine("4: Eliminar Dados")
Console.WriteLine("5: Consultar")
Console.WriteLine("6: Pesquisar")
Console.WriteLine("7: Pódio")
Console.WriteLine("8: Sair")
Console.Write("Opções:")
opcoes = Console.ReadLine
Select Case opcoes
Case 1
inserir(vec_pontos)
Case 2
gerar(vec_pontos)
Case 3
alterar(vec_pontos)
Case 4
eliminar(vec_pontos)
Case 5
consultar(vec_pontos)
Case 6
pesquisar(vec_pontos)
' Case 7
'podio(vec_pontos)
Case 8
sair(vec_pontos)
End
Case Else
Console.WriteLine("Opção Inválida")
End Select
End Sub
' Item 1 do Menu
Sub inserir(ByVal vec_pontos() As Integer)
Dim contador As Integer
For contador = 1 To 10
Console.WriteLine("Voto " & contador & ": ")
vec_pontos(contador) = Console.ReadLine
Next
Console.ReadLine()
End Sub
'Item 2 do Menu
Sub gerar(ByVal vec_pontos() As Integer)
'Dim contador As Integer
Dim gerador As Single
'função para randomizar
Randomize()
Do
gerador = Int(Rnd() * 10) + 1
Console.WriteLine(gerador)
Loop Until gerador = 10
Console.ReadLine()
End Sub
'Item 3 do Menu
Sub alterar(ByVal vec_pontos() As Integer)
'Cheio de dúvidas nesta parte :)
End Sub
'Item 4 do Menu
Sub eliminar(ByVal vec_pontos() As Integer)
dim contador as integer
Console.WriteLine("Insira o número do Voto´a eliminar " & contador & ": ")
contador=console.ReadLine
vec_pontos(contador)=0
Console.ReadLine()
End Sub
'Item 5 do Menu
Sub consultar(ByVal vec_pontos() As Integer)
dim contador as integer
For contador=1 To 10
Console.WriteLine(vec_pontos(contador))
Next
Console.ReadLine()
End Sub
'Item 6 do Menu
Sub pesquisar(ByVal vec_pontos() As Integer)
Dim contador As Integer
Console.WriteLine("Qual o filme desejado?")
contador=console.ReadLine
Console.Write(vec_pontos(contador))
Console.ReadLine()
End Sub
'Item 7 do Menu
Sub podio(ByVal vec_pontos as Integer(), vec_filmes()as string)
Dim contador As Integer
Bubblesort(vec_pontos, contador)
'instrução original para chamar o bubble sort
'Bubblesort(nome_do_array_que_contem_os_numeros, tamanho_do_array)
vec_filmes(1)= ("A Volta dos que não foram")
vec_filmes(2)= ("Meu tio é filho único")
vec_filmes(3)= ("As longas tranças da Vovó Careca")
vec_filmes(4)= ("Poeira em Alto Mar")
vec_filmes(5)= ("O Mudo da Voz Rouca")
vec_filmes(6)= ("O Suvaco da Cobra")
vec_filmes(7)= ("O Daltônico que só usava roxo")
vec_filmes(8)= ("O Desenrrolador de Rocambole")
vec_filmes(9)= ("Agentes somus uns inguinorantes!")
vec_filmes(10)= ("Quem trabalha não tem tempo para ganhar dinheiro!")
Console.WriteLine("Os seis filmes mais votados são: ")
For contador=1 To 6
Console.Write("Nome do Filme: ")
Next
Console.ReadLine()
End Sub
'Item 8 do Menu
Sub sair(ByVal vec_pontos() As Integer)
Console.Write("Pressione uma tecla para Sair da Aplicação...")
Console.ReadKey(True)
End Sub
' Ordenação por algortimo bubblesort
Sub Bubblesort(ByVal Array() As Integer, ByVal Length As Integer)
Dim I As Integer
Dim J As Integer
Dim Temp As Integer
For I = Length - 1 To 1 Step -1
For J = 0 To I - 1
If Array(J) > Array(J + 1) Then
Temp = Array(J)
Array(J) = Array(J + 1)
Array(J + 1) = Temp
End If
Next J
Next I
End Sub
End Module
Pergunta
passarododo
Saudações a todos...
Tenho um trabalho da faculdade prara fazer.... e está me tirando o sono (não sou programador... e tenho muita dificuldade com o código)
O enunciado do problema é assim (portugues de portugal :):
Suponha que lhe foi solicitado apoio na organização do concurso dos
Óscares, na categoria de cinema para a selecção do melhor filme. Assim,
pretende-se que desenvolva um algoritmo para registar o nome de 10 filmes e
as respectivas pontuações. As pontuações são atribuídas numa escala de 0 a
20 pontos. Estes dados devem ser armazenados em dois vectores, um para o
nome dos filmes e outro para as pontuações (sendo a correspondência da
nome do filme - pontuação efectuada pelo índice do vector).
Ordene os vectores por ordem crescente da pontuação obtida. Apresente
os nomes dos filmes e respectivas pontuações, colocando em destaque (num
pódio, (opção 6)) os três filmes com maior pontuação e os restantes filmes
alinhados por baixo (apresente o nome do filme e pontuação).
Menu:
1. Introdução dados
2. Geração dados (preenchimento dos vectores de forma automática)
3. Alterar dados
4. Eliminar dados
5. Consultar
6. Pesquisar (ver dados de um filme)
7. Pódio
8. Sair
Deve recorrer à modularização do programa a desenvolver, isto é,
procedimentos e funções.
---------------------------------------------------------
Eu fiz o código.. até onde consegui.. mas o programa entra direto no pedido de dados (opção 1 do menu :(... quando deveria entrar no MENU.
Já tentei trocar o lugar do menu com o main.. mas dá pau...
Há alguma maneira de ajeitar esta ordem...?
O código que fiz é este:
_______________________________________
Antecipadamente... já agradeço qualquer ajuda...
Editado por kuroiAdicionar Tag CODE
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.