Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Aula prática 6 Vetores e Matrizes Monitoria de Introdução à Programação
2
Roteiro Vetores Matrizes Uso em funções Dúvidas Exercícios
Bidimensionais N-dimensionais Uso em funções Dúvidas Exercícios
3
Então, o que significa o identificador ‘vetor’ ?
Vetores Um vetor (também chamado de vector ou array) é uma sequência contínua na memória, de elementos de mesmo tipo. O acesso às posições individuais é feito pelo índice do elemento. Em C e em várias outras linguagens, o primeiro elemento é acessado pelo índice 0. int vetor[n]; //declaração de um vetor com ‘n’ elementos O tamanho do vetor é fixo durante o programa, não é possível modificar seu tamanho depois de declarado. Lembrando que não é possível utilizar variáveis na hora da declaração de um vetor. O identificador ‘vetor’ não é uma variável, ela não pode mudar valor, e não “armazena” nenhum dado. Então, o que significa o identificador ‘vetor’ ?
4
Vetores Lembrando que vetores são espaços contínuos na memória, ‘vetor’ é um endereço de memória, mas não um qualquer, e sim o primeiro endereço neste espaço que foi reservado na declaração ‘ int vetor[n] ‘ ; Portanto, para acessar outros elementos deste vetor, você deve incrementar algum valor à este endereço inicial para obter-se o elemento desejado. C oferece o operador “[ ]” para fazer este incremento e o acesso ser realizado facilmente. O valor de incremento é chamado de “Índice”.
5
vetor[2]; //índice == 2, posição == 3
Vetores Portanto, se quisermos acessar o elemento 2 do nosso ‘ int vetor[n] ‘ , usamos a seguinte sintaxe: vetor[2]; //índice == 2, posição == 3 O identificador ‘ vetor[2] ‘ pode ser usado como uma variável, tanto para leitura, quanto para escrita. Ambos os trechos são válidos: vetor[2] = 4; int a; a = vetor[2];
6
Vetores Exemplos de uso do operador “[ ]”
Tentar acessar um elemento em uma posição menor que 0 ou maior que o tamanho do vetor, poderá resultar em erro de execução. Cuidado com lixo de memória: ao declarar um vetor sem uma lista de inicialização, o vetor estará preenchido por lixo de memória. O mesmo vale para posições além da lista de inicialização.
7
Vetores Vetores são constantes! A variável que guarda um vetor é, em si, um endereço de memória constante, indicando onde aquele vetor começa. Tentar mudá-la após a declaração resultará em um erro de compilação. Um vetor só guarda um tipo! Esse tipo é definido na sua declaração, e nunca muda. Tomar cuidado com o acesso aos elementos! C não checa os limites do vetor antes de acessar os elementos, portanto acessar elementos além do tamanho do vetor pode causar erro de execução. Exemplo de um acesso indevido: int vetor[4]; vetor[5] = 20;
8
Vetores Como percorrer um vetor:
Uma forma prática de percorrer um vetor é usando um laço:
9
Matrizes Matrizes são vetores de vetores. Dessa forma, podemos ter mais de uma dimensão de acesso. A declaração de uma matriz bi-dimensional é a seguinte: int matriz[m][n] // matriz com m linhas e n colunas Matrizes mantém a mesma propriedade de vetores, ou seja, continuam sendo espaços contíguos na memória. As linhas da matriz são dispostas sequencialmente. Isso gerará uma consequência na hora de passar vetores de duas ou mais dimensões para uma função.
10
Matrizes Bidimensionais
O acesso à elementos da matriz é feito do mesmo modo que com vetores:
11
Matrizes Bidimensionais
Para percorrer uma matriz: Similar a percorrer um vetor, usando laços aninhados:
12
Matrizes N-Dimensionais
Se podemos ter vetores de vetores, segue que podemos ter vetores de vetores de vetores de vetores...: Para percorrer, a ideia é a mesma de vetores e matrizes bidimensionais, usando laços aninhados.
13
Uso em Funções. Como vetores são endereços na memória, podemos acessar diretamente suas posições dentro de funções, e alterar seus valores: Lembrar que não há como saber o tamanho de um vetor, por isso precisamos passar seu tamanho como argumento também.
14
Uso em Funções. No exemplo anterior, a função soma recebe um inteiro que é o tamanho do vetor, e o próprio vetor (ou o endereço dele). A assinatura da função neste caso deve seguir esta sintaxe: int soma ( int vetor [], int tam ); A chamada da função deve seguir a seguinte sintaxe: soma( vetor, tam ); Se quisermos passar todo o vetor, devemos usar somente o identificador do vetor, mas se quisermos passar uma posição específica do vetor, usamos o operador “[ ]”. Ex: uma função que recebe dois inteiros e soma eles int somaNumeros (int n1, int n2); //assinatura da função somaNumeros (vetor [0], vetor[1]); //chamada da função
15
Uso em Funções – Matrizes bi-dimensionais.
As coisas mudam um pouco na hora de passar matrizes de duas ou mais dimensões. A chamada se mantém, passando somente o endereço da matriz, mas a assinatura será um pouco modificada. Usaremos como exemplo uma função que some todos os elementos de uma matriz quadrada, então temos que sua assinatura é: int somaMatriz (int matriz[][“n”], int ordem); //O “n” é o número de colunas da matriz Todas as dimensões da matriz devem ser definidas na assinatura da função, menos a primeira, e não devem ser usadas variáveis aqui, somente constantes. Por que isso é necessário?
16
Dúvidas?
17
Exercício 1 Faça um programa que receba 8 números inteiros (de 0 a 20) e os armazene em um vetor. Após isso, imprima o número de vezes que o número x aparece neste vetor. Entrada: Saída: 1 – 3 vezes 3 – 2 vezes 4 – 1 vez 5 – 2 vezes
18
Exercício 2 Faça um programa que receba duas matrizes de ordem 3 e que faça a soma ou a subtração das matrizes, dependendo da escolha do usuário.
19
Exercício 3 Escreva um programa em C que recebe 10 números inteiros positivos e vai colocando esses números em um vetor de 10 posições. Após isto, ofereça ao usuário as seguintes opções e exiba a opção pedida: 1 – Maior número do vetor 2 – Maior número do vetor entre o elemento a e o elemento b a e b são índices do vetor 3 – Vetor ordenado de forma crescente 4 – Sair OBS : O programa só encerrará quando o usuário pedir pra sair. MUDAR OS EXERCICIOS!!!!
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.