VETORES
MATRIZES
FUNÇÕES
Profª Ms. Engª Elaine Cecília Gatto
Curso de Bacharelado em Engenharia de Computação
Universidade do Sagrado CoraçãO – USC
Bauru/SP
Vetores
• Variaveis compostas homogeneas unidimensionais
• Os índices começam em zero
• A quantidade de elementos que o vetor pode armazenar deve
ser um valor inteiro fixo
• DECLARAÇÃO
• Exemplo1: int vet[10];
• Começa na posição zero e termina na posição 9 (tamanho do
vetor – 1);
• Exemplo 2: char x[5];
• Começa na posição zero e termina na posição 4

2
Vetores
•
•
•
•

Exemplo 3:
#define tam 5;
char z[tam];
Começa na posição zero e termina na posição 4

• ATRIBUIÇÃO
• Exemplo 1:
• vet[0] = 1; //atribui o valor 1 à primeira posição do vetor
• X*3+ = ‘b’; //atribui a letra b à quarta posição do vetor
3
Vetores
• PREENCHENDO
• for(i=0; i<10; i++)
• scanf( “ %d ” , &vetor*i+ );
• MOSTRANDO OS VALORES
• for(i=0; i<10; i++)
• printf( “ %d ” , vetor*i] );
4
Matriz
• Variaveis homogeneas bidimensionais ou multidimensionais
• Pode ter até 12 dimensões de acordo com o padrão ANSI
• Para cada dimensão, um índice deve ser usado
• DECLARAÇÃO
• float x[2][6]; //uma matriz com duas linhas e seis colunas
• char mat[4][3]; //uma matriz com quatro linhas e tres colunas
• float y[2][4][3]; //uma matriz com duas linhas, quatro colunas
e três profundidades
5
MATRIZES
• ATRIBUIÇÃO
• X[1][4] = 5; //atribui o valor 5 ao espaço identificado pelo
indice 1 (linha 2) e índice 4 (coluna 5)
• Mat*3+*2+ = ‘d’; //atribui o valor d à quarta linha e à terceira
coluna
• Y[0][3][1] = 12; //atribui o valor 12 à primeira linha, quarta
coluna e segunda profundidade.

6
Matrizes
• PREENCHENDO

for(i=0; i<7; i++){ //linha
for(j=0; j<3; j++) //coluna
scanf( “ %d ”, &mat*i+*j+ );
}
Preenche primeiro todas as colunas da linha 0
Depois todas as colunas da linha 1
E assim por diante

7
Matrizes
• IMPRIMINDO

for(i=0; i<7; i++){
for(j=0; j<3; j++)
printf( “ %d ”, mat[i][j] );
}

8
Matrizes
• Exemplo
for(i=0; i<3; i++){
printf( “ Elementos da linha %d ”, i);
for(j=0; j<4; j++){
printf( “ %d ”, x* i , j + );
}
MEMÓRIA TELA
}
i
j
0

Elementos da linha 0

0

0

4

0

1

5

0

2

1

0

3

10

1

Elementos da linha 1

9
Matrizes
• Exemplo
for(j=0; j<4; j++){
printf( “ Elementos da coluna %d ”, j);
for(i=0; i<3; i++){
printf( “ %d ”, x* i , j + );
}
MEMÓRIA TELA
}
j
i
0

Elementos da coluna 0

0

0

4

0

1

5

0

2

1

1
1

Elementos da coluna 1
0

6

10
Sub rotinas
• Sub-rotinas ou subprogramas são blocos de instruções que
realizam tarefas específicas
• Como o problema pode ser subdividido em pequenas
tarefas, os programas tendem a ficar menores e mais
organizados
• Programas são executados linha após linha, mas quando se
usa subrotina, um desvio é realizado na execução do programa
• Uma subrotina pode ou não receber um parametro
• Uma subrotina pode ou não retornar um valor
• Uma subrotina pode ter variaveis locais, variaveis que são
criadas apenas para uso interno da subrotina

11
Sub rotinas
• Modularização do programa por meio de funções
• Variaveis globais: são aquelas variaveis conhecidas por todo o
programa e são declaradas fora das funções
• FUNÇÕES SEM PASSAGEM DE PARAMETROS E SEM RETORNO
• Não recebe nenhuma informação no momento de sua
chamada
• Não repassa nenhum valor para quem a chamou
12
Sub rotinas
#include <stdio.h>
int a, b, s; //variáveis globais
void soma(){
printf(“Digite dois números”);
scanf(“%d %d”, &a, &b);
s = a + b;
printf(“ a soma é %d”, s);
}
int main(){
soma();
getchar();
return 0;
}

13
Sub rotinas
• FUNÇÕES COM PASSAGEM DE PARAMETROS E SEM
RETORNO
• Recebem valores no momento em que são chamadas
• Não devolvem nenhum valor para quem as chamou

14
Sub rotinas
#include <stdio.h>
void soma(int a, int b){
int s; //variável local da subrotina
s = a + b;
printf('a soma é %d', s);
}
int main(){
int a, b; //variável local do programa principal
printf('Digite dois valores');
scanf(' %d %d ', &a, &b);
soma(a, b);
getchar();
return 0;
}

15
Sub rotinas
• FUNÇÕES SEM PASSAGEM DE PARAMETROS E COM
RETORNO
• Não recebem nenhum valor no momento em que são
chamadas
• Devolvem um valor para quem as chamous

16
Sub rotinas
#include <stdio.h>
int soma(){
int a, b, s; //variável local da subrotina
printf('Digite dois valores');
scanf(' %d %d ', &a, &b);
s = a + b;
return s;
}
int main(){
int s; //variável local do programa principal
s = soma(); //chamada da sub rotina
printf(' a soma é: %d', s);
getchar();
return 0;
}

17
Sub rotina
• FUNÇÕES COM PASSAGEM DE PARAMETROS E COM
RETORNO
• Recebem valores no momento em que são chamadas
• Devolvem um valor para quem as chamou

18
Sub rotina
#include <stdio.h>
int soma(int a, int b){
return a+b;
}
int main(){
int a, b, s; //variável local do programa principal
printf('Digite dois números');
scanf(' %d %d ', &a, &b);
s = soma(a, b); //chamada da sub rotina
printf(' a soma é: %d', s);
getchar();
return 0;
}

19
Sub rotina
• Se você quiser, pode escrever todas as funções antes do MAIN
• Se quiser escrevê-las após MAIN, deverá utilizar os protótipos
de funções
• PASSAGEM DE PARAMETROS POR VALOR
• Significa que a função trabalhará com cópias dos valores
passados no momento de sua chamada

20
Sub rotina
#include <stdio.h>
int soma_dobro(int a, int b);
int main(){
int x, y, res; //variável local do programa principal
printf('Digite dois números');
scanf(' %d %d ', &x, &y);
res = soma_dobro(x, y); //chamada da sub rotina
printf(' a soma do dobro dos números %d e %d = %d', x, y, res);
getchar();
return 0;
}
Quando a função chega ao fim, as
int soma_dobro(int a, int b){
variaveis criadas são completamente
int soma;
destruídas e as alterações realizadas são
a = a * 2;
perdidas. X continuara valendo 5 e y
b = b * 2;
continuara valendo 3.
soma = a + b;
return soma;
}

21
Sub rotina
#include <stdio.h>
int soma_dobro(int a, int b);
int main(){
int x, y, res; //variável local do programa principal
printf('Digite dois números');
scanf(' %d %d ', &x, &y);
FUNÇÃO MAIN y); //chamada da sub rotina FUNÇÃO SOMA_DOBRO
res = soma_dobro(x,
A
X
5
printf(' a soma do dobro dos números %d e %d = %d', x, y, res); 5
getchar();
B
3
Y
3
return 0;
SOMA
16
RES
16
}
int soma_dobro(int a, int b){
int soma;
a = a * 2;
b = b * 2;
soma = a + b;
return soma;
}

22
Sub rotina
• PASSAGEM DE PARAMETROS POR REFERENCIA
• Significa que os parametros passados para a função
correspondem a endereços de memória ocupados por
variáveis
• Toda vez que for necessário acessar determinado valor, isso
será feito por meio de referencia, apontamento ao seu
endereço de memória

23
Sub rotina
#include <stdio.h>
int soma_dobro(int *a, int *b);
int main(){
int x, y, res; //variável local do programa principal
printf('Digite dois números');
scanf(' %d %*c %d %*c', &x, &y);
res = soma_dobro(x, y); //chamada da sub rotina
printf(' a soma do dobro dos números %d e %d = %d', x, y, res);
getchar();
return 0;
}
Quando a função chega ao fim, as
int soma_dobro(int *a, int *b){
variaveis criadas são completamente
int soma;
*a = 2 * (*a);
destruídas, mas as alterações realizadas
*b = 2 * (*b);
não se perdem. X valerá 10 e Y 6, isto
soma = *a + *b;
porque as alterações fizeram referencia
return soma;
a endereços de memória
}

24
Sub rotina

25
Sub rotinas
• Matrizes e vetores só podem ser passadas para funções por
referencia
void soma_linhas(float m[][5], float v[]){ //um vetor com
colchetes vazios ou uma matriz com colchetes da primeira
dimensão vazios significa que são variáveis ponteiros que
guardam os endereços iniciais das variáveis
}
int main(){
soma_linhas(mat, vet); //isto indica que esta sendo
usado o endereço de memória ocupado pela posição 0 do vetor
ou pela posição 0x0 da matriz
}

26
Sub rotinas
• SUBROTINAS EM ARQUIVOS SEPARADOS – BIBLIOTECAS
• Uma biblioteca é gerada a partir de um arquivo .H
• Esse arquivo .H não contém o programa principal
• O programa principal irá utilizar as funções definidas nesse
arquivo .H
• Chame seu arquivo .H usando a diretiva #INCLUDE
“caminhonome_da_biblioteca”, em que caminho, é o local
onde está salva sua biblioteca

27
Sub rotinas
MYBIBLIO.H
#include <stdio.h>
void sub_rotina1(), printf(“mostrando uma mensagem”); void sub_rotina2(){ }
void sub_rotina3(){ }

MYPROGRAM.C
#include <stdio.h>
#include “c:testeMYBIBLIO.H”
int main(){
sub_rotina1();
sub_rotina2();
}

28

Mais conteúdo relacionado

PPTX
Linguagem C - Vetores
PPTX
Algoritmos: Variáveis e Constantes
PPTX
Algoritmos 1 - Semana 2
PPTX
C++ Funções
PPTX
Linguagem C - Estruturas
PPTX
Lógica de programação { para iniciantes }
PPT
Material de Apoio de Algoritmo e Lógica de Programação
PPTX
Linguagem C - Ponteiros
Linguagem C - Vetores
Algoritmos: Variáveis e Constantes
Algoritmos 1 - Semana 2
C++ Funções
Linguagem C - Estruturas
Lógica de programação { para iniciantes }
Material de Apoio de Algoritmo e Lógica de Programação
Linguagem C - Ponteiros

Mais procurados (20)

PDF
Algoritmos e lp parte 2-fundamentos
PDF
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
PPTX
Algoritmos e Técnicas de Programação - Aula 03
PDF
Arrays (vetores) em Java
PDF
Descritiva Narrativa (Lógica de Programação)
PDF
Aula 9 - Estruturas Condicionais
PPTX
Algoritmo recursivo
PDF
Algoritmos e lp parte 4-vetores matrizes e registros
PPTX
Conceitos básicos de Matrizes em C++
PDF
Sistemas de numeração
PPTX
Programação Estruturada e Orientada a Objetos
PPT
Aula 3 algoritmos
PPT
Apresentando a Linguagem de Programação Python
PDF
Lógica de Programação e Algoritmos
PDF
Aula 02 - Introdução ao PHP
PDF
Python - Introdução
PDF
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
ODP
Sistema binario
PDF
Lógica de programação e algoritmos
PDF
Introdução à Linguagem de Programação C
Algoritmos e lp parte 2-fundamentos
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Algoritmos e Técnicas de Programação - Aula 03
Arrays (vetores) em Java
Descritiva Narrativa (Lógica de Programação)
Aula 9 - Estruturas Condicionais
Algoritmo recursivo
Algoritmos e lp parte 4-vetores matrizes e registros
Conceitos básicos de Matrizes em C++
Sistemas de numeração
Programação Estruturada e Orientada a Objetos
Aula 3 algoritmos
Apresentando a Linguagem de Programação Python
Lógica de Programação e Algoritmos
Aula 02 - Introdução ao PHP
Python - Introdução
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Sistema binario
Lógica de programação e algoritmos
Introdução à Linguagem de Programação C
Anúncio

Destaque (20)

PDF
Vetores, Matrizes e Strings em C Parte 3
PDF
Lista de exercicios algoritmos resolvida-
PDF
Coletanea de-exercicios-resolvidos-em-liguagem-c
PDF
Algoritmos e Programação: Matrizes
PPTX
Metodologías del aprendizaje.....1
PDF
Fundamentos da programação de computadores 2ª edição
PDF
Livro Linguagem C - Completo
PPT
Poo 4 arraylist
PPT
1 exercicio de vectores em C
PDF
Coletanea de-exercicios-resolvidos-em-liguagem-c
PDF
Apostila dev c++
PPTX
Aula vetores e matrizes (arrays)
ODP
Linguagem C 05 Vetores E Matrizes
PDF
Algoritmos e Programação: Manipulação de strings
ODP
Linguagem C e Dev-C++ Algumas Explicações
PDF
13 14.00 estrategias reproductivas hicotea_c.leguízamo
PDF
Aula 12 - Exercícios vetores unidimensionais
PDF
Matemática - Funções - Livro pdf
PDF
Recursividade
TXT
Exercicios resolvidos visu alg vetores
Vetores, Matrizes e Strings em C Parte 3
Lista de exercicios algoritmos resolvida-
Coletanea de-exercicios-resolvidos-em-liguagem-c
Algoritmos e Programação: Matrizes
Metodologías del aprendizaje.....1
Fundamentos da programação de computadores 2ª edição
Livro Linguagem C - Completo
Poo 4 arraylist
1 exercicio de vectores em C
Coletanea de-exercicios-resolvidos-em-liguagem-c
Apostila dev c++
Aula vetores e matrizes (arrays)
Linguagem C 05 Vetores E Matrizes
Algoritmos e Programação: Manipulação de strings
Linguagem C e Dev-C++ Algumas Explicações
13 14.00 estrategias reproductivas hicotea_c.leguízamo
Aula 12 - Exercícios vetores unidimensionais
Matemática - Funções - Livro pdf
Recursividade
Exercicios resolvidos visu alg vetores
Anúncio

Semelhante a Linguagem C - Vetores, Matrizes e Funções (20)

PPTX
8. matrizes
PPTX
RevisãoCompactaFuncoesPonteiro.pptx
PPTX
Aula 8 - Vetores e Matrizes.pptx
PPTX
Algoritmos - Procedimentos
PPTX
Programação - linguagem C - uso de funções
PDF
Conceitos de ponteiros struct e buffers
PDF
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
PDF
Linguagem c wellington telles - aula 06
PPSX
Vetores e Matrizes em C.
PPTX
Aula 8 - Modularização e Funções.pptx
PDF
Conceito de funçao e modularizaçao
PDF
Estrutura de Dados - Procedimentos e Funções
PDF
Ipccea cap iv
PDF
Modulo02
PDF
095 A 134 Material Auxiliar Para Curso AvançAdo I Msp430
PDF
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdf
PPTX
Aula 12 funcoes - Programação 1
PDF
Linguagem c parte 2
PDF
Subalgoritmos Profª Letíca Lopes
PPTX
Linguagem C - Operadores bit a bit
8. matrizes
RevisãoCompactaFuncoesPonteiro.pptx
Aula 8 - Vetores e Matrizes.pptx
Algoritmos - Procedimentos
Programação - linguagem C - uso de funções
Conceitos de ponteiros struct e buffers
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
Linguagem c wellington telles - aula 06
Vetores e Matrizes em C.
Aula 8 - Modularização e Funções.pptx
Conceito de funçao e modularizaçao
Estrutura de Dados - Procedimentos e Funções
Ipccea cap iv
Modulo02
095 A 134 Material Auxiliar Para Curso AvançAdo I Msp430
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdf
Aula 12 funcoes - Programação 1
Linguagem c parte 2
Subalgoritmos Profª Letíca Lopes
Linguagem C - Operadores bit a bit

Mais de Elaine Cecília Gatto (20)

PDF
Exercícios resolvidos de MIPS Portal Embarcados
PDF
Exercicio Resolvido de Busca Binária com Codigo e Imagens
PDF
A influência da Tecnologia em cada faixa etaria
PPTX
Inteligência Artificial Aplicada à Medicina
PPTX
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
PPTX
Apresentação da minha tese de doutorado no EPPC
PDF
entrevista r7.pdf
PPTX
Como a pesquisa científica impacta o mundo real.pptx
PDF
Empoderamento Feminino
PPTX
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
PPTX
Community Detection for Multi-Label Classification - Seminários UFSCar
PPTX
Classificação Multirrótulo: Aprendizado de Correlações
PDF
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
PPTX
Community Detection Method for Multi-Label Classification
PDF
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
PDF
Curtinhas de sábado.pdf
PDF
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
PDF
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
PDF
Pipeline desdobramento escalonamento
PDF
Cheat sheet Mips 32 bits
Exercícios resolvidos de MIPS Portal Embarcados
Exercicio Resolvido de Busca Binária com Codigo e Imagens
A influência da Tecnologia em cada faixa etaria
Inteligência Artificial Aplicada à Medicina
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Apresentação da minha tese de doutorado no EPPC
entrevista r7.pdf
Como a pesquisa científica impacta o mundo real.pptx
Empoderamento Feminino
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Community Detection for Multi-Label Classification - Seminários UFSCar
Classificação Multirrótulo: Aprendizado de Correlações
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
Community Detection Method for Multi-Label Classification
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Curtinhas de sábado.pdf
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
Pipeline desdobramento escalonamento
Cheat sheet Mips 32 bits

Último (20)

PDF
DECISÃO (2).pdf Derrota histórica do Sintero expõe racha interno e fragilidad...
PPTX
introdução a informatica e suas peculiaridades
PPTX
São João Eudes, 1601 – 1680, padre e fondador, Francés.pptx
PPTX
Slides Lição 9, CPAD, Uma Igreja que se Arrisca, 3Tr25.pptx
PDF
ENTREVISTA-PROCESSO-SELETIVO-idc8j5.pdf 1
PPTX
NR 5 Treinamento completo gestão CIPA.pptx
PDF
diário de palestra DDS Online - Apostila.pdf
PPTX
02-simulado-saeb-9o-ano-matematica1.pptx
PPTX
CIPA+-++Mapa+de+Risco-1.pptx levantamento
PPTX
125511 - Aula 1 - América portuguesa antes da conquista patrimônio e preserva...
PDF
Mudanças Climáticas. Texto e atividade
PDF
E-BOOK-Inovacao-em-Ciencia-e-Tecnologia-de-Alimentos.pdf
PDF
Apresentação Conteúdo sepsebdbsbdbb.pptx
PPT
Aula_02_Logica_Externa_dos_Esportes_de_Invasao_2025.ppt
PDF
639039693-CURSO-DE-PORTUGUES-Prof-Deivid-Xavier.pdf
PPTX
Aula 2 (Citologia).pptxlllllllllllllllllllllllll
PPTX
DOUTRINA FORÇA TÁTICA PMRO 2022 - PPT (1).pptx
PPTX
Adaptação Curricular para Alunos com Deficiências - EMEB. ODIR (1).pptx
PPTX
Aulwbrivekwohevjeoeiiegeievjebvejeihegeueh
PDF
historia-e-geografia-do-amapa.pdf slides
DECISÃO (2).pdf Derrota histórica do Sintero expõe racha interno e fragilidad...
introdução a informatica e suas peculiaridades
São João Eudes, 1601 – 1680, padre e fondador, Francés.pptx
Slides Lição 9, CPAD, Uma Igreja que se Arrisca, 3Tr25.pptx
ENTREVISTA-PROCESSO-SELETIVO-idc8j5.pdf 1
NR 5 Treinamento completo gestão CIPA.pptx
diário de palestra DDS Online - Apostila.pdf
02-simulado-saeb-9o-ano-matematica1.pptx
CIPA+-++Mapa+de+Risco-1.pptx levantamento
125511 - Aula 1 - América portuguesa antes da conquista patrimônio e preserva...
Mudanças Climáticas. Texto e atividade
E-BOOK-Inovacao-em-Ciencia-e-Tecnologia-de-Alimentos.pdf
Apresentação Conteúdo sepsebdbsbdbb.pptx
Aula_02_Logica_Externa_dos_Esportes_de_Invasao_2025.ppt
639039693-CURSO-DE-PORTUGUES-Prof-Deivid-Xavier.pdf
Aula 2 (Citologia).pptxlllllllllllllllllllllllll
DOUTRINA FORÇA TÁTICA PMRO 2022 - PPT (1).pptx
Adaptação Curricular para Alunos com Deficiências - EMEB. ODIR (1).pptx
Aulwbrivekwohevjeoeiiegeievjebvejeihegeueh
historia-e-geografia-do-amapa.pdf slides

Linguagem C - Vetores, Matrizes e Funções

  • 1. VETORES MATRIZES FUNÇÕES Profª Ms. Engª Elaine Cecília Gatto Curso de Bacharelado em Engenharia de Computação Universidade do Sagrado CoraçãO – USC Bauru/SP
  • 2. Vetores • Variaveis compostas homogeneas unidimensionais • Os índices começam em zero • A quantidade de elementos que o vetor pode armazenar deve ser um valor inteiro fixo • DECLARAÇÃO • Exemplo1: int vet[10]; • Começa na posição zero e termina na posição 9 (tamanho do vetor – 1); • Exemplo 2: char x[5]; • Começa na posição zero e termina na posição 4 2
  • 3. Vetores • • • • Exemplo 3: #define tam 5; char z[tam]; Começa na posição zero e termina na posição 4 • ATRIBUIÇÃO • Exemplo 1: • vet[0] = 1; //atribui o valor 1 à primeira posição do vetor • X*3+ = ‘b’; //atribui a letra b à quarta posição do vetor 3
  • 4. Vetores • PREENCHENDO • for(i=0; i<10; i++) • scanf( “ %d ” , &vetor*i+ ); • MOSTRANDO OS VALORES • for(i=0; i<10; i++) • printf( “ %d ” , vetor*i] ); 4
  • 5. Matriz • Variaveis homogeneas bidimensionais ou multidimensionais • Pode ter até 12 dimensões de acordo com o padrão ANSI • Para cada dimensão, um índice deve ser usado • DECLARAÇÃO • float x[2][6]; //uma matriz com duas linhas e seis colunas • char mat[4][3]; //uma matriz com quatro linhas e tres colunas • float y[2][4][3]; //uma matriz com duas linhas, quatro colunas e três profundidades 5
  • 6. MATRIZES • ATRIBUIÇÃO • X[1][4] = 5; //atribui o valor 5 ao espaço identificado pelo indice 1 (linha 2) e índice 4 (coluna 5) • Mat*3+*2+ = ‘d’; //atribui o valor d à quarta linha e à terceira coluna • Y[0][3][1] = 12; //atribui o valor 12 à primeira linha, quarta coluna e segunda profundidade. 6
  • 7. Matrizes • PREENCHENDO for(i=0; i<7; i++){ //linha for(j=0; j<3; j++) //coluna scanf( “ %d ”, &mat*i+*j+ ); } Preenche primeiro todas as colunas da linha 0 Depois todas as colunas da linha 1 E assim por diante 7
  • 8. Matrizes • IMPRIMINDO for(i=0; i<7; i++){ for(j=0; j<3; j++) printf( “ %d ”, mat[i][j] ); } 8
  • 9. Matrizes • Exemplo for(i=0; i<3; i++){ printf( “ Elementos da linha %d ”, i); for(j=0; j<4; j++){ printf( “ %d ”, x* i , j + ); } MEMÓRIA TELA } i j 0 Elementos da linha 0 0 0 4 0 1 5 0 2 1 0 3 10 1 Elementos da linha 1 9
  • 10. Matrizes • Exemplo for(j=0; j<4; j++){ printf( “ Elementos da coluna %d ”, j); for(i=0; i<3; i++){ printf( “ %d ”, x* i , j + ); } MEMÓRIA TELA } j i 0 Elementos da coluna 0 0 0 4 0 1 5 0 2 1 1 1 Elementos da coluna 1 0 6 10
  • 11. Sub rotinas • Sub-rotinas ou subprogramas são blocos de instruções que realizam tarefas específicas • Como o problema pode ser subdividido em pequenas tarefas, os programas tendem a ficar menores e mais organizados • Programas são executados linha após linha, mas quando se usa subrotina, um desvio é realizado na execução do programa • Uma subrotina pode ou não receber um parametro • Uma subrotina pode ou não retornar um valor • Uma subrotina pode ter variaveis locais, variaveis que são criadas apenas para uso interno da subrotina 11
  • 12. Sub rotinas • Modularização do programa por meio de funções • Variaveis globais: são aquelas variaveis conhecidas por todo o programa e são declaradas fora das funções • FUNÇÕES SEM PASSAGEM DE PARAMETROS E SEM RETORNO • Não recebe nenhuma informação no momento de sua chamada • Não repassa nenhum valor para quem a chamou 12
  • 13. Sub rotinas #include <stdio.h> int a, b, s; //variáveis globais void soma(){ printf(“Digite dois números”); scanf(“%d %d”, &a, &b); s = a + b; printf(“ a soma é %d”, s); } int main(){ soma(); getchar(); return 0; } 13
  • 14. Sub rotinas • FUNÇÕES COM PASSAGEM DE PARAMETROS E SEM RETORNO • Recebem valores no momento em que são chamadas • Não devolvem nenhum valor para quem as chamou 14
  • 15. Sub rotinas #include <stdio.h> void soma(int a, int b){ int s; //variável local da subrotina s = a + b; printf('a soma é %d', s); } int main(){ int a, b; //variável local do programa principal printf('Digite dois valores'); scanf(' %d %d ', &a, &b); soma(a, b); getchar(); return 0; } 15
  • 16. Sub rotinas • FUNÇÕES SEM PASSAGEM DE PARAMETROS E COM RETORNO • Não recebem nenhum valor no momento em que são chamadas • Devolvem um valor para quem as chamous 16
  • 17. Sub rotinas #include <stdio.h> int soma(){ int a, b, s; //variável local da subrotina printf('Digite dois valores'); scanf(' %d %d ', &a, &b); s = a + b; return s; } int main(){ int s; //variável local do programa principal s = soma(); //chamada da sub rotina printf(' a soma é: %d', s); getchar(); return 0; } 17
  • 18. Sub rotina • FUNÇÕES COM PASSAGEM DE PARAMETROS E COM RETORNO • Recebem valores no momento em que são chamadas • Devolvem um valor para quem as chamou 18
  • 19. Sub rotina #include <stdio.h> int soma(int a, int b){ return a+b; } int main(){ int a, b, s; //variável local do programa principal printf('Digite dois números'); scanf(' %d %d ', &a, &b); s = soma(a, b); //chamada da sub rotina printf(' a soma é: %d', s); getchar(); return 0; } 19
  • 20. Sub rotina • Se você quiser, pode escrever todas as funções antes do MAIN • Se quiser escrevê-las após MAIN, deverá utilizar os protótipos de funções • PASSAGEM DE PARAMETROS POR VALOR • Significa que a função trabalhará com cópias dos valores passados no momento de sua chamada 20
  • 21. Sub rotina #include <stdio.h> int soma_dobro(int a, int b); int main(){ int x, y, res; //variável local do programa principal printf('Digite dois números'); scanf(' %d %d ', &x, &y); res = soma_dobro(x, y); //chamada da sub rotina printf(' a soma do dobro dos números %d e %d = %d', x, y, res); getchar(); return 0; } Quando a função chega ao fim, as int soma_dobro(int a, int b){ variaveis criadas são completamente int soma; destruídas e as alterações realizadas são a = a * 2; perdidas. X continuara valendo 5 e y b = b * 2; continuara valendo 3. soma = a + b; return soma; } 21
  • 22. Sub rotina #include <stdio.h> int soma_dobro(int a, int b); int main(){ int x, y, res; //variável local do programa principal printf('Digite dois números'); scanf(' %d %d ', &x, &y); FUNÇÃO MAIN y); //chamada da sub rotina FUNÇÃO SOMA_DOBRO res = soma_dobro(x, A X 5 printf(' a soma do dobro dos números %d e %d = %d', x, y, res); 5 getchar(); B 3 Y 3 return 0; SOMA 16 RES 16 } int soma_dobro(int a, int b){ int soma; a = a * 2; b = b * 2; soma = a + b; return soma; } 22
  • 23. Sub rotina • PASSAGEM DE PARAMETROS POR REFERENCIA • Significa que os parametros passados para a função correspondem a endereços de memória ocupados por variáveis • Toda vez que for necessário acessar determinado valor, isso será feito por meio de referencia, apontamento ao seu endereço de memória 23
  • 24. Sub rotina #include <stdio.h> int soma_dobro(int *a, int *b); int main(){ int x, y, res; //variável local do programa principal printf('Digite dois números'); scanf(' %d %*c %d %*c', &x, &y); res = soma_dobro(x, y); //chamada da sub rotina printf(' a soma do dobro dos números %d e %d = %d', x, y, res); getchar(); return 0; } Quando a função chega ao fim, as int soma_dobro(int *a, int *b){ variaveis criadas são completamente int soma; *a = 2 * (*a); destruídas, mas as alterações realizadas *b = 2 * (*b); não se perdem. X valerá 10 e Y 6, isto soma = *a + *b; porque as alterações fizeram referencia return soma; a endereços de memória } 24
  • 26. Sub rotinas • Matrizes e vetores só podem ser passadas para funções por referencia void soma_linhas(float m[][5], float v[]){ //um vetor com colchetes vazios ou uma matriz com colchetes da primeira dimensão vazios significa que são variáveis ponteiros que guardam os endereços iniciais das variáveis } int main(){ soma_linhas(mat, vet); //isto indica que esta sendo usado o endereço de memória ocupado pela posição 0 do vetor ou pela posição 0x0 da matriz } 26
  • 27. Sub rotinas • SUBROTINAS EM ARQUIVOS SEPARADOS – BIBLIOTECAS • Uma biblioteca é gerada a partir de um arquivo .H • Esse arquivo .H não contém o programa principal • O programa principal irá utilizar as funções definidas nesse arquivo .H • Chame seu arquivo .H usando a diretiva #INCLUDE “caminhonome_da_biblioteca”, em que caminho, é o local onde está salva sua biblioteca 27
  • 28. Sub rotinas MYBIBLIO.H #include <stdio.h> void sub_rotina1(), printf(“mostrando uma mensagem”); void sub_rotina2(){ } void sub_rotina3(){ } MYPROGRAM.C #include <stdio.h> #include “c:testeMYBIBLIO.H” int main(){ sub_rotina1(); sub_rotina2(); } 28