carcamilo 0 Denunciar post Postado Abril 29, 2015 Boa tarde. Não estou conseguindo resolver esse algoritmo, alguém pode me ajudar? A situação é a seguinte: Supondo que eu já tenha um vetor (Meses), já preenchido com 12 literais, onde em cada posição exista o nome de um mês. terei que fazer 10 leituras armazenando-as em um vetor, onde em cada leitura o usuário irá digitar um número entre 1 e 12 ( representando o número de um mês). Após a digitação de todas as 10 leituras mostrar na tela o nome da cada um dos meses. Eu consegui fazer isso, mas ele não esta exibindo os meses corretamente. algoritmo "teste." tipo TSaldo = registro nomeDoMes,mes: caractere saldo: real fimregistro var VMes : vetor[0..12] de TSaldo cont,me: inteiro mes: vetor[0..10] de caractere inicio para cont de 1 ate 12 faca VMes[1].nomeDoMes<-"Janeiro" VMes[2].nomeDoMes<-"Fevereiro" VMes[3].nomeDoMes<-"Março" VMes[4].nomeDoMes<-"Abril" VMes[5].nomeDoMes<-"Maio" VMes[6].nomeDoMes<-"Junho" VMes[7].nomeDoMes<-"Julho" VMes[8].nomeDoMes<-"Agosto" VMes[9].nomeDoMes<-"Setembro" VMes[10].nomeDoMes<-"Outubro" VMes[11].nomeDoMes<-"Novembro" VMes[12].nomeDoMes<-"Dezembro" fimpara para cont de 1 ate 10 faca escreva("Informe um mês do ano(1-12): ") leia(me) se (me >0) e (me < 13) entao se(me = VMes[cont].nomeDoMes) entao mes[cont]<-VMes[cont].nomeDoMes fimse fimse fimpara para cont de 1 ate 10 faca escreval("Mês:","",mes[cont]) fimpara fimalgoritmo Compartilhar este post Link para o post Compartilhar em outros sites
Bri ~ 3 Denunciar post Postado Abril 30, 2015 apenas alterar isso: se(me = VMes[cont].nomeDoMes) entao mes[cont]<-VMes[cont].nomeDoMes fimse para: mes[cont] <- VMes[me].nomeDoMes ficando: para cont de 1 ate 10 faca escreva("Informe um mês do ano(1-12): ") leia(me) se (me >0) e (me < 13) entao mes[cont] <- VMes[me].nomeDoMes fimse fimpara Explicando: 1 - No seu codigo, você verificou se "me" é igual Vmes[mes] ou seja, so vai salvar se for o mes digitado. Uma verificação se tem o mes, vc ja faz qnd coloca " (mes > 0 e mes < 13) " e como vc setou o vetor já vai fica certo. 2 - Você colocou "mes[cont]<-VMes[cont].nomeDoMes" ou seja. sempre irá viim na ordem 1,2,3,4,5,6... Mudei para "mes[cont] <- VMes[mes].nomeDoMes". Dessa forma, a posição do vetor irá ficar em ordem com o nome do mes correto na posição informada pela pessoa (variavel me). Obs: Caso você queira que sempre digite e não passe nenhum sem nada, você deve utiliar o "enquanto" -------------- Outro erro: para cont de 1 ate 12 faca VMes[1].nomeDoMes<-"Janeiro" VMes[2].nomeDoMes<-"Fevereiro" VMes[3].nomeDoMes<-"Março" VMes[4].nomeDoMes<-"Abril" VMes[5].nomeDoMes<-"Maio" VMes[6].nomeDoMes<-"Junho" VMes[7].nomeDoMes<-"Julho" VMes[8].nomeDoMes<-"Agosto" VMes[9].nomeDoMes<-"Setembro" VMes[10].nomeDoMes<-"Outubro" VMes[11].nomeDoMes<-"Novembro" VMes[12].nomeDoMes<-"Dezembro" fimpara Você não precisa desse "para cont de 1 ate 12 faca". Como você que vai setar o vetor, você não precisa desse Loop. ficando apenas assim: VMes[1].nomeDoMes<-"Janeiro" VMes[2].nomeDoMes<-"Fevereiro" VMes[3].nomeDoMes<-"Março" VMes[4].nomeDoMes<-"Abril" VMes[5].nomeDoMes<-"Maio" VMes[6].nomeDoMes<-"Junho" VMes[7].nomeDoMes<-"Julho" VMes[8].nomeDoMes<-"Agosto" VMes[9].nomeDoMes<-"Setembro" VMes[10].nomeDoMes<-"Outubro" VMes[11].nomeDoMes<-"Novembro" VMes[12].nomeDoMes<-"Dezembro" Compartilhar este post Link para o post Compartilhar em outros sites
carcamilo 0 Denunciar post Postado Abril 30, 2015 Valeu Joew, eu já tinha conseguido fazer usando um exemplo aqui do forum, mas muito obrigado. Estou com uma outra dúvida, esta dando um erro em uma outra parte, vc poderia me ajudar? Tenho que mostrar os valores em ordem decrescente, mas não consigo fazer a comparação, da um erro. Isso é só uma parte, mas da erro aqui: se (Dados[Op].Soma < Dados[Op+1].Soma) entao, fala que tinha que ter i então. Op<-0 Ult<-13 enquanto Ult<>0 faca enquanto Op <> Ult faca se (Dados[Op].Soma < Dados[Op+1].Soma) entao fimse Op<-Op+1 fimenquanto Op<-0 Ult<-Ult-1 fimenquanto Compartilhar este post Link para o post Compartilhar em outros sites
Bri ~ 3 Denunciar post Postado Abril 30, 2015 A ideia é você arrumar o vetor e depois você mostra na tela. para arrumar o vetor em ordem decrescente, você pode usar está logica: para i de 1 ate 9 faça para j de (i+1) até 10 faça se vetor[i] < vetor[j] então aux <- vetor[i]; vetor[i] <- vetor[j]; vetor[j] <- aux; fim_se fimpara fimpara Compartilhar este post Link para o post Compartilhar em outros sites
carcamilo 0 Denunciar post Postado Maio 1, 2015 Obrigado Sabrina, me ajudou muito, mais que o professor de ministra a matéria. Desculpa pelo Joew, agora que vi que era mulher. Muito obrigado. Compartilhar este post Link para o post Compartilhar em outros sites