Chuckytah Posted October 25, 2006 at 08:11 PM Report #60093 Posted October 25, 2006 at 08:11 PM 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*^^*
TheDark Posted October 25, 2006 at 08:31 PM Report #60101 Posted October 25, 2006 at 08:31 PM 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.
Chuckytah Posted October 25, 2006 at 08:41 PM Author Report #60105 Posted October 25, 2006 at 08:41 PM 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*^^*
Warrior Posted October 25, 2006 at 08:49 PM Report #60109 Posted October 25, 2006 at 08:49 PM 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..
Chuckytah Posted October 25, 2006 at 08:54 PM Author Report #60115 Posted October 25, 2006 at 08:54 PM 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*^^*
Chuckytah Posted October 25, 2006 at 09:12 PM Author Report #60124 Posted October 25, 2006 at 09:12 PM 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*^^*
TheDark Posted October 25, 2006 at 09:20 PM Report #60127 Posted October 25, 2006 at 09:20 PM 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.
Chuckytah Posted October 25, 2006 at 09:23 PM Author Report #60128 Posted October 25, 2006 at 09:23 PM 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*^^*
Saco Posted October 26, 2006 at 01:36 AM Report #60172 Posted October 26, 2006 at 01:36 AM 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.
shumy Posted October 26, 2006 at 09:42 AM Report #60183 Posted October 26, 2006 at 09:42 AM 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!
Chuckytah Posted October 26, 2006 at 05:46 PM Author Report #60247 Posted October 26, 2006 at 05:46 PM 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*^^*
shumy Posted October 26, 2006 at 06:56 PM Report #60257 Posted October 26, 2006 at 06:56 PM 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!
Chuckytah Posted October 26, 2006 at 07:31 PM Author Report #60265 Posted October 26, 2006 at 07:31 PM 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*^^*
shumy Posted October 26, 2006 at 07:42 PM Report #60271 Posted October 26, 2006 at 07:42 PM 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!
TheDark Posted October 26, 2006 at 07:58 PM Report #60278 Posted October 26, 2006 at 07:58 PM 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%! Desaparecido.
Chuckytah Posted October 26, 2006 at 08:35 PM Author Report #60293 Posted October 26, 2006 at 08:35 PM 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*^^*
Chuckytah Posted October 26, 2006 at 08:36 PM Author Report #60294 Posted October 26, 2006 at 08:36 PM 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*^^*
TheDark Posted October 26, 2006 at 09:50 PM Report #60304 Posted October 26, 2006 at 09:50 PM 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.
Chuckytah Posted October 27, 2006 at 05:03 PM Author Report #60391 Posted October 27, 2006 at 05:03 PM 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*^^*
shumy Posted October 27, 2006 at 05:37 PM Report #60402 Posted October 27, 2006 at 05:37 PM exato é isso. Aqui há coisa de 2 anos fazia umas malhas de croché, depois fartei-me e fui para informática!
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now