=
Caso no seja capaz de calcular tal arranjo a funo deve retornar -1. Um algoritmo
para testar tal funo tambm deve ser escrito.
13) Criar uma funo que calcule e retorne o nmero de combinaes de n elementos p a
p. A frmula de combinao a seguinte:
)! ( !
!
p n p
n
C
n
p
=
Caso no seja capaz de calcular tal combinao a funo deve retornar -1. Um
algoritmo para testar tal funo tambm deve ser escrito.
14) Criar uma funo que calcule e retorne o MAIOR entre dois valores recebidos como
parmetro. Um algoritmo para testar tal funo deve ser criado.
15) Criar uma funo que verifique quantas vezes um nmero inteiro x divisvel por um
nmero inteiro y. A funo deve retornar -1 caso no seja possvel calcular. Escreva
tambm um algoritmo para testar tal funo.
UFMG ICEx DCC Programao de Computadores 1. Sem 2005 David Menoti 3
Funes retornando mais de um parmetro
16) Construa uma funo que efetue a TROCA dos valores de a por b, recebidos como
parmetro. Ou seja, essa funo deve substituir o valor de a pelo de b, e
reciprocamente. Crie tambm um algoritmo que leia dois valores quaisquer, e imprima
os valores aps a chamada da funo TROCA.
17) Construa uma funo que receba trs valores, a, b e c, retorne (passagem por
referncia) o MAIOR e o MENOR valor desses trs. Deve ser criado um algoritmo
para utilizar tal funo lendo os trs valores e imprimindo o maior e o menor valor
computado.
18) Construa uma funo que receba dois valores inteiros a e b, retorne (passagem por
referncia) o quociente, div, e o resto diviso, mod, de a por b. A funo deve retornar
-1 caso no seja possvel realizar as operaes e 0 caso seja possvel. Um algoritmo
para utilizar tal funo deve ser criado, tratando o retorno da funo.
19) Construa uma funo que receba cinco valores e determine (retorne por passagem pro
referncia) o 2 e o 4 maior valores dentre eles. Construa tambm um algoritmo para
ler tais valores, e imprimir o resultado obtido com a chamada da funo.
20) Construa uma funo, que receba trs coeficientes relativos uma equao de segundo
grau (a.x
2
+ b.x + c = 0) e calcule suas razes atravs da frmula de bscara:
a
b
x
2
= ac b 4
2
=
A funo deve levar em conta a possibilidade da existncia de nenhuma, uma ou duas
razes. A funo deve retornar o nmero de razes ou -1 em caso de inconsistncia. Os
valores das razes devem ser retornados. Construa tambm um algoritmo para utilizar
a funo construda.
Transformaes
21) Crie uma funo que realize a converso para Radianos (rad) a partir de Graus (grad),
onde grad passado como parmetro e rad retornado. Sabe-se que 180 (graus) est
para radianos. Crie tambm um algoritmo para testar tal funo.
22) Crie uma funo que realize a converso de Fahrenheit (F) para graus Celsius (C),
onde F passado como parmetro e C retornado. Sabe-se que os pontos de fuso e
ebulio nas escalas Celsius e Fahrenheit so: 0C e 100C, e 32F e 212F,
respectivamente. Crie tambm um algoritmo para testar tal funo.
23) Crie uma funo que realize a converso de Polegadas (pol) para Centmetros (cm),
onde pol passado como parmetro e cm retornado. Sabe-se que 1 polegada est
para 2,54 centmetros. Crie tambm um algoritmo para testar tal funo.
24) Crie uma funo que realize a converso de ps (feet) para metros (m), onde feet
passado como parmetro e m retornado. Sabe-se que 1 metro est para 3,281 ps.
Crie tambm um algoritmo para testar tal funo.
UFMG ICEx DCC Programao de Computadores 1. Sem 2005 David Menoti 4
25) Crie uma funo que realize a converso da escala Kelvin (K - escala absoluta) para a
escala Fahrenheit (F). Sabe-se que 273K equivale a 32F e a cada variao de 10
unidades na escala Kelvin equivale a 18 na escala Fahrenheit. A funo deve retornar
zero caso no seja possvel realizar a converso e um em caso contrrio. Crie tambm
um algoritmo para testar tal funo.
Funes recursivas
26) Seja a srie de Fibonacci:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...
que pode ser definida recursivamente por:
> +
= =
=
2 se ) 2 ( ) 1 (
2 1 se 1
) (
n n Fib n Fib
n n
n Fib
Ento escreva:
- Uma funo recursiva que gere o termo de ordem n da srie de Fibonacci.
- Um algoritmo que, utilizando a funo definida acima gere a srie de Fibonacci at o
termo de ordem 20.
27) Pode-se calcular o quociente da diviso, DIV, de x por y, dois nmeros inteiros,
usando-se a seguinte definio:
=
<
> +
=
| | | | se 1
| | | | se 0
| | | | se |), | |, | | (| 1
) , (
y x
y x
y x y y x DIV
y x DIV
Ento, pede-se que seja criada uma funo recursiva para descrever tal definio. A
funo deve retornar -1 caso no seja possvel realizar o clculo. Alm disso, crie um
algoritmo que leia os dois valores inteiros e utilize a funo criada para calcular o
quociente de x por y, e imprima o valor computado.
28) Pode-se calcular o resto da diviso, MOD, de x por y, dois nmeros inteiros, usando-se
a seguinte definio:
=
<
>
=
| | | | se 0
| | | | se | |
| | | | se |), | |, | | (|
) , (
y x
y x x
y x y y x MOD
y x MOD
Ento, pede-se que seja criada uma funo recursiva para descrever tal definio. A
funo deve retornar -1 caso no seja possvel realizar o clculo. Alm disso, crie um
algoritmo que leia os dois valores inteiros e utilize a funo criada para calcular o
resto da diviso de x por y, e imprima o valor computado.
29) O mximo divisor comum (MDC) de dois nmeros inteiros x e y pode ser calculado
usando-se uma definio recursiva:
y x y y x MDC y x MDC > = se ), , ( ) , ( .
Alm disso, sabe-se que:
x x x MDC
y x MDC y x MDC
=
=
) , (
) , ( ) , (
Exemplo:
2 ) 2 , 2 ( ) 2 , 4 ( ) 4 , 2 ( ) 4 , 6 ( ) 6 , 4 ( ) 6 , 10 ( = = = = = = MDC MDC MDC MDC MDC MDC
UFMG ICEx DCC Programao de Computadores 1. Sem 2005 David Menoti 5
Ento, pede-se que seja criada uma funo recursiva para descrever tal definio. Crie,
tambm, um algoritmo que leia os dois valores inteiros e utilize a funo criada para
calcular o MDC de x e y, e imprima o valor computado.
30) O fatorial de um nmero n, inteiro e positivo, pode ser definido recursivamente, ou
seja:
=
=
1 )! 1 .(
0 1
!
n se n n
n se
n
Ento, pede-se que seja criada uma funo recursiva que calcule o fatorial de um
nmero n. A funo deve retornar -1 caso no seja possvel calcular o fatorial Alm
disso, crie um algoritmo que leia um valor, utilize a funo criada para calcular o
fatorial e imprima o valor computado.