Postado Julho 4, 2012 12 anos 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.