Ir para conteúdo

Featured Replies

Postado

Li várias e várias vezes, mas não consegui entender o problema!

É de um livro que encontrei na net: Aprendendo a programar na linguagem C - Para Iniciantes (3ª edição), Jaime Evaristo

"Uma outra técnica bastante utilizada é se tentar raciocinar a partir de uma solução conhecida de uma outra questão. Para compreender isto considere as duas seguintes questões: imagine uma relação de n números, os quais podem ser referenciados por ai com i = 1, 2, ..., n e queiramos somá-los com a restrição de que só sabemos efetuar somas de duas parcelas." - Como assim soma de duas parcelas? - "Para resolver esta questão, podemos pensar em casos particulares: se n = 2, basta somar os dois números;" - Que números? - "se n = 3, basta somar os dois primeiros" - Quais são os dois primeiros? - "e somar esta soma com o terceiro." - ? O_O' - "Naturalmente este raciocínio pode ser reproduzido para n > 3. A questão é que a soma dos dois primeiros deve estar "guardada" para que se possa somá-la com o terceiro, obtendo-se a soma dos três primeiros; esta soma deve ser "guardada" para que seja somada com o quarto e assim sucessivamente. Para isto podemos estabelecer uma referência à soma "atual", a qual será alterada quando a soma com o elemento seguinte for efetuada. Até para somar os dois primeiros, pode-se pensar em somar "a soma do primeiro" com o segundo.

Temos então o seguinte algoritmo:

1. Faça i = 1.

2. Faça Soma = a1.

3. Repita n – 1 vezes as instruções 3.1 e 3.2.

3.1. Substitua i por i + 1.

3.2. Substitua Soma por Soma + ai.

Por exemplo: se n = 5 e a1 = 8, a2 = 4, a3 = 9, a4 = 13 e a5 = 7, a execução do algoritmo resultaria nas

seguintes ações:

1. i = 1.

2. Soma = 8.

3.1.1. i = 2.

3.2.1. Soma = 8 + 4 = 12

3.1.2. i = 3.

3.2.2. Soma = 12 + 9 = 21.

3.1.3. i = 4.

3.2.3. Soma = 21 + 13 = 34.

3.1.4. i = 5.

3.2.4. Soma = 34 + 7 = 41.

Naturalmente, na execução acima estamos indicando por 3.1.x e 3.2.x a execução de ordem x das

instruções 3.1 e 3.2.

Como veremos ao longo do livro, este algoritmo é bastante utilizado em programação, sendo mais

comum até o primeiro termo da relação ser "somado" dentro da repetição. Neste caso, para que o primeiro

seja somado, é necessário que Soma seja inicializado com 0 (zero), ficando assim o algoritmo:

1. Faça i = 0.

2. Faça Soma = 0.

3. Repita n vezes as instruções 3.1 e 3.2.

3.1. Substitua i por i + 1.

3.2. Substitua Soma por Soma + ai.

Conhecendo este algoritmo, é fácil então resolver a questão de se calcular o produto de n números nas

mesmas condições, e aí vemos como utilizar uma solução conhecida para resolver um problema. Deve-se

inicializar uma referência Produto com 1 e, numa repetição, multiplicar os números como foi feito no caso

da soma:

1. Faça i = 0.

2. Faça Produto = 1.

3. Repita n vezes as instruções 3.1 e 3.2.

3.1. Substitua i por i + 1.

3.2. Substitua Produto por Produto x ai."

---

Além disso.. Queria saber se alguém sabe de uma apostila ou livro grátis que ensine C e sejamelhor que esse. Ou esse já é bom o bastante? Além dele tenho o pdf "Curso de linguagem C - UFMG" - esse seria melhor?

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo