SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhanyKaren Costa
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 
Algoritmos computacionais
Algoritmos computacionaisAlgoritmos computacionais
Algoritmos computacionaisDérick Platini
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmosMauro Pereira
 
Introduçãso a linguagem c
Introduçãso a linguagem cIntroduçãso a linguagem c
Introduçãso a linguagem csergiocrespo
 
Cet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducaommind
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoJose Augusto Cintra
 
Algoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmosAlgoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmosMauro Pereira
 
Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica Yuri Camelo
 
Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Leandro Rezende
 
Aula01
Aula01Aula01
Aula01vdlos
 
Guia para traducao algoritmos x l ps
Guia para traducao algoritmos x l psGuia para traducao algoritmos x l ps
Guia para traducao algoritmos x l psMauro Pereira
 
Aula6 - Linguagem C
Aula6 - Linguagem CAula6 - Linguagem C
Aula6 - Linguagem Capolllorj
 

La actualidad más candente (20)

Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhany
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Apresentação Linguagem C
Apresentação Linguagem CApresentação Linguagem C
Apresentação Linguagem C
 
Algoritmos computacionais
Algoritmos computacionaisAlgoritmos computacionais
Algoritmos computacionais
 
Algoritmos - capítulo 6
Algoritmos - capítulo 6Algoritmos - capítulo 6
Algoritmos - capítulo 6
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmos
 
Introduçãso a linguagem c
Introduçãso a linguagem cIntroduçãso a linguagem c
Introduçãso a linguagem c
 
Cet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducao
 
Programação em C
Programação em CProgramação em C
Programação em C
 
Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de Programação
 
Algoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmosAlgoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmos
 
Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica
 
5423 c ou c++
5423 c ou c++5423 c ou c++
5423 c ou c++
 
Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01
 
Aula01
Aula01Aula01
Aula01
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
TDC2014 SP - C/C++ - Modularização de Código C
TDC2014 SP - C/C++ - Modularização de Código CTDC2014 SP - C/C++ - Modularização de Código C
TDC2014 SP - C/C++ - Modularização de Código C
 
Guia para traducao algoritmos x l ps
Guia para traducao algoritmos x l psGuia para traducao algoritmos x l ps
Guia para traducao algoritmos x l ps
 
Aula6 - Linguagem C
Aula6 - Linguagem CAula6 - Linguagem C
Aula6 - Linguagem C
 

Destacado

Microprocessadores ii arquitetura
Microprocessadores ii arquiteturaMicroprocessadores ii arquitetura
Microprocessadores ii arquiteturaMauro Pereira
 
Redes padroes e cabeamento
Redes padroes e cabeamentoRedes padroes e cabeamento
Redes padroes e cabeamentoMauro Pereira
 
6 softwares de manutenção
6 softwares de manutenção6 softwares de manutenção
6 softwares de manutençãoMauro Pereira
 
Algoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosAlgoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosMauro Pereira
 
Tecnologia e turismo - Tecnologias de hardware
Tecnologia e turismo - Tecnologias de hardwareTecnologia e turismo - Tecnologias de hardware
Tecnologia e turismo - Tecnologias de hardwareMauro Pereira
 
CakePHP com sotaque brasileiro
CakePHP com sotaque brasileiroCakePHP com sotaque brasileiro
CakePHP com sotaque brasileiroJuan Basso
 
Análise assintótica
Análise assintóticaAnálise assintótica
Análise assintóticaPablo Silva
 
Glosario de qbasic liliana
Glosario de qbasic lilianaGlosario de qbasic liliana
Glosario de qbasic lilianakhjhjhjh
 
Dicas para aumentar a performance de um software PHP
Dicas para aumentar a performance de um software PHPDicas para aumentar a performance de um software PHP
Dicas para aumentar a performance de um software PHPAlmir Neto
 
Assembly para pc-25paginas
Assembly para pc-25paginasAssembly para pc-25paginas
Assembly para pc-25paginasMikeNandes
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHPRangel Javier
 
C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem Claudson Oliveira
 
Conceitos básicos de AEDS
Conceitos básicos de AEDSConceitos básicos de AEDS
Conceitos básicos de AEDSPablo Silva
 

Destacado (20)

Microprocessadores ii arquitetura
Microprocessadores ii arquiteturaMicroprocessadores ii arquitetura
Microprocessadores ii arquitetura
 
Redes padroes e cabeamento
Redes padroes e cabeamentoRedes padroes e cabeamento
Redes padroes e cabeamento
 
Algoritmos Aula 01
Algoritmos Aula 01Algoritmos Aula 01
Algoritmos Aula 01
 
6 softwares de manutenção
6 softwares de manutenção6 softwares de manutenção
6 softwares de manutenção
 
Algoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosAlgoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentos
 
Tecnologia e turismo - Tecnologias de hardware
Tecnologia e turismo - Tecnologias de hardwareTecnologia e turismo - Tecnologias de hardware
Tecnologia e turismo - Tecnologias de hardware
 
CakePHP com sotaque brasileiro
CakePHP com sotaque brasileiroCakePHP com sotaque brasileiro
CakePHP com sotaque brasileiro
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Análise assintótica
Análise assintóticaAnálise assintótica
Análise assintótica
 
Funções em C
Funções em CFunções em C
Funções em C
 
Glosario de qbasic liliana
Glosario de qbasic lilianaGlosario de qbasic liliana
Glosario de qbasic liliana
 
Introdução ao PHP
Introdução ao PHPIntrodução ao PHP
Introdução ao PHP
 
Dicas para aumentar a performance de um software PHP
Dicas para aumentar a performance de um software PHPDicas para aumentar a performance de um software PHP
Dicas para aumentar a performance de um software PHP
 
Assembly para pc-25paginas
Assembly para pc-25paginasAssembly para pc-25paginas
Assembly para pc-25paginas
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
Apostila cobol
Apostila cobolApostila cobol
Apostila cobol
 
PROGRAMAS QBASIC
PROGRAMAS QBASICPROGRAMAS QBASIC
PROGRAMAS QBASIC
 
C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem
 
Conceitos básicos de AEDS
Conceitos básicos de AEDSConceitos básicos de AEDS
Conceitos básicos de AEDS
 
Linguagem C - Uniões
Linguagem C - UniõesLinguagem C - Uniões
Linguagem C - Uniões
 

Similar a Linguagem c parte 2

RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxClaudia Ferlin
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cMaicon Rodrigues
 
Estrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptxEstrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptxMarceloRosenbrock1
 
095 A 134 Material Auxiliar Para Curso AvançAdo I Msp430
095 A 134   Material Auxiliar Para Curso AvançAdo I Msp430095 A 134   Material Auxiliar Para Curso AvançAdo I Msp430
095 A 134 Material Auxiliar Para Curso AvançAdo I Msp430Texas Instruments
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Pythonguestac3de
 
Estruturas em C++ (struct)
Estruturas em C++ (struct)Estruturas em C++ (struct)
Estruturas em C++ (struct)Márcio Rizzatto
 
Programação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso CompletoProgramação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso Completothomasdacosta
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02thomasdacosta
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CJoberthSilva
 
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuroVisual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuroRogério Moraes de Carvalho
 
Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+cThiago Freitas
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03thomasdacosta
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem cvingue
 

Similar a Linguagem c parte 2 (20)

RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptx
 
Modulo02
Modulo02Modulo02
Modulo02
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-c
 
Estrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptxEstrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptx
 
Aula 1 | Introdução a C++
Aula 1 | Introdução a C++Aula 1 | Introdução a C++
Aula 1 | Introdução a C++
 
095 A 134 Material Auxiliar Para Curso AvançAdo I Msp430
095 A 134   Material Auxiliar Para Curso AvançAdo I Msp430095 A 134   Material Auxiliar Para Curso AvançAdo I Msp430
095 A 134 Material Auxiliar Para Curso AvançAdo I Msp430
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Python
 
Aula09 traducaosin110
Aula09 traducaosin110Aula09 traducaosin110
Aula09 traducaosin110
 
Estruturas em C++ (struct)
Estruturas em C++ (struct)Estruturas em C++ (struct)
Estruturas em C++ (struct)
 
Programação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso CompletoProgramação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso Completo
 
Java2
Java2Java2
Java2
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
 
Modularização
ModularizaçãoModularização
Modularização
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação C
 
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuroVisual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
 
Linguagem C 06 Funcoes
Linguagem C 06 FuncoesLinguagem C 06 Funcoes
Linguagem C 06 Funcoes
 
Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+c
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 

Más de Mauro Pereira

Programação Web - CSS
Programação Web - CSSProgramação Web - CSS
Programação Web - CSSMauro Pereira
 
Redes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redesRedes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redesMauro Pereira
 
Exercicio introducao a arquitetura de computadores
Exercicio    introducao a arquitetura de computadoresExercicio    introducao a arquitetura de computadores
Exercicio introducao a arquitetura de computadoresMauro Pereira
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresMauro Pereira
 
Sistemas de Numeracao
Sistemas de NumeracaoSistemas de Numeracao
Sistemas de NumeracaoMauro Pereira
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosMauro Pereira
 
Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1Mauro Pereira
 
Redes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeRedes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeMauro Pereira
 
Redes 4 endereçamento
Redes 4 endereçamentoRedes 4 endereçamento
Redes 4 endereçamentoMauro Pereira
 
Redes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redesRedes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redesMauro Pereira
 
Redes 1 introducao historico conceitos
Redes 1 introducao historico conceitosRedes 1 introducao historico conceitos
Redes 1 introducao historico conceitosMauro Pereira
 
4.1 softwares e configurações importantes
4.1 softwares e configurações importantes4.1 softwares e configurações importantes
4.1 softwares e configurações importantesMauro Pereira
 
Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2Mauro Pereira
 
Exercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolosExercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolosMauro Pereira
 
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...Mauro Pereira
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmosMauro Pereira
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigoMauro Pereira
 

Más de Mauro Pereira (20)

Programação Web - CSS
Programação Web - CSSProgramação Web - CSS
Programação Web - CSS
 
Redes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redesRedes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redes
 
Exercicio introducao a arquitetura de computadores
Exercicio    introducao a arquitetura de computadoresExercicio    introducao a arquitetura de computadores
Exercicio introducao a arquitetura de computadores
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de Computadores
 
Sistemas de Numeracao
Sistemas de NumeracaoSistemas de Numeracao
Sistemas de Numeracao
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicos
 
Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1
 
Redes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeRedes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da rede
 
Redes 4 endereçamento
Redes 4 endereçamentoRedes 4 endereçamento
Redes 4 endereçamento
 
Redes 5 cabeamento
Redes 5 cabeamentoRedes 5 cabeamento
Redes 5 cabeamento
 
Redes 3 protocolos
Redes 3 protocolosRedes 3 protocolos
Redes 3 protocolos
 
Redes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redesRedes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redes
 
Redes 1 introducao historico conceitos
Redes 1 introducao historico conceitosRedes 1 introducao historico conceitos
Redes 1 introducao historico conceitos
 
4.1 softwares e configurações importantes
4.1 softwares e configurações importantes4.1 softwares e configurações importantes
4.1 softwares e configurações importantes
 
Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2
 
Exercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolosExercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolos
 
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
 

Linguagem c parte 2

  • 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)
  • 2. Procedimentos e funções em C Prof. Mauro Jansen Linguagem de Programação Linguagem C – parte 1 2
  • 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”,&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ç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”,&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 – 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
  • 19. Registros (estruturas) em C Prof. Mauro Jansen Linguagem de Programação Linguagem C – parte 1 19
  • 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