Ir para conteúdo
Fórum Script Brasil
  • 0

Problema de iniciante.. (acho)


passarododo

Pergunta

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:

_______________________________________

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

Antecipadamente... já agradeço qualquer ajuda...

Editado por kuroi
Adicionar 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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...