FórumGdH

Página Inicial do Guia do Hardware

Registrar FAQ Calendário Pesquisar Mensagens de Hoje Marcar Fóruns Como Lidos

Voltar   FórumGdH > Profissional > Programação, scripts, web e banco de dados
Bem-vindo ao FórumGdH
Não se esqueça de se registrar, é grátis . Nós temos 754.120 usuários, convidamos você fazer parte de nossa comunidade também! Se ainda não encontrou o que procura use nossa pesquisa. Esperamos que aprecie nosso trabalho.

Resposta
 
Opções do Tópico
Antigo 04-09-2006, 12:02   #1 (permalink)
ZIN
Veterano
 
Avatar de ZIN
 
Registrado em: Feb 2005
Localização: Sampa - SP
Mensagens: 1.204
Reputação: 16 ZIN está indo no caminho certo
Padrão Algoritmo em pascal

Olá pessoal, estou com uns problemas com a construção de um algoritmo para pascal.

Eu tenho de criar um programa que receba dez valores e retorne o maior, o menor e a média entre os valores, tem como alguém me ajudar?

Muito obrigado!
ZIN está offline   Responder com Quote
Antigo 04-09-2006, 12:09   #2 (permalink)
ZIN
Veterano
 
Avatar de ZIN
 
Registrado em: Feb 2005
Localização: Sampa - SP
Mensagens: 1.204
Reputação: 16 ZIN está indo no caminho certo
Padrão

Encontrei este aqui:
Código:
var nota : array[1..50] of real; maior, menor : real; i : integer; begin writeln('Digite os 50 valores:'); for i:= 1 to 50 do read(nota[i]); maior := nota[1]; for i:= 2 to 50 do if nota[i] > maior then maior := nota[i]; writeln('Maior: ',maior); menor := nota[1]; for i:= 2 to 50 do if menor > nota[i] then menor := nota[i]; writeln('Maior: ',menor); writeln('Valores lidos'); for i:= 1 to 50 do writeln('valor [',i,'] = '.nota[i]); end.
Só não entendi o que significa o array em variáveis.

Obrigado!
__________________
Lifes is hard! Live it up!
ZIN está offline   Responder com Quote
Antigo 04-09-2006, 12:27   #3 (permalink)
Felipe Fontes
Veterano
 
Avatar de Felipe Fontes
 
Registrado em: Dec 2003
Localização: Rennes, France
Mensagens: 1.378
Reputação: 21 Felipe Fontes é um modelo a seguirFelipe Fontes é um modelo a seguirFelipe Fontes é um modelo a seguir
Padrão

nossa pra isso não precisa usar array nem tantos loops...

basta vc ir verificando a cada iteração quem é o maior e quem é o menor...
quanto a média vc faz o seguinte usa uma variavel para quardar a soma de todos os valores e usa outra pra guardar quantos valores foram usados (um contador) no final divide o somatorio pelo contador...

tipo isso aki:

Código:
var maior, menor, media, num, cont:real; op:char; begin cont:=0; repeat Writeln('Entre com um número'); readln(num); if cont=0 then begin {está na primeira iteração} maior:=num; menor:=num; end; if num>maior then maior:=num; if num<menor then menor:=num; media:=media+num; {soma se todos os valores para depois dividir pelo contador e dar a media} cont:=cont+1; writeln('Deseja entrar com mais numeros? (S/N)'); op:=UPCASE(readkey); until op='N'; media:=media/cont; writeln('maior ',maior:0:2,' menor ',menor:0:2,' media ',media:0:2); end.

se vc quiser só 10 valores basta trocar o "repeat until" por um "for" e fazer as adaptações nescessárias :wink:
__________________
And the heavens shall tremble

"Life can only be understood backwards, but it must be lived forwards." Soren Kierkegaard
Felipe Fontes está offline   Responder com Quote
Antigo 04-09-2006, 12:49   #4 (permalink)
ZIN
Veterano
 
Avatar de ZIN
 
Registrado em: Feb 2005
Localização: Sampa - SP
Mensagens: 1.204
Reputação: 16 ZIN está indo no caminho certo
Padrão

Felipe Fontes não está dando certo.
Eu tenho de entrar com 10 valores, imprimir o maior destes 10 e o menor dos 10 números digitados.
Depois tenho de por a média.

Obrigado!
__________________
Lifes is hard! Live it up!
ZIN está offline   Responder com Quote
Antigo 04-09-2006, 15:22   #5 (permalink)
gto
GeeK
 
Avatar de gto
 
Registrado em: Aug 2002
Localização: Porto Alegre - RS
Idade: 25
Mensagens: 2.116
Reputação: 29 gto Sua luz ofusca a todosgto Sua luz ofusca a todosgto Sua luz ofusca a todosgto Sua luz ofusca a todosgto Sua luz ofusca a todos
Enviar mensagem via ICQ para gto Enviar mensagem via MSN para gto
Padrão

Código:
program Menor_e_Media; var i, menor, media, atual: integer; begin menor := 99999999; media := 0; for i := 1 to 10 do begin WriteLn('Entre com um número'); ReadLn(atual); if atual < menor then menor := atual; media := media + atual; end; media := media div i; WriteLn('Menor Número ' + menor); WriteLn('Média ' + media); end.
Solução podre que ensinavamna escola. Funciona e contenta o professor heheh
Só ali nos últimos WriteLn faltaria um esquema pra converter integer em string.
__________________
Tis -> TE AMO !!!

Sony Vaio VPC-EB17FX/W
Intel Core i3 M330 - 4GB DDR3 - 500GB Sata II - ATI 5470HD 512Mb - 15.5 LED FullHD - Blu-Ray
gto está offline   Responder com Quote
Antigo 04-09-2006, 16:40   #6 (permalink)
ZIN
Veterano
 
Avatar de ZIN
 
Registrado em: Feb 2005
Localização: Sampa - SP
Mensagens: 1.204
Reputação: 16 ZIN está indo no caminho certo
Padrão

gto obrigado funcionou.

Abraços!
__________________
Lifes is hard! Live it up!
ZIN está offline   Responder com Quote
Antigo 04-09-2006, 17:50   #7 (permalink)
Felipe Fontes
Veterano
 
Avatar de Felipe Fontes
 
Registrado em: Dec 2003
Localização: Rennes, France
Mensagens: 1.378
Reputação: 21 Felipe Fontes é um modelo a seguirFelipe Fontes é um modelo a seguirFelipe Fontes é um modelo a seguir
Padrão

Citação:
Postado Originalmente por ZIN
Felipe Fontes não está dando certo.
Eu tenho de entrar com 10 valores, imprimir o maior destes 10 e o menor d...
eu fiz diferente do que vc pediu justamente para vc entender o codigo e adaptar para a sua necessidade...

se eu te desse o codigo pronto vc não ia aprender, como aconteceu com outro companheiro...

analize os dois códigos e vc verá que no fundo eles são iguais (com a vantagem do meu usar variaveis reais e não inteiras e ainda não usar um pseudo menor). se vc tivesse analizado o meu codigo e entendido vc chegaria ao codigo no final por si só. :wink:

no fim se vc tivesse entendido o meu codigo vc chegaria a essa adaptação:
Código:
Program mamemed; uses wincrt; var maior, menor, media, num:real; cont:integer; begin for cont:=1 to 10 do begin Writeln('Entre com o ',cont,'º número.'); readln(num); if cont=1 then begin {está na primeira iteração} maior:=num; menor:=num; end; if num>maior then maior:=num; if num<menor then menor:=num; media:=media+num; {soma se todos os valores para depois dividir pelo contador e dar a media} clrscr; end; media:=media/10; writeln('maior ',maior:0:2,' menor ',menor:0:2,' media ',media:0:2); end.
__________________
And the heavens shall tremble

"Life can only be understood backwards, but it must be lived forwards." Soren Kierkegaard
Felipe Fontes está offline   Responder com Quote
Antigo 04-09-2006, 19:00   #8 (permalink)
gto
GeeK
 
Avatar de gto
 
Registrado em: Aug 2002
Localização: Porto Alegre - RS
Idade: 25
Mensagens: 2.116
Reputação: 29 gto Sua luz ofusca a todosgto Sua luz ofusca a todosgto Sua luz ofusca a todosgto Sua luz ofusca a todosgto Sua luz ofusca a todos
Enviar mensagem via ICQ para gto Enviar mensagem via MSN para gto
Padrão

Citação:
Postado Originalmente por Felipe Fontes
eu fiz diferente do que vc pediu justamente para vc entender o codigo e adaptar para a sua necessidade...

se eu te...
Concordo plenamente!
Eu postei um texto aqui uma vez, explicando "A saga dos alunos bastardos". Nunca mais consgui achar, mas falava extamente disso. Sobre o fato, desisti de ajudar pra valer, quando tudo o que querem é um copy & paste, é tudo o que dou.
__________________
Tis -> TE AMO !!!

Sony Vaio VPC-EB17FX/W
Intel Core i3 M330 - 4GB DDR3 - 500GB Sata II - ATI 5470HD 512Mb - 15.5 LED FullHD - Blu-Ray
gto está offline   Responder com Quote
Antigo 04-09-2006, 22:33   #9 (permalink)
jqueiroz
Highlander
 
Avatar de jqueiroz
 
Registrado em: May 2002
Localização: Tijuca/RJ
Idade: 9
Mensagens: 87.724
Reputação: 778 jqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputação
Padrão

Citação:
quando tudo o que querem é um copy & paste, é tudo o que dou.
Pois eu não dou nem isso. Minha repostas, nesses casos, é "Posta aí o que você já fez". E nunca dou o programa pronto: no máximo discuto o que a pessoa tem que fazer, e coloco alguns trechos mais complicados.

Infelizmente não é todo mundo que percebe, que assim, aprende mais do que no "copy&paste".
__________________
Visite Quepolis (link de indicação) | "chmod 777 nunca ajudou ninguém" (c) 2002-2010 JQueiroz/FGdH
CCNP: √ ² CCSI: □ | Conheça o Novo Bebuns
jqueiroz está offline   Responder com Quote
Antigo 05-09-2006, 0:16   #10 (permalink)
ZIN
Veterano
 
Avatar de ZIN
 
Registrado em: Feb 2005
Localização: Sampa - SP
Mensagens: 1.204
Reputação: 16 ZIN está indo no caminho certo
Padrão

jqueiroz claro tanto que vale a pena a pessoa aprender, tanto que depois disso não conseguiria, vendo como o amigo fez para mim eu consegui bolar outros que entrando com 3 valores eu consiga diferenciar o menor, medio e maior.
O pascal pode ser um pouco complicado, porque geralmente pensamos que não seria capaz de gerar ou criar algo em um comando tão simples, acho que por ser tudo em inglês.

Abraços e não sou do membro chupim, tenho 3500 mensagens em um suporte que ajuda aos outros usuários e tenho a mesma ideologia, só pascal estou me ferando.
__________________
Lifes is hard! Live it up!
ZIN está offline   Responder com Quote
Antigo 05-09-2006, 12:54   #11 (permalink)
Felipe Fontes
Veterano
 
Avatar de Felipe Fontes
 
Registrado em: Dec 2003
Localização: Rennes, France
Mensagens: 1.378
Reputação: 21 Felipe Fontes é um modelo a seguirFelipe Fontes é um modelo a seguirFelipe Fontes é um modelo a seguir
Padrão

Citação:
Postado Originalmente por ZIN
jqueiroz claro tanto que vale a pena a pessoa aprender, tanto que depois disso não conseguiria, vendo como o a...
pascal é super simples... se vc está tendo dificuldades é mais um motivo para vc meter a mão na massa e tentar fazer sozinho...

se não estiver conseguindo abra um tópico explicando o que vc queria fazer e ponha o codigo que vc fez... assim a galera vai te explicar o que vc está fazendo de errado e mostrar o caminho certo...


quando eu postei nesse tópico a primeira vez, eu ia deixar só a parte escrita, sem o codigo... mas me pareceu confuso o que eu escrevi, então eu botei o codigo. Só que não exatamente como vc queria, exatamente para forçar vc a entender e modificá-lo... :roll:
__________________
And the heavens shall tremble

"Life can only be understood backwards, but it must be lived forwards." Soren Kierkegaard
Felipe Fontes está offline   Responder com Quote
Antigo 16-03-2009, 13:06   #12 (permalink)
jadield2
Newbie
 
Registrado em: Mar 2009
Mensagens: 5
Reputação: 0 jadield2 está indo no caminho certo
Padrão

tow aprendendo pra caramba com vc's akiii
huahau

primeiro semestre em redes de computadores!

vlw

ah essa tbm era uma dúvida minha!
__________________
SeJa FoRtE Ou mOrRa tEnTaNDO!!


JaDiel Soares________________
jadield2 está offline   Responder com Quote
Resposta


Opções do Tópico

Regras de Mensagens
Você não pode criar tópicos
Você não pode postar respostas
Você não pode anexar arquivos
Você não pode editar suas mensagens

Código vB está Ligado
Smiles estão Ligado
Código [IMG] está Ligado
Código HTML está Desligado
Ir para...


Horários baseados na GMT -3. Agora são 14:54.