A maior rede de estudos do Brasil

Grátis
120 pág.
ApostilaANSI-C

Pré-visualização | Página 14 de 27

um 
operador, como por exemplo, o operador de multiplicação “*”. 
� O nome pode conter o caractere sublinhar, mas não pode ser formado por 
duas ou mais palavras separadas. 
� Não pode ser igual a uma palavra chave do C ou igual a palavras presentes 
em sua biblioteca, exemplo main. 
 
3. Argumentos 
 
Argumentos são as entradas que a função recebe. É através dos argumentos que 
passamos parâmetros para a função. Já vimos funções com argumentos: printf() 
e scanf().Vamos ver um exemplo simples de função com um argumento. 
 
#include <stdio.h> 
#include <stdlib.h> 
 
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS 
Departamento de Ensino do 2o grau - Coordenação de Eletrônica 
Disciplina: Laboratório de Introdução a Programação 
Professora: Rosângela Fátima da Silva 
 
 
63 
 
 
/***************************************************************************** 
Programa 26 
Este programa e’ composto por duas funções: 
1. areaQuad: recebe como parâmetros um inteiro x e retorna um 
inteiro. 
2. maim: não recebe nenhum parâmetro e não retorna nada. 
 
******************************************************************************/ 
int areaQuad(int x) /* Calcula o quadrado de x */ 
{ 
 x++; 
 return(x*x); 
} 
 
 void main () 
 { 
 int num; 
 printf ("Entre com um numero: "); 
 scanf ("%d",&num); 
 printf ("O quadrado de %d + 1 (num + 1) e' %d", num,areaQuad(num)); 
 printf ("\n\n"); 
 system("pause"); 
 } 
 
A função areaQuad(), por definição, possui um argumento inteiro x. Quando 
chamamos à função, o inteiro num é passado como parâmetro. Há alguns pontos 
a observar. Em primeiro lugar temos de satisfazer aos requisitos da função 
quando ao tipo e a quantidade de argumentos quando a chamamos. Apesar de 
existir algumas conversões de tipo, que o C faz automaticamente, é importante 
ficar atento. Em segundo lugar, não é importante o nome da variável num, ao ser 
passada como parâmetro para areaQuad(), ela é copiada para a variável x. 
Dentro de areaQuad() trabalha-se apenas com x. Se mudarmos o valor de x 
dentro de areaQuad() o valor de num na função main() permanece inalterado. 
 
Existem funções que recebem mais de um argumento, neste caso eles são 
separados por vírgula e deve-se explicitar o tipo de cada um deles, um a um. Os 
parâmetros passados para uma função podem ser variáveis ou constantes, porque 
mesmo sendo constantes serão copiados para a variável de entrada da função. 
Observe o Programa 25 e o Programa 26. No primeiro, quando foi chamado a 
função produto(), as constantes 5 e 8 foram passadas como parâmetros e foram 
copiadas em x e y respectivamente. No segundo, foi passada a variável num, 
como parâmetro da função areaQuad(), portanto num foi copiada em x. Em 
ambos os casos, estamos diante de uma situação que é denominada como 
passagem por valor, pois foram criadas cópias das variáveis e/ou constantes 
passadas como parâmetros. 
 
 
 
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS 
Departamento de Ensino do 2o grau - Coordenação de Eletrônica 
Disciplina: Laboratório de Introdução a Programação 
Professora: Rosângela Fátima da Silva 
 
 
64 
PROTÓTIPO DE FUNÇÃO 
 
Não podemos chamar uma função antes de defini-la, pois o compilador não tem 
como identificá-la. A não ser que a função já tenha sido declarada. 
 
A declaração de uma função é chamada de protótipo e possui a seguinte sintaxe: 
 
<Tipo_da_função> <Nome_da_função> ( <Parâmetro_1>, <parâmetro_2> ... <parâmetro_N>); 
 
 
Atenção:Atenção:Atenção:Atenção: 
 
� A respeito de protótipo de função é importante ressaltar: 
1. Deve preceder a sua definição e a sua chamada. 
2. Geralmente é colocado no início do programa. 
3. Termina com o ponto e vírgula. 
 
Observe o código apresentado a seguir: 
 
//Declaração da função 
<Tipo_da_função> <Nome_da_função> (<Parâmetro_1>, ...,<Parâmetro_N>); 
 
//Definição da função 
<Tipo_da_função> <Nome_da_função> (<Parâmetro_1>, ...,<Parâmetro_N>) 
 
{ //Início da função 
 <Comandos_em_C>; 
............................ 
} //Fim da função 
 
 
//Definição da função principal 
<Tipo_da_função> main (int argc, char *argv[ ]) 
{ //Início da função principal 
 <Comandos_em_C>; 
 ............................ 
} //Fim da função principal 
 
 
ESCOPO DE VARIÁVEL 
Há três lugares nos quais podemos declarar variáveis. O primeiro é fora de todas 
as funções do programa. Estas variáveis são chamadas variáveis globais e 
podem ser usadas em qualquer lugar do programa a partir da linha na qual foi 
declarada. O segundo lugar no qual se pode declarar variáveis é no início de um 
bloco de código. Estas variáveis são chamadas locais e só têm validade dentro do 
bloco no qual são declaradas, isto é, só a função à qual ela pertence sabe da 
existência desta variável, dentro do bloco no qual foram declaradas. O terceiro 
 
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS 
Departamento de Ensino do 2o grau - Coordenação de Eletrônica 
Disciplina: Laboratório de Introdução a Programação 
Professora: Rosângela Fátima da Silva 
 
 
65 
lugar onde se pode declarar variáveis é na lista de parâmetros de uma função. 
Mais uma vez, apesar de estas variáveis receberem valores externos, estas 
variáveis são conhecidas apenas pela função onde são declaradas. 
Analise o código a seguir: 
<Tipo_da_variável> Global; /*Declaração de variável global*/ 
 
 
<Tipo_da_função> função_1(<Tipo_da_variável> Local_par) 
 
{ 
<Tipo_de_variaviel> Local_fun; /*Declaração de variável local*/ 
 Global = Global + Local_fun + Local_par; 
} 
 
<Tipo_da_função> main () 
 { 
 
<Tipo_de_variaviel> Local_main; /*Declaração de variável local*/ 
Global = Global + Local_main; 
 
 for (...) 
 { 
 
 <Tipo_de_variaviel> Local_for; /*Declaração de variável local*/ 
 Global = Global + Local_for; 
 
 } 
 } 
A variável Global é acessada de qualquer parte do programa, uma vez que foi 
declarada antes da definição de todas as funções. As variáveis Local_min e 
Local_for, só existem dentro de main(), isto é são variáveis locais de main. A 
variável Local_for é um exemplo de uma variável de bloco, ela somente é 
conhecida dentro do bloco da estrutura for. A variável Local_par é declarada na 
lista de parâmetros da função_1 e é vista apenas dentro dela. 
As regras que regem onde uma variável é válida chamam-se regras de escopo da 
variável. Há mais dois detalhes que devem ser ressaltados. Duas variáveis globais 
não podem ter o mesmo nome. O mesmo vale para duas variáveis locais de uma 
mesma função. Já duas variáveis locais, de funções diferentes, podem ter o 
mesmo nome sem perigo algum de conflito. Variáveis globais e locais podem ter o 
mesmo nome, nesse caso a variável usada dentro da função é a local. 
 
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS 
Departamento de Ensino do 2o grau - Coordenação de Eletrônica 
Disciplina: Laboratório de Introdução a Programação 
Professora: Rosângela Fátima da Silva 
 
 
66 
 
ATIVIDADE 
 
7.1 Elabore o fluxograma e o programa em C de uma função que receba como 
parâmetro um número inteiro e retorne o fatorial do número. O número deve ser 
introduzido através do teclado pelo usuário e ao final do processamento o 
programa deve imprimir a seguinte mensagem: 
O fatorial de XX é YY. 
 
7.2.Elabore o fluxograma e o programa em C de uma função que recebe como 
parâmetro a nota de um aluno e retorne um dos seguintes conceitos: 
o A - Nota>= 90; 
o B - 90 < Nota >= 80; 
o C - 80 < Nota >= 70; 
o D - 69 < Nota >= 60; 
o E - Nota < 60. 
A nota e o nome do aluno devem ser introduzidos pelo usuário através teclado. E 
ao final do processamento o programa deve imprimir na tela a seguinte 
mensagem: 
O aluno Fulano de Tal obteve nota XX e tem conceito Y. 
 
7.3 Elabore o fluxograma e o programa em C de uma função que recebe como 
parâmetro um número inteiro