Ir ao conteúdo
  • Cadastre-se
Charles Diogo123

Pascal Algoritmo soma de ímpares e pares

Recommended Posts

1. Faça um algoritmo que receba as idades de 10 pessoas e some as idades pares. Use o comando REPEAT

2. Faça o mesmo algoritmo só que somando também as idades ímpares e somando todas as idades ímpares + pares juntas.

 

O Algoritmo é esse:

var
          lista:array[1..10]of integer;
          pessoas, par:integer;

begin;
          pessoas :=0;
          repeat
                     writeln(' digite idade ');
                     pessoas:=pessoas + 1;
                     readln(lista[pessoas]);
          until (pessoas =10);

          pessoas:=0;
          par:=0;

          repeat
                     pessoas:=pessoas + 1;
                     if((lista[pessoas] mod 2)=0) then par:=par+lista[pessoas] ;
          until (pessoas =10);

writeln('soma das idades pares é ',par);
end.

 

Por exemplo: para calcular somente as idades ímpares era só mudar mod 2 = 0 para mod 2 = 1

então como eu faria para colocar a soma dos idades ímpares no algoritmo acima e como faria para somar as idades ímpares e pares?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Charles Diogo123     para somar as idades pares e as idades impares voce pode pegar cada idade digitada pelo usuario e somar uma com a outra pois as idades só podem ser par ou impar  .    e para somar as idades impares no primeiro , voce pode colocar um else e dentro dele faria a soma dos impares.  .

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

1#

Sobre:

@Charles Diogo123, por favor, ao postar um código, favor utilizar a tag CODE. Basta, antes de colar o código, clicar no botão <>.

botao_tag_code.png

 

obs.: para o código anterior, já editei e inseri.

 

 

 

2#

Sobre:

1 hora atrás, Charles Diogo123 disse:

Por exemplo: para calcular somente as idades ímpares era só mudar mod 2 = 0 para mod 2 = 1

 

Seria basicamente isso mesmo. Então presumimos que já sabe verificar se um número é ímpar também... correto?

 

 

 

3#

1 hora atrás, Charles Diogo123 disse:

então como eu faria para colocar a soma dos idades ímpares no algoritmo acima e como faria para somar as idades ímpares e pares?

 

Basicamente só fazer as duas verificações na mesma estrutura... algo como:

repeat
  pessoas:=pessoas + 1;
  if ((lista[pessoas] mod 2)=0) then //verifica se é par  
    par:=par+lista[pessoas];
  if ((lista[pessoas] mod 2)=1) then //verifica se é ímpar
    impar:=impar+lista[pessoas];
until (pessoas = 10);
writeln('soma das idades pares é   : ',par);
writeln('soma das idades impares é : ',impar);

 

A soma de um com o outro será a soma das variáveis... (que na prática será a soma de todas as idades)

 

Aí entra outras questões. Por exemplo:

 

1) um número não pode ser par e ímpar ao mesmo tempo.

inter.pngvia Wikipedia


Ou seja, a intercessão do conjunto dos pares com o conjunto dos ímpares, resulta em conjunto vazio, ou seja, não existe elemento em comum. Logo, se um número for par, jamais poderá ser ímpar também... nesse caso, usam-se o else do if.

 

Algo como:

repeat
  pessoas:=pessoas + 1;
  if ((lista[pessoas] mod 2)=0) then //verifica se é par  
    par:=par+lista[pessoas]
  else
    if ((lista[pessoas] mod 2)=1) then //verifica se é ímpares
      impar:=impar+lista[pessoas];
until (pessoas = 10);

 

 

2) se um número (lembrando que estamos tratando só de inteiros) não é par, necessariamente ele será ímpar. E vice-versa.

uniao.pngvia Wikipedia

 

Ou seja, a união do conjunto dos números pares com o conjunto dos números ímpares resulta no conjunto dos números naturais. Como já sabemos que um número não pode ser par e ímpar ao mesmo tempo, concluímos que se um número não é par, necessariamente ele será ímpar. E vice-versa, é claro.

 

Resumindo: basta verificar se é um deles. Se não for, é o outro. (todo número inteiro ou é par ou é ímpar)

 

Seria algo assim:

repeat
  pessoas:=pessoas + 1;
  if ((lista[pessoas] mod 2)=0) then //verifica se é par  
    par:=par+lista[pessoas]
  else //senão é ímpar
    impar:=impar+lista[pessoas];
until (pessoas = 10);

 

 

 

4#

Em vez de repeat, seria mais interessante utilizar for.  Combinaria mais. Sugeriria mudá-los.

 

 

 

5#

Só um detalhe besta sobre o padrão de nomenclatura das variáveis... (que talvez não seja importante, mas que particularmente acho relevante).

Spoiler

Resumidamente seria:
- em vez de pessoas, usar pessoa. Pois essa variável tende a ser mais relacionada ao "número da pessoa". Ou seja, a pessoa 1, a pessoa 2, a pessoa 3... etc. Lá na

- já par e impar poderiam ser pares e impares, ou seja, sendo mais relacionada "a soma dos pares e a soma dos ímpares". Ou mesmo somaPares e somaImpares... por ai vai.

- já o lista creio que ficou bom. Pois vetores tendem a representar um conjunto... logo, lista cai bem. Outro bom exemplo seria usar idades. Veja que está no plural... sugerindo que são mais de uma... obs.: lista não precisa ficar no plural pois já remete a um conjunto.

 

Em fim... esse ponto não é tão importante... inclusive nem eu mesmo tenho uma sensação se é coerente ou não... rs.

 

 

 

***

 

Qualquer coisa é só postar.

 

No aguardo.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×