Introdução à Programação
|
|
|
- Marco Osvaldo Marques Alves
- 7 Há anos
- Visualizações:
Transcrição
1 Introdução à Programação Aula 10 Matrizes Edirlei Soares de Lima
2 Conjuntos Bidimensionais Uma matriz representa um conjunto bidimensional de valores. Exemplo de matriz de inteiros: Similar a variáveis simples e vetores, matrizes devem ser declaradas para que o espaço de memória seja reservado.
3 Matrizes Como a matriz representa um conjunto bidimensional, devemos especificar as duas dimensões na declaração: o número de linhas e o número de colunas: tipo nome_matriz[numero_linhas][numero_colunas]; Exemplo: int minha_matriz[3][3];?????????
4 Matrizes É possível acessar os valores da matriz através de seu índice bidimensional. int minha_matriz[3][3]; ? 5?? 1????? 8? minha_matriz[0][0] = 5; minha_matriz[2][1] = 8; minha_matriz[0][2] = 1;
5 Matrizes Exemplos de Declaração: int a[10][10]; float matriz1[20][20]; int mapa[100][100]; Declaração e Inicialização: int teste[3][3] = 2,5,1,3,7,2,9,1,5;
6 Matrizes - Exemplo 1 Notas obtidas por alunos de uma disciplina: Entrada: arquivo com as três notas obtidas por cada aluno. O objetivo é ler as notas do arquivo e armazená-las na memória para que, posteriormente, seja possível processarmos as notas: calcular a média dos alunos, a média da disciplina, verificar quantos alunos foram aprovados, etc.
7 Matrizes - Exemplo 1 Usando vetores: precisamos declarar três vetores, um para cada nota: float p1[50]; float p2[50]; float p3[50]; Outra alternativa é usar apenas uma estrutura para armazenar todas as notas de todos os alunos. Usando matrizes, teríamos: float notas[50][3]; Dessa forma as notas do i-ésimo aluno são representadas por notas[i][0], notas[i][1] e notas[i][2]
8 #include <stdio.h> int main (void) int i = 0, j, nalunos; float media = 0.0; float notas[50][3]; FILE *f = fopen("notas.txt","r"); if(f == NULL) printf("erro na leitura do arquivo.\n"); return 0; /* lê valores do arquivo */ while((fscanf(f,"%f %f %f", ¬as[i][0], ¬as[i][1], ¬as[i][2])==3) && (i<50)) i++; nalunos = i; fclose(f); [Continua...]
9 /* calcula média */ for (i=0; i<nalunos; i++) for (j=0; j<3; j++) media = media + notas[i][j]; media = media / (3*nalunos); /* exibe média calculada */ printf("media da disciplina: %.2f\n", media); return 0;
10 Passagem de Matrizes para Funções É possível que funções auxiliares recebam como parâmetro uma matriz. Passar uma matriz para uma função é análogo a passar um vetor -> Passa-se na verdade uma referência para a matriz. Uma diferença importante com relação a vetores é que o parâmetro que representa a matriz deve ter especificado o número de colunas da matriz. Isso é necessário pois o compilador precisa conhecer o número de colunas da matriz para fazer a conta de endereçamento.
11 Matrizes Exemplo 1 (com funções) Função auxiliar que ler valores de um arquivo e armazena em uma matriz: int le_valores (float mat[][3]) int i = 0; FILE *f = fopen("notas.txt", "r"); while (fscanf(f, "%f %f %f", &mat[i][0],&mat[i][1], &mat[i][2]) == 3 && i < 50) i++; fclose(f); return i;
12 Matrizes Exemplo 1 (com funções) Função auxiliar para calcular a média: float media(int n, float mat[][3]) int i, j; float soma = 0.0; for (i=0; i<n; i++) for (j=0; j<qtd_col; j++) soma = soma + mat[i][j]; return soma /(QTD_COL*n);
13 Matrizes Exemplo 1 (com funções) Função principal: int main (void) int n; float m; float notas[50][3]; n = le_valores(notas); m = media(n,notas); printf("media da disciplina: %f", m); return 0;
14 Funções Algébricas Em muitas aplicações computacionais, fazemos uso de matrizes quadradas, isto é, matrizes em que o número de linhas é igual ao número de colunas. Podemos assumir que a dimensão das matrizes é N x N, onde N é uma constante simbólica. Por exemplo, se quisermos que nosso código seja usado para matrizes 4 x 4, fazemos: #define N 4
15 Funções Algébricas Exemplo 1 Verificar se uma matriz é simétrica: retorna 1 se verdadeiro e 0 se falso: Uma matriz é simétrica se ela for igual a sua transposta; Uma matriz transposta é o resultado da troca de linhas por colunas da matriz original; int simetrica(double A[][N]) int i, j; for (i=0; i<n; i++) for (j=0; j<n; j++) if (A[i][j]!= A[j][i]) return 0; return 1;
16 Funções Algébricas Exemplo 2 Calcular a transposta de uma matriz: Uma matriz transposta é o resultado da troca de linhas por colunas da matriz original; void cria_transposta(double A[][N], double T[][N]) int i, j; for (i=0; i<n; i++) for (j=0; j<n; j++) T[j][i] = A[i][j];
17 Funções Algébricas Exemplo 3 Transpor uma matriz: Uma matriz transposta é o resultado da troca de linhas por colunas da matriz original; void transpoe(double A[][N]) int i, j; for (i=0; i<n; i++) for (j=0; j<i; j++) double t = A[i][j]; A[i][j] = A[j][i]; A[j][i] = t;
18 Funções Algébricas Exemplo 4 Multiplicar uma matriz por um escalar: void mult_matriz_escalar(double A[][N], double s, double B[][N]) int i, j; for (i=0; i<n; i++) for (j=0; j<n; j++) B[i][j] = s * A[i][j];
19 Funções Algébricas Exemplo 5 Multiplicação de matrizes: void mult_matriz_matriz(double A[][N], double B[][N], double C[][N]) int i, j, k; for (i=0; i<n; i++) for (j=0; j<n; j++) C[i][j] = 0.0; for (k=0; k<n; k++) C[i][j] = C[i][j] + A[i][k] * B[k][j];
20 Representação de Tabelas Muitas aplicações precisam organizar informações na forma de tabelas, e matrizes são naturalmente estruturas de dados adequadas para representação de tabelas. Para exemplificar, vamos considerar uma tabela de um campeonato de futebol. Cada linha armazena as informações de um determinado time do campeonato: número de pontos ganhos (PG), número de jogos (J), número de vitorias (V), saldo de gols (SG) e gols próprios (GP). gerando a matriz
21 Representação de Tabelas Um critério usualmente usado para classificação dos times é: número de pontos ganhos, número de vitórias, saldo de gols e, finalmente, número de gols próprios. Assim, o líder do campeonato é o time que tem o maior número de pontos. Se dois times tem o mesmo número de pontos, usa-se o maior número de vitórias como critério de desempate; se o número de vitórias também for igual, usa-se o saldo de gols; por fim, usa-se o número de gols próprios.
22 Representação de Tabelas Podemos então codificar uma função que recebe como parâmetros o número de times e a matriz representando a tabela do campeonato e retorna o número do time que é líder. Para o código ficar mais legível, podemos definir constantes simbólicas como: #define PG 0 #define J 1 #define V 2 #define SG 3 #define GC 4
23 int lider(int n, int t[][5]) int l = 0; /* assume inicialmente time 0 como líder */ for (i = 1; i < n; i++) if (t[i][pg] > t[l][pg]) l = i; else if (t[i][pg] == t[l][pg]) if (t[i][v] > t[l][v]) l = i; else if (t[i][v] == t[l][v]) [Continua...]
24 if (t[i][sg] > t[l][sg]) l = i; else if (t[i][sg] == t[l][sg] && t[i][gp] > t[l][gp]) l = i; return l;
25 Exercícios Lista de Exercícios 12 Matrizes
Capítulo 8: Matrizes
Capítulo 8: Matrizes Waldemar Celes e Roberto Ierusalimschy 29 de Fevereiro de 2012 1 Conjuntos bidimensionais Além de conjuntos unidimensionais de valores (vetores), muitas aplicações necessitam armazenar
Capítulo 06: Arquivos
Capítulo 06: Arquivos INF1004 e INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Funções de entrada e saída em arquivos Motivação: quando um programa precisa processar
Vetores. e o programa deverá ler os valores separadamente:
Vetores Vetor é um tipo de dado usado para representar uma certa quantidade de variáveis de valores homogêneos (do mesmo tipo). Imagine o seguinte problema: calcular a média das notas da prova de 5 alunos.
Programação: Vetores
Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia
INF1005: Programação 1. Arquivos. 02/05/10 (c) Paula Rodrigues 1
INF1005: Programação 1 Arquivos 02/05/10 (c) Paula Rodrigues 1 Tópicos Principais Motivação Abertura e fechamento de arquivos Leitura com fscanf Escrita com fprintf 08/03/10 (c) Paula Rodrigues 2 Motivação
Aula 18: Vetores Introdução a Programação Túlio Toffolo & Puca Huachi
Aula 18: Vetores Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula de Hoje 1 Exercícios da aula prática 2 Vetores 3 Exemplos
Computação Eletrônica. Vetores e Matrizes. Prof: Luciano Barbosa. CIn.ufpe.br
Computação Eletrônica Vetores e Matrizes Prof: Luciano Barbosa Recapitulando: Funções 2 Recapitulando: Função Void 3 Recapitulando: Escopo das Variáveis Referência à variável global A variável de escopo
ponteiros INF Programação I Prof. Roberto Azevedo
ponteiros INF1005 -- Programação I -- 2016.1 Prof. Roberto Azevedo [email protected] ponteiros tópicos o que são ponteiros operadores usados com ponteiros passagem de ponteiros para funções referência
Fundamentos de Programação
Fundamentos de Programação Linguagem C++: arrays - aula I Bruno Emerson Gurgel Gomes 1 1 Instituto Federal de Educação, Ciência e Tecnologia do RN (IFRN) 2012 Bruno Gomes (IFRN) Fundamentos de Programação
Métodos Computacionais. Vetores e Matrizes Dinâmicas
Métodos Computacionais Vetores e Matrizes Dinâmicas Vetores Um programa para o cálculo da média Média m n i= = 1 n x i Variância v n i= = 1 ( x i n m) 2 A forma mais simples de estruturar um conjunto de
Matrizes. Estruturas de Dados Aula 5: Matrizes. Vetor declaração estática. Vetor declaração dinâmica
Matrizes Estruturas de Dados Aula 5: Matrizes 22/03/2010 Conjuntos bidimensionais declarados estaticamente float mat[4][3]; Declaração de um vetor (estática ou dinâmica?) int v[10] int *v; v = (int*) malloc
INF PROGRAMAÇÃO II LISTA DE EXERCÍCIOS DE REVISÃO
INF1007 - PROGRAMAÇÃO II LISTA DE EXERCÍCIOS DE REVISÃO 1. Implemente uma função chamada calcula_circulo que calcule a área e a circunferência de um círculo de raio r. A função deve obedecer ao seguinte
CCO 016 / COM 110 Fundamentos de Programação
CCO 016 / COM 110 Fundamentos de Programação Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 12 Agregados Homogêneos Variáveis Indexadas matrizes Variáveis Indexadas bi dimensionais
Estruturas de Dados Aula 5: Matrizes 23/03/2011
Estruturas de Dados Aula 5: Matrizes 23/03/2011 Matrizes Conjuntos bidimensionais declarados estaticamente float mat[4][3]; Declaração de um vetor (estática ou dinâmica?) int v[10] int *v; v = (int*) malloc
1 Resumo: Matrizes. 2.1 Como declarar uma matriz IME/USP. Departamento de Ciência da Computação
Departamento de Ciência da Computação MAC2166 Introdução a Computação IME/USP Matrizes 1 Resumo: Matrizes são estruturas bi-dimensionais utilizadas para armazenar dados de um mesmo tipo. Para declarar
LÓGICA DE PROGRAMAÇÃO (C) VETORES E MATRIZES. Professor Carlos Muniz
Vetores são estruturas de dados que armazenam usualmente uma quantidade fixa de dados de um certo tipo; por esta razão, também são conhecidos como estruturas homogêneas de dados. Internamente, um vetor
Algoritmos II Aula 2 Vetores
Algoritmos II Aula 2 Vetores Professor: Max Pereira [email protected] Ciência da Computação Variável Representação simbólica dos elementos de memória de um computador. Cada variável corresponde a uma
Introdução a Programação de Jogos
Introdução a Programação de Jogos Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição
ENG1000 Introdução à Engenharia
ENG1000 Introdução à Engenharia Aula 09 Vetores e Matrizes Edirlei Soares de Lima Introdução Até agora nós temos usado variáveis simples para armazenar valores usados por nossos
Métodos Computacionais. Tipos Estruturados
Métodos Computacionais Tipos Estruturados Tipos Estruturados C oferece tipos primitivos que servem para representar valores simples Reais (float, double), inteiros (int), caracter (char) C oferece também
Matrizes. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 67
Matrizes Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 67 Conteúdo Introdução vetores e matrizes Representações de matrizes TADs TAD Vetor TAD Vetor
CI208 - Programação de Computadores. Aula 24: Arrays. Prof. MSc. Diego Roberto Antunes
CI208 - Programação de Computadores Aula 24: Arrays Prof. MSc. Diego Roberto Antunes [email protected] www.inf.ufpr.br/diegor Universidade Federal do Paraná Setor de Ciências Exatas Departamento de Informática
Algoritmos e Programação
Algoritmos e Programação Aula 7 Vetores Profa. Marina Gomes [email protected] 19/05/2017 Engenharia de Computação - Unipampa 1 Motivação Problema: Leia as notas de uma turma de cinco estudantes
Prova de Recuperação
Programação I Prova de Recuperação 1. (1 ponto) Considere um programa que leia de um arquivo de veículos os seguintes dados: placa de um veículo, ano de fabricação, consumo médio de combústivel, modelo
Funções Vetores Matrizes
Funções Vetores Matrizes Além dos tipos elementares (float, double, char, etc.), é possível também passar um vetor ou uma matriz como parâmetro de funções. Quando um vetor é passado como parâmetro, o que
Introdução a Programação. Ponteiros e Vetores, Alocação Dinâmica
Introdução a Programação Ponteiros e Vetores, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos que existe uma forte relação entre ponteiros e vetores Associação entre ponteiros e vetores Ponteiros constantes
Aula 17: Ponteiros e Alocação Dinâmica em C
Aula 17: Ponteiros e Alocação Dinâmica em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores
Introdução a Computação
Introdução a Computação Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Programação Programa é um algoritmo escrito em uma linguagem de programação. Existem diversas linguagens
ALOCAÇÃO DINÂMICA DE MEMORIA Lista 10. A linguagem C/C++ possui recursos para alocação dinâmica de memoria.
ALOCAÇÃO DINÂMICA DE MEMORIA Lista 10 A linguagem C/C++ possui recursos para alocação dinâmica de memoria. As funções que trabalham com alocação de memoria se encontram na biblioteca void *calloc(int
LINGUAGEM C: ARRAY: VETORES E MATRIZES
LINGUAGEM C: ARRAY: VETORES E MATRIZES Prof. André Backes POR QUE USAR ARRAY? As variáveis declaradas até agora são capazes de armazenar um único valor por vez. Sempre que tentamos armazenar um novo valor
Módulo 5 Vetores e Alocação Dinâmica
Estruturas de Dados Módulo 5 Vetores e Alocação Dinâmica 1/9/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora
LINGUAGEM C++ Prof. Bruno Gomes ESTRUTURAS DE DADOS HOMOGÊNEAS PARTE II - MATRIZES. Currais Novos, 2011
LINGUAGEM C++ ESTRUTURAS DE DADOS HOMOGÊNEAS PARTE II - MATRIZES Prof. Bruno Gomes ([email protected]) Currais Novos, 2011 INTRODUÇÃO Na aula anterior, definimos a estrutura vetor Variável composta
Capítulo 6: Arquivos
Capítulo 6: Arquivos Waldemar Celes e Roberto Ierusalimschy 29 de Fevereiro de 2012 1 Funções de entrada e saída em arquivos Nos capítulos anteriores, desenvolvemos programas que capturam seus dados de
Linguagem C. André Tavares da Silva.
Linguagem C André Tavares da Silva [email protected] Variáveis Posição nomeada de memória que é usada para guardar um valor que pode ser modificado pelo programa. Todas as variáveis devem ser
Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Para começar... Matrizes. Para começar... Matrizes. Matrizes
Algoritmos e Lógica de Programação 80 horas // 4 h/semana Aula 13 Prof. Piva Para começar... Vamos considerar um algoritmo que foi elaborado para para armazenar os Nomes e as Médias Finais dos 20 alunos
Variáveis Compostas. Vanessa Braganholo
Variáveis Compostas Vanessa Braganholo [email protected] Aula de hoje } Veremos os diferentes tipos de variáveis compostas (arrays) } Com uma dimensão (vetores) } Com duas ou mais dimensões (matrizes)
Algoritmos e Programação
Algoritmos e Programação Aula 8 Matrizes Profa. Marina Gomes [email protected] 30/05/2017 Engenharia de Computação - Unipampa 1 Matrizes As variáveis vetores declarados até o momento possuem
ESTRUTURAS COMPOSTAS
ESTRUTURAS COMPOSTAS Variáveis Compostas Unidimensionais VETOR Clique para adicionar texto Profa. Dra. Elisa Yumi Nakagawa 1. Semestre de 2017 Slides inicialmente preparados pela Profa. Rosely Sanches
ESTRUTURAS COMPOSTAS. Variáveis Compostas Unidimensionais VETOR. Baseado nos slides de Rosely Sanches e Simone Senger de Souza
ESTRUTURAS COMPOSTAS Variáveis Compostas Unidimensionais VETOR Baseado nos slides de Rosely Sanches e Simone Senger de Souza 2 ESTRUTURAS COMPOSTAS Pode-se organizar os dados dos tipos simples em tipos
Algoritmos e Programação
Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes [email protected] 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;
Matrizes. DCC 119 Algoritmos
Matrizes DCC 119 Algoritmos Matrizes: vetores multidimensionais Assim como os vetores, as matrizes são estruturas de dados homogêneas. Podem ser construídas dos diversos tipos básicos primitivos (real,
Vetores(Arrays) Olimpíadas de Informática. Aulas preparatórias Introdução a Programação em C.
Olimpíadas de Informática Aulas preparatórias Introdução a Programação em C. Vetores(Arrays) Prof. Gemilson George [email protected] Blog: informaticageo.wordpress.com GEO.OBI Aula 05 Definição:
AULA 14 ESTRUTURA DE DADOS
AULA 14 ESTRUTURA DE DADOS Matriz esparsa Norton T. Roman & Luciano A. Digiampietri Matriz Uma matriz bidimensional é um conjunto de elementos (ou tabela) composta por m linhas e n colunas. Matriz Uma
Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo
Programação científica C++
Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 6 Exercício 1 Dados dois vetores com n (n
Ponteiros em C. Adriano Joaquim de Oliveira Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ
Ponteiros em C Adriano Joaquim de Oliveira Cruz 21 de julho de 2017 Instituto de Matemática Departamento de Ciência da Computação UFRJ 1 Resumo da Seção Introdução Declaração Incrementando e Decrementando
PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95
PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 Exercícios de revisão Lista 01: a) Monte um mapa conceitual indicando as relações entre os seguintes conceitos, no contexto do assunto visto em aula:
Aula 04. Agregados Homogêneos. Agregados Heterogêneos. Matrizes
Logo Aula 04 Agregados Homogêneos Matrizes Agregados Heterogêneos 2 Matriz Da mesma forma que as variáveis indexadas vetoriais, vistas anteriormente, as variáveis indexadas bidimensionais são utilizadas
ESTRUTURAS COMPOSTAS VETOR
ESTRUTURAS COMPOSTAS Variáveis Compostas Unidimensionais VETOR slides desenvolvidos pela Profa. Rosely Sanches 2 ESTRUTURAS COMPOSTAS Pode-se organizar tipos simples em tipos mais complexos formando as
Computação Informática
Computação Informática Linguagem C Matrizes em C Aula N. 05 Prof. SIMÃO Jean Marcelo SIMÃO 1 Estrutura de Dados Homogênea matrizes Uma matriz computacional é um váriável composta capaz de armazenar uma
Vetores e Matrizes. Vetores
Vetores e Matrizes José Gustavo de Souza Paiva Vetores Também conhecidos como variáveis compostas homogêneas unidimensionais É um tipo de dado que representa um conjunto de valores do mesmo tipo É como
Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI
Introdução à Programação em C Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI Linguagem C Criada em 1972 para uso no LINUX; Sintaxe base para diversas outras (Java, JavaScript, PHP, C++,
Vetores(Arrays) Olimpíadas de Informática. Aulas preparatórias Introdução a Programação em C.
Olimpíadas de Informática Aulas preparatórias Introdução a Programação em C. Vetores(Arrays) Prof. Gemilson George [email protected] Blog: informaticageo.wordpress.com GEO.OBI Aula 05 Vetores
PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C
PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C 1 Implementações básicas: a) Implementar o procedimento LerMatriz que preenche uma matriz de L linhas por C colunas de inteiros (L, C 1); b) Implementar o procedimento
Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas
Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas 03/03/2010 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa
