Noção
subprograma
Podemos ser de dois tipos de Subprogramas:
Funções- retornam um valor em seu nome.
Procedimentos- não retornam valor.
Em linguagem C, todos os programas têm a função principal chamada main() e podem ter outras funções destinadas a tarefas específicas.
Nos módulos anteriores foram já utilizadas funções na construção dos programas. Estas funções fazem parte da biblioteca Standard do C, são exemplo as funções printf, scanf, etc., e são fornecidas quando se adquire qualquer Compilador de C.
Sintaxe de uma função
Declaração de uma função
É necessário escrever a função antes da função main(),
ou então declarar o protótipo da função antes do main() () e depois do main() escrever todo o código da função.
Tipos de Funções e Exemplos
Exercício: Elaborar 2 funções :
Ø
Um subprograma, é um “pequeno” programa que realiza uma
tarefa específica;
Ø
Pode ser chamado pelo nome
dentro programa principal (main() ) ou em outros
subprogramas, até mesmo pelo próprio (chamada recursiva).
Podemos ser de dois tipos de Subprogramas:
Funções- retornam um valor em seu nome.
Procedimentos- não retornam valor.
( Em Pascal, há funções e procedimentos; os procedimentos
são funções que não retornam nada)
Em Linguagem C, todos subprogramas são funções.
Em linguagem C, todos os programas têm a função principal chamada main() e podem ter outras funções destinadas a tarefas específicas.
Nos módulos anteriores foram já utilizadas funções na construção dos programas. Estas funções fazem parte da biblioteca Standard do C, são exemplo as funções printf, scanf, etc., e são fornecidas quando se adquire qualquer Compilador de C.
Sintaxe de uma função
tipo NomedaFuncao ( parâmetro 1 , parâmetro
2, …) cabeçalho
da função
|
Declaração de uma função
É necessário escrever a função antes da função main(),
ou então declarar o protótipo da função antes do main() () e depois do main() escrever todo o código da função.
Tipos de Funções e Exemplos
Ø Funções sem parâmetros e não
retornam nada*
Ø Funções com parâmetros
e não retornam nada*
Ø Funções com parâmetros e
retornam algum valor
Exemplos de tipos de retorno da função :
void - sem qualquer retorno
int - um valor inteiro
float - um valor de virgula flutuante
char - um caracter
-- Uma função que escreve 30 asteriscos
--
Uma função que escreve ABC- n vezes
PROGRAMA SEM FUNÇÕES
#include <stdio.h>
main()
{ int i;
{ int i;
for ( i=1; i<= 30; i++)
printf("*");
printf("\n ");
for ( i=1; i<= 30; i++)
printf("*");
printf("\n ");
for ( i=1; i<= 6; i++)
printf("ABC-");
printf("\n ");
for
( i=1; i<= 6; i++)
printf("ABC-");
printf("\n ");
...
}PROGRAMA COM FUNÇÕES
#include <stdio.h>
void Asteriscos()
{ int i;
for ( i=1; i<= 30; i++)
printf("*");
printf("\n ");
}
void ABC ( int a )
{ int i;
for
( i=1; i<= a
; i++ )
printf("ABC-");
printf("\n ");
}
main()
{ Asteriscos( );
{ Asteriscos( );
Asteriscos( );
ABC( 6 ); ABC( 6 );
ABC( 4); ABC( 2 );
Asteriscos( ); Asteriscos( ); Asteriscos( );
}
Problema:
Escrever um programa que coloque no ecrã o
seguinte output- sem funções e com 3 funções
Programa sem funções
#include <stdio.h>
main()
{ int i;
for ( i=0; i<= 15; i++)
printf("*#");
printf("\n ");
for ( i=0; i<= 15; i++)
printf("*#");
printf("\n\t\t Números \n");
for (i=0; i<=15 ; i++)
printf (“ %i ", i ) ;
printf("\n ");
for (i=15; i<=0 ; i--)
printf (“ %i ", i ) ;
printf("\n ");
for (i=0; i<=15 ; i++)
printf (“ %i ", i ) ;
printf("\n ");
for ( i=0; i<= 15; i++)
printf("*#");
}
|
|
O programa anterior podia ser escrito da seguinte forma, utilizando funções:
Programa COM funções
|
É na função main() que as funções
elaboradas serão chamadas, através da escrita do nome da função
com os respectivos parênteses. A função main() é responsável por iniciar o programa e executar todas as instruções presentes no seu interior. Nota: As variáveis declaradas dentro de uma função, são locais, não sendo conhecidas fora dela. |
Duas razões principais para recorrer à
escrita de funções
o
Reduzir a
complexidade de um programa
o Evitar a repetição de código ao longo de um programa
Exercício: Elaborar 1 função EscreveNumeros com 1 parâmetro
0 1
2 3 4
5 6 7 8 9 10
0 1 2 3 4 5 6 7
0 1 2
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7
0 1 2
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 8 9 10
Exercício: Elaborar 1 função EscreveNumeros com 2 parâmetro
0 1 2
3 4 5 6 7
8 9 10
0 2 4 6 8 10 12 14 16 18 20
0 2 4 6 8 10 12 14 16 18 20
0 2 4 6 8 10 12 14 16 18 20
0 2 4 6 8 10 12 14 16 18 20
0 1 2
3 4 5 6 7
8 9 10
0
1 2 3 4
5 6 7 8 9 10
10 1 2 14 16 18 22 24 26 28 30
10 1 2 14 16 18 22 24 26 28 30 32 34 36 38 40
10 1 2 14 16 18 22 24 26 28 30
10 1 2 14 16 18 22 24 26 28 30 32 34 36 38 40
0
3 6 9
12 15 18
21 24 27
30
10 20 30
40 50 60
70 80 90
100
#include <stdio.h>
int SOMA
(int num1, int num2 )
{ return num1+ num2; //Devolve a soma de dois inteiros
}
{ return num1+ num2; //Devolve a soma de dois inteiros
}
{ int a, b, total ;
printf("\nIntroduza dois valores inteiros ");
scanf("%i", &a);
scanf(" %i" , &b );
total = SOMA( a, b);
printf(" A soma dos dois valores é %i ", total );
}
Exercício
1. Implemente a função int minutos ( int horas) -Que devolva o número de minutos de um número de horas.
Implemente a função long int minutos_segundos( int horas, char tipo )
Que devolve o número de minutos ou o número de segundos de acordo com o 2º parâmetro de entrada 'm' - minutos e 's' - segundos e tendo em conta ao parâmetros horas.
Elabore programa principal, que peça o nº de horas e determine o nº de minutos e de segundos.
Variáveis Locais e Globais
– Variável local: qualquer variável declarada no corpo de uma função é local a essa função.
– Variável global: é uma variável declarada fora do escopo de qualquer função.
Exercício : Implementar função Tabuada. No programa principal, pedir qual a tabuada a visualizar e fazer chamada à função Tabuada, para mostrar a tabuada
Exercício: Elaborar função Perimetro e função Area, que determine o perímetro e a área de um círculo, respetivamente;
No programa principal, mostrar as 2 opções (1- Calcular perímetro de círculo; 2- Calcular área de círculo); dependendo da opção escolhida pelo utilizador, chamar a função correta.
ELABORAR BIBLIOTECA
Criar um documento em C e
guarde-o com o nome MyBibliotec.h (Guarde na mesma pasta em que guarda seu código-fonte de C.)
à Escreva uma função “AreaRetangulo”, com 2 parâmetros e devolva o cálculo da área do
retângulo.
à Escreva uma função “PerimetroRetangulo”, com 2 parâmetros e devolva o cálculo do
perímetro do retângulo.
Crie um programa em C com nome Retangulo.c.
Após o #include
<stdio.h>
Coloque:
#include "MyBibliotec.h" (com aspas)
Coloque:
#include "MyBibliotec.h" (com aspas)
è Peça e leia os valores do comprimento e da
largura do retângulo.
è Determine
a área e o perímetro do retângulo utilizando as funções criadas na MyBibliotec.h
As funções em vez de estarem
escritas no ficheiro .c estão escritas na biblioteca MyBibliotec.h.
Exercício : Elaborar função AreaCirculo; PerimetroCirculo na biblioteca
CircLib.h
Elaborar programa
Circulo.c, que peça o valor do raio do círculo; chame as funções da biblioteca
CircLib.h que calculem a área e o perímetro do círculo.
com pi definida como constante
através do #define
Sem comentários:
Enviar um comentário