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)
Procedimentos e funções em C
Prof. Mauro JansenLinguagem de Programação
Linguagem C – parte 1 2
em C
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
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
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
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
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
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
}
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));
}
Vetores em C
Prof. Mauro JansenLinguagem 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
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
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
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”,¬as[1]);
printf(“%f\n”,notas[0]); // acessa o valor de uma pos.
// especificando indice com variável:
i=1;
printf(“%f\n”,notas[i]);
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);
}
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
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
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”,¬as[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]);
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",¬as[a][n]);
}
printf("\n");
}
}
Registros (estruturas) em C
Prof. Mauro JansenLinguagem 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:
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)
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>;
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);
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
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");
}
}
Top Related