2005-2006, 1º Semestre

Programação Programação Programação Programação Programação (2796) Engenharia Informática (2242) Engenharia Electrotécnica I (1446) Matemática/Informática I (1577) Ensino de Matemática (3290) Ensino de Informática

FOLHA TP+P 6
Subprogramas

REVISÃO

1. Cabeçalho (tipo de retorno, nome e parâmetros) e corpo de uma função. 2. Protótipo: declaração da função. 3. Chamada da função. 4. Implementação da função. 5. Comunicação entre funções. OBJECTIVOS

1. Programação em C usando subprogramas e estruturas de controlo.

Abel Gomes & Sara Madeira 2005-06

1

Retorna 1 se o inteiro passado como parâmetro for ímpar e 0 caso contrário. respectivamente: void parOuImpar (int). Deverá usar a função parOuImpar. Abel Gomes & Sara Madeira 2005-06 2 . float media (int. int).2 (Maior de três números) – versão 1 Escreva um programa em C que determine o maior de três números inteiros. int). int impar (int). Deverá usar a função maiorDeTres. Faça também as funções par e impar e resolva o exercício com elas: int par (int). int maiorDeTres (int.1 (Par ou ímpar) Escreva um programa em C que determine se um dado número inteiro é par ou ímpar. Exercício 6. int).Exercício 6. Exercício 6. int.4 (Média de dois números) Escreva um programa em C que determine a média de dois números inteiros. Exercício 6. cujo protótipo a seguir se apresenta e que escreve no ecran “O número é par” ou “O número é ímpar” consoante o inteiro passado como parâmetro seja par ou ímpar. Deverá usar a função media. cujo protótipo a seguir se apresenta e que devolve o maior dos inteiros passados como parâmetro. cujo protótipo a seguir se apresenta e que devolve a media dos inteiros passados como parâmetro.3 (Maior de três números) – versão 2 Repita o exercício usando simplesmente a função maior que retorna o maior de dois números: int maior (int. • • Retorna 1 se o inteiro passado como parâmetro for par e 0 caso contrário.

Exercício 6. Para isso deverá pedir ao utilizador o valor de N que deverá ser obrigatoriamente maior ou igual 2. O valor de N deverá ser superior ou igual a 2.5 (Tabuada) – versão 1. Escreva um programa em C que apresente no ecrã um quadrado de números como o que se segue. Deverá usar as funções maximo e minimo. • • Devolve o maior dos reais passados como parâmetro. A introdução de números deverá terminar quando forem inseridos N números. 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 função tabuada. Exercício 6. 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. float). cujo protótipo a seguir se apresenta e que escreve no ecran a tabuada do inteiro passado como parâmetro: void tabuada (int).8 (Máximo e Mínimo de N números) Escreva um programa em C que permita determinar o maior e o menor número duma sequência de N números inteiros dados pelo utilizador. cujos protótipos a seguir se apresentam: float maximo (float.1. O quadrado apresentado é o exemplo para N = 5. Devolve o maior dos reais passados como parâmetro.6 (Quadrado de Números) – versão 1. Se não for o seu valor deverá ser pedido novamente até obter um valor válido. float minimo (float. float).Exercício 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 3 .1 Escreva um programa em C que apresente no ecrã a tabuada de N. Nessa altura a aplicação deverá mostrar o valor máximo e mínimo de entre os valores introduzidos.

1 Abel Gomes & Sara Madeira 2005-06 4 . A altura do tronco A deverá ser pelo menos 2 asteriscos e também não deverá ultrapassar metade de B. cujo protótipo a seguir se apresenta e que escreve o caracter passado no primeiro parâmetro tantas vezes quantas forem passadas no segundo parâmetro: void escreveCaracter (char. Deverá também pedir ao utilizador: • • o valor de B que representa o número de asteriscos (*) na base da árvore. Para isso deverá pedir ao utilizador o valor de N que deverá ser obrigatoriamente maior ou igual 2. O exemplo da árvore em baixo tem uma base com B = 13 asteriscos. deverá ser obrigatoriamente impar e não poderá ultrapassar metade de B. A largura do tronco L deverá ser pelo menos 1 asterisco.Deverá usar a função quadrado.1. cujo protótipo a seguir se apresenta e que escreve no ecran um quadrado do tipo anterior onde o inteiro passado como parâmetro é o número de linhas: void quadrado (int). respectivamente a largura e a altura do tronco da árvore. * *** ***** ******* ********* *********** ************* *** *** *** *** Deverá usar a função escreveCaracter. Exercício 6. A pirâmide apresentada é o exemplo para N = 5. Exemplo: escreveCaracter (‘*’. um tronco com largura L = 3 asteriscos e altura A = 4 asteriscos. int). Exercício 6. Escreva um programa em C que desenhe no ecrã uma árvore de Natal como a que se segue. 13) escreve 13 vezes o caracter ‘*’ no ecran. O valor de B deverá ser obrigatoriamente ímpar e maior ou igual 3. isto é metade do número de asteriscos da base. Em caso de valores inválidos o programa deverá apresentar um erro e voltar a pedi-los.6 (Árvore de Natal) – versão 1. o valor de L e A que representam. 7 (Pirâmide de Números) Escreva um programa em C que apresente num ecrã uma pirâmide de números como a que se segue.

int).9 (Triângulos 1) Construa as seguintes funções: void escreveCaracter (char. se base = 5 o triângulo a criar deve ser o seguinte: Abel Gomes & Sara Madeira 2005-06 5 . Desenha o triângulo usando a função escreverCaracter. int). void escreveNumerosDesc (int. • escreve o caracter passado no primeiro parâmetro tantas vezes quantas forem passadas no segundo parâmetro: void escreveNumerosAsc (int.8 (Pirâmide de Números Invertida) Altere o programa anterior para desenhar uma pirâmide de números 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 Exercício 6. • Recebe o número de caracteres que formam a base de um triângulo rectângulo. • escreve os números inteiros entre o primeiro parâmetro e o segundo em ordem crescente. int). Desenha o triângulo usando a função escreverCaracter. Exercício 6. se base = 5 o triângulo a criar deve ser o seguinte: T TT TTT TTTT TTTTT void triangulo2 (int base).1 1 2 1 2 3 1 2 3 4 2 3 4 5 1 2 3 4 1 2 3 1 2 1 Deverá usar as funções com os protótipos seguintes: void escreveCaracter (char. • escreve o caracter passado no primeiro parâmetro tantas vezes quantas forem passadas no segundo parâmetro. • escreve os números inteiros entre o primeiro parâmetro e o segundo em ordem decrescente. void triangulo1 (int). int). Por exemplo. • Recebe o número de caracteres que formam a base de um triângulo rectângulo. Por exemplo.

EXEMPLO DE INPUT/OUTPUT: Introduza o tamanho da base: 6 T TT TTT TTTT TTTTT TTTTTT TTTTTT TTTTT TTTT TTT TT T Exercício 6.TTTTT TTTT TTT TT T A função escreverCaracter deve ser usada dentro das funções triangulo1 e triangulo2 para escrever os caracteres ' ' (espaço) e 'T' (letra T maiúscula).10 (Triângulos 2) Altere as funções do exercício anterior para desenhar respectivamente os seguintes triângulos 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 6 . O programa principal deve pedir ao utilizador o tamanho da base e chamar as funções triangulo1 e triangulo2 para construir os triângulos.

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.