Ir ao conteúdo
  • Cadastre-se

Outro Codigo PortugolStudio está correto ?


Ir à solução Resolvido por Leonardo0308,

Posts recomendados

A questão é : 

4 – Criar um algoritmo que leia a quantidade de números que se deseja digitar para que possa ser impresso o maior e o menor numero digitado. Não suponha que todos os números lidos serão positivos. Executar o programa novamente, se o usuário desejar. Exemplo: 
Quantos números deseja digitar: 5, Informe um numero:3, Informe um numero:2, Informe um numero:5, Informe um numero:6, Informe um numero:19,

O maior numero informado foi: 19

O menor numero informado foi: 2 

programa
{
	funcao inicio()
	{
		inteiro m=99999999,M=999999999,n,i,n2
		caracter opcao
		
		faca{
			m = 99999999
			M = 99999999
			escreva("Quantos numeros deseja digitar: ")
			leia(n)
			para(i=0;i<n;i++){
			escreva("Informe um numero: ")
			leia(n2)
			se(m>n2){
				m=n2
				}senao{
					M=n2
				}
			}
			escreva("\nO maior é :",M)
			escreva("\nO menor é :",m)
			
			escreva("\nDeseja informar novamente? S-sim/N-Não: ")
			leia(opcao)
		}enquanto(opcao=='s' ou opcao=='S')

		escreva("Programa finalizado!")
	}
}

Teria alguma outra forma de fazer este programa sem ficar igualando a variável toda hora a 999999 ?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Bom dia @Felipe Merklein Martins

 

Percebi alguns pequenos erros de logica, vamos fazer um teste de mesa

 

Quantos números deseja digitar:

2

Informe um numero:

3

m>n2 --> 99999999>3 --> verdadeiro

m=3

Informe um numero:

2

m>n2 --> 3>2 --> verdadeiro

m=2

 

O maior é :99999999

O menor é :2

 

Minha recomendação pessoal, faça ele atribuir o primeiro numero lido a m e M e depois faça dois if para verificar se aquele numero é maior o menor.

 

Espero ter ajudado.

 

Depois posta aqui pra gente ver sua correção.:D

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Leonardo0308 Mas da forma que você fez acaba indo pela mesma lógica que eu fiz ali em cima, tipo... o código está certo, porque depois que termina o laço faça, ele volta e atribui 99999 as variáveis de novo.... E entra no laço novamente. Só queria ver uma forma de fazer isso sem atribuir 99999 a essas variáveis, tipo... Eu poder começar elas com 0 por exemplo!

  • Amei 1
Link para o comentário
Compartilhar em outros sites

  • Solução

Eu fiz o teste de mesa do seu código @Felipe Merklein Martins, está certo ele aparecer "O maior é :99999999"?

 

Citação

Minha recomendação pessoal, faça ele atribuir o primeiro numero lido a m e M e depois faça dois if para verificar se aquele numero é maior o menor.

 

Algo assim

 

programa
{
	funcao inicio()
	{
		inteiro m,M,n,i,n2 //sem atribuição
		caracter opcao
		faca{
			escreva("Quantos numeros deseja digitar: ")
			leia(n)
			escreva("Informe um numero: ")
			leia(n2)
			m=n2 //atribui o primeiro numero lido como parametro para os proximos
			M=n2

			para(i=1;i<n;i++){ //começa em 1 pois já foi lido um numero
				escreva("Informe um numero: ")
				leia(n2)
				se(m>n2){
					m=n2
				}
				se(M<n2){
					M=n2
				}
			}
			escreva("\nO maior é :",M)
			escreva("\nO menor é :",m)

			escreva("\nDeseja informar novamente? S-sim/N-Não: ")
			leia(opcao)
		}enquanto(opcao=='s' ou opcao=='S')

		escreva("Programa finalizado!")
	}
}

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Leonardo0308  AAAAAAAAAAAAAA sim, agora eu entendiiiiiiiiiiiiiiiii........ 

 

É tipo um parecido que eu fiz vou te mostrar 

Questao : Faça um algoritmo onde o usuário insere quantos valores quiser e ao finalizar mostrar qual o menor valor informado 

programa
{
	funcao inicio()
	{
		inteiro a=1,m,i
		escreva("Digite 0 para encerrar o programa!")
		escreva("\nDigite quantos numeros quiser:")
		leia (a)
			m = a

			
			enquanto(a!=0){
				leia(a)
				se(a==0){
					escreva("Programa encerrado!\n")
				}senao{
					se(m>a){
					m=a
					}	
				}
			}
		escreva("O menor valor é:",m)
	}
}

No caso aí no que voce me explicou, é meio que voce fez a variavel receber o valor la em cima, pra poder comparar com os outros digitado no caso né ? 

 

Agora eu entendi, agora tudo faz sentido... Valeu 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...