Vous êtes sur la page 1sur 18

1 ALGORITMOS e PROGRAMAÇÃO

Profª Eliana Santos


Algoritmos e Programação
2

 Recadinhos
 10/05 –
 Recursividade
 Correções dos exercícios aulas anteriores
 Exercícios com funções e vetores
 Lista 2 de exercícios + exercícios da aula de hoje
 17/05
 Lista 3 de exercícios

ATENÇÃO: Os exercícios podem ser feitos em grupo


porem deverão ser postados individualmente no Sophia
para evitarmos problemas. A partir de hoje(10/05 não
aceito mais o envio de exercícios por e-mail a menos
que tenhamos algum problema com o ambiente.
EXERCÍCIOS
AULA EM 26/04
(solução no Sophia)

1)Escolha 5 programas das listas (de A até H) cujo algoritmo voce tenha
desenvolvido e implemente em linguagem C. (disponível no blog
profaelianasantos.blogspot.com)

2) Desenvolva um programa em C para solicitar a idade de várias pessoas e


imprimir: Total de pessoas com menos de 21 anos. Total de pessoas com mais
de 50 anos. O programa termina quando idade for = 200 (não esqueça das
mensagens ao usuário informando o que ele precisa digitar)
3)Faça um programa em C utilizando procedimento que efetue a apresentação
do valor da conversão em dólar (US$) de um valor lido em real (R$). O programa
deverá solicitar o valor da cotação do dólar e também a quantidade de reais
disponíveis com o usuário.
4 ) Desenvolva um programa em C com uma função que faça o seguinte: A
função recebe 3 valores float e retornar o quadrado do 1º + a soma dos outros
dois.

3
EXERCÍCIOS
VÁLIDOS P/ AULA DE 03/05
(solução no Sophia)

4
Exemplos de Vetores em C
(solução no Sophia)

• 1). Escreva um programa em linguagem C que Leia 10 valores


inteiros e armazene-os em um Vetor. Após a digitação do
último valor, imprima apenas os elementos pares. Se não
forem digitados números pares, mostre a mensagem
avisando o usuário.
• 2) Escreva um programa em linguagem C que Leia até 15
letras e armazene-os em um Vetor. Crie uma saída do
algoritmo caso o usuário não queira digitar 15 letras. Após a
digitação da última letra, imprima na sequência contrária.

5
Recursividade

7
Recursividade

8
Recursividade

9
Recursividade

Vantagens:
Simplifica
a solução de alguns problemas;
Reduz o tamanho do código fonte;
Permite descrever algoritmos de forma mais clara e
concisa.
Desvantagens:
Redução do desempenho de execução devido ao
tempo para gerenciamento de chamadas;
Erros de implementação podem levar a estouro de
pilha, caso não seja indicada uma condição de
parada, ou se esta condição nunca for satisfeita, entre
outros.
Recursividade

Forma geral: esquematicamente, os algoritmos recursivos têm a


seguinte forma:

se <condicao para o caso base> entao


resolucao direta para o caso base
senao
uma ou mais chamadas recursivas
fimse
Recursividade
• Exemplo: Soma de n numeros

12
Recursividade

Passos para o desenvolvimento de algoritmos recursivos


1. Entender o problema:
Exemplo: A Sequência de Fibonacci é uma série matemática de
geração simples. Começando pelo número 1, soma-se a ele o
número anterior (zero) gerando o segundo elemento da
sequencia = 2. Por sua vez, soma-se 2 ao anterior (1), gerando-
se o terceiro elemento da sequencia =3. Sempre somando o
número com seu anterior para gerar o próximo.

Então, temos: 1,1,2,3, 5, 8, 13, 21, 34, 55...


Recursividade

Passos para o desenvolvimento de algoritmos recursivos


2. Formular o problema em uma (ou mais) funções ou
procedimentos recursivos:

Fib (1) = 1
Fib (2) = 1
Fib (3) = 2
Fib (4) = 3
Fib (5) = 5

Equação matemática:

Fib (1) = 1
Fib (2) = 1
Fib (n) = Fib (n-1) + Fib (n-2)
Recursividade

Passos para o desenvolvimento de algoritmos recursivos


3. Implementar a solução:

função Fib (n) Observe que a recursão ocorre


aqui!!
início
se n = 0 ou n = 1 então
retorne n
senao
retorne Fib (n-1) + Fib (n-2)
fim
Recursividade

Passos para o desenvolvimento de algoritmos recursivos


3. Em C ficaria assim:
SUA VEZ!!!
EXERCÍCIOS
Sala/laboratório
1)Implemente a solução recursiva em C da sequencia de fibonacci
definida no slide anterior, copiando para o codeblocks e testando a seguir

2)Escreva um algoritmo para ler 2 valores e imprimir o resultado da


divisão do primeiro pelo segundo. Se o Segundo valor informado for
ZERO, deve ser lido um novo valor. Acrescente uma mensagem de
‘VALOR INVÁLIDO, caso o segundo valor informado seja ZERO. Pergunte
ao usuário se ele deseja efetuar um novo calculo. Caso ele informe “n",
encerre o algoritmo.

3)Solicitar salário, prestação. Se prestação for maior que 20% do salário,


imprimir : Empréstimo não pode ser concedido. Senão imprimir
Empréstimo pode ser concedido.

4) Preencher um vetor com números inteiros(8unidades); solicitar um


número do teclado. Pesquisar se esse número existe no vetor. Se
existir,imprimir em qual posição do vetor ele se encontra. Se não
17
existir,imprimir MSG que não existe.
18

Baixe a lista 2 de exercícios do ambiente


Sophia e

BOM TRABALHO!!!