Ir para conteúdo

Arquivado

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

Taynara Mariana

Lógica

Recommended Posts

Pessoal, eu sou nova em programação e estou tendo dificuldades com esta questão:

 

Escrever um algoritmo que lê um número não determinado de valores para m, todos inteiros e

positivos, um de cada vez. Se m for par, verificar quantos divisores possui e escrever esta informação. Se m for ímpar e menor do que 12 calcular e escrever o fatorial de m. Se m for ímpar e maior ou igual a 12 calcular e escrever a soma dos inteiros de 1 até numero lido.

 

Até agora eu só consegui mesmo é organizar a questão assim:

 

 

se (valorM<0) entao

escreval ("Digite apenas um valor positivo:")

fimse

 

se (valorM mod 2 = 0)

ver quantos divisores tem

 

se (valorM mod 2 <> 0) e (valorM<12)

escrever fatorial

 

se (valorM <>0) e (valorM>12)

escrever soma dos números de 1 até este valorM

 

 

Na verdade não sei como ver os divisores sendo que não tenho um número determinado de elementos. Já procurei uma forma de fazer uma fatoração, mas também não estou conseguindo achar a lógica de coloca-la no programa. Além disso, não faço a mínima ideia de como escrever uma sequencia como pede a quarta condição que pensei.

 

A minha dúvida é de lógica mesmo. Já vi vários códigos e alguns apontamentos, mas ainda não consegui desenvolver. Ajuda por favor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu fiquei ocupada com outra lista, mas essa questão ainda não saiu.

 

Primeiro, importa eu clocar a condição de par primeiro que ímpar, ou é melhor colocar colocar aquela que tem outras tantas condições embutidas? Porque além de ímpar, tenho que ver se é menor ou maior, e quando coloquei a condição de par primeiro, o programa não escrevia o par, só o ímpar.

 

Das três estruturas de repetição, eu estava usando o repita porque não tinha número definido de elementos, mas esse seria o melhor caso?

 

E por enquanto, vocês tem algum método que eu possa usar para achar divisores? Só vi fatoração com números primos, mas eu também não consegui colocar em código.

 

Eu realmente quero ajuda de lógica e estrutura. Tenho percebido que preciso desenvolver isso para ser uma boa programadora.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A estrutura de repetição independe da localização de cada IF, basicamente, o que você precisa ter em mente para poder desenvolver bem é deixar as condições mais generalizadas primeiro e, por último ou aninhadas dentro das primeiras, as condições mais específicas.

 

Vou dar um exemplo, imagine que o usuário digite um número e você tenha que verificar se ele é maior que 10 ou menor que 10, se ele for maior que 10 e par então você deve dividi-lo por 2, caso contrário por 3. Agora se ele for menor que dez você só precisa mostrá-lo.

 

Repare que temos várias condições, mas vamos seguir a lógica:

 

->O número é maior que 10?

--->Se sim

----->É par?

------>Se sim

-------->Dividir por 2

------>Se não

-------->Dividir por 3

--->Se não

----->Mostrar número

 

Perceba que a condição mais generalizada é "Ele é maior que 10?", porque independe de perguntar qualquer outra coisa, eu não preciso fazer nenhuma conta nem nenhuma divisão para saber se o número é maior que 10 ou não. Depois precisamos perguntar se ele é par, e ai vamos para a terceira condição mais específica.

 

Basicamente você deve sempre organizar seus IF's em blocos de uma ou duas condições, pois a chance de errar quado um IF tem mais que isto é muito grande, separe suas estruturas em blocos menores e faça testes unitários ou testes de mesa para ver se esta é a condição que você está procurando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.