Вы находитесь на странице: 1из 6

2005-2006, 1 Semestre

Programao Programao Programao Programao Programao (2796) Engenharia Informtica (2242) Engenharia Electrotcnica I (1446) Matemtica/Informtica I (1577) Ensino de Matemtica (3290) Ensino de Informtica

FOLHA TP+P 6
Subprogramas

REVISO

1. Cabealho (tipo de retorno, nome e parmetros) e corpo de uma funo. 2. Prottipo: declarao da funo. 3. Chamada da funo. 4. Implementao da funo. 5. Comunicao entre funes. OBJECTIVOS

1. Programao em C usando subprogramas e estruturas de controlo.

Abel Gomes & Sara Madeira 2005-06

Exerccio 6.1 (Par ou mpar) Escreva um programa em C que determine se um dado nmero inteiro par ou mpar. Dever usar a funo parOuImpar, cujo prottipo a seguir se apresenta e que escreve no ecran O nmero par ou O nmero mpar consoante o inteiro passado como parmetro seja par ou mpar, respectivamente: void parOuImpar (int); Faa tambm as funes par e impar e resolva o exerccio com elas: int par (int); Retorna 1 se o inteiro passado como parmetro for par e 0 caso contrrio. Retorna 1 se o inteiro passado como parmetro for mpar e 0 caso contrrio. int impar (int);

Exerccio 6.2 (Maior de trs nmeros) verso 1 Escreva um programa em C que determine o maior de trs nmeros inteiros. Dever usar a funo maiorDeTres, cujo prottipo a seguir se apresenta e que devolve o maior dos inteiros passados como parmetro. int maiorDeTres (int, int, int);

Exerccio 6.3 (Maior de trs nmeros) verso 2 Repita o exerccio usando simplesmente a funo maior que retorna o maior de dois nmeros: int maior (int, int);

Exerccio 6.4 (Mdia de dois nmeros) Escreva um programa em C que determine a mdia de dois nmeros inteiros. Dever usar a funo media, cujo prottipo a seguir se apresenta e que devolve a media dos inteiros passados como parmetro. float media (int, int);

Abel Gomes & Sara Madeira 2005-06

Exerccio 5.8 (Mximo e Mnimo de N nmeros) Escreva um programa em C que permita determinar o maior e o menor nmero duma sequncia de N nmeros inteiros dados pelo utilizador. O valor de N dever ser superior ou igual a 2. Se no for o seu valor dever ser pedido novamente at obter um valor vlido. A introduo de nmeros dever terminar quando forem inseridos N nmeros. Nessa altura a aplicao dever mostrar o valor mximo e mnimo de entre os valores introduzidos. Dever usar as funes maximo e minimo, cujos prottipos a seguir se apresentam: float maximo (float, float); Devolve o maior dos reais passados como parmetro. Devolve o maior dos reais passados como parmetro. float minimo (float, float);

Exerccio 6.5 (Tabuada) verso 1.1 Escreva um programa em C que apresente no ecr a tabuada de N. Para isso dever pedir ao utilizador o valor de N que dever ser obrigatoriamente maior ou igual 1 e menor ou igual a 10. A tabuada apresentada o exemplo para N = 2. 2 2 2 2 2 2 2 2 2 2 x x x x x x x x x x 1 2 3 4 5 6 7 8 9 10 = = = = = = = = = = 2 4 6 8 10 12 14 16 18 20

Dever usar a funo tabuada, cujo prottipo a seguir se apresenta e que escreve no ecran a tabuada do inteiro passado como parmetro: void tabuada (int); Exerccio 6.6 (Quadrado de Nmeros) verso 1.1. Escreva um programa em C que apresente no ecr um quadrado de nmeros como o que se segue. Para isso dever pedir ao utilizador o valor de N que dever ser obrigatoriamente maior ou igual 2. O quadrado apresentado o exemplo para N = 5. 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9

Abel Gomes & Sara Madeira 2005-06

Dever usar a funo quadrado, cujo prottipo a seguir se apresenta e que escreve no ecran um quadrado do tipo anterior onde o inteiro passado como parmetro o nmero de linhas: void quadrado (int); Exerccio 6.6 (rvore de Natal) verso 1.1. Escreva um programa em C que desenhe no ecr uma rvore de Natal como a que se segue.

* *** ***** ******* ********* *********** ************* *** *** *** ***
Dever usar a funo escreveCaracter, cujo prottipo a seguir se apresenta e que escreve o caracter passado no primeiro parmetro tantas vezes quantas forem passadas no segundo parmetro: void escreveCaracter (char, int);

Exemplo: escreveCaracter (*, 13) escreve 13 vezes o caracter * no ecran.


Dever tambm pedir ao utilizador: o valor de B que representa o nmero de asteriscos (*) na base da rvore. O valor de B dever ser obrigatoriamente mpar e maior ou igual 3. o valor de L e A que representam, respectivamente a largura e a altura do tronco da rvore. A largura do tronco L dever ser pelo menos 1 asterisco, dever ser obrigatoriamente impar e no poder ultrapassar metade de B, isto metade do nmero de asteriscos da base. A altura do tronco A dever ser pelo menos 2 asteriscos e tambm no dever ultrapassar metade de B. Em caso de valores invlidos o programa dever apresentar um erro e voltar a pedi-los. O exemplo da rvore em baixo tem uma base com B = 13 asteriscos, um tronco com largura L = 3 asteriscos e altura A = 4 asteriscos.

Exerccio 6. 7 (Pirmide de Nmeros) Escreva um programa em C que apresente num ecr uma pirmide de nmeros como a que se segue. Para isso dever pedir ao utilizador o valor de N que dever ser obrigatoriamente maior ou igual 2. A pirmide apresentada o exemplo para N = 5. 1

Abel Gomes & Sara Madeira 2005-06

1 2

1 2 3

1 2 3 4

2 3 4 5

1 2 3 4

1 2 3

1 2

Dever usar as funes com os prottipos seguintes: void escreveCaracter (char, int); escreve o caracter passado no primeiro parmetro tantas vezes quantas forem passadas no segundo parmetro: void escreveNumerosAsc (int, int); escreve os nmeros inteiros entre o primeiro parmetro e o segundo em ordem crescente. void escreveNumerosDesc (int, int); escreve os nmeros inteiros entre o primeiro parmetro e o segundo em ordem decrescente.

Exerccio 6.8 (Pirmide de Nmeros Invertida) Altere o programa anterior para desenhar uma pirmide de nmeros invertida. 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 4 3 2 1 3 2 1 2 1 1

Exerccio 6.9 (Tringulos 1) Construa as seguintes funes: void escreveCaracter (char, int); escreve o caracter passado no primeiro parmetro tantas vezes quantas forem passadas no segundo parmetro. void triangulo1 (int); Recebe o nmero de caracteres que formam a base de um tringulo rectngulo. Desenha o tringulo usando a funo escreverCaracter. Por exemplo, se base = 5 o tringulo a criar deve ser o seguinte:

T TT TTT TTTT TTTTT void triangulo2 (int base); Recebe o nmero de caracteres que formam a base de um tringulo rectngulo. Desenha o tringulo usando a funo escreverCaracter. Por exemplo, se base = 5 o tringulo a criar deve ser o seguinte:

Abel Gomes & Sara Madeira 2005-06

TTTTT TTTT TTT TT T A funo escreverCaracter deve ser usada dentro das funes triangulo1 e triangulo2 para escrever os caracteres ' ' (espao) e 'T' (letra T maiscula). O programa principal deve pedir ao utilizador o tamanho da base e chamar as funes triangulo1 e triangulo2 para construir os tringulos. EXEMPLO DE INPUT/OUTPUT: Introduza o tamanho da base: 6 T TT TTT TTTT TTTTT TTTTTT TTTTTT TTTTT TTTT TTT TT T Exerccio 6.10 (Tringulos 2) Altere as funes do exerccio anterior para desenhar respectivamente os seguintes tringulos e produzir o output que se segue quando o tamanho da base 6: TTTTTT TTTTT TTTT TTT TT T T TT TTT TTTT TTTTT TTTTTT

Abel Gomes & Sara Madeira 2005-06

Вам также может понравиться