Você está na página 1de 5

UFMG ICEx DCC Programao de Computadores 1.

Sem 2005 David Menoti 1


Universidade Federal de Minas Gerais - UFMG
Instituto de Cincias Exatas - ICEx
Disciplina: Programao de Computadores
Professor: David Menoti (menoti@dcc.ufmg.br)
Monitor: Joo Felipe Kudo (joao.felipe.kudo@terra.com.br)

Lista de Exerccios 06 Modularizao (Procedimentos e Funes)

Todos os algoritmos devem ser descritos em PORTUGOL e implementados em
Pascal e Matlab.

Procedimentos: Passagem de parmetros.
1) Escreva um procedimento que receba um nmero inteiro e imprima o ms
correspondente ao nmero. Por exemplo, 2 corresponde fevereiro. O procedimento
deve mostrar uma mensagem de erro caso o nmero recebido no faa sentido. Gere
tambm um algoritmo que leia um valor e chame o procedimento criado.

2) Escreva um procedimento que receba um nmero inteiro e o imprima na forma
extensa. Por exemplo, para 1 a sada desejada Um. A funo deve ser capaz de
gerar o extenso dos nmeros de 0 at 10, inclusive. Caso um nmero no compatvel
seja recebido o procedimento deve mostrar uma mensagem de erro. Crie tambm um
algoritmo que leia um valor inteiro e chame o procedimento criado acima para a
impresso do nmero extenso.

3) Escreva um procedimento que gere um cabealho para um relatrio. Esse
procedimento deve receber um literal (string, ou cadeia de caracteres) como
parmetro. O cabealho tem a seguinte forma:
============================================
UFMG Universidade Federal de Minas Gerais
ICEx Instituto de Cincias Exatas
Disciplina de Programao de Computadores
Nome: Fulano de Tal
============================================ ,
onde Fulano de Tal, corresponde ao parmetro passado.

4) Escreva um procedimento que receba um nmero arbico inteiro e imprima o
corresponde nmero em romano. Por exemplo, para 5 a sada desejada V. A
funo deve ser capaz de gerar o nmero romano para os 50 primeiros inteiros. Uma
mensagem de erro deve ser mostrada caso um nmero fora dessa faixa seja recebido.
Crie tambm um algoritmo que leia um valor inteiro e chame o procedimento criado
acima para a impresso do nmero romano.

5) Escreva um procedimento que receba um nmero natural e imprima os trs primeiros
caracteres do dia da semana correspondente ao nmero. Por exemplo, 7 corresponde
SAB. O procedimento deve mostrar uma mensagem de erro caso o nmero recebido
no corresponda um dia da semana. Gere tambm um algoritmo que utilize esse
procedimento, chamando-o, mas antes lendo um valor para passagem de parmetro.

UFMG ICEx DCC Programao de Computadores 1. Sem 2005 David Menoti 2
Funes que verificam uma situao, retorno booleano (verdadeiro, falso)
6) Escreva uma funo que receba um nmero inteiro. Esta funo deve verificar se tal
nmero primo. No caso positivo, a funo deve retornar 1, caso contrrio zero.
Escreva tambm um algoritmo para testar tal funo.

7) Escreva uma funo que receba dois nmeros inteiros x e y. Essa funo deve verificar
se x divisvel por y. No caso positivo, a funo deve retornar 1, caso contrrio zero.
Escreva tambm um algoritmo para testar tal funo.

8) Um nmero dito ser regular caso sua decomposio em fatores primos apresenta
apenas potncias de 2, 3 e 5. Faa uma funo que verifique se um nmero (retorne
1) ou no (retorne 0) regular. Escreva tambm um algoritmo para testar tal funo.

9) Criar uma funo que determine se um caractere, recebido como parmetro, ou no
uma letra do alfabeto. A funo deve retornar 1 caso positivo e 0 em caso contrrio.
Escreva tambm um algoritmo para testar tal funo.

10) Um nmero dito ser capicua quando lido da esquerda para a direita o mesmo que
quando lido da direita para a esquerda. O ano 2002, por exemplo, capicua. Ento,
elabore uma funo para verificar se um nmero possui essa caracterstica. Caso o
nmero seja capicua, a funo deve retornar 1 e 0 em caso contrrio. Escreva tambm
um algoritmo para testar tal funo.

Funes que retornam um valor calculado
11) Criar uma funo (no recursiva) que calcule e retorne o valor do fatorial de um
nmero natural. A funo deve retornar -1 caso no seja possvel calcular o valor do
fatorial. Escreva tambm um algoritmo para testar tal funo.

12) Criar uma funo que calcule e retorne o nmero de arranjos de n elementos p a p. A
frmula do arranjo a seguinte:
)! (
!
p n
n
A
n
p

=
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.