Jump to content

[How to] Dúvidas. Algoritmo para calcular pesos!


Chuckytah
 Share

Recommended Posts

Olá a todos! Bem tou aqui com um problemazito para a disciplina de A.I.. É o seguinte, tenho de fazer um algoritmo, de preferencia com a estrutura PARA, ENQUANTO ou REPETIR, que após a introdução de um x número de pesos, por exemplo pesos de 50 golfinhos, os leia, e de seguida imprima qual o peso mais leve... Já tentei mas deu barraca, não dá porque eu não sei como fazer para comparar todos os pesos... Obrigada pela atenção.

*^^*<3@Chuckytuh@<3*^^*

Link to comment
Share on other sites

Benvindo/a! Em que tipo de estrutura tens os pesos que queres comparar? Se for um array (ou algo do género) é só incrementares uma variável no ciclo PARA que irá servir de indice, do género

PARA i = 1 até 5 FAZER ler(peso[i]);

Depois podes colocar o 1º peso numa variável, e com outro ciclo PARA semelhante ao anterior, comparares com o peso seguinte, se for maior metes o novo peso na tal variável, em seguida comparas com o seguinte, e assim sucessivamente.

Desaparecido.

Link to comment
Share on other sites

sim, eu sei, que todo seria mais facil usando um array, mas ainda não chegamos a dar isso, e não queria chegar lá a avançar, pois o professor não iria gostar. Eu para já não posso utilizar arrays e/ou vectores, e o que tinha pensado era fazer tipo:

Escrever('insira o peso:')

Ler(peso)

e depois armazena-lo numa variavel, por exemplo:

menor<-peso.

depois como tinha feito numa estrutura PARA, ele vai pedir a introdução de 10 pesos... até aqui tudo bem, axo eu, mas eu depois tenho forçosamente de no meio do ciclo PARA ter um SE para comparar os pesos e guardar na variavel 'menor' o de menor peso, não é?

*^^*<3@Chuckytuh@<3*^^*

Link to comment
Share on other sites

Não estou a ver nenhuma forma de resolver o problema sem um IF pelo meio..

menor = infinito

para p=1 até 50 fazer

escrever('insira o peso:')

ler(peso)

se peso<menor menor = peso

fim do para

escrever(menor)

PS: Nunca soube escrever em pseudo-código..

Link to comment
Share on other sites

pois eu fiz  isto: :bored:

Algoritmo "Peso dos 10 Golfinhos"

Este algoritmo, após a introdução dos 10 pesos dos golfinhos correspondentes, vai determinar e imprimir o que tem o menor peso, e qual o peso.

1.[Definição de constantes]

MAX_GOLFINHOS

2.[Declaração de variáveis]

menor, peso_golfinho : numéricos reais

i : numérico inteiro

3.[inicialização de variáveis]

menor<-0

peso_golfinho<-0

4.[Cálculo]

Para i<-1 até MAX_GOLFINHOS fazer

Escrever('Insira o peso do,'i,'golfinho:')

Ler(peso_golfinho)

Se i=1 então

Inicio

menor<-peso_golfinho

Fim

Se peso_golfinho<menor então

menor<-peso_golfinho

5.[impressão do resultado]

Escrever('O golfinho que pesa menos pesa:',menor)

6.[Terminar]

Sair.

Mas não sei se está correcto... ;)

*^^*<3@Chuckytuh@<3*^^*

Link to comment
Share on other sites

Benvindo/a! Em que tipo de estrutura tens os pesos que queres comparar? Se for um array (ou algo do género) é só incrementares uma variável no ciclo PARA que irá servir de indice, do género

PARA i = 1 até 5 FAZER ler(peso[i]);

Depois podes colocar o 1º peso numa variável, e com outro ciclo PARA semelhante ao anterior, comparares com o peso seguinte, se for maior metes o novo peso na tal variável, em seguida comparas com o seguinte, e assim sucessivamente.

pois bem eu fiz  isto:

Algoritmo "Peso dos 10 Golfinhos"

Este algoritmo, após a introdução dos 10 pesos dos golfinhos correspondentes, vai determinar e imprimir o que tem o menor peso, e qual o peso.

1.[Definição de constantes]

MAX_GOLFINHOS

2.[Declaração de variáveis]

menor, peso_golfinho : numéricos reais

i : numérico inteiro

3.[inicialização de variáveis]

menor<-0

peso_golfinho<-0

4.[Cálculo]

Para i<-1 até MAX_GOLFINHOS fazer

  Escrever('Insira o peso do,'i,'golfinho:')

  Ler(peso_golfinho)

  Se i=1 então

  Inicio

      menor<-peso_golfinho

  Fim

  Se peso_golfinho<menor então

      menor<-peso_golfinho

5.[impressão do resultado]

Escrever('O golfinho que pesa menos pesa:',menor)

6.[Terminar]

Sair.

mas não sei se funciona... :S

*^^*<3@Chuckytuh@<3*^^*

Link to comment
Share on other sites

Não ligues, isto já é automatismo das aulas, tenho passado os dias a ler para arrays e depois trabalhar com esses valores ;P detesto java...

O teu parece estar bem, a única coisa que pode faltar é o inicio/fim no ciclo para... porque dizes que deu barraca?

Desaparecido.

Link to comment
Share on other sites

Não ligues, isto já é automatismo das aulas, tenho passado os dias a ler para arrays e depois trabalhar com esses valores ;P detesto java...

O teu parece estar bem, a única coisa que pode faltar é o inicio/fim no ciclo para... porque dizes que deu barraca?

Porque fiz depois para Pascal e ele não faz o ciclo para, apenas le o peso do primeiro golfinho e imprime logo k é o mais leve, e nao deixa introduxir sequer o peso do segundo golfinho :S lol n sei porquê. mas prontos, agora tenho de passar do ciclo PARA, para o ENQUANTO e REPETIR, mas isso é fácil, lol ;P, pelo menos parece XD bigada pela ajuda ;)

*^^*<3@Chuckytuh@<3*^^*

Link to comment
Share on other sites

  Se i=1 então

  Inicio

      menor<-peso_golfinho

  Fim

Esta parte é escusada, uma vez que o menor peso começa a zero, qualquer peso que seja introduzido é maior que o valor inicial, logo, nao interessa se é ou não o primeiro peso.

Link to comment
Share on other sites

E tens de salvar todos os dados introduzidos? Se não existir restrições por parte do professor o mais simples sera:

Ler peso

comparar com o máximo e guardar o máximo dos dois.

Só presisas de duas variaveis e um if. O resto é input/output. Eventualmente um ciclo também só para repetir o pedido de introdução de dados.

Se não deram estruturas de dados como arrays ou vectores. Provavelmente é isso que ele quer.

Aqui há coisa de 2 anos fazia umas malhas de croché, depois fartei-me e fui para informática!

Link to comment
Share on other sites

ya, ja vi que a parte do Se i=1(..) era desnecessária, mas para isso teria de inicializar a variavel menor<-99999 porque assim o primeiro seria automaticamente menor,lol.

Agr tem outro problema, o professor ker agr k s introduzao um x nr d golfinhos, determinar kal o k pesa mais e kantos pesam tanto kanto ele. :S n sei por onde começar... posso usar o anterior e so alterar o k ele pede n é?

*^^*<3@Chuckytuh@<3*^^*

Link to comment
Share on other sites

Podes adicionar mais uma variavel para contar os máximos. Sempre que tiveres uma introdução de um máximo igual incrementas essa variavel. Se actualizares o máximo fazes reset ao contador. E para inicializares o max, tens de fazer uma leitura antes do ciclo interno. Essa primeira leitura é o valor inicial do max.

Aqui há coisa de 2 anos fazia umas malhas de croché, depois fartei-me e fui para informática!

Link to comment
Share on other sites

Podes adicionar mais uma variavel para contar os máximos. Sempre que tiveres uma introdução de um máximo igual incrementas essa variavel. Se actualizares o máximo fazes reset ao contador. E para inicializares o max, tens de fazer uma leitura antes do ciclo interno. Essa primeira leitura é o valor inicial do max.

como assim? n percebi,lol XD algo assim?:

Para 1<-1 até MAX_GOLFINHOS fazer

Ler(peso_golfinho)

maior<-peso_golfinho

i-<0

não compreendi msm, actualizar o contador pkê?

*^^*<3@Chuckytuh@<3*^^*

Link to comment
Share on other sites

O contador(variavel) que tens a mais, não me estou a referir ao i.

Para contar a quantidade de valores que são iguais ao máximo.

Sei lá tipo:

Para 1<-1 até MAX_GOLFINHOS fazer

Ler(peso_golfinho)

se peso_golfinho>maior então maior<-peso_golfinho; contador=0

se peso_golfinho=maior então contador=contador+1

i-<0

Possa, em c ficava mais compreensivel!!

Aqui há coisa de 2 anos fazia umas malhas de croché, depois fartei-me e fui para informática!

Link to comment
Share on other sites

O contador(variavel) que tens a mais, não me estou a referir ao i.

Para contar a quantidade de valores que são iguais ao máximo.

Sei lá tipo:

Para 1<-1 até MAX_GOLFINHOS fazer

Ler(peso_golfinho)

se peso_golfinho>maior então maior<-peso_golfinho; contador=0

se peso_golfinho=maior então contador=contador+1

i-<0

Possa, em c ficava mais compreensivel!!

okis, percebi fix assim:

Algoritmo "Peso dos 10 Golfinhos"(Estrutura PARA)

Este algoritmo, após a introdução dos 10 pesos dos golfinhos correspondentes, vai determinar e imprimir qual é o mais pesado, e quantos pesam tanto quanto o que pesa mais.

1.[Definição de constantes]

MAX_GOLFINHOS

2.[Declaração de variáveis]

maior, peso_golfinho : numéricos reais

i, contador : numérico inteiro

3.[inicialização de variáveis]

maior<-0

peso_golfinho<-0

4.[Cálculo]

Para i<-1 até MAX_GOLFINHOS fazer

Escrever('Insira o peso do,'i,'º golfinho:')

Ler(peso_golfinho)

Se peso_golfinho>maior então

maior<-peso_golfinho

FimSe

contador=0

Se peso_golfinho=maior então

contador<-contador+1

FimSe

i<-0

5.[impressão do resultado]

Escrever('O golfinho mais pesado pesa:’,maior,’kg e pesam também tanto quanto ele:’,i,’golfinhos.´)

6.[Terminar]

Sair.

olha, soz, xatear, mas n percebi pk k no fim tenho de ter o i<-0...lol podes explicar? ;)

*^^*<3@Chuckytuh@<3*^^*

Link to comment
Share on other sites

Ia colocar aqui o pseudocódigo mais bem estruturado, mas acho melhor tentares fazer por ti 1º. Pega aí no exemplo do shumy e tenta pô-lo a 100%!

eu fix assim:

Algoritmo "Peso dos 10 Golfinhos"(Estrutura PARA)

Este algoritmo, após a introdução dos 10 pesos dos golfinhos correspondentes, vai determinar e imprimir qual é o mais pesado, e quantos pesam tanto quanto o que pesa mais.

1.[Definição de constantes]

MAX_GOLFINHOS

2.[Declaração de variáveis]

maior, peso_golfinho : numéricos reais

i, contador : numérico inteiro

3.[inicialização de variáveis]

maior<-0

peso_golfinho<-0

4.[Cálculo]

Para i<-1 até MAX_GOLFINHOS fazer

Escrever('Insira o peso do,'i,'º golfinho:')

Ler(peso_golfinho)

Se peso_golfinho>maior então

maior<-peso_golfinho

FimSe

contador=0

Se peso_golfinho=maior então

contador<-contador+1

FimSe

i<-0

5.[impressão do resultado]

Escrever('O golfinho mais pesado pesa:’,maior,’kg e pesam também tanto quanto ele:’,i,’golfinhos.´)

6.[Terminar]

Sair.

não está bem? tem passos desnecessarios? ajuda pf ^^

*^^*<3@Chuckytuh@<3*^^*

Link to comment
Share on other sites

O i<-0 no código do shumy deve ter sido esquecimento dele ao copiar e alterar o código que puseste antes; está lá mal e deve ser retirado, senão ao fim de cada iteração ias ficar com o i sempre a 0, e isso resultava num ciclo Para infinito.

Quanto ao teu pseudocódigo, tens ali problemas na manipulação da variável contador. Tu queres colocá-la a 0 quando o peso for maior, e queres incrementá-la quando o peso for igual ao maior, logo a linha "contador=0" tem que ficar dentro do 1º Se. Algo assim:

   Se peso_golfinho>maior então
      maior<-peso_golfinho
      contador=0
   FimSe

Só mais uma coisa: não é preciso fazeres 2 posts quase iguais para responder a 2 pessoas, podes partilhar 1 post para as 2 respostas 😄

Desaparecido.

Link to comment
Share on other sites

Só mais uma coisa: não é preciso fazeres 2 posts quase iguais para responder a 2 pessoas, podes partilhar 1 post para as 2 respostas 😄

lol sorry, lol n sabia =') k trenga, sou novata aki,lol.

*^^*<3@Chuckytuh@<3*^^*

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.