Estruturas Homogêneas II (Matrizes)

Documentos relacionados
Aula 9 Oficina de Programação Matrizes. Profa. Elaine Faria UFU

BCC Introdu c ao ` a Programa c ao I Ponteiros Guillermo C amara-ch avez UFOP 1/61

Controle de Fluxo Comandos de decisão multipla

Controle de Fluxo Comandos de decisão multipla

Introdução a programação Vetores

Aula 17: Funções (Parte III) e Introdução a Vetores

Controle de Fluxo Comandos de repetição: while e do-while

Algoritmos e Programação

Estruturas II UFOP 1/35

Linguagem de programação Estruturas de armazenamento

Matrizes (Vetores Bidimensionais)

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Matrizes. Prof. Alex Camargo

Algoritmos e Programação

Programação: Vetores

Programação científica C++

Lista de Exercícios 5

LINGUAGEM C: ARRAY: VETORES E MATRIZES

CAPÍTULO VIII. Variáveis Indexadas: Vetores e Matrizes CAPÍTULO VIII VARIÁVEIS INDEXADAS VARIÁVEIS INDEXADAS HOMOGÊNEAS UNIDIMENSIONAIS (VETORES)

Algoritmos II Aula 2 Vetores

Computação Eletrônica. Vetores e Matrizes. Prof: Luciano Barbosa. CIn.ufpe.br

Exercícios: Vetores e Matrizes

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

Registros, Vetores e Matrizes

1ra. Avaliação - Grupo B

Fundamentos de Programação 1

Lista 2 TP060. Exercícios Vetores

Arquivos de Texto UFOP 1/31

Algoritmos e Estruturas de Dados II IEC013

4ª Lista de Exercícios de Programação I

Tipo m= matriz [ l i1 : l s1, l i2 : l s2 ] <tipo básico> m: mat

Introdução a Algoritmos Parte 06

PROGRAMAÇÃO DE COMPUTADORES I - BCC Vetores e matrizes

4ª Lista de Exercícios de Programação I

Exercícios V1 = V2 = V1 = V2 =

Cadeia de caracteres (strings)

BCC201 Introdução à Programação ( ) Prof. Reinaldo Silva Fortes. Prática 04 Estruturas de Dados Homogêneas Vetores

CURSO BÁSICO DE PROGRAMAÇÃO AULA 19. Netbeans - Linguagem JAVA - Vetores - Matrizes - Métodos

Vetores Unimensionais

Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira Anilton Joaquim da Silva

Lista de Exercícios 02

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo

5ª Lista de Exercícios de Programação I

Faculdades Integradas Rui Barbosa Programação II Prof. Marcos Antonio Estremote. Exercícios com Vetores e Matrizes

EXERCÍCIOS DE RECORDAÇÃO DE ALGORITMOS

Funções Vetores Matrizes

1 Resumo: Matrizes. 2.1 Como declarar uma matriz IME/USP. Departamento de Ciência da Computação

Capítulo 7 Matriz. Roteiro

CI208 - Programação de Computadores. Aula 24: Arrays. Prof. MSc. Diego Roberto Antunes

Questão 1 Exemplo de execução 1 (com N=6): Exemplo de execução 2 (com N=4):

Sumário. 1.1 Variáveis Globais e Locais Passagem de Parâmetro (por valor por referência) 1

Universidade Federal de Ouro Preto UFOP. Instituto de Ciências Exatas e Biológicas ICEB. Departamento de Computação DECOM

ANHANGUERA ESTRUTURA DE DADOS AULA 02 O QUE É ESTRUTURA DE DADOS? Prof. Thomás da Costa

Aula 15: Repetição (Parte 3)

Exercícios Lista 7 Revisão

Laboratório de Programação A Exercícios sobre vetores e matrizes

BAC004 Informática Teórica T2 Professora: Fabiana Costa Guedes Lista 05 Vetores e Matrizes Vetores

Matrizes. Laura Goulart. 29 de Outubro de 2018 UESB. Laura Goulart (UESB) Matrizes 29 de Outubro de / 16

MATRIZES E DETERMINANTES

Matrizes. Introdução à Ciência da Computação

Computação 2. Aula 2. Profª. Fabiany Vetores e Matrizes

Curso: Técnico em Informática Integrado Disciplina: Algoritmos Carga horária: 60h (80h/a) Período: 2º Ano Professor: Edmilson Barbalho Campos Neto

Estruturas (registros)

Programação de Computadores 1 Lista 2. Prof. Álvaro A. F. de Souza DECSI - ICEA - UFOP

Valor: 0,0 CORREÇÃO. 1. Construa um programa que leia a sua idade, o seu nome e depois imprima na tela.

Universidade Federal de Ouro Preto UFOP. Instituto de Ciências Exatas e Biológicas ICEB. Departamento de Computação DECOM

Modularidade - Funções e Procedimentos

Aula 10: Introdução a Vetores e Matrizes

Lógica de Programação e Algoritmos Exercícios Resolvidos Prof. André Y Kusumoto

Aula 16: Laços aninhados e desvios

MATRIZES - PARTE Mais exemplos Multiplicação de duas matrizes AULA 26

Aula 23: Ponteiros Introdução a Programação Túlio Toffolo & Puca Huachi

Vetores(Arrays) Olimpíadas de Informática. Aulas preparatórias Introdução a Programação em C.

DCC001 - Programação de Computadores. Lista de Exercícios 02 - Estruturas de Dados Homogêneas (Vetores).

1. Faça uma função que recebe por parâmetro o raio de uma esfera e calcula o seu volume.

Templates. BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP

LINGUAGEM C VETOR E MATRIZ

CCO 016 / COM 110 Fundamentos de Programação

Transcrição:

BCC 201 - Introdução à Programação Estruturas Homogêneas II (Matrizes) Guillermo Cámara-Chávez UFOP 1/1

Introdução I Imaginemos que queremos ler as notas de 4 provas para cada aluno e calcular a média do aluno e a média da classe. O tamanho máximo da turma é de 50 alunos Uma solução seria criar 4 vetores cada um com 50 posições. E então ler as respectivas informações f l o a t nota1 [ 5 0 ], nota2 [ 5 0 ], nota3 [ 5 0 ], nota4 [ 5 0 ] ; 2/1

Introdução II 3/1

Introdução III Agora suponha que estamos trabalhando com no máximo 100 provas e 50 alunos Seria cansativo criar 100 vetores e atribuir 100 nomes diferentes 4/1

Introdução IV Para resolver esse problema podemos utilizar matrizes 5/1

Introdução V Para resolver esse problema podemos utilizar matrizes 6/1

Introdução VI Para resolver esse problema podemos utilizar matrizes 7/1

Introdução VII Uma matriz é um vetor (conjunto de variáveis do mesmo tipo) que possui duas ou mais dimensões Matrizes podem ser considerados como vetores de vetores. Por exemplo, uma matriz bi-dimensional pode ser visto como uma tabela de m linhas (filas) e n colunas. 8/1

Declarando uma matriz I <t i p o > nome da matriz [< l i n h a s >][< c o l u n a s >] Uma matriz possui linhas colunas variáveis do tipo <tipo> As linhas são numeradas de 0 a linhas 1 As colunas sao numeradas de 0 a colunas 1 Exemplo: // m a t r i z com 100 l i n h a s e 50 c o l u n a s f l o a t n o t a s [ 1 0 0 ] [ 5 0 ] ; 9/1

Acessando uma matriz I A forma de usar um elemento da matriz é: nome da matriz [< l i n h a >][< coluna >] Ex: acessar o elemento da linha 1 e coluna 10. m a t r i z [ 1 ] [ 1 0 ] O compilador não verifica se foram utilizados valores válidos para a linha e para a coluna 10/1

Exemplo 1 I Criar uma matriz de 3 4 (3 linhas e 4 colunas) elementos. Inserir valores e logo mostrar o conteúdo da matriz 11/1

Exemplo 1 II i n t main ( ) { i n t M[ 3 ] [ 4 ] ; // I n s e r ç ã o de dados f o r ( i n t i = 0 ; i < 3 ; i ++) // para as l i n h a s f o r ( i n t j = 0 ; j < 4 ; j ++) // para as c o l u n a s { p r i n t f ( "Matriz[ %d][ %d] = ", i, j ) ; s c a n f ( " %d", &M[ i ] [ j ] ) ; // m o s t r a r o conteúdo da m a t r i z f o r ( i n t i = 0 ; i < 3 ; i ++) // para as l i n h a s { f o r ( i n t j = 0 ; j < 4 ; j ++) // para as c o l u n a s p r i n t f ( " %d ", M[ i ] [ j ] ) ; p r i n t f ( "\n" ) ; r e t u r n 0 ; 12/1

Exemplo 2 I Escreva um programa que inicialize uma matriz 5 5 com 0s em todas as posições. O usuário irá digitar o índice da linha e o índice da coluna e em seguida o valor das posições não nulas. A leitura será feita enquanto os índices forem não negativos. Após a leitura imprima a matriz na tela. 13/1

Exemplo 2 II 14/1

Exemplo 2 III 15/1

Exemplo 2 IV 16/1

Exemplo 2 V 17/1

Exemplo 2 VI i n t main ( ) { i n t m a t r i z [ 5 ] [ 5 ], l i n h a = 0, c o l u n a = 0, v a l o r ; // i n i c i a l i z a com z e r o f o r ( i n t i = 0 ; i < 5 ; i ++) // para as l i n h a s f o r ( i n t j = 0 ; j < 5 ; j ++) // para as c o l u n a s m a t r i z [ i ] [ j ] = 0 ; w h i l e ( 1 ) { p r i n t f ( "\n Inserir posiç~oes : " ) ; s c a n f ( " %d %d", &l i n h a, &c o l u n a ) ; i f... ( l i n h a > 1 && c o l u n a > 1){ p r i n t f ( "\n Inserir valor: " ) ; s c a n f ( " %d", &m a t r i z [ l i n h a ] [ c o l u n a ] ) ; e l s e b reak ; 18/1

Exemplo 2 VII i n t main ( ) {... // m o s t r a r o conteúdo da m a t r i z f o r ( i n t i = 0 ; i < 5 ; i ++) // para as l i n h a s { f o r ( i n t j = 0 ; j < 5 ; j ++) // para as c o l u n a s p r i n t f ( " %d ", m a t r i z [ i ] [ j ] ) ; p r i n t f ( "\n" ) ; r e t u r n 0 ; 19/1

Lembrando... I Passagem de um vetor como parâmetro: 1. Tamanho fixo i n t Funcao ( i n t Vet [ 1 0 ] ) {... 2. Tamanho variável i n t Funcao ( i n t Vet [ ], i n t tamanho ){... i n t Funcao ( i n t Vet, i n t tamanho ){... 20/1

Exemplo 3 I 1. Escreva um programa que lê 2 matrizes 5 5, mostre-as na tela e mostre o maior valor entre elementos correspondentes. 21/1

Exemplo 3 II #d e f i n e LIN 5 #d e f i n e COL 5 v o i d I n s e r e ( i n t A[ LIN ] [ COL ] ) ; v o i d MaiorElemento ( i n t A[ LIN ] [ COL ], i n t B [ LIN ] [ COL ], i n t C [ LIN ] [ COL ] ) ; v o i d Mostra ( i n t A[ LIN ] [ COL ] ) ; i n t main ( ) { i n t mat1 [ LIN ] [ COL ], mat2 [ LIN ] [ COL ], mat3 [ LIN ] [ COL ] ; p r i n t f ( "Matriz 1 \n" ) ; I n s e r e ( mat1 ) ; p r i n t f ( "Matriz 2 \n" ) ; I n s e r e ( mat2 ) ; MaiorElemento ( mat1, mat2, mat3 ) ; p r i n t f ( "Matriz 1: \n" ) ; Mostra ( mat1 ) ; p r i n t f ( "Matriz 2: \n" ) ; Mostra ( mat2 ) ; p r i n t f ( "Matriz 3: \n" ) ; Mostra ( mat3 ) ; r e t u r n 0 ; 22/1

Exemplo 3 III v o i d I n s e r e ( i n t mat [ LIN ] [ COL ] ) { i n t i, j ; f o r ( i = 0 ; i < LIN ; i ++) { p r i n t f ( "Linha %d \n", i +1); f o r ( j = 0 ; j < COL ; j ++) { p r i n t f ( "Coluna %d \n", j +1); s c a n f ( " %d", &mat [ i ] [ j ] ) ; 23/1

Exemplo 3 IV v o i d MaiorElemento ( i n t A[ LIN ] [ COL ], i n t B [ LIN ] [ COL ], i n t C [ LIN ] [ COL ] ) { i n t i, j ; f o r ( i = 0 ; i < LIN ; i ++) f o r ( j = 0 ; j < COL ; j ++) i f (A[ i ] [ j ] > B[ i ] [ j ] ) C [ i ] [ j ] = A[ i ] [ j ] ; e l s e C [ i ] [ j ] = B [ i ] [ j ] ; 24/1

Exemplo 3 V v o i d Mostra ( i n t mat [ LIN ] [ COL ] ) { i n t i, j ; f o r ( i = 0 ; i < LIN ; i ++) { f o r ( j = 0 ; j < COL ; j ++) p r i n t f ( " %d ", mat [ i ] [ j ] ) ; p r i n t f ( "\n" ) ; ; 25/1

Exemplo 3 I 1. Criar uma matriz quadrada e mostrar os elementos da diagonal principal e da diagonal secundaria. 26/1

Exemplo 3 II 27/1

Exemplo 3 III #d e f i n e LIN 3 #d e f i n e COL 3 i n t main ( ) { i n t mat [ LIN ] [ COL ], i, j ; f o r ( i = 0 ; i < LIN ; i ++) f o r ( j = 0 ; j < COL ; j ++) s c a n f ( " %d", &mat [ LIN ] [ COL ] ) ; p r i n t f ( " Mostrando a diagonal principal... \n" ) ; f o r ( i = 0 ; i < LIN ; i ++) p r i n t f ( " %d \n", mat [ i ] [ i ] ) ; p r i n t f ( " Mostrando a diagonal secundaria... \n" ) ; f o r ( j = COL 1, i = 0 ; j >= 0 ; j, i ++) p r i n t f ( " %d \n", mat [ i ] [ j ] ) ; r e t u r n 0 ; 28/1

Exemplo 3 IV Defina uma função para determinar os índices do maior valor dentre os n 2 elementos de uma matriz de double 29/1

Exemplo 3 V 30/1

Exemplo 3 VI 31/1

Exemplo 3 VII 32/1

Exemplo 3 VIII 33/1

Exemplo 3 IX 34/1

Exemplo 3 X #d e f i n e N 5 v o i d i n d i c e M a i o r ( i n t M[N ] [ N], i n t n, i n t p l i n, i n t p c o l ) ; v o i d I n s e r e ( i n t M[N ] [ N], i n t n ) ; i n t main ( ) { i n t mat [N ] [ N], p o s l i n h a, p o s c o l u n a ; I n s e r e ( mat, N ) ; i n d i c e M a i o r ( mat, N, &p o s l i n, &p o s c o l u n a ) ; p r i n t f ( "O maior elemento %d ocupa a posicao %d, %d", p o s l i n h a, p o s c o l u n a ) ; r e t u r n 0 ; 35/1

Exemplo 3 XI v o i d i n d i c e M a i o r ( i n t M[N ] [ N], i n t n, i n t p l i n, i n t p c o l ) { i n t maior = M[ 0 ] [ 0 ], i, j ; f o r ( i = 0 ; i < n ; i ++) f o r ( j = 0 ; j < n ; j ++) { i f (M[ i ] [ j ] > maior ){ maior = M[ i ] [ j ] ; p l i n = i ; p c o l = j ; 36/1

Exemplo 3 XII v o i d I n s e r e ( i n t M[N ] [ N], i n t n ) { i n t i, j ; f o r ( i = 0 ; i < n ; i ++) { p r i n t f ( "Linha %d \n", i +1); f o r ( j = 0 ; j < n ; j ++) { p r i n t f ( "Coluna %d \n", j +1); s c a n f ( " %d", &mat [ i ] [ j ] ) ; 37/1

Exercícios propostos I 1. Defina duas funções, uma que calcula a média e outra que calcula o desvio padrão de uma amostra representada por uma matriz m n de double. Utilize as fórmulas e as declarações fornecidas. Observe que a função que calcula o desvio padrão amostral deverá fazer uma chamada à função que calcula a média amostral. media = n 1 i=0 n 1 j=0 X ij m n desviopadrao = n 1 n 1 i=0 j=0 (X ij media) 2 m n 1 2. Ler uma matriz G 30x30 e criar 2 vetores, SL e SC, de 30 elementos cada, contendo respectivamente as somas das linhas e das colunas de G. Escrever os vetores criados. 38/1

FIM 39/1