Aula prática 6 Vetores e Matrizes

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

Matrizes Unidimensionais
Listas Lineares Estrutura que permite representar um conjunto de dados de forma a preservar a relação de ordem linear. Uma lista linear é composta de nós,
Désiré NGuessan Programação II Estruturas de Dados
Ciclos, Vectores e Gráficos Simulação da Queda de Corpos II
Algoritmos e Estrutura de Dados I
Programação para Engenharia I
LPG - I: Alocação Dinâmica de Memória - Ponteiros
AULA – Linguagem C – Vetores, Ponteiros Estruturas
LPG - I: Ponteiros e Vetores/Matrizes UDESC - SBS
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Instrutor: Nilo Menezes
Lógica de Programação Módulo II
Ponteiros.
Técnica de Programação II Vetor e Matriz
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Aula prática 12 Listas Encadeadas
O Portal do Estudante de Computação
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Aula prática 6 Vetores e Matrizes
Aula prática 8 Ponteiros Monitoria de Introdução à Programação
Aula prática 13 Orientação a Objetos – C++ Parte 1
Aula prática 8 Ponteiros Monitoria de Introdução à Programação.
Aula prática 4 Laços Monitoria de Introdução à Programação
Introdução à Programação Estruturas de Repetição
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Prof. Natalia Castro Fernandes Engenharia de Telecomunicações – UFF 2º semestre/2012.
Linguagem de Programação II Parte V
Linguagem de Programação II Parte IX
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Alocação Dinâmica de Memória
Aula prática 6 Vetores e Matrizes
UNIDADE 5 ESTRUTURAS DE DADOS HOMOGÊNEAS
Professor Mário Dantas
Prof. Ricardo Santos PONTEIROS
Vetores Imagine que você tem que receber o nome e a nota de 50 alunos de uma escola, e depois listar o nome de cada um e a média final de cada aluno e.
Vetores e Matrizes Ameliara Freire
Algoritmo e Programação
Algoritmos e Estruturas de Dados I – Ponteiros
Computação Eletrônica
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Linguagem de Programação C#
Aula prática 2 Operadores e Expressões Comandos de Decisão Comentários
Linguagem de Programação JAVA
Aula Prática 4 Monitoria IP/CC (~if669).
Linguagem de Programação JAVA
Aula prática 3 Aprofundando em Funções Parâmetros de uma função Uso do return Execução Variáveis Global, local e estática Monitoria de Introdução à.
Introdução à Programação
Algoritmos e Estruturas de Dados I – Estruturas de Dados
Aula Prática 3 Funções Monitoria Introdução à Programação.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
Fundamentos de linguagens de programação
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Introdução a Programação
Linguagem de Programação II Parte VI Professora: Flávia Balbino da Costa.
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
Aula prática 7 Strings Monitoria de Introdução à Programação.
PROGRAMAÇÃO II – PARTE 6 Profa. Maria Augusta Constante Puget.
Linguaguem de Programação II
Shell Script Parte 2.
Estrutura de Dados Aula 3 - Listas
 O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.
Ponteiros. Programação II Professora: Mai-Ly vanessa horário: ter 9h-11h; sex 11h-13h Aula 1.
Aula Prática 6 Vetores e Matrizes Monitoria
Linguagem de Programação
Arrays Outline 7.1 Introdução 7.2 Arrays 7.3 Declarando e Criando Arrays 7.4 Exemplos usando arrays 7.5 Ordenando arrays 7.6 Procurando em.
Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#
Aula Prática 6 Ponteiros Monitoria  Quando declaramos uma matriz:  tipo meuArray[tam];  O compilador aloca a matriz em uma região de memória.
V ETORES E M ATRIZES Disciplina: Informática Aplicada Professor: Modesto Chaves.
FUNÇÕES Dilvan Moreira (baseado em material de Z. Liang)
Transcrição da apresentação:

Aula prática 6 Vetores e Matrizes Monitoria de Introdução à Programação

Roteiro Vetores Matrizes Uso em funções Dúvidas Exercícios Bidimensionais N-dimensionais Uso em funções Dúvidas Exercícios

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’ ?

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”.

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];

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.

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;

Vetores Como percorrer um vetor: Uma forma prática de percorrer um vetor é usando um laço:

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.

Matrizes Bidimensionais O acesso à elementos da matriz é feito do mesmo modo que com vetores:

Matrizes Bidimensionais Para percorrer uma matriz: Similar a percorrer um vetor, usando laços aninhados:

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.

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.

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

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?

Dúvidas?

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: 1 5 4 3 1 3 5 1 Saída: 1 – 3 vezes 3 – 2 vezes 4 – 1 vez 5 – 2 vezes

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.

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!!!!