SlideShare uma empresa Scribd logo
1 de 31
Linguagens de Programação
Linguagem de programação C
Trabalhando com Arrays
Colecionando dados.
 Definição geral
 Vetor unidimensional
 Declarando um vetor unidimensional
 Referenciando um elemento
 Inicializando um vetor unidimensional (Parte I)
 Exemplo 01
 Exemplo 02
 Inicializando um vetor unidimensional (Parte II)
 Exemplo 03 – Uso de vetores inteiros e de caracteres
 A diretiva #define
 Matriz – Vetor multidimensional
 Exemplo 01
 Inicialização de matrizes
 Referências bibliográficas
05/07/2023
Professor Paulo Nunes 3
Sumário
 Uma matriz é uma coleção de dados do mesmo tipo que é
referenciada por um nome comum;
 Seus elementos são acessados por meio de um índice;
 O endereço mais baixo desse índice corresponde ao primeiro
elemento e o mais alto ao último;
 As matrizes ocupam posições contíguas na memória;
 As “strings” são o tipo de matriz mais comum em C;
 Matrizes podem ser:
 Unidimensionais ou;
 Multidimensionais.
05/07/2023
Professor Paulo Nunes 4
Definição geral
Vetores
Arrays Unidimensionais
 A declaração de um vetor é dada da seguinte forma:
tipo nome[tamanho]
 Onde:
 tipo define o tipo de dado que será armazenado;
 nome é o nome da variável que armazenará os dados;
 [tamanho] entre colchetes vem o tamanho do vetor ou número de
elementos que o mesmo poderá conter.
 Como qualquer variável, as matrizes devem ser declaradas antes da
sua utilização;
 Em C, o índice de uma matriz inicia-se em 0 (zero) . Então, se
declararmos uma matriz de 10 elementos, teremos um índice de 0 a
9.
05/07/2023
Professor Paulo Nunes 6
Unidimensional ou Vetor
 A declaração de um vetor é feita da seguinte forma:
05/07/2023
Professor Paulo Nunes 7
Declarando um vetor unidimensional
Tipo de dado
“inteiro”.
“notas” é o nome
da variável.
5 é o tamanho do
vetor.
 Na memória teremos:
05/07/2023
Professor Paulo Nunes 8
Declarando um vetor
notas[0]
notas[1]
notas[2]
notas[3]
notas[4]
5 espaços alocados
na memória,
referenciados pelos
índices de 0 a 4.
 Os elementos são referenciados pelo seu número de índice,
que indica a sua posição dentro do vetor.
 No exemplo a seguir, utilizamos um laço “for” para preencher
os elementos do vetor:
05/07/2023
Professor Paulo Nunes 9
Referenciando um elemento
Laço para
preenchimento
do vetor.
O índice vai variar de 0 a 4, permitindo
assim que as notas sejam inseridas no
vetor em posições diferentes.
 Na memória teremos:
05/07/2023
Professor Paulo Nunes 10
Referenciando um elemento
5.7
6.7
9.6
7.3
5.5
notas[0]
notas[1]
notas[2]
notas[3]
notas[4]
As notas são
inseridas cada uma
em sua posição.
 Como uma variável comum, os vetores podem ser inicializados já durante a
declaração;
 Exemplo:
int contador[5] = {0, 0, 0, 0,0};
Int inteiros[5] = {0, 1, 2, 3, 4};
 Vetores do tipo caractere são inicializados de maneira similar:
char vogais[5] = {‘a’, ‘e’, ‘i’, ‘o’, ‘u’};
 Um vetor não precisa ser inicializado por completo:
float dados[500] = {20.5, 10, 111.7};
 Os três primeiros elementos foram declarados, o restante será preenchido com
zeros.
 Uma posição de um vetor pode ser inicializada especificamente:
float dados[500] = { [2] = 500.5, [1] = 300.0, [0] = 100.0 };
 A inicialização também pode ser através de uma expressão:
int x = 123;
int a[10] = {[9] = x + 1, [2] = 2, [1] = 0, [0] = 10};
05/07/2023
Professor Paulo Nunes 11
Inicializando um vetor
unidimensional
Exemplo 01 – Inicializando um vetor
05/07/2023
Professor Paulo Nunes 12
Vetor com 10
posições.
As 5 primeiras posições são
inicializadas na declaração.
Laço “for” para inicialização dos
outros elementos do vetor.
Saída do programa.
Exemplo 02 – Média de notas
05/07/2023
Professor Paulo Nunes 13
Entrada de
notas no vetor,
posição “i”.
Variável “soma”
recebe o somatório
das notas.
Exibe o resultado
da média das
notas.
 A linguagem C permite que um vetor seja declarado sem que
determinemos de imediato seu tamanho. Veja o exemplo:
05/07/2023
Professor Paulo Nunes 14
Inicializando um vetor
unidimensional
Declaração do vetor.
Seu tamanho será determinado
pelo maior índice inicializado.
O laço vai até o tamanho do
índice do vetor, que é 6.
Saída do programa.
 Outro exemplo de inicialização de vetores:
float dados[] = { [0] = 1.0, [49] = 100.0, [99] = 200.0 };
 No exemplo acima o tamanho do vetor é 100, pois 99 é o
maior índice declarado no vetor.
05/07/2023
Professor Paulo Nunes 15
Inicializando um vetor
unidimensional
 A tarefa é a de desenvolver um programa que converte um número
inteiro positivo de sua representação base 10 na sua representação
equivalente em outra base.
 Como entradas para o programa, você especifica o número a ser
convertido e também a base para o qual deseja que o número seja
convertido.
 O primeiro passo no desenvolvimento de tal programa é conceber
um algoritmo para converter um número de base 10 para outra
base.
 Um algoritmo para gerar os dígitos do número convertido pode ser
informalmente indicado como se segue:
 Um dígito do número convertido é obtido tomando o modulo do
número pelo número da base;
 O número é então dividido pela base, com qualquer resto fracionário
descartado, e o processo é repetido até que o número chegar a zero.
05/07/2023
Professor Paulo Nunes 16
Exemplo 03 – uso de vetores inteiros
e de caracteres
Número Número % 2 Número / 2
10 0 5
5 1 2
2 0 1
1 1 0
05/07/2023
Professor Paulo Nunes 17
Exemplo 03 – uso de vetores inteiros
e de caracteres
 Para escrever um programa que executa o processo de conversão anterior,
você deve levar algumas coisas em consideração:
 Em primeiro lugar, o fato do algoritmo gerar os dígitos do número convertido em
ordem inversa. Não podemos esperar que o usuário leia o resultado da direita para a
esquerda, ou a partir de baixo da página para cima. Portanto, você deve corrigir esse
problema.
 Ao invés de simplesmente exibir cada dígito como ele é gerado, você pode fazer o
programa armazenar cada dígito dentro de uma matriz. Então, quando você terminar
de converter o número, você pode exibir o conteúdo do array na ordem correta.
 Em segundo lugar, você deve perceber que o programa deve ser especificado para
lidar com a conversão de números em bases até 16. Isto significa que quaisquer
dígitos do número convertido que estão entre 10 e 15 deve ser exibido usando as
letras correspondentes, de A a F. É ai que nossa matriz de caracteres entra em cena.
 Examine o a seguir para ver como estas duas questões são tratadas. Este
programa também introduz o qualificador de tipo const, que é usado para as
variáveis cujo valor não mudam durante a execução do programa.
05/07/2023
Professor Paulo Nunes 18
Exemplo 03 – uso de vetores inteiros
e de caracteres
Exemplo 03 – uso de vetores inteiros
e de caracteres
05/07/2023
Professor Paulo Nunes 19
Define estes valores como
“constantes” dentro do programa.
Vetor para receber o número
convertido.
Exemplo 03 – uso de vetores inteiros
e de caracteres
05/07/2023
Professor Paulo Nunes 20
Rotina para converter
o número para a base
indicada.
Rotina para exibir o
número na ordem
correta.
 Observe o seguinte programa:
05/07/2023
Professor Paulo Nunes 21
Diretiva #define
 Na linha 6 do programa anterior, temos a seguinte definição:
#define LIM 6. Isso faz com que o programa substitua a
constante LIM por 6 onde a mesma for encontrada.
 Algumas diferenças entre o uso de #define e const:
 #define é um pré-processador , por isso deve ser definido no
cabeçalho do programa;
 Uma constante definida por #define, não existe fisicamente na
memória;
 const é uma palavra reservada em C;
05/07/2023
Professor Paulo Nunes 22
Diretiva #define
05/07/2023
Professor Paulo Nunes 23
Exemplo #define
Matrizes
Arrays Multidimensionais
 É uma matriz de matrizes, pois os elementos de uma matriz
multidimensional são matrizes de uma dimensão;
 A declaração pode ser feita da seguinte forma:
tipo nome[indice_1][indice_2];
 A matriz bidimensional, duas dimensões, é a mais comum;
 Onde:
 tipo é o tipo de dado armazenado na matriz;
 nome é o nome identificador da matriz;
 [indice_1][indice_2]...[indice_n] são os índices da matriz. O
número de elementos é conseguido multiplicando-se os índices
da matriz.
05/07/2023
Professor Paulo Nunes 25
Matriz Multidimensional
Exemplo 01
05/07/2023
Professor Paulo Nunes 26
Matriz bidimensional do tipo
“inteiro” de nome “num”
com 12 elementos (3x4).
A matriz possui 03 linhas e
04 colunas ([3][4])
Laço para variar a posição
das linhas da matriz, “t”.
Laço para variar a posição
das colunas da matriz, “i”.
elemento [t][i] da matriz
Expressão para preencher a
posição [t][i] com seu elemento.
Imprime os elementos da
matriz.
Saída em tela.
 Matrizes bidimensionais podem ser inicializadas de forma análoga
aos seus homólogos unidimensionais;
 Elementos quando listados para a inicialização, os valores são
listados por linha.
 Pares de chaves são utilizados para separar a lista de inicializadores
para uma linha, linha por linha;
 Assim, podemos definir os elementos da seguinte forma:
05/07/2023
Professor Paulo Nunes 27
Inicialização de matrizes
multidimensionais
 Preste especial atenção à sintaxe da declaração anterior;
 Note-se que vírgulas são necessárias depois de cada chave
que fecha uma linha, exceto no caso da linha final;
 A utilização dos pares de chaves é realmente opcional. Assim,
a declaração anterior também poderia ter sido escrita como
segue:
05/07/2023
Professor Paulo Nunes 28
Inicialização de matrizes
multidimensionais
 Tal como acontece com matrizes unidimensionais, não é necessário que
toda a matriz seja inicializada.
 Uma declaração como:
 inicializa apenas os primeiros três elementos de cada linha da matriz com
os valores indicados. Os demais valores são definidos como 0.
 Note-se que, neste caso, os pares de chaves interiores são necessários para
forçar a inicialização correta. Sem elas, as duas primeiras linhas e os
primeiros dois elementos da linha 3 teriam sido inicializados em vez disso.
05/07/2023
Professor Paulo Nunes 29
Inicialização de matrizes
multidimensionais
 Mizrahi, Victorine Viviane. Treinamento em linguagem C –
Módulo 1.São Paulo: McGraw-Hill, 1990.
 Schildt, Herbert. C, Completo e Total – 3ª Ed. Revista e
Atualizada. São Paulo: Pearson Education do Brasil, 1997.
 Stephen G. Kochan. Programming in C – A complete
introduction to the C programming language. Third Edition.
Indianapolis: Sams Publishing, 2005.
05/07/2023
Professor Paulo Nunes 30
Referências
05/07/2023
Professor Paulo Nunes 31
O professor

Mais conteúdo relacionado

Mais procurados

Criação de tabelas com HTML
Criação de tabelas com HTMLCriação de tabelas com HTML
Criação de tabelas com HTMLLeonardo Soares
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoRademaker Siena
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosMauro Pereira
 
Funções do excel ( editar)
Funções do excel ( editar)Funções do excel ( editar)
Funções do excel ( editar)Sthefanie Vieira
 
Aprenda a Programar com C#
Aprenda a Programar com C#Aprenda a Programar com C#
Aprenda a Programar com C#Antonio Trigo
 
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I  Aula 02 - Introdução aos Bancos de DadosBanco de Dados I  Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I Aula 02 - Introdução aos Bancos de DadosLeinylson Fontinele
 
Mini curso de banco de dados - parte 1
Mini curso de banco de dados - parte 1Mini curso de banco de dados - parte 1
Mini curso de banco de dados - parte 1Rafael Sanches
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 
C++ introducao
C++ introducaoC++ introducao
C++ introducaoSedu
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenaçãoJonas Mendonça
 
HTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdfHTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdfCesar Braz
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Gercélia Ramos
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos JavaMarcio Marinho
 

Mais procurados (20)

Criação de tabelas com HTML
Criação de tabelas com HTMLCriação de tabelas com HTML
Criação de tabelas com HTML
 
A Linguagem sql
A Linguagem sqlA Linguagem sql
A Linguagem sql
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
 
Aula 6 - Cardinalidade
Aula 6 - CardinalidadeAula 6 - Cardinalidade
Aula 6 - Cardinalidade
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registros
 
Html
HtmlHtml
Html
 
Funções do excel ( editar)
Funções do excel ( editar)Funções do excel ( editar)
Funções do excel ( editar)
 
Aprenda a Programar com C#
Aprenda a Programar com C#Aprenda a Programar com C#
Aprenda a Programar com C#
 
Modelagem de Dados
Modelagem de DadosModelagem de Dados
Modelagem de Dados
 
Introdução ao MySQL
Introdução ao MySQLIntrodução ao MySQL
Introdução ao MySQL
 
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I  Aula 02 - Introdução aos Bancos de DadosBanco de Dados I  Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
 
Mini curso de banco de dados - parte 1
Mini curso de banco de dados - parte 1Mini curso de banco de dados - parte 1
Mini curso de banco de dados - parte 1
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
C++ introducao
C++ introducaoC++ introducao
C++ introducao
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 
HTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdfHTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdf
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Introdução a Bancos de Dados
Introdução a Bancos de DadosIntrodução a Bancos de Dados
Introdução a Bancos de Dados
 
Introdução a React Native
Introdução a React NativeIntrodução a React Native
Introdução a React Native
 

Semelhante a C Arrays (20)

Aula 5 aed - vetores
Aula 5   aed - vetoresAula 5   aed - vetores
Aula 5 aed - vetores
 
Ap vetores
Ap vetoresAp vetores
Ap vetores
 
Algoritmos - Vetores
Algoritmos - VetoresAlgoritmos - Vetores
Algoritmos - Vetores
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacao
 
Lógica de Programação - Unimep/Pronatec - Aula10
Lógica de Programação - Unimep/Pronatec - Aula10Lógica de Programação - Unimep/Pronatec - Aula10
Lógica de Programação - Unimep/Pronatec - Aula10
 
Ipccea cap iv
Ipccea cap ivIpccea cap iv
Ipccea cap iv
 
Alg aula 06 - vetores tp1
Alg   aula 06 - vetores tp1Alg   aula 06 - vetores tp1
Alg aula 06 - vetores tp1
 
Algop - aula 08
Algop - aula 08Algop - aula 08
Algop - aula 08
 
Modulo02
Modulo02Modulo02
Modulo02
 
Matrizes e Vetores para programação
Matrizes e Vetores para programaçãoMatrizes e Vetores para programação
Matrizes e Vetores para programação
 
Aula Vetores - 08-05-2023.pdf
Aula Vetores - 08-05-2023.pdfAula Vetores - 08-05-2023.pdf
Aula Vetores - 08-05-2023.pdf
 
Cap05
Cap05Cap05
Cap05
 
Cap05
Cap05Cap05
Cap05
 
Cap05
Cap05Cap05
Cap05
 
8. matrizes
8. matrizes8. matrizes
8. matrizes
 
Apostila de Alocação Dinâmica em C
Apostila de Alocação Dinâmica em CApostila de Alocação Dinâmica em C
Apostila de Alocação Dinâmica em C
 
Algoritmos e Programação: Vetores
Algoritmos e Programação: VetoresAlgoritmos e Programação: Vetores
Algoritmos e Programação: Vetores
 
Aula 8 - Vetores e Matrizes.pptx
Aula 8 - Vetores e Matrizes.pptxAula 8 - Vetores e Matrizes.pptx
Aula 8 - Vetores e Matrizes.pptx
 
Atividade dirigida unidade VIII
Atividade dirigida unidade VIIIAtividade dirigida unidade VIII
Atividade dirigida unidade VIII
 
3 vetor.matriz
3 vetor.matriz3 vetor.matriz
3 vetor.matriz
 

Mais de SchoolByte

Estruturas de Dados: Listas, fundamentos.
Estruturas de Dados: Listas, fundamentos.Estruturas de Dados: Listas, fundamentos.
Estruturas de Dados: Listas, fundamentos.SchoolByte
 
Utilizando funções em C: modularizando os programas.
Utilizando funções em C: modularizando os programas.Utilizando funções em C: modularizando os programas.
Utilizando funções em C: modularizando os programas.SchoolByte
 
Laços de repetição em C.
Laços de repetição em C.Laços de repetição em C.
Laços de repetição em C.SchoolByte
 
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 CSchoolByte
 
Estruturas de repetição e controle de fluxo: conceitos
Estruturas de repetição e controle de fluxo: conceitosEstruturas de repetição e controle de fluxo: conceitos
Estruturas de repetição e controle de fluxo: conceitosSchoolByte
 
Utilizando estruturas em linguagem C: structs.
Utilizando estruturas em linguagem C: structs.Utilizando estruturas em linguagem C: structs.
Utilizando estruturas em linguagem C: structs.SchoolByte
 
Variáveis: conceitos e funcionamento.
Variáveis: conceitos e funcionamento.Variáveis: conceitos e funcionamento.
Variáveis: conceitos e funcionamento.SchoolByte
 
Comandos de Controle de Fluxo: IF, SWITCH e Ternário em C
Comandos de Controle de Fluxo: IF, SWITCH e Ternário em CComandos de Controle de Fluxo: IF, SWITCH e Ternário em C
Comandos de Controle de Fluxo: IF, SWITCH e Ternário em CSchoolByte
 
Utilizando ponteiros em C.
Utilizando ponteiros em C.Utilizando ponteiros em C.
Utilizando ponteiros em C.SchoolByte
 
Tutorial Visual do Open-Sankoré
Tutorial Visual do Open-SankoréTutorial Visual do Open-Sankoré
Tutorial Visual do Open-SankoréSchoolByte
 
Tutorial Visual do Dropbox
Tutorial Visual do DropboxTutorial Visual do Dropbox
Tutorial Visual do DropboxSchoolByte
 

Mais de SchoolByte (11)

Estruturas de Dados: Listas, fundamentos.
Estruturas de Dados: Listas, fundamentos.Estruturas de Dados: Listas, fundamentos.
Estruturas de Dados: Listas, fundamentos.
 
Utilizando funções em C: modularizando os programas.
Utilizando funções em C: modularizando os programas.Utilizando funções em C: modularizando os programas.
Utilizando funções em C: modularizando os programas.
 
Laços de repetição em C.
Laços de repetição em C.Laços de repetição em C.
Laços de repetição em C.
 
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
 
Estruturas de repetição e controle de fluxo: conceitos
Estruturas de repetição e controle de fluxo: conceitosEstruturas de repetição e controle de fluxo: conceitos
Estruturas de repetição e controle de fluxo: conceitos
 
Utilizando estruturas em linguagem C: structs.
Utilizando estruturas em linguagem C: structs.Utilizando estruturas em linguagem C: structs.
Utilizando estruturas em linguagem C: structs.
 
Variáveis: conceitos e funcionamento.
Variáveis: conceitos e funcionamento.Variáveis: conceitos e funcionamento.
Variáveis: conceitos e funcionamento.
 
Comandos de Controle de Fluxo: IF, SWITCH e Ternário em C
Comandos de Controle de Fluxo: IF, SWITCH e Ternário em CComandos de Controle de Fluxo: IF, SWITCH e Ternário em C
Comandos de Controle de Fluxo: IF, SWITCH e Ternário em C
 
Utilizando ponteiros em C.
Utilizando ponteiros em C.Utilizando ponteiros em C.
Utilizando ponteiros em C.
 
Tutorial Visual do Open-Sankoré
Tutorial Visual do Open-SankoréTutorial Visual do Open-Sankoré
Tutorial Visual do Open-Sankoré
 
Tutorial Visual do Dropbox
Tutorial Visual do DropboxTutorial Visual do Dropbox
Tutorial Visual do Dropbox
 

Último

Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdflucassilva721057
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
Revista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfRevista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfMárcio Azevedo
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamentalAntônia marta Silvestre da Silva
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptMaiteFerreira4
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - DissertaçãoMaiteFerreira4
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?AnabelaGuerreiro7
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFtimaMoreira35
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 

Último (20)

Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdf
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
Revista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfRevista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdf
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.ppt
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - Dissertação
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdf
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 

C Arrays

  • 3.  Definição geral  Vetor unidimensional  Declarando um vetor unidimensional  Referenciando um elemento  Inicializando um vetor unidimensional (Parte I)  Exemplo 01  Exemplo 02  Inicializando um vetor unidimensional (Parte II)  Exemplo 03 – Uso de vetores inteiros e de caracteres  A diretiva #define  Matriz – Vetor multidimensional  Exemplo 01  Inicialização de matrizes  Referências bibliográficas 05/07/2023 Professor Paulo Nunes 3 Sumário
  • 4.  Uma matriz é uma coleção de dados do mesmo tipo que é referenciada por um nome comum;  Seus elementos são acessados por meio de um índice;  O endereço mais baixo desse índice corresponde ao primeiro elemento e o mais alto ao último;  As matrizes ocupam posições contíguas na memória;  As “strings” são o tipo de matriz mais comum em C;  Matrizes podem ser:  Unidimensionais ou;  Multidimensionais. 05/07/2023 Professor Paulo Nunes 4 Definição geral
  • 6.  A declaração de um vetor é dada da seguinte forma: tipo nome[tamanho]  Onde:  tipo define o tipo de dado que será armazenado;  nome é o nome da variável que armazenará os dados;  [tamanho] entre colchetes vem o tamanho do vetor ou número de elementos que o mesmo poderá conter.  Como qualquer variável, as matrizes devem ser declaradas antes da sua utilização;  Em C, o índice de uma matriz inicia-se em 0 (zero) . Então, se declararmos uma matriz de 10 elementos, teremos um índice de 0 a 9. 05/07/2023 Professor Paulo Nunes 6 Unidimensional ou Vetor
  • 7.  A declaração de um vetor é feita da seguinte forma: 05/07/2023 Professor Paulo Nunes 7 Declarando um vetor unidimensional Tipo de dado “inteiro”. “notas” é o nome da variável. 5 é o tamanho do vetor.
  • 8.  Na memória teremos: 05/07/2023 Professor Paulo Nunes 8 Declarando um vetor notas[0] notas[1] notas[2] notas[3] notas[4] 5 espaços alocados na memória, referenciados pelos índices de 0 a 4.
  • 9.  Os elementos são referenciados pelo seu número de índice, que indica a sua posição dentro do vetor.  No exemplo a seguir, utilizamos um laço “for” para preencher os elementos do vetor: 05/07/2023 Professor Paulo Nunes 9 Referenciando um elemento Laço para preenchimento do vetor. O índice vai variar de 0 a 4, permitindo assim que as notas sejam inseridas no vetor em posições diferentes.
  • 10.  Na memória teremos: 05/07/2023 Professor Paulo Nunes 10 Referenciando um elemento 5.7 6.7 9.6 7.3 5.5 notas[0] notas[1] notas[2] notas[3] notas[4] As notas são inseridas cada uma em sua posição.
  • 11.  Como uma variável comum, os vetores podem ser inicializados já durante a declaração;  Exemplo: int contador[5] = {0, 0, 0, 0,0}; Int inteiros[5] = {0, 1, 2, 3, 4};  Vetores do tipo caractere são inicializados de maneira similar: char vogais[5] = {‘a’, ‘e’, ‘i’, ‘o’, ‘u’};  Um vetor não precisa ser inicializado por completo: float dados[500] = {20.5, 10, 111.7};  Os três primeiros elementos foram declarados, o restante será preenchido com zeros.  Uma posição de um vetor pode ser inicializada especificamente: float dados[500] = { [2] = 500.5, [1] = 300.0, [0] = 100.0 };  A inicialização também pode ser através de uma expressão: int x = 123; int a[10] = {[9] = x + 1, [2] = 2, [1] = 0, [0] = 10}; 05/07/2023 Professor Paulo Nunes 11 Inicializando um vetor unidimensional
  • 12. Exemplo 01 – Inicializando um vetor 05/07/2023 Professor Paulo Nunes 12 Vetor com 10 posições. As 5 primeiras posições são inicializadas na declaração. Laço “for” para inicialização dos outros elementos do vetor. Saída do programa.
  • 13. Exemplo 02 – Média de notas 05/07/2023 Professor Paulo Nunes 13 Entrada de notas no vetor, posição “i”. Variável “soma” recebe o somatório das notas. Exibe o resultado da média das notas.
  • 14.  A linguagem C permite que um vetor seja declarado sem que determinemos de imediato seu tamanho. Veja o exemplo: 05/07/2023 Professor Paulo Nunes 14 Inicializando um vetor unidimensional Declaração do vetor. Seu tamanho será determinado pelo maior índice inicializado. O laço vai até o tamanho do índice do vetor, que é 6. Saída do programa.
  • 15.  Outro exemplo de inicialização de vetores: float dados[] = { [0] = 1.0, [49] = 100.0, [99] = 200.0 };  No exemplo acima o tamanho do vetor é 100, pois 99 é o maior índice declarado no vetor. 05/07/2023 Professor Paulo Nunes 15 Inicializando um vetor unidimensional
  • 16.  A tarefa é a de desenvolver um programa que converte um número inteiro positivo de sua representação base 10 na sua representação equivalente em outra base.  Como entradas para o programa, você especifica o número a ser convertido e também a base para o qual deseja que o número seja convertido.  O primeiro passo no desenvolvimento de tal programa é conceber um algoritmo para converter um número de base 10 para outra base.  Um algoritmo para gerar os dígitos do número convertido pode ser informalmente indicado como se segue:  Um dígito do número convertido é obtido tomando o modulo do número pelo número da base;  O número é então dividido pela base, com qualquer resto fracionário descartado, e o processo é repetido até que o número chegar a zero. 05/07/2023 Professor Paulo Nunes 16 Exemplo 03 – uso de vetores inteiros e de caracteres
  • 17. Número Número % 2 Número / 2 10 0 5 5 1 2 2 0 1 1 1 0 05/07/2023 Professor Paulo Nunes 17 Exemplo 03 – uso de vetores inteiros e de caracteres
  • 18.  Para escrever um programa que executa o processo de conversão anterior, você deve levar algumas coisas em consideração:  Em primeiro lugar, o fato do algoritmo gerar os dígitos do número convertido em ordem inversa. Não podemos esperar que o usuário leia o resultado da direita para a esquerda, ou a partir de baixo da página para cima. Portanto, você deve corrigir esse problema.  Ao invés de simplesmente exibir cada dígito como ele é gerado, você pode fazer o programa armazenar cada dígito dentro de uma matriz. Então, quando você terminar de converter o número, você pode exibir o conteúdo do array na ordem correta.  Em segundo lugar, você deve perceber que o programa deve ser especificado para lidar com a conversão de números em bases até 16. Isto significa que quaisquer dígitos do número convertido que estão entre 10 e 15 deve ser exibido usando as letras correspondentes, de A a F. É ai que nossa matriz de caracteres entra em cena.  Examine o a seguir para ver como estas duas questões são tratadas. Este programa também introduz o qualificador de tipo const, que é usado para as variáveis cujo valor não mudam durante a execução do programa. 05/07/2023 Professor Paulo Nunes 18 Exemplo 03 – uso de vetores inteiros e de caracteres
  • 19. Exemplo 03 – uso de vetores inteiros e de caracteres 05/07/2023 Professor Paulo Nunes 19 Define estes valores como “constantes” dentro do programa. Vetor para receber o número convertido.
  • 20. Exemplo 03 – uso de vetores inteiros e de caracteres 05/07/2023 Professor Paulo Nunes 20 Rotina para converter o número para a base indicada. Rotina para exibir o número na ordem correta.
  • 21.  Observe o seguinte programa: 05/07/2023 Professor Paulo Nunes 21 Diretiva #define
  • 22.  Na linha 6 do programa anterior, temos a seguinte definição: #define LIM 6. Isso faz com que o programa substitua a constante LIM por 6 onde a mesma for encontrada.  Algumas diferenças entre o uso de #define e const:  #define é um pré-processador , por isso deve ser definido no cabeçalho do programa;  Uma constante definida por #define, não existe fisicamente na memória;  const é uma palavra reservada em C; 05/07/2023 Professor Paulo Nunes 22 Diretiva #define
  • 23. 05/07/2023 Professor Paulo Nunes 23 Exemplo #define
  • 25.  É uma matriz de matrizes, pois os elementos de uma matriz multidimensional são matrizes de uma dimensão;  A declaração pode ser feita da seguinte forma: tipo nome[indice_1][indice_2];  A matriz bidimensional, duas dimensões, é a mais comum;  Onde:  tipo é o tipo de dado armazenado na matriz;  nome é o nome identificador da matriz;  [indice_1][indice_2]...[indice_n] são os índices da matriz. O número de elementos é conseguido multiplicando-se os índices da matriz. 05/07/2023 Professor Paulo Nunes 25 Matriz Multidimensional
  • 26. Exemplo 01 05/07/2023 Professor Paulo Nunes 26 Matriz bidimensional do tipo “inteiro” de nome “num” com 12 elementos (3x4). A matriz possui 03 linhas e 04 colunas ([3][4]) Laço para variar a posição das linhas da matriz, “t”. Laço para variar a posição das colunas da matriz, “i”. elemento [t][i] da matriz Expressão para preencher a posição [t][i] com seu elemento. Imprime os elementos da matriz. Saída em tela.
  • 27.  Matrizes bidimensionais podem ser inicializadas de forma análoga aos seus homólogos unidimensionais;  Elementos quando listados para a inicialização, os valores são listados por linha.  Pares de chaves são utilizados para separar a lista de inicializadores para uma linha, linha por linha;  Assim, podemos definir os elementos da seguinte forma: 05/07/2023 Professor Paulo Nunes 27 Inicialização de matrizes multidimensionais
  • 28.  Preste especial atenção à sintaxe da declaração anterior;  Note-se que vírgulas são necessárias depois de cada chave que fecha uma linha, exceto no caso da linha final;  A utilização dos pares de chaves é realmente opcional. Assim, a declaração anterior também poderia ter sido escrita como segue: 05/07/2023 Professor Paulo Nunes 28 Inicialização de matrizes multidimensionais
  • 29.  Tal como acontece com matrizes unidimensionais, não é necessário que toda a matriz seja inicializada.  Uma declaração como:  inicializa apenas os primeiros três elementos de cada linha da matriz com os valores indicados. Os demais valores são definidos como 0.  Note-se que, neste caso, os pares de chaves interiores são necessários para forçar a inicialização correta. Sem elas, as duas primeiras linhas e os primeiros dois elementos da linha 3 teriam sido inicializados em vez disso. 05/07/2023 Professor Paulo Nunes 29 Inicialização de matrizes multidimensionais
  • 30.  Mizrahi, Victorine Viviane. Treinamento em linguagem C – Módulo 1.São Paulo: McGraw-Hill, 1990.  Schildt, Herbert. C, Completo e Total – 3ª Ed. Revista e Atualizada. São Paulo: Pearson Education do Brasil, 1997.  Stephen G. Kochan. Programming in C – A complete introduction to the C programming language. Third Edition. Indianapolis: Sams Publishing, 2005. 05/07/2023 Professor Paulo Nunes 30 Referências