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)
Procedimentos e funções
em C

Prof. Mauro Jansen

Linguagem de Programação
Linguagem C – parte 1

2
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
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
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
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
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
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
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
Vetores em C

Prof. Mauro Jansen

Linguagem de Programação
Linguagem C – parte 1

10
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
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
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”,&notas[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
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
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
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
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”,&notas[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
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",&notas[a][n]);
}
printf("n");
}
}

#

Prof. Mauro Jansen

Linguagem de Programação
Linguagem C – parte 1

18
Registros (estruturas) em C

Prof. Mauro Jansen

Linguagem de Programação
Linguagem C – parte 1

19
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
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
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
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
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

Linguagem c parte 2

  • 1.
    Curso: Manutenção eSuporte em Informática Disciplina: Linguagem de Programação Professor: Mauro Jansen Linguagem C Procedimentos e funções, vetores, matrizes e registros (estruturas)
  • 2.
    Procedimentos e funções emC Prof. Mauro Jansen Linguagem de Programação Linguagem C – parte 1 2
  • 3.
    Procedimentos e funções Tambémchamados 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 usarfunçõ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çõesem 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() Comojá 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 emC 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 voidmain() { // 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 umavariá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 umvetor 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; floatnotas[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”,&notas[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çosde 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 umamatriz 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; floatnotas[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”,&notas[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 – notasde 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",&notas[a][n]); } printf("n"); } } # Prof. Mauro Jansen Linguagem de Programação Linguagem C – parte 1 18
  • 19.
    Registros (estruturas) emC Prof. Mauro Jansen Linguagem de Programação Linguagem C – parte 1 19
  • 20.
    Registros (estruturas) Variável compostapor 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 estruturaem 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 referenciarum 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 Ouso 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 dealunos 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