O documento apresenta uma aula sobre procedimentos e funções na linguagem C ministrada pelo professor Mauro Jansen. A aula introduz os conceitos de procedimentos, funções, vetores, matrizes e registros (estruturas) em C.
1. Curso: Manutenção e Suporte em Informática
Disciplina: Linguagem de Programação
Professor: Mauro Jansen
Linguagem C
Procedimentos e funções, vetores,
matrizes e registros (estruturas)
3. Procedimentos e funções
Também chamados de sub-programas ou
rotinas, são programas que executam uma
função específica que é acessada diversas
vezes
Procedimento: não retorna valor ao programa
que o chamou
Função: retorna valor
Exemplos: função fatorial (calcula o fatorial
de um número)
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
3
4. Por que usar funções?
Reaproveitar código já criado (por você ou
outros programadores)
Evitar repetição de código dentro do
mesmo programa
Separar o programa em blocos, facilitando
a leitura, o entendimento e a manutenção
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
4
5. Procedimentos e funções em C
A linguagem C tem apenas funções
O tipo da função diz se ela retorna ou não
valor:
Tipo void: função que não retorna valor
Outros tipos básicos (int, float, etc.): funções
que retornam valor
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
5
6. A função main()
Como já vimos, todo programa em C tem
pelo menos uma função:
#Include <biblioteca1.h>
#Include <biblioteca2.h>
...
Void main()
{
<Declaração de variáveis>
...
<comandos>
...
}
Inclusão de arquivo de
bibliotecas de comandos
Função main(): é
obrigatória. É a primeira
função chamada quando
o programa é iniciado
Delimitadores de inicio e fim de
bloco de comandos
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
6
7. Definindo funções em C
Sintaxe:
tipo nome da função(tipo parâmetro1,...,tipo parâmetroN)
{
// comandos da função
}
Os parâmetros são os dados que serão usados
pela função para realizar sua operação ou
retornar algum resultado
A lista de parâmetros é opcional, mas se for
usada deve ser especificado o tipo de cada
parâmetro
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
7
8. Chamada de funções
void main()
{
// comando anterior à chamada
funcao1(2,3)
// comando posterior à chamada
}
Prof. Mauro Jansen
void funcao1(int a,int b)
{
// comandos da função
}
Linguagem de Programação
Linguagem C – parte 1
8
9. Exemplo de função
#Include <stdio.h>
float media(float nota1,float nota2)
{
return( (nota1+nota2)/2);
}
void main()
{
printf(“%fn”,media(8,9));
}
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
9
10. Vetores em C
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
10
11. Vetor
É como uma variável dividida em vários
pedaços, onde cada pedaço é acessado
através de um número chamado índice
Na linguagem C, o primeiro elemento é o
de índice zero
0
Prof. Mauro Jansen
1
2
...
Linguagem de Programação
Linguagem C – parte 1
N
11
12. Declaração de um vetor
Sintaxe:
tipo <nome>[<tamanho>];
Exemplos:
float notas[30];
// vetor p/até 30 notas
char nome[50];
// vetor p/nome de até 50 caracteres
// podemos também declarar e já inicializar o vetor:
Float precos[4]={10.25, 11.55, 12.55, 20.65};
Note que as STRINGS (cadeia de caracteres)
em C, são vetores de caracteres
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
12
13. Usando vetores
int i;
float notas[30];
char nome[50];
// vetor p/até 30 notas
// vetor p/nome de até 50 caracteres
// podemos também declarar e já inicializar o vetor:
Float precos[4]={10.25, 11.55, 12.55, 20.65};
notas[0]=9.5;
// guarda valor numa pos.específica
// usando um vetor no comando de entrada de dados:
scanf(“%f”,¬as[1]);
printf(“%fn”,notas[0]);
// acessa o valor de uma pos.
// especificando indice com variável:
i=1;
printf(“%fn”,notas[i]);
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
13
14. Exemplo – preços de produtos
#include <stdio.h>
#define MAX 20
int main()
{
int pos;
float precos[MAX],total;
for(pos=0;pos<MAX;pos++) {
printf("Digite o preco do produto %d: ",pos);
scanf("%f",&precos[pos]);
}
printf("Preços digitados:n");
total=0;
for(pos=0;pos<MAX;pos++) {
printf("%fn",precos[pos]);
total+=precos[pos];
}
printf("Total: %fn",total);
}
#
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
14
15. Matrizes
Similar ao vetor (variável dividida em
vários pedaços), com a diferença que
temos mais de uma dimensão
0,0
1,0
...
N,0
Prof. Mauro Jansen
0,1
1,1
...
N,1
0,2
1,2
...
N,2
...
...
...
...
Linguagem de Programação
Linguagem C – parte 1
0,M
1,M
...
N,M
15
16. Declaração de uma matriz
Sintaxe:
tipo <nome>[<tam.1>][tam.2]..[tam.N];
Exemplos:
float notas[30][3]; // matriz p/até 3 notas de 30 alunos
nome[50][10]; // matriz nomes (até 50 car.) de 10 pessoas
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
16
17. Usando matrizes
int i,j;
float notas[30][3]; // matriz p/até 3 notas de 30 alunos
nome[50][10]; // matriz nomes (até 50 car.) de 10 pessoas
notas[0][0]=9.5;
// guarda valor numa pos.específica
// usando matriz no comando de entrada de dados:
scanf(“%f”,¬as[0][1]);
printf(“%fn”,notas[0][1]); // acessa o valor
// especificando indice com variável:
i=0;
j=1;
printf(“%fn”,notas[i][j]);
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
17
18. Exemplo – notas de alunos de uma turma de 10
alunos, com 3 notas de cada
#include <stdio.h>
#define MAX 10
int main()
{
int a,n;
float notas[MAX][3];
for(a=0;a<MAX;a++) {
for(n=0;n<3;n++) {
printf("Digite a nota %d do aluno %d: ",n,a);
scanf("%f",¬as[a][n]);
}
printf("n");
}
}
#
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
18
20. Registros (estruturas)
Variável composta por um conjunto de
sub-itens (membros da estrutura) que não
precisam ser do mesmo tipo de dados
Exemplo:
Dados de uma Conta Bancária
ITEM DE DADO VALOR
Número: 2245
Tipo: Especial
Cliente: José da Silva
Saldo: R$5.250,00
Neste registro, representamos
uma conta bancária, que tem os
seguintes tipos de dados:
Inteiro (Número)
Real (Saldo e Limite)
Literal (Tipo e Cliente)
Limite: R$950,00
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
20
21. Definindo uma estrutura em C
É feita em duas fases
Definição da estrutura (novo tipo de dados)
Definição da variável do tipo criado para a estrutura
// definição da estrutura (novo tipo de dados)
Typedef struct {
tipo <nome do elemento 1>;
tipo <nome do elemento 2>;
...
tipo <nome do elemento N>;
} <nome da estrutura>;
// declaração da variável do tipo estrutura
<nome da estrutura> <nome da variável>;
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
21
22. Usando estruturas
Para referenciar um valor, mencionamos o
nome da estrutura e do elemento
separados por um ponto:
<nome da estrutura>.<nome do elemento>;
Exemplo:
conta.numero=123;
Conta.tipo=“Normal”;
Conta.cliente=“João da Silva”;
Conta.saldo=1000;
printf(“%fn”,conta.saldo);
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
22
23. Vetor de estrutura
O uso de esturutras torna-se mais efetivo
quando associado a vetores
Podemos criar um vetor de estrutura,
podendo guardar dados de vários
elementos distintos. Exemplos:
100 registros de contas bancárias
40 registros de alunos de uma turma
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
23
24. Exemplo: notas de alunos de uma
turma usando estrutura
#include <stdio.h>
#define MAX 10
int main()
{
typedef struct {
char nome[50];
float nota1;
float nota2;
} reg_aluno;
reg_aluno alunos[MAX];
int c;
for(c=0;c<MAX;c++) {
printf("Digite os dados do aluno %d:n",c+1);
printf("Nome: ");
scanf("%s",&alunos[c].nome);
printf("Nota 1: ");
scanf("%f",&alunos[c].nota1);
printf("Nota 2: ");
scanf("%f",&alunos[c].nota2);
printf("n");
}
}
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1
24