VisualgMaster

Bem vindo ao fórum visualgmaster, tudo relacionado ao visualg, tire suas dúvidas, resolva seus algoritmos.
 
InícioInício  PortalPortal  FAQFAQ  BuscarBuscar  Registrar-seRegistrar-se  MembrosMembros  GruposGrupos  Conectar-se  

Compartilhe | 
 

 Algoritmo locadora.

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
Leon
Novato
Novato


Número de Mensagens : 7
Data de inscrição : 28/10/2007

MensagemAssunto: Algoritmo locadora.   Dom Out 28, 2007 5:15 pm

Preciso de um algoritmo que simule uma locadora

1- registra 10 filmes, nome, numero, valor, tipo (comedia drama..), lançamento ou não, sendo que numero so pode ser de 8800 para 8810;valor so pode ser 4.90 ou 3.90; tipo só pode ser comedia, drama, terror e ação; lançamento s/n.
2- depois de registrado cada filme deverá mostrar todas as informações e para confirmar digite 1 para não confirmar 2.
3- depois de todos terem sido registrados, o "funcionário" deverá digitar o código e ele deverá mostrar todads as informações e deverá confirmar ou não com 1 ou 2.
4- se repetir o codigo ou o nome dar inválido.

É só.


Última edição por em Dom Out 28, 2007 7:46 pm, editado 1 vez(es)
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Admin
Administradores
Administradores
avatar

Número de Mensagens : 126
Data de inscrição : 26/10/2007

MensagemAssunto: Re: Algoritmo locadora.   Dom Out 28, 2007 5:34 pm

Mais atenção as regras.

admin escreveu:

Primeira Regra:

Não pedir algoritmos prontos, tirem apenas as suas dúvidas, apresentem o algoritmo que vocês querem e o ponto que vocês têm dúvida, ex:

"Faça um algoritmo que sorteie 20 numeros quaisquer de 1 a 200.
e, se for par, armazene em uma variável, se for ímpar, armazene em outra variável"
"Estou com dúvida sobre como sortear os 20 números "

Pedir ou fornecer algoritmos inteiros implica em "ban" por tempo indeterminado.


Mostra o que você já fez e qual a duvida.
Voltar ao Topo Ir em baixo
Ver perfil do usuário http://visualgmaster.livreforum.com
Leon
Novato
Novato


Número de Mensagens : 7
Data de inscrição : 28/10/2007

MensagemAssunto: Re: Algoritmo locadora.   Dom Out 28, 2007 5:44 pm

a não tinha lido a regra, desculpa, vou começar a faser aqui e no que eu tiver duvida eu posto
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Leon
Novato
Novato


Número de Mensagens : 7
Data de inscrição : 28/10/2007

MensagemAssunto: Re: Algoritmo locadora.   Dom Out 28, 2007 7:52 pm

Eu fiz até ai ta cheio de erros me ajuda por favor.

algoritmo "semnome"
// Função :
// Autor :
// Data : 28/10/2007
// Seção de Declarações
var
varnfilme : inteiro
varnomefilme : caracter
varvalor : real
vartipo : caracter
varlanca : inteiro
confere : inteiro
i : inteiro
nfilme: vetor[1..10] de inteiro
nomefilme: vetor[1..10] de caracter
valorfilme: vetor[1..10] de real
tipofilme: vetor[1..10] de caracter
lanca: vetor[1..10] de inteiro
inicio
// Seção de Comandos
para i de 1 ate 10 faca
Escreva ("Entre com o código do filme a ser cadastrado:")
Leia (varnfilme)
enquanto (varnfilme > 8810) ou (varnfilme <8800) faca
escreval ("Código Inválido. Tente novamente")
Escreval ("Entre com o código do filme a ser cadastrado:")
Leia (varnfilme)
fimenquanto
Escreva ("Entre com o nome do filme a ser cadastrado:")
leia (varnomefilme)
Escreva ("Entre com o valor do filme a ser cadastrado:")
leia (varvalor)
enquanto (varvalor <> 3.90) ou (varvalor <> 4.90) faca
Escreval ("Valor inválido. Tente novamente.")
Escreval ("Entre com o valor do filme a ser cadastrado:")
leia (varvalor)
fimenquanto
Escreva ("Entre com o tipo do filme a ser cadastrado:")
leia (vartipo)
Escreva ("O filme é lançamento? (s/n)")
leia (varlanca)
enquanto (varlanca <> 1) ou (varlanca <> 0) faca
Escreva ("Apenas s/n")
Escreva ("O filme é lançamento? (s/n)")
fimenquanto
Escreval ("O código do filme é ", varnfilme)
Escreval ("O nome do filme é ", varnomefilme)
Escreval ("O valor do filme é ", varvalor)
Escreval ("O tipo do filme é ", vartipo)
Escreval ("Lançamento?", varlanca)
Escreval ("Confere?(1/2)")
Leia (confere)
enquanto (confere <> 1) faca
Escreval ("Apenas 1/2")
Escreval ("Confere?")
Leia (confere)
se (confere = "1") entao
nfilme[i] <- varnfilme
nomefilme[i] <- varnomefilme
valorfilme[i] <- varvalor
tipofilme[i] <- vartipo
lanca[i] <- varlanca
senao
fimse
fimenquanto


fimalgoritmo

eu não sei como vou fazer para dar invalido se repetir o código e o nome.
Voltar ao Topo Ir em baixo
Ver perfil do usuário
felipeluis
Novato
Novato
avatar

Número de Mensagens : 7
Data de inscrição : 28/10/2007

MensagemAssunto: Re: Algoritmo locadora.   Dom Out 28, 2007 11:31 pm

Leon escreveu:
Preciso de um algoritmo que simule uma locadora

1- registra 10 filmes, nome, numero, valor, tipo (comedia drama..), lançamento ou não, sendo que numero so pode ser de 8800 para 8810;valor so pode ser 4.90 ou 3.90; tipo só pode ser comedia, drama, terror e ação; lançamento s/n.
2- depois de registrado cada filme deverá mostrar todas as informações e para confirmar digite 1 para não confirmar 2.
3- depois de todos terem sido registrados, o "funcionário" deverá digitar o código e ele deverá mostrar todads as informações e deverá confirmar ou não com 1 ou 2.
4- se repetir o codigo ou o nome dar inválido.

É só.
Leon escreveu:

Eu fiz até ai ta cheio de erros me ajuda por favor.

algoritmo "semnome"
// Função :
// Autor :
// Data : 28/10/2007
// Seção de Declarações
var
varnfilme : inteiro
varnomefilme : caracter
varvalor : real
vartipo : caracter
varlanca : inteiro
confere : inteiro
i : inteiro
nfilme: vetor[1..10] de inteiro
nomefilme: vetor[1..10] de caracter
valorfilme: vetor[1..10] de real
tipofilme: vetor[1..10] de caracter
lanca: vetor[1..10] de inteiro
inicio
// Seção de Comandos
para i de 1 ate 10 faca
Escreva ("Entre com o código do filme a ser cadastrado:")
Leia (varnfilme)
enquanto (varnfilme > 8810) ou (varnfilme <8800) faca
escreval ("Código Inválido. Tente novamente")
Escreval ("Entre com o código do filme a ser cadastrado:")
Leia (varnfilme)
fimenquanto
Escreva ("Entre com o nome do filme a ser cadastrado:")
leia (varnomefilme)
Escreva ("Entre com o valor do filme a ser cadastrado:")
leia (varvalor)
enquanto (varvalor <> 3.90) ou (varvalor <> 4.90) faca
Escreval ("Valor inválido. Tente novamente.")
Escreval ("Entre com o valor do filme a ser cadastrado:")
leia (varvalor)
fimenquanto
Escreva ("Entre com o tipo do filme a ser cadastrado:")
leia (vartipo)
Escreva ("O filme é lançamento? (s/n)")
leia (varlanca)
enquanto (varlanca <> 1) ou (varlanca <> 0) faca
Escreva ("Apenas s/n")
Escreva ("O filme é lançamento? (s/n)")
fimenquanto
Escreval ("O código do filme é ", varnfilme)
Escreval ("O nome do filme é ", varnomefilme)
Escreval ("O valor do filme é ", varvalor)
Escreval ("O tipo do filme é ", vartipo)
Escreval ("Lançamento?", varlanca)
Escreval ("Confere?(1/2)")
Leia (confere)
enquanto (confere <> 1) faca
Escreval ("Apenas 1/2")
Escreval ("Confere?")
Leia (confere)
se (confere = "1") entao
nfilme[i] <- varnfilme
nomefilme[i] <- varnomefilme
valorfilme[i] <- varvalor
tipofilme[i] <- vartipo
lanca[i] <- varlanca
senao
fimse
fimenquanto


fimalgoritmo

eu não sei como vou fazer para dar invalido se repetir o código e o nome.
vou ver se posso te ajudar
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Suporte
Administradores
Administradores
avatar

Número de Mensagens : 35
Data de inscrição : 26/10/2007

MensagemAssunto: Re: Algoritmo locadora.   Seg Out 29, 2007 3:28 pm

Bom dia ^^ eu identifiquei alguns erros na sua tentativa. Espero que ajude. Colocarei a correção logo após o trecho do algoritmo que contém o erro.

Antes uma breve observação: você leu os dados com variáveis normais e depois as atribuiu aos seus vetores correspondentes. Em minha correção farei de um outro modo, lerei direto como vetor, e, se o funcionário não conferir, ele digitará os dados nos vetores novamente. Para isso, apague todas as variáveis correspondentes do filme e as substitua pelos vetores.
______________________________________________________
Escreva ("Entre com o código do filme a ser cadastrado:")
Leia (varnfilme)

Correção: Você deveria usar 'leia nfilme[i]' para acumular os códigos em um vetor. Senão, conforme os outros códigos forem sendo cadastrados, essa variável perderá seu valor anterior e você não poderá mais usá-lo. Isso se repete para cada item do filme que está sendo cadastrado (valor, nome, tipo, etc)
______________________________________________________
enquanto (varvalor <> 3.90) ou (varvalor <> 4.90) faca

Correção: Isso vai gerar um problema imenso. Observe que o usuário cairá sempre nesse 'enquanto', pois será sempre diferente de 3.90 ou diferente de 4.90 já que o valor não pode ser 2 coisas ao mesmo tempo. A solução é simples, basta trocar o operador 'ou' pelo operador 'e'.
E lembre-se, você deve apagar todas essas variáveis que começam com 'var' e usar apenas os vetores que você criou para não perder os dados registrados anteriormente.
______________________________________________________
Escreva ("Entre com o tipo do filme a ser cadastrado:")
leia (vartipo)

Correção: Só pode ser comedia, drama, terror ou ação. Você deve inserir um enquanto logo depois dessa linha que faça com que sempre que não for comedia, drama, terror ou ação, ele retornará inválido e pedirá novamente o tipo.
______________________________________________________
Escreva ("O filme é lançamento? (s/n)")
leia (varlanca)
enquanto (varlanca <> 1) ou (varlanca <> 0) faca

Correção: Você pediu ao usuário para entrar com "s" ou "n", e depois verificou se é diferente de 1 ou 0 quando deveria verificar se é diferente de "s" e "n". Você usou o operador errado novamente, troque o operador por 'e' ficando dessa forma:
enquanto (lanca[i] <> "s") e (lanca[i] <> "n") faca
E claro, não se esqueça de mudar o vetor 'lanca' de inteiro para caracter, afinal é "s" ou "n", e não 1 ou 2.
______________________________________________________
Escreval ("Confere?(1/2)")
Leia (confere)
enquanto (confere <> 1) faca
Escreval ("Apenas 1/2")
Escreval ("Confere?")
Leia (confere)
se (confere = "1") entao
nfilme[i] <- varnfilme
nomefilme[i] <- varnomefilme
valorfilme[i] <- varvalor
tipofilme[i] <- vartipo
lanca[i] <- varlanca
senao
fimse
fimenquanto

Correção: (antes, crie a variávei 'Retornar' do tipo inteiro, acrescente o comando 'Retornar <- 1' logo depois do 'para', e acrescente a seguinte linha logo depois do 'Retornar <- 1' : enquanto (Retornar = 1) faca

Escreval ("Confere?(1/2)")
Leia (confere)
enquanto (confere <> 1) e (confere <> 2) faca
Escreval ("Apenas 1/2")
Escreval ("Confere?(1/2)")
Leia (confere)
fimenquanto
se (confere = 1) entao
Retornar <- 0 //se conferiu, não vai retornar no para
senao
Retornar <- 1 //senão, vai retornar
fimenquanto
______________________________________________________
Pronto. Agora ele vai cadastrar novamente o filme se ele não conferir. Para dar inválido se repetir código ou nome é um pouco mais delicado. Isso será avaliado a seguir.[/b]
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Suporte
Administradores
Administradores
avatar

Número de Mensagens : 35
Data de inscrição : 26/10/2007

MensagemAssunto: Re: Algoritmo locadora.   Seg Out 29, 2007 4:13 pm

Para não repetir nome ou código, observe o exemplo e aplique de algum modo em seu algoritmo:

//não repetindo o código

leia (nfilme[i])
para a de i ate 1 passo -1 faca
se (a <> i) entao
se (nfilme[i] = nfilme[a]) entao
repetiu <- 1
fimse
fimse
fimpara

É importante que você entenda essa estrutura, ela vai comparar todos os códigos de filmes do vetor uns com outros, e caso tenha algum igual, a variável 'repetiu' receberá o valor 1. Desse modo você saberá quando há um código igual.

Obs.: Fica claro que você precisará de um 'enquanto' mais ou menos assim: Enquanto (repetiu = 1) faca...
E dentro do 'para' você deve renovar o valor de repetiu em 0, senão ele cairá sempre nesse enquanto. Para não repetir o nome, usa-se a mesma linha de raciocínio, basta trocar algumas variáveis
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Leon
Novato
Novato


Número de Mensagens : 7
Data de inscrição : 28/10/2007

MensagemAssunto: Re: Algoritmo locadora.   Seg Out 29, 2007 8:30 pm

Suporte escreveu:
Para não repetir nome ou código, observe o exemplo e aplique de algum modo em seu algoritmo:

//não repetindo o código

leia (nfilme[i])
para a de i ate 1 passo -1 faca
se (a <> i) entao
se (nfilme[i] = nfilme[a]) entao
repetiu <- 1
fimse
fimse
fimpara

É importante que você entenda essa estrutura, ela vai comparar todos os códigos de filmes do vetor uns com outros, e caso tenha algum igual, a variável 'repetiu' receberá o valor 1. Desse modo você saberá quando há um código igual.

Obs.: Fica claro que você precisará de um 'enquanto' mais ou menos assim: Enquanto (repetiu = 1) faca...
E dentro do 'para' você deve renovar o valor de repetiu em 0, senão ele cairá sempre nesse enquanto. Para não repetir o nome, usa-se a mesma linha de raciocínio, basta trocar algumas variáveis

Ae cara valeu, essa era a parte que mais me compliquei, valeu mesmo.

Editar aqui a minha resposta,

Então pelo jeito o meu conceito para o operador "ou" estava errado, eu pensei que ele iria comparar se era diferente de 1 se fosse ele iria comparar com o outro, ou seja, eu nunca vou poder usar uma sequencia dessa nao eh?

enquanto ( var <> 1 ) ou ( var <> 2 ) faca
...

vai dar sempre errado?

o q eu aprendi de visualg foi muito pouco, mas gostei do programa e estou exercitando me desculpa pela burrice
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Admin
Administradores
Administradores
avatar

Número de Mensagens : 126
Data de inscrição : 26/10/2007

MensagemAssunto: Re: Algoritmo locadora.   Ter Out 30, 2007 3:12 pm

Exatamente. Problema resolvido. Tópico fechado. Mais dúvidas? Poste na seção suporte.
Voltar ao Topo Ir em baixo
Ver perfil do usuário http://visualgmaster.livreforum.com
Conteúdo patrocinado




MensagemAssunto: Re: Algoritmo locadora.   

Voltar ao Topo Ir em baixo
 
Algoritmo locadora.
Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo 
Página 1 de 1
 Tópicos similares
-
» Portifólio em Grupo
» Preciso da ajuda na resolução deste exercicios não resolvidos de Algoritmo! Socorro
» ajuda portfolio Locadora de Livros
» ajuda com Pac-man
» Av - Logicando: Praticando Algoritmos

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
VisualgMaster :: VisualgMaster :: Pedidos de algoritmos :: Algoritmos resolvidos-
Ir para: