Matrizes. Vanessa Braganholo

Documentos relacionados
TCC 00308: Programação de Computadores I Matrizes

Variáveis Compostas. Vanessa Braganholo

Vetores. Vanessa Braganholo

Listas e Tuplas. Vanessa Braganholo

Python. Resumo e Exercícios P2 Parte 1

Exercícios: Vetores e Matrizes

Algoritmos e Programação

Lista de exercícios Matrizes

Lista de exercícios Matrizes

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

Estruturas de Repetição. Vanessa Braganholo

PROGRAMAÇÃO DE COMPUTADORES I BCC Aula Prática 15

Computação 1 - Python Aula 12 - Teórica: Interação com o usuário e programa principal. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 25

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

Estruturas de Repetição. Leonardo Murta

INFORMÁTICA PARA ENGENHARIA LISTAS E VETORES

Lista 2 TP060. Exercícios Vetores

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

Computação 1 - Python Aula 11 - Teórica. programa principal. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 29

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

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

Lista de exercícios 1 (Cast)

Estruturas de Repetição. Vanessa Braganholo

Aula 06 Introdução à Programação Matrizes

VETORES. Lista de Exercícios Vetores Prof: Yuri Frota

Organização de programas em Python. Vanessa Braganholo

Algoritmos e Estruturas de Dados. Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras PURO

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

Subprogramação. Vanessa Braganholo

Registros, Vetores e Matrizes

Matrizes (Vetores Bidimensionais)

LINGUAGEM C++ Prof. Bruno Gomes ESTRUTURAS DE DADOS HOMOGÊNEAS PARTE II - MATRIZES. Currais Novos, 2011

Algoritmos - 6. Alexandre Diehl. Departamento de Física - UFPel

LINGUAGEM C: ARRAY: VETORES E MATRIZES

Lista de Exercícios - 1 Prof: Yuri Frota

Algoritmos e Estrutura de Dados Aula 02 Listas em Python

Exercícios V1 = V2 = V1 = V2 =

Matrizes. DCC 119 Algoritmos

VARIÁVEIS INDEXADAS VETORES E MATRIZES

Vetores e Matrizes. Vetores

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

TCC 00308: Programação de Computadores I Manipulação de listas

Programação científica C++

Algoritmos e Programação

ESTRUTURAS DE CONTROLE - LAÇOS OU MALHAS DE REPETIÇÃO

1 - VARIÁVEIS COMPOSTAS HOMOGÊNEAS (VETORES E MATRIZES)

Fundamentos de Programação

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

Variável Composta Homogênea Unidimensional e Multidimensional - ARRAY

Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Para começar... Matrizes. Para começar... Matrizes. Matrizes

Estruturas de Dados Estáticas Cont.

1 - VARIÁVEIS COMPOSTAS HOMOGÊNEAS (VETORES E MATRIZES)

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

MAC2166 Introdução à Computação

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

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

Saída Média dos valores digitados: 3.40

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

Lista de Exercícios 5

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

Algoritmos e Estruturas de Dados II IEC013

Linguagem C ESTRUTURA DE CONTROLE

Introdução à Computação - aulas 01 e 02 -

Universidade Federal do ABC MCTA Programação Estruturada 2018.Q3

Capítulo 7 Matriz. Roteiro

Introdução à Computação

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

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

Aula 10: Introdução a Vetores e Matrizes

LISTA DE EXERCÍCIOS: 2ª Unidade Funções

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

1. [VETOR][SALA] Cálculo da média aritmética de 10 valores armazenados em um vetor.

MATRIZES. 1) Faça um programa em Fortran que recebe como parâmetro uma matriz A (nxn) de números reais. Esse programa deve informar

Exercícios. Faça um programa para calcular o valor de S, dado por:

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

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

CCO 016 / COM 110 Fundamentos de Programação

Operadores e Estruturas de Decisão. Vanessa Braganholo

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

EXERCÍCIOS DE RECORDAÇÃO DE ALGORITMOS

Computação 1 - Python Aula 11 - Teórica: Matrizes. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 9

Uma matriz m x n é um quadro de elementos dispostos em m linhas e n colunas. Os valores de m e n são sempre positivos e inteiros.

EXERCÍCIOS: Estrutura Sequencial, IF (SE), ELSE (Senão)

Vetores Unimensionais

Estruturas de Repetição WHILE e DO- WHILE

Estruturas de Repetição e String. Vanessa Braganholo

Transcrição:

Matrizes Vanessa Braganholo vanessa@ic.uff.br

Matrizes } Variável composta multidimensional } É equivalente a um vetor, contudo permite a utilização de diversas dimensões acessadas via diferentes índices } Pode ser pensada como um vetor onde cada célula é outro vetor, recursivamente } Em diversas situações matrizes são necessárias para correlacionar informações

Exemplo motivacional } Assumindo que um aluno é avaliado com cinco notas, seria necessário um vetor de três posições para guardar as notas de um aluno... notas 0 1 2 3 4 10.0 7.0 9.0 5.5 6.0

Exemplo motivacional } Contudo, assumindo que uma turma tem três alunos, seria necessária uma matriz bidimensional para guardar as notas de todos os alunos de uma turma... 0 5.0 alunos 1 2.1 2 8.6 4.5 6.5 7.0 notas 0 1 2 3 4 7.0 8.0 9.1 5.2 7.0 8.7 6.1 6.7 9.3 turma = [[5.0, 4.5, 7.0, 5.2, 6.1], [2.1, 6.5, 8.0, 7.0, 6.7], [8.6, 7.0, 9.1, 8.7, 9.3]]

Exemplo motivacional } Contudo, assumindo que uma turma tem três alunos, seria necessária uma matriz bidimensional para guardar as notas de todos os alunos de uma turma... 0 5.0 alunos 1 2.1 2 8.6 4.5 6.5 7.0 notas 0 1 2 3 4 7.0 8.0 9.1 5.2 7.0 8.7 6.1 6.7 9.3 turma= [[5.0, 4.5, 7.0, 5.2, 6.1], [2.1, 6.5, 8.0, 7.0, 6.7], [8.6, 7.0, 9.1, 8.7, 9.3]]

Exemplo motivacional } Na verdade, na memória seria algo assim... 0 0 1 2 5.0 4.5 7.0 3 5.2 turma 4 6.1... 0 0 1 7.0 2 2 9.1 3 8.7 4 9.3

Acesso aos valores: [linha][coluna] } Segunda nota do primeiro aluno >>> turma[0][1] 4.5 } Quinta nota do terceiro aluno >>> turma[2][4] 9.3 notas 0 1 2 3 4 0 5.0 4.5 7.0 5.2 6.1 alunos 1 2.1 6.5 8.0 7.0 6.7 2 8.6 7.0 9.1 8.7 9.3

Calcular a média da turma turma = [[5.0, 4.5, 7.0, 5.2, 6.1], [2.1, 6.5, 8.0, 7.0, 6.7], [8.6, 7.0, 9.1, 8.7, 9.3]] #calcula a média media = 0 #for para percorrer as linhas for i in range(3): #for para percorrer as colunas for j in range(5): media = media + turma[i][j] media = media / 15 print(media)

Preencher a matriz por leitura turma = [] for i in range(3): # cria linha vazia linha = [] for j in range(5): #vai adicionando as notas na linha linha.append(int(input('digite a nota [' + str(i) + ',' + str(j) + ']:'))) #adiciona a linha na matriz turma turma.append(linha)

Exemplo } Programa que cria uma matriz n x m preenchida com zeros n = int(input('digite a dimensão n da matriz: ')) m = int(input('digite a dimensão m da matriz: ')) matriz = [] for i in range(n): linha = [] for j in range(m): linha.append(0) matriz.append(linha) print(matriz)

Simplificando o exemplo } Programa que cria uma matriz n x m preenchida com zeros n = int(input('digite a dimensão n da matriz: ')) m = int(input('digite a dimensão m da matriz: ')) matriz = [] for i in range(n): matriz.append([0]*m) print(matriz)

Imprimir em forma de matriz } Programa que cria uma matriz n x m preenchida com zeros e a imprime no formato de matriz n = int(input('digite a dimensão n da matriz: ')) m = int(input('digite a dimensão m da matriz: ')) matriz = [] for i in range(n): matriz.append([0]*m) #imprimir em formato de matriz for i in range(n): print(matriz[i])

Exemplo Contar Pares } Programa que lê uma matriz 3x3 digitada pelo usuário e conta quantos números pares existem na matriz, imprimindo na tela o resultado e a matriz.

Exemplo Contar Pares matriz = [] for i in range(3): linha = [] for j in range(3): linha.append(int(input('digite o valor de [' + str(i) + ',' + str(j) + ']:'))) matriz.append(linha) #contar pares pares = 0 for i in range(3): for j in range(3): if matriz[i][j] % 2 == 0: pares = pares + 1 #imprimir em formato de matriz for i in range(3): print(matriz[i]) #imprimir qtde de números pares print('a matriz contém', pares, 'números pares')

for iterando sobre valores } Um comando for também pode iterar sobre valores de uma lista lista = [1,2,4,5,7,8,9] for i in lista: print(i)

Variação do Exemplo Contar Pares matriz = [] for i in range(3): linha = [] for j in range(3): linha.append(int(input('digite o valor de [' + str(i) + ',' + str(j) + ']:'))) matriz.append(linha) #contar pares pares = 0 for linha in matriz: for valor in linha: if valor % 2 == 0: pares = pares + 1 #imprimir em formato de matriz for i in range(3): print(matriz[i]) #imprimir qtde de números pares print('a matriz contém', pares, 'números pares )

Python permite misturar tipos em uma matriz } Exemplo: programa que armazena os nomes e idades de 10 pessoas em uma matriz, e imprime o nome da pessoa mais nova Ana 10 Lucas 15 Bia 13 Larissa 24 Leo 21 Bruno 32 Cássio 4 Jonas 8 Lauro 23 Mateus 18

Encontra a pessoa mais nova m = [] #preenche a matriz for i in range(10): linha = [] linha.append(input('digite o nome da pessoa ' + str(i) + ':')) linha.append(int(input('digite a idade de ' + linha[0] + ':'))) m.append(linha) Ana 10 #procura a pessoa mais nova Lucas 15 menor = m[0][1] pos = 0 Bia 13 for i in range(10): Larissa 24 if m[i][1] < menor: Leo 21 menor = m[i][1] pos = i Bruno 32 #imprime a matriz Cássio 4 for i in range(10): print(m[i]) Jonas 8 print('a pessoa mais nova é', m[pos][0]) Lauro 23 Mateus 18

Matrizes } Uma matriz pode ter um número qualquer de dimensões! Basta usar um índice para cada dimensão.

Exemplo motivacional } Ainda, assumindo que um curso tem duas turmas, seria necessária uma matriz tridimensional para guardar as notas de todos os alunos de todas as turmas do curso.

Atribuição >>> m = [[[5.0, 4.5, 7.0, 5.2, 5.1], [2.1,6.5,8.0,7.0,6.7],[8.6,7.0,9.1,8.7,9.3]], [[4.2,5.1,6.0,5.4,5.1],[9.0,8.0,7.5,8.1,8.8], [2.3,4.4,6.7,6.6,7.0]]] Turma

Atribuição >>> m = [[[5.0, 4.5, 7.0, 5.2, 5.1], [2.1,6.5,8.0,7.0,6.7],[8.6,7.0,9.1,8.7,9.3]], [[4.2,5.1,6.0,5.4,5.1],[9.0,8.0,7.5,8.1,8.8], [2.3,4.4,6.7,6.6,7.0]]] Aluno

Acesso a elemento >>> m = [[[5.0, 4.5, 7.0, 5.2, 5.1], [2.1,6.5,8.0,7.0,6.7],[8.6,7.0,9.1,8.7,9.3]], [[4.2,5.1,6.0,5.4,5.1],[9.0,8.0,7.5,8.1,8.8], [2.3,4.4,6.7,6.6,7.0]]] >>> print(m[0][1][0]) 2.1 Turma Aluno Nota

Exercícios 1. Faça um programa que leia uma matriz 3x3 e multiplique os elementos da diagonal principal da matriz por um número k. Imprima a matriz na tela antes e depois da multiplicação. 2. Faça um programa que leia duas matrizes A e B 2x2 e imprima a matriz C que é a soma das matrizes A e B. 3. Faça um programa que leia as dimensões de duas matrizes A e B, e depois leia as duas matrizes. Se as matrizes forem de tamanhos compatíveis para multiplicação, multiplique as matrizes. Imprima as matrizes A, B e a matriz resultante da multiplicação.

Exercícios 4. Faça um programa que leia uma matriz 3x3 de inteiros e retorne a linha de maior soma. Imprima na tela a matriz, a linha de maior soma e a soma. 5. Faça um programa que leia a ordem de uma matriz quadrada A (até 100), posteriormente leia seus valores e escreva sua transposta AT, onde AT[i][j] = A[j][i] 6. Uma pista de Kart permite 10 voltas para cada um de 6 corredores. Faça um programa que leia os nomes e os tempos (em segundos) de cada volta de cada corredor e guarde as informações em uma matriz. Ao final, o programa deve informar: a. De quem foi a melhor volta da prova, e em que volta b. Classificação final em ordem (1º. o campeão) c. Qual foi a volta com a média mais rápida

Exercícios 7. Faça um programa que leia uma matriz 6x3 com números reais, calcule e mostre: (a) o maior elemento da matriz e sua respectiva posição (linha e coluna); (b) o menor elemento da matriz e sua respectiva posição. 8. Faça um programa que leia duas matrizes A e B e verifica se ambas são inversas (ou seja, se a multiplicação de A por B é a matriz identidade). 9. Faça um programa que leia uma matriz 3x3 que representa um tabuleiro de jogo da velha e indique qual posição deveria ser jogada para ganhar o jogo (se possível) ou ao menos evitar uma derrota.

Exercícios 10. Faça um programa que lê duas notas para cada aluno de duas turmas. Cada turma tem 3 alunos. Armazene os dados em uma matriz M. Cada aluno deve ter três notas (as duas digitadas e a média dessas duas). Calcule a média de cada turma e armazene em um vetor TURMA. Informe qual turma tem maior média, e quais alunos tiveram média maior que a média de sua turma.

Referências } Slides baseados no curso de Leonardo Murta e Aline Paes 28