(Parte 1 de 6)

Universidade Metodista de Piracicaba UNIMEP

Faculdade de Ciência e Tecnologia da Informação

Apostila de Linguagem de Programação “C” - Módulo I

1. Funções

. Conceituação . Passagem de parâmetros por valor; . Passagem de parâmetros por referência.

2. Ponteiros

. Conceituação

. Operadores associados a ponteiros;

. Ponteiros e Matrizes 3. Tipos Estruturados

. Estruturas; . Uniões; . Enumeração e

. Tipo Definido.

4. Arquivos

. Operações Básicas com arquivos; . Operações Básicas com registros; . Modos de acesso a registros.

Apostila de Linguagem de Programação “C” - Módulo I

1. FUNÇÕES

As funções permitem ao programador separar um programa longo em várias partes menores, cada qual com uma finalidade específica, tornando assim o programa modular. Além desta vantagem podemos destacar outras como: a repetição das mesmas instruções de programa em diferentes pontos do programa, clareza na representação de lógica, portabilidade no caso da criação de bibliotecas e etc.

Sendo assim a função é um seguimento independente do programa que executa uma tarefa específica. Todo o programa em “C” é formado por uma ou mais funções. Uma dessas funções deve ser a função main(). As funções adicionais do programa estarão subordinadas à função main() ou a alguma outra função. Se um programa contém várias funções, suas definições podem aparecer em qualquer ordem. Uma função será executada quando for chamada. Após a execução, o controle retorna para o ponto no qual a função foi chamada.

Forma Geral:- tipo nome_da_função (lista de parâmetros) { corpo da função; }

Onde:

tipo – define o tipo da informação que a função vai retornar, podendo ser qualquer tipo válido. Se nenhum tipo for especificado o compilador assume que a função devolve um resultado inteiro (default), quando a função não retorna nenhum resultado coloca-se void;

Apostila de Linguagem de Programação “C” - Módulo I nome_da_função – identificador criado pelo programador; lista de parâmetros – são as informações passadas para a função também conhecidas como argumentos. Uma função pode não conter argumentos, lista vazia entre parênteses. Todos os parâmetros da função devem conter o tipo e o nome da variável.

As variáveis declaradas dentro de uma função não podem interagir com o código ou os dados definidos em outra função, conceito de variáveis locais.

O padrão ANSI expandiu a declaração de funções colocando-se a utilização de protótipos. Sua finalidade é a de informar ao compilador a existência de outras funções no programa além da função main(). Isto faz com que o compilador avalie os tipos especificados nos parâmetros evitando incompatibilidade de tipo na chamada a função.

Exemplo: #include <stdio.h>

void tela1();// protótipo da função tela1()
void tela2();// protótipo da função tela2()

#include <conio.h>

gotoxy(20,10);printf(“Digite o Registro Acadêmico”);
gotoxy(20,12);printf(“Digite o nome do aluno”);
gotoxy(20,14);printf(“Digite a média do aluno”);

void tela1() { clrscr(); } void tela2() { clrscr();

Apostila de Linguagem de Programação “C” - Módulo I

gotoxy(20,10);printf(“A média geral da classe é”);
}

A função pode retornar um tipo de dado através do comando return. Esse comando tem dois importantes usos: provoca uma saída imediata da função retornando ao código chamador e ele pode ser usado também para devolver uma informação. Todas as funções podem devolver uma informação exceto as do tipo

Apostila de Linguagem de Programação “C” - Módulo I void (vazio). O default é o tipo int, ou seja, uma função para a qual não declaramos o tipo de retorno é considerada como retornando um inteiro.

Além de retornar informações as funções podem receber informações através dos argumentos (passagem de parâmetros).

Exemplo1:- O programa abaixo verifica se um número é par ou ímpar. #include <stdio.h>

{
{int num,resp;
elseprintf(“ O número é par!! \n”);

#include <conio.h> int verifica( int a); int verifica ( int a) if (a % 2) return (0); else return (1); } void main() clrscr(); printf(“Entre com um numero inteiro : “); scanf(“%d”,&num); resp=verifica(num); if (resp==1) printf(“ O número é impar !! \n”); }

Exemplo2:- O programa abaixo retorna o quadrado de um número dado.

Apostila de Linguagem de Programação “C” - Módulo I

#include <stdio.h> #include <conio.h> int quadrado( int x);

{int n;

void main() clrscr(); printf(“Entre com um numero inteiro : “); scanf(“%d”,&n); printf(“ \n\n O quadrado do número é : %d”, quadrado(n)); }

{return (x*x); }

int quadrado( int x)

Em “C” podemos ter dois tipos de parâmetros: passagem de parâmetros por valor e passagem de parâmetros por referência.

Na passagem de parâmetros por valor as informações dos parâmetros são copiadas para a função receptora. As alterações nesses parâmetros não tem nenhum efeito na função de origem da informação.

Na passagem de parâmetros por referência, é enviado o endereço do parâmetro para a função receptora, dessa forma o endereço é usado para acessar as informações originais. Isto significa que qualquer alteração efetuada no parâmetro estará modificando o conteúdo original da informação enviada.

Apostila de Linguagem de Programação “C” - Módulo I

Exemplo3:- O exemplo abaixo envia duas variáveis numéricas para uma função utilizando passagem de parâmetros por referência.

#include <stdio.h> #include <conio.h> void calculo (int *a,int *b); void main() { int num1=100,num2=200; calculo (&num1,&num2); printf(“\n Os valore atuais de num1= %d e num2 = %d”,num1,num2); } void calculo (int *a, int *b) { *a = *a *2;

O resultado será: num1=200 e num2=150;

Exemplo4 :- O programa abaixo lê uma string e conta quantos caracteres são dígitos, quantos são vogais, quantos são consoantes e quantos são espaços em branco. O exemplo usa passagem de parâmetros e aritmética de ponteiros

#include <stdio.h>

Apostila de Linguagem de Programação “C” - Módulo I

#include <conio.h> #include <ctype.h> void analisa (char linha[], int *pv, int *pc,int *pd, int *pb, int *po); void main() { char linha[80]; int vogais=0,consoantes=0,digitos=0,brancos=0,outros=0; clrscr(); printf("Digite uma linha de texto:\n"); gets(linha); analisa(linha, &vogais, &consoantes, &digitos, &brancos,&outros); printf("\n No de vogais: %d",vogais); printf("\n No de consoantes: %d",consoantes); printf("\n No de digitos: %d",digitos); printf("\n No de brancos: %d",brancos); printf("\n No de outros: %d",outros); getchar();getchar(); } void analisa (char linha[], int *pv, int *pc, int *pd, int *pb, int *po) { char c; int cont=0; while ((c=toupper(linha[cont])) != '\0') { if (c=='A' || c=='E' || c=='I' || c=='O'|| c=='U')

Apostila de Linguagem de Programação “C” - Módulo I

Exemplo5:- O programa abaixo lê um vetor de números inteiros e eleva cada um dos seus elementos ao quadrado armazenado o resultado no próprio vetor. Os elementos do vetor são enviados um por um para uma função que calcula o quadrado do número.

(Parte 1 de 6)

Comentários