Baixe o app para aproveitar ainda mais
Prévia do material em texto
Algoritmos e Estrutura de Dados Profa. Amanda Sutter asutter@anhanguera.com Agosto/2015 Última aula.... • Correção da lista de exercícios no laboratório Novos exercícios 13 – Faça um programa em C que leia a resposta de três questões de múltipla escolha (pode ser a, b, c ou d), compare com o gabarito (dado abaixo) e indique quantas estão certas. Gabarito: Questão 1 – letra d Questão 2 – letra c Questão 3 – letra a 14 – Faça um programa que some os N primeiros números naturais. 15 - Faça um programa que leia 5 números inteiros e conte quantos são negativos. Questão 13 Questão 13 Questão 14 Questão 15 Recursividade Recursão em C • Uma função é dita recursiva quando dentro do seu código existe uma chamada para si mesma. • Ex.: cálculo do fatorial de um número: n! = n * (n – 1)! Recursão em C • A recursão é uma técnica que define um problema em termos de uma ou mais versões menores deste mesmo problema. • Esta ferramenta pode ser utilizada sempre que for possível expressar a solução de um problema em função do próprio problema. Exemplo Fatorial Exemplo Fatorial 5! 5*4! 4*3! 3*2! 2*1! 1 120 5*(24) 4*(6) 3*(2) 2*(1) 1*(1) Demonstrativo da solução: Somar os N primeiros números Recursão • Em procedimentos recursivos pode ocorrer um problema de terminação do programa, como um “looping interminável ou infinito”. • Portanto, para determinar a terminação das repetições, deve-se: 1) Definir uma função que implica em uma condição de terminação (solução trivial), e 2) Provar que a função decresce a cada passo de repetição, permitindo que, eventualmente, esta solução trivial seja atingida. Vantagens X Desvantagens • Um programa recursivo é mais elegante e menor que a sua versão iterativa, além de exibir com maior clareza o processo utilizado, desde que o problema ou os dados sejam naturalmente definidos através de recorrência. • Por outro lado, um programa recursivo exige mais espaço de memória e é, na grande maioria dos casos, mais lento do que a versão iterativa. Exercício 1 • Fazer um programa capaz de calcular a área de um quadrado, um retângulo ou um triângulo retângulo. • O programa deve perguntar qual a figura geométrica, e então pedir para o usuário digitar os tamanhos dos lados. • Um quadrado só tem um tamanho de lado, o retângulo tem dois, e o triângulo retângulo também tem dois lados(mais a hipotenusa, mas neste caso não é necessário digitar este valor). • Após a digitação, o programa deve calcular a área e apresentar ao usuário. • Utilizar uma função para a leitura dos lados (verificando se não é digitado um valor negativo para o lado), e uma função para o cálculo de cada área. As fórmulas são • Área_quadrado = lado * lado • Área_retângulo = lado1 * lado2 • Área_triângulo = (lado 1 * lado 2)/2 Exercício 2 • Criar um programa capaz de ler duas notas de cada um dos 10 alunos de uma turma, calculando a média geral da primeira e da segunda prova. Em seguida, informe quantos alunos tiraram notas acima da média, tanto na primeira como na segunda prova. f A t Anhanguera Fama pitágoras oD VNIAIIELVI unic o; ;> ' unime l IR0\ 00 unopar
Compartilhar