Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bernardo Kowacic

VisuAlg

Recommended Posts

Olá, eu estou tendo problemas nesse trabalho no Caso 8, em que é necessário apresentar os valores impares que foram digitados pelo usuário. Em vez de apresentar os valores impares, ele não aparece nada e retorna ao menu novamente.

 

algoritmo "semnome"
// Função :
// Autor :
// Data : 28/05/2013
// Seção de Declarações
var
array: vetor [0..19]de real
save: vetor [0..19]de real
menu, x, y, cont, fim:inteiro
g1, g2: real
inicio
fim<-0
array[x]<-0
repita
    escreval("Por favor selecione uma opção:")
    escreval("    0 – Imprimir o array")
    escreval("    1 – Inicializar com valores do usuário")
    escreval("    2 – Calcular o quadrado")
    escreval("    3 – Calcular a divisão por 2")
    escreval("    4 – Deslocar os elementos à direita")
    escreval("    5 – Deslocar os elementos à esquerda")
    escreval("    6 – Imprimir os números ímpares")
    escreval("    7 – Inverter os valores do array")
    escreval("    8 – Duplicar os valores")
    escreval("    9 – Informar se o array está organizado em ordem crescente")
    escreval("Digite qualquer outra coisa para sair.")
    leia(menu)

escolha menu
caso 0
    para x de 0 ate 19 faca
    escreva ("", array[x])
    fimpara
    escreval("")

caso 1
    escreval("Digite 20 valores: ")
    para x de 0 ate 19 faca
        leia (array[x])
    fimpara

caso 2
    para x de 0 ate 19 faca
    array[x]<-array[x]*array[x]
    fimpara

caso 3
     para x de 0 ate 19 faca
     array[x]<-array[x]/2
     fimpara

caso 4
    g1<-array[19]
    para x de 0 ate 18 faca
        x<-x+1
        array[x]<-x
    fimpara
    array[0]<-g1

caso 5
    g1<-array[0]
    para x de 19 ate 0 faca
        y<-x-1
        g2<-array[y]
        array[x]<-g2
    fimpara
    array[19]<-g1
caso 6
     para x de 0 ate 19 faca
            se array[x] mod 2 = 1 entao
            escreva("", array[x])
    fimpara

caso 7
    para x de 0 ate 19 faca
        save[x]<- array[x]
    fimpara
    y<-19
    para x de 0 ate 18 faca
        array[y]<- save[x]
        y<-y-1
    fimpara

caso 8
     para x de 0 ate 19 faca
        save[x]<-array[x]
    fimpara
    y<-0
    para x de 0 ate 19 faca
            array[x]<- save[y]
            se (x mod 2 =1) entao
            y<-y+1
            fimse
    fimpara

caso 9
    para x de 1 ate 19 faca
        y<-x-1
        se array[x] > array[y] entao
	    cont<-0
	    enquanto cont<1 faca
            escreval("Crescente")
	    cont<-cont+1
	    fimenquanto
        fimse
    fimpara
outrocaso
    fim<-1

fimescolha

ate(menu>=10)
fimalgoritmo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo.

 

Na verdade, em qualquer opção que você entrar vai acontecer isso. O correto seria você criar um procedimento somente com as opções do menu, e chamá-lo fora do loop Repita. Acrescente uma nova opção ao seu menu de forma que o usuário consiga chamar novamente as opção do menu para escolher o que selecionar.

 

Outra coisa. Você precisa fazer algumas validações, pois antes de alimentar seu vetor eu posso selecionar alguma operação dentre as opção, e nada irá acontecer, pois esse mesmo vetor ainda está sem valores para realizar tais operações.

 

Até a próxima. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.