Ir ao conteúdo
  • Cadastre-se

Ajuda codigo pascal/delphi


JUnior Ferrarezi

Posts recomendados

Boa tarde ! Gostaria da ajuda para somar numeros pares entre 1 e 1000 com comando while.Agradecido.


program

{$APPTYPE CONSOLE}

uses
SysUtils;

var par:integer;

begin
par:=0;

while par < 1000 do
begin
par:=par + 2;
End;

begin
writeln('A soma dos valores pares entre 1 e 1000 e:',par);
readln;
End;

End.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Ola JUnior Ferrarez,

Boa tarde ! Gostaria da ajuda para somar numeros pares entre 1 e 1000 com comando while.Agradecido.

Código:


program

{$APPTYPE CONSOLE}

uses
SysUtils;

var par:integer;

begin
par:=0;

while par < 1000 do
begin
par:=par + 2;
End;

begin
writeln('A soma dos valores pares entre 1 e 1000 e:',par);
readln;
End;

End.

Você está no caminho certo... vá tentando que você consegue.

Em fim, existe mais de uma forma de fazer. A ideia é que você desenvolva uma. Não vou passar dicas, para não atrapalhar o seu raciocínio. Apenas vou "corrigir" uns erro de sintaxe ("regras do Pascal")

Observe nos comentários:

[color=#0000ff]program[/color] NomeDoPrograma[color=#000000];[/color] [color=#008000]//faltou definir um nome do programa[/color]
[color=#008000]{$APPTYPE CONSOLE}[/color]
[color=#0000ff]uses[/color]
SysUtils[color=#000000];[/color]
[color=#0000ff]var[/color]
par[color=#000000]:[/color][color=#0000ff]integer[/color][color=#000000];[/color]
[color=#0000ff]BEGIN[/color]
par[color=#000000]:=[/color][color=#ff8000]0[/color][color=#000000];[/color]
[color=#0000ff]while[/color] par [color=#000000]<[/color] [color=#ff8000]1000[/color] [color=#0000ff]do[/color]
[color=#0000ff]begin[/color]
par[color=#000000]:=[/color]par [color=#000000]+[/color] [color=#ff8000]2[/color][color=#000000];[/color]
[color=#0000ff]end[/color][color=#000000];[/color]
[color=#008000]{begin}[/color] [color=#008000]//não tem necessidade desse begin[/color]
[color=#ff0080]writeln[/color][color=#000000]([/color][color=#a31515]'A soma dos valores pares entre 1 e 1000 e:'[/color][color=#000000],[/color]par[color=#000000]);[/color]
readln[color=#000000];[/color]
[color=#008000]{End;}[/color] [color=#008000]//esse end também não[/color]
[color=#0000ff]END[/color][color=#000000].[/color]

PS: Só corrigir a sintaxe, não mexi na lógica.

No aguardo

Abraços

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá JUnior Ferrarezi,

Valeu novamente pela atenção.Refiz o codigo e obtive o valor de 1000 mas gostaria de saber se esta correto ? No aguardo.Abço.

Faltou postar o novo código para analisarmos... ^_^

PS: Pelo valor, fica claro que tem alguma coisa errada. Se são 1000 valores, como uma soma da metades desses números vai dar 1000 também? Não tem como!

PS2: Analisando o techo de código.

while par < 1000 do
begin
par:=par + 2;
end;

Neste caso, essa variável par está recebendo os valores pares de 0 a 1000.

Para efeito demonstrativo, vou eu fiz o código imprimir esse valor a cada loop...

program NomeDoPrograma; //faltou definir um nome do programa
{$APPTYPE CONSOLE}
uses
SysUtils;
var
par:integer;
BEGIN
par:=0;
while par < 1000 do
begin
par:=par + 2;
[COLOR="Red"] write(par,' ');[/COLOR]
end;
[COLOR="Red"]writeln;[/COLOR] //só para pular uma linha
writeln('A soma dos valores pares entre 1 e 1000 e:',par);
readln;
END.

Logo, o que está faltando é somar esses valores...

Veja, par no caso é só o "próximo número par", falta somar esses números.

PS2: Meio que sem querer, você descobriu uma forma de achar os números pares da faixa de 0 a 1000. Existem outras. Uma delas pode ser utilizando a dica de FuriaX... mas antes de tudo, dê uma pesquisada sobre "paridade", ou seja, o que é um número ímpar e o que é um número par, e como "se calcula essa paridade". Tipo, como você sabe se um número é par ou ímpar fazendo a conta no papel??? Daí é só transferir esse "algoritmo" (passos necessários) para a sintaxe do Pascal...

No aguardo.

Abraços.

Link para o comentário
Compartilhar em outros sites

Bom dia Simon ! Pesquisei e encontrei esse codigo para obter a soma dos pares entre 1 e 1000


program Soma_pares_while;

{$APPTYPE CONSOLE}

uses
SysUtils;

var valor,soma:integer;

begin
soma:=0;
valor:=1;

while valor <= 1000 do
begin
if valor mod 2 = 0 then
begin
soma:=soma + valor;
End;

valor:= valor + 1;

End;

writeln('A soma dos valores pares e:',soma);
readln;


End.

Minha duvida no raciocinio é se a variavel valor:valor + 1 é para fazer a sequencia de funcionamento do comando while somando 1 algaritmo ao proximo ate chegar no digito 1000 e tb gostaria de saber porque se colocarmos valor:valor + 1 uma linha a baixo de valor:=1; o programa não roda corretamente ? Obrigado.

Pesquisei uma nova maneira para corrigir o codigo e foi implementado o comando mod, se voce achar outra maneira para o algoritmo aguardo a resposta e obrigado pela dica.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Minha duvida no raciocinio é se a variavel valor:valor + 1 é para fazer a sequencia de funcionamento do comando while somando 1 algaritmo ao proximo ate chegar no digito 1000 [...]

Vamos tentar redefinir os conceitos... então, de certo modo não podemos dizer que está estrutura valor:=valor + 1 é uma variável, já que a variável é somente o valor. Temos aqui dois processos distintos, mas executado em uma só linha. Primeiro, na parte direita, ele pega o valor (o valor em si que está na variável que tem o nome valor) e soma mais um. Daí, a segunda parte que é de "atribuição", no caso se referindo ao ":=". O programa vai pegar o resultado da soma anterior e vai jogar na variável cuja o nome é valor. O que está acontecendo é que a variável valor vai receber o seu próprio valor mais um. O interessante é que a mesma variável trabalha de duas forma diferentes, num mesmo contexto: no lado direito ele funciona como "o valor contido nela", e no lado esquerdo como "armazenador de valor". ^_^

[...] e tb gostaria de saber porque se colocarmos valor:valor + 1 uma linha a baixo de valor:=1; o programa não roda corretamente ? Obrigado.

Ai depende de onde você está se referindo a uma "linha abaixo". Se for logo acima do While realmente não vai funcionar, pois essa estrutura (de atualização de valores em valor) serve justamente para "controlar o While)..

Pesquisei uma nova maneira para corrigir o codigo e foi implementado o comando mod, se voce achar outra maneira para o algoritmo aguardo a resposta e obrigado pela dica.

Uma outra forma mais prática (e menos didática que a anterior) é simplesmente ir pulando para os números pares... quando é que um número é par??? Quando ele é divisível por 2. Então, quais são os números divisíveis por 2? Bastaria então fazer o "valor" começar com "2" e ir pulando de 2 em 2. Daí não precisa mais verificar se o número é par (já que sempre será, justamente por seguir a sequência, 2, 4, 6, 8...).

No aguardo.

Abraços

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!