linguagem c parte 2

24
Curso: Manutenção e Suporte em Informática Professor: Mauro Jansen Disciplina: Linguagem de Programação Linguagem C Procedimentos e funções, vetores, matrizes e registros (estruturas)

Upload: mauro-jansen

Post on 02-Jul-2015

944 views

Category:

Technology


0 download

DESCRIPTION

Linguagem C

TRANSCRIPT

Page 1: Linguagem c parte 2

Curso: Manutenção e Suporte em Informática

Professor: Mauro Jansen

Curso: Manutenção e Suporte em InformáticaDisciplina: Linguagem de Programação

Linguagem CProcedimentos e funções, vetores, matrizes e registros (estruturas)

Page 2: Linguagem c parte 2

Procedimentos e funções em C

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 2

em C

Page 3: Linguagem c parte 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

Prof. Mauro Jansen

� 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)

Linguagem de ProgramaçãoLinguagem C – parte 1 3

Page 4: Linguagem c parte 2

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

Prof. Mauro Jansen

mesmo programa� Separar o programa em blocos, facilitando a leitura, o entendimento e a manutenção

Linguagem de ProgramaçãoLinguagem C – parte 1 4

Page 5: Linguagem c parte 2

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 valorOutros tipos básicos (int, float, etc.): funções

Prof. Mauro Jansen

� Outros tipos básicos (int, float, etc.): funções que retornam valor

Linguagem de ProgramaçãoLinguagem C – parte 1 5

Page 6: Linguagem c parte 2

A função main()

� Como já vimos, todo programa em C tem pelo menos uma função: #Include <biblioteca1.h>

#Include <biblioteca2.h>

...

Inclusão de arquivo de bibliotecas de comandos

Função main(): é

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 6

...

Void main()

{

<Declaração de variáveis>

...

<comandos>

...

}

Função main(): é obrigatória. É a primeira função chamada quando o programa é iniciado

Delimitadores de inicio e fim de bloco de comandos

Page 7: Linguagem c parte 2

Definindo funções em C

� Sintaxe:tipo nome da função(tipo parâmetro1,...,tipo parâmetroN)

{

// comandos da função

}

Prof. Mauro Jansen

� 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

Linguagem de ProgramaçãoLinguagem C – parte 1 7

Page 8: Linguagem c parte 2

Chamada de funções

void main()

{

// comando anterior à chamada

void funcao1(int a,int b)

{

// comandos da função

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 8

// comando anterior à chamada

funcao1(2,3)

// comando posterior à chamada

}

// comandos da função

}

Page 9: Linguagem c parte 2

Exemplo de função

#Include <stdio.h>

float media(float nota1,float nota2)

{

return( (nota1+nota2)/2);

}

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 9

void main()

{

printf(“%f\n”,media(8,9));

}

Page 10: Linguagem c parte 2

Vetores em C

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 10

Page 11: Linguagem c parte 2

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

Prof. Mauro Jansen

� Na linguagem C, o primeiro elemento é o de índice zero

Linguagem de ProgramaçãoLinguagem C – parte 1 11

0 1 2 ... N

Page 12: Linguagem c parte 2

Declaração de um vetor

� Sintaxe:

� Exemplos:tipo <nome>[<tamanho>];

float notas[30]; // vetor p/até 30 notas

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 12

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

Page 13: Linguagem c parte 2

Usando vetores

int i;

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};

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 13

notas[0]=9.5; // guarda valor numa pos.específica

// usando um vetor no comando de entrada de dados:

scanf(“%f”,&notas[1]);

printf(“%f\n”,notas[0]); // acessa o valor de uma pos.

// especificando indice com variável:

i=1;

printf(“%f\n”,notas[i]);

Page 14: Linguagem c parte 2

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);

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 14

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("%f\n",precos[pos]);

total+=precos[pos];

}

printf("Total: %f\n",total);

}

Page 15: Linguagem c parte 2

Matrizes

� Similar ao vetor (variável dividida em vários pedaços), com a diferença que temos mais de uma dimensão

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 15

0,0 0,1 0,2 ... 0,M1,0 1,1 1,2 ... 1,M... ... ... ... ...N,0 N,1 N,2 ... N,M

Page 16: Linguagem c parte 2

Declaração de uma matriz

� Sintaxe:

� Exemplos:tipo <nome>[<tam.1>][tam.2]..[tam.N];

float notas[30][3]; // matriz p/até 3 notas de 30 alunos

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 16

float notas[30][3]; // matriz p/até 3 notas de 30 alunos

nome[50][10]; // matriz nomes (até 50 car.) de 10 pessoas

Page 17: Linguagem c parte 2

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:

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 17

// usando matriz no comando de entrada de dados:

scanf(“%f”,&notas[0][1]);

printf(“%f\n”,notas[0][1]); // acessa o valor

// especificando indice com variável:

i=0;

j=1;

printf(“%f\n”,notas[i][j]);

Page 18: Linguagem c parte 2

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++) {

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 18

for(n=0;n<3;n++) {

printf("Digite a nota %d do aluno %d: ",n,a);

scanf("%f",&notas[a][n]);

}

printf("\n");

}

}

Page 19: Linguagem c parte 2

Registros (estruturas) em C

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 19

Page 20: Linguagem c parte 2

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:

Prof. Mauro Jansen

� Exemplo:

Linguagem de ProgramaçãoLinguagem C – parte 1 20

Dados de uma Conta Bancária

ITEM DE DADO VALOR

Número: 2245

Tipo: Especial

Cliente: José da Silva

Saldo: R$5.250,00

Limite: R$950,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)

Page 21: Linguagem c parte 2

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 {

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 21

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

Page 22: Linguagem c parte 2

Usando estruturas

� Para referenciar um valor, mencionamos o nome da estrutura e do elemento separados por um ponto:

<nome da estrutura>.<nome do elemento>;

Prof. Mauro Jansen

� Exemplo:

Linguagem de ProgramaçãoLinguagem C – parte 1 22

conta.numero=123;

Conta.tipo=“Normal”;

Conta.cliente=“João da Silva”;

Conta.saldo=1000;

printf(“%f\n”,conta.saldo);

Page 23: Linguagem c parte 2

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

Prof. Mauro Jansen

podendo guardar dados de vários elementos distintos. Exemplos:� 100 registros de contas bancárias� 40 registros de alunos de uma turma

Linguagem de ProgramaçãoLinguagem C – parte 1 23

Page 24: Linguagem c parte 2

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];

Prof. Mauro JansenLinguagem de Programação

Linguagem C – parte 1 24

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");

}

}