aula 136

Dúvida | Como preencher vetor enquanto o salário digitado for maior que zero em Portugol?

E hoje vamos de duas dúvidas muito semelhantes. Como ler valores e preencher um vetor enquanto esses valores forem maior que zero?

Dizendo em outras palavras, como ler dados para um vetor até que seja digitado um valor igual a zero ou negativo? É isso que vamos ver na aula de hoje com a linguagem Portugol.

Perceba que a dúvida principal aqui não está relacionada ao vetor, mas à estrutura de repetição faca enquanto, ler valores enquanto o valor digitado for maior que zero.

O passo a passo aqui é o seguinte:

ler um salário
se for maior que zero, então salvar no vetor
se for maior que zero, então ler outro salário

Porém, não queremos uma sequência infinita de testes se, afinal não sabemos quantos salários o usuário irá digitar. Então, podemos organizar esses passos lógicos dentro da estrutura de repetição faca enquanto, assim:

/*
       Repita enquanto salário digitado for maior que zero
*/
		faca{
			escreva("Digite um salario: ")
			leia(salario)
			se(salario > 0){
				vet[i] = salario
				i++
			}
		}enquanto(salario > 0)

Perceba que estamos acessando o vetor na posição i. A variável i deve ser inicializada com zero pra acessar o vetor a partir da primeira posição. A partir daí, a cada salário lido, a variável i deve ser incrementada. Ao final, a variável i nos dirá quantos salários foram inseridos no vetor.

Após a leitura dos salários, como a variável i nos diz quantos elementos tem no vetor, nós podemos percorrer apenas a parte preenchida do vetor a fim de responder algumas perguntas como: o menor salário; o maior salário e a média dos salários digitados.

Esta ideia é desenvolvida a seguir em portugol.

/*
          Código escrito por Wagner Gaspar
          Agosto de 2021
*/

programa{
	
	funcao inicio(){
		real salario, somatorio = 0.0, media, maior, menor, vet[1000]
		inteiro j, i = 0

		faca{
			escreva("Digite um salario: ")
			leia(salario)
			se(salario > 0){
				vet[i] = salario
				i++
			}
		}enquanto(salario > 0)

		maior = 0.0
		menor = 9999.99
		para(j = 0; j < i; j++){
			somatorio += vet[j]
			
			se(maior < vet[j])
				maior = vet[j]
			se(menor > vet[j])
				menor = vet[j]
		}
		media = somatorio / i
		escreva("Média: R$", media, "\n")
		escreva("Maior salário: R$", maior, "\n")
		escreva("Menor salário: R$", menor, "\n")
	}
}

Deixe um comentário

onze − sete =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.