Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
difldw

Problema impossível no visualg

Recommended Posts

Seguinte: Tenho que criar um algoritmo que cadastre ATÉ 10 motos, e possa exibir e alterar os cadastros já efetuados. Mas depois que exibo, ele atribui automaticamente o valor do índice em 10, já que foi o último a ser consultado, e depois se tento cadastrar ele busca o índice 11. Segue para ver se vocês entendem:


// Função :
// Autor : Diego
// Data : 15/5/2013
// Seção de Declarações
var
o, p, q, modelod , cord: literal
opcao,i,j, n, anod , total: inteiro
fabric : vetor [1..10] de literal
cor: vetor [1..10] de literal
km : vetor [1..10] de real
modelo : vetor [1..10] de literal
ano: vetor [1..10] de inteiro

inicio
// Seção de Comandos
total <- 0
o <- "s"
p <- "s"
j <-1
repita
escreval ("Digite 1 para Cadastrar uma moto")
escreval ("Digite 2 para consultar uma moto já cadastrada por ano de fabricação")
escreval ("Digite 3 para consultar uma moto por modelo")
escreval ("Digite 4 para consultar uma moto por cor")
escreval ("Digite 5 para exibir todas as motos cadastradas")
escreval ("Digite 6 para alterar os dados de alguma moto")
escreval ("Digite 7 para excluir os dados de alguma moto")
escreval ("Digite 0 para sair")
leia (opcao)
limpatela
escolha opcao
caso 1
se (j<11) então

repita

limpatela

escreval ("Vamos então cadastrar uma moto. Você já tem ",(total)," motos cadastradas")
escreval ("Digite o nome do fabricante da moto")
leia (fabric[j])
repita
se ((fabric[j])="") então
escreval ("Você não pode inserir valores em branco! Por favor insira um nome de fabricante")
leia (fabric[j])
fimse
ate ((fabric[j])<>"")
escreval ("Digite o modelo da moto")
leia (modelo[j])
repita
se ((modelo[j])="")então
escreval ("Digite um nome de modelo válido")
leia (modelo[j])
fimse
ate (modelo[j]<>"")
escreval ("Digite o ano de fabricação")
leia (ano[j])
repita
se (ano[j]>2013) ou (ano[j]<1990) então
limpatela
escreval ("Ano inválido. Por favor insira um ano válido")
leia (ano[j])
fimse
ate (ano[j]<2014) e (ano[j]>1989)
escreval ("Digite a COR da moto")
leia (cor[j])
repita
se (cor[j]="")então
escreval ("Por favor informe a cor")
leia (cor[j])
fimse
ate (cor[j]<>"")
escreval ("Digite a quilometragem já rodada da moto")
leia (km[j])
repita
se (km[j]<0) então
escreval
("Você não pode digitar um valor negativo. Por favor insira um valor maior ou igual a zero.")
leia (km[j])
fimse
ate (km[j])>=0
escreval ("A moto ",(fabric[j])," modelo ",(modelo[j])," ",(ano[j])," foi cadastrada com sucesso!")
total <- (total+1)
j<-j+1
se (j<11)então

escreval ("Deseja cadastrar outra moto? Digite S para sim")
leia (p)
senao
escreval ("Você cadastrou o número máximo de motos. Selecione a opção de alterar")
escreval ("caso queira inserir dados")
p <- "n"

fimse

//limpatela


ate (p<>"s")
//limpatela
senao
escreval ("Opção indisponível no momento. Por favor utilize a opção 6 para alterar")
escreval ("e altere uma moto já cadastrada ou em branco")
fimse
caso 2
escreval ("Vamos consultar uma moto por ano de fabricação. Por favor informe o ano desejado")
leia (anod)
i <- 1
enquanto (anod<1990) ou (anod>2013) faca
escreval ("Ano inválido. Por favor insira um ano válido")
leia (anod)
fimenquanto
para j de 1 ate 10 faca
se (ano[j])= anod então
escreval ((i)," - ",(fabric[j]),", ",(modelo[j]),", ano ",(ano[j]),", cor ",(cor[j]),".")
fimse
fimpara

caso 3
escreval ("Vamos consultar uma moto por modelo. Digite o modelo desejado")
leia (modelod)
para j de 1 ate 10 faca
se ((modelo[j])=modelod) então
escreval ((i)," - ",(fabric[j]),", ",(modelo[j]),", ano ",(ano[j]),", cor ",(cor[j]),".")
fimse
fimpara

caso 4
escreval ("Vamos consultar uma moto por cor. Digite a cor desejada.")
leia (cord)
para j de 1 ate 10 faca
se (cord=(cor[j])) então
escreval ((i)," - ",(fabric[j]),", ",(modelo[j]),", ano ",(ano[j]),", cor ",(cor[j]),".")
fimse
fimpara

caso 5

escreval ("Motos cadastradas:")
para j de 1 ate 10 faca
escreval ((j)," - ",(fabric[j]),", ",(modelo[j]),", ano ",(ano[j]),", cor ",(cor[j]),".")
fimpara

caso 6

escreval ("Vamos alterar os dados de alguma moto")
para j de 1 ate 10 faca
escreval ((j)," - ",(fabric[j]),", ",(modelo[j]),", ano ",(ano[j]),", cor ",(cor[j]),".")
fimpara
escreval ("Digite o número da moto a ser alterada")
leia (n)
enquanto (n>10) ou (n<1) faca
escreval ("Número inválido. Por favor insira um dos números citados acima")
leia (n)
fimenquanto
escreval ("Você deseja alterar os dados da moto ",(fabric[n])," modelo ",(modelo[n]), " ano ",(ano[n]),". Confirma? (S/N)")
leia (q)
se (q="s") então
limpatela
escreval ("Digite o NOVO FABRICANTE da moto")
leia (fabric[n])
enquanto (fabric[n]="") faca
limpatela
escreval ("Você deve inserir um nome de fabricante! Por favor informe o fabricante")
leia (fabric[n])
fimenquanto
escreval ("Digite o NOVO ANO da moto")
leia (ano[n])
enquanto (ano[n]<1990) ou (ano[n]>2013) faca
limpatela
escreval ("Ano inválido. Por favor insira um ano válido.")
leia (ano[n])
fimenquanto
escreval ("Digite o NOVO MODELO da moto")
leia (modelo[n])
enquanto (modelo[n]="") faca
limpatela
escreval ("Você deve inserir um modelo. Por favor digite um modelo")
leia (modelo[n])
fimenquanto

escreval ("Digite a NOVA QUILOMETRAGEM da moto")
leia (km[n])
enquanto (km[n]<0) faca
limpatela
escreval ("Não existe quilometragem negativa! Por favor insira um valor positivo")
leia (km[n])
fimenquanto
escreval ("Digite a NOVA COR da moto")
leia (cor[n])
enquanto (cor[n]="")faca
limpatela
escreval ("Você deve inserir uma nova cor. Por favor informe a cor")
leia (cor[n])
fimenquanto
limpatela
para j de 1 ate 10 faca
se (n=j) então
km[j] <- km[n]
modelo[j] <- modelo[n]
fabric[j] <- fabric[n]
ano[j] <- ano[n]
cor[j] <- cor [n]
fimse
fimpara
fimse
caso 7
escreval ("Vamos excluir dados de uma moto")
para j de 1 ate 10 faca
escreval ((j)," - ",(fabric[j]),", ",(modelo[j]),", ano ",(ano[j]),", cor ",(cor[j]),".")
fimpara
escreval ("Digite o código da moto que deseja excluir")
leia (n)
enquanto (n>10) ou (n<1) faca
escreval ("Número inválido. Por favor insira um dos números citados acima")
leia (n)
fimenquanto
escreval ("ATENÇÃO: Essa operação excluirá a moto ",(fabric[n])," modelo ",(modelo[n]), " ano ",(ano[n]),". Confirma? (S/N)")
leia (q)
se (q="s") então
para j de 1 ate 10 faca
se (n=j) então
km[j] <- 0
modelo[j] <- " "
fabric[j] <- " "
ano[j] <- 0
cor[j] <- " "
fimse
fimpara
fimse
caso 0
fimalgoritmo
outrocaso
fimalgoritmo
fimescolha
escreval ("Deseja fazer outra operação? Digite S para sim")
leia (o)
limpatela

ate (o<>"s")

fimalgoritmo
algoritmo "exerciciogrande"

Como resolvo tal problema?

Editado por Simon Viegas
Inserir tag CODE e SPOILER

Compartilhar este post


Link para o post
Compartilhar em outros sites

difldw,

Mude var, opção, colocando-a com "C" e "A" em vez de "ç" e "ã" ira ficar "O P C A O" sem espaço.

Editado por Cavudas
Edição por conta do corretor ortográfico do fórum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×