Array
(
)

Dúvida de iniciantes desesperado :s

Passarododo
   - 23 jan 2008

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...

Morpheusrs
   - 08 fev 2008

Vc esqueceu de ler a opção de qual filme vc gostria de votar, alterei seu algoritmo da uma olhada e ve se ajuda, qualquer dúvida é só pedir.

Sub Main()
´ Declaração dos vectores
Dim vec_pontos(10) As Integer
Dim vec_filmes(10) As String
´Dim contador As Integer
Dim op_filme 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
´ Pedir votações ao utilizador
´ciclo

´ pedir qual filme gostaria de votar
Do

Menu()
Console.Write(´Escolha qual o filme vc gostria de votar: ´)
op_filme = Console.ReadLine

If op_filme < 1 Or op_filme > 11 Then
Console.Write(´Opção errada, informe novamente!!´)
Console.WriteLine()
Else
If op_filme = 11 Then
Exit Do
Else
Console.Write(´Escreva o seu voto para o filme: ´ & vec_filmes(op_filme) & ´ :´)
vec_pontos(op_filme) = Console.ReadLine
´ Ciclo de verificação para garantir números válidos - 1 à 20

If vec_pontos(op_filme) > 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 ´ & op_filme & ´ :´)
vec_pontos(op_filme) = Console.ReadLine
Loop Until vec_pontos(op_filme) < 20
If vec_pontos(op_filme) > 0 Then
Console.WriteLine(´Erro!!!´)
Console.WriteLine(´Por Favor Introduza valores entre 0 - 20.´)
End If

End If
End If
End If
Loop

Console.ReadLine()

End Sub

Sub Menu()
´ Listar Nome dos 10 Filmes
Console.Clear()
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(´11: Sair´)
Console.WriteLine(´´)
Console.WriteLine(´#´)
Console.WriteLine(´´)
End Sub