Algoritmia e Programação APROG. Matrizes. Algoritmia e Java. Nelson Freire (ISEP DEI-APROG 2012/13) 1/28

Documentos relacionados
Algoritmia e Programação APROG. Vetores. Algoritmia e Java. Nelson Freire (ISEP DEI-APROG 2012/13) 1/32

Arrays e Marizes. João Paulo Q. dos Santos

Vetores Unimensionais

Vetores Unimensionais

Variáveis Compostas. Vanessa Braganholo

Isto não é exequível!... B[8][6] A[10] Slides_Java_4

Vetores Unimensionais

Algoritmia e Programação APROG. Ficheiros de Texto. Java. Nelson Freire (ISEP DEI-APROG 2014/15) 1/18

Aula 2 POO 1 Prática. Profa. Elaine Faria UFU

Prof. Rogério Rocha 1

Programação Orientada a Objeto Java

Orientação a Objetos

Linguagem de Programação III

Nº horas ESTRATÉGIAS RECURSOS AVALIAÇÃO

Programação de Computadores I. Aula - Vetores. Professor Ilaim Costa Junior.

Vetores Unimensionais

Arrays em Java. Introdução à Programação. Bruno Cartaxo

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

BC-0505 Processamento da Informação

Matrizes (Vetores Bidimensionais)

Java possui 4 tipos de dados. Estes tipos de dados são divididos em: boolean, character, integer e float.

Aula 03 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

LÓGICA DE PROGRAMAÇÃO (JAVA) ESTRUTURAS REPETIÇÃO. Professor Carlos Muniz

Paradigmas da Programação PPROG. Tipos Enumerados. Nelson Freire (ISEP DEI-PPROG 2013/14) 1/20

Algoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo

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

Conversão de Tipos e Arrays

CURSO DE POO COM JAVA

Simulado de Linguagem de Programação Java

Paradigmas da Programação PPROG. Linguagem JAVA. Contentores de Objetos

INTRODUÇÃO À PROGRAMAÇÃO II VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS

AULA 3 Alocação dinâmica de memória: Ponteiros

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Arrays em Java. Alberto Costa Neto DComp - UFS

CONTEÚDO 04 VETORES. Disciplina: Algoritmos e POO Professora: Alba Lopes.

Vetores. IFSC/Florianópolis - Programação Orientada a Objetos + POO - prof. Herval Daminelli

Métodos e Procedimentos. Prof. Jesus José de Oliveira Neto

LINGUAGEM JAVA - RESUMO

Lição 7 Array em Java

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

CONTEÚDO 05 MATRIZES

Lógica de Programação e Algoritmos

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

Análise de Programação

Técnicas de Programação II

TUTORIAL MATLAB Victor Breder 2016

LÓGICA DE PROGRAMAÇÃO (JAVA) VARIÁVEIS. Professor Carlos Muniz

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Lógica de Programação. Lógica de Programação com Java

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

5 Arrays. 5.1 Criando um array. 5.2 Inicializando arrays. c:\>java Array Janeiro tem 31 dias.

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

Orientação a Objetos e Java

Projeto de sistemas em Java. Algoritmos e Programação I. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario

Classes, instâncias e métodos de acesso. prática

Programação de Computadores para GI

1. Estrutura de Dados

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Tabelas e Matrizes. Arrays e Matrizes em Java. Arrays. Isto não é exequível!... Exemplo. Elementos dos Arrays. Necessidade de usarmos Tabelas B[8][6]

Universidade Federal de Goiás Instituto de Informática 1ª Prova de Introdução a Programação 06/04/11

Algoritmos II Aula 2 Vetores

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Vetores. Professor Dr Francisco Isidro Massettto

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível.

Aula 3/4: Vetores/Matrizes e Ponteiros

ALOCAÇÃO DINÂMICA DE MEMÓRIA

public class ExecScanner1 { public static void main(string[] args) { // TODO code application logic here

Seleção Múltipla Laços (while, do-while, for) AULA 05

insfcanceof new public switch transient while byte continue extends for int null

Técnicas de Programação

Programação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida

Referências. Programação de Computadores II. Cap. 7 Cadeias de Caracteres. Caracteres. Tópicos

Estruturas de Repetição e String

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

Arrays (Vetores) Arrays (Vetores) 28/04/ Índices. profs. } Ex1: Se eu preciso manipular 100 nomes de pessoas ao mesmo tempo... é melhor...

Revisão da Java Ex1 equilátero isóscele escaleno Ponto, Triangulo, Ex2 Ex3 Nota Ex4 TabelaUtil preenchetab imprimetab somadiv5 TabelaUtil

Revisões de PG. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa

Array em Java. Figura 1 - Exemplo de um array de inteiros

Pilha e Fila. Pilha em C. Definir o registro que representará cada elemento da pilha.

Conceitos c++ Prof. Demétrios Coutinho INFORMÁTICA BÁSICA

Introdução à Programação

Escola Náutica Infante Dom Henrique. Grupo I (7.5 valores)

Linguagem de Programação II Implementação

Manual de conversão de Pseudo-algoritmo para Java

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

Transcrição:

APROG Algoritmia e Programação Matrizes Algoritmia e Java Nelson Freire (ISEP DEI-APROG 2012/13) 1/28

Enquadramento Noção Interesse Uso Declaração Java: Matriz é um Array de Arrays Manipulação de Elementos Transferência entre Módulos/Métodos Passagem de Parâmetros Retorno da Função Exemplo Sumário Exemplos Soma Global Cada Linha Cada Coluna Diagonal Principal Maior Global Cada Linha Cada Coluna Matriz Transposta Ordenada Nelson Freire (ISEP DEI-APROG 2012/13) 2/28

Tipos de Arrays Vetor // array uni-dimensional Matriz // array bi-dimensional Enquadramento Vector Estrutura de dados complexa Armazena múltiplos valores ao mesmo tempo Valores Todos do mesmo tipo Organizados de forma linear Dimensão Fixa Não pode ser alterada em tempo de execução (run-time) elementos índices elemento 2 valor 10 12 15 10 18 13 14 0 1 2 3 n-2 n-1 comprimento (ou dimensão) n Nelson Freire (ISEP DEI-APROG 2012/13) 3/28

Noção de Matriz Estrutura de dados complexa Armazena múltiplos valores ao mesmo tempo Valores Todos do mesmo tipo Organizados em linhas e colunas Dimensão Fixa Não pode ser alterada em tempo de execução (run-time) dimensão n x m índice de linha (comprimento n) 0 1 m-1 0 11 24 27 1 5 56 18 n-1 1 8 34 índice de coluna (comprimento m) elemento (1,m-1) valor 18 Nelson Freire (ISEP DEI-APROG 2012/13) 4/28

Armazenar Tabelas bidimensionais Valores Todos do mesmo tipo Organizados em linhas e colunas Interesse Exemplos Tabela de notas de alunos // conjunto de números inteiros organizados em linhas e colunas Nº Aluno Português Inglês Matemática 1138 12 15 19 1249 18 17 12 1544 15 12 14 Tabela de disciplinas de um curso // conjunto de Strings organizadas em linhas e colunas Ano Disciplinas 1º APROG LAPR1 PRCMP PPROG ESOFT LAPR2 2º ARQCP BDDAD ESINF EAPLI LAPR3 LAPR4 3º ASIST ALGAV ARQSI SGRAI LAPR5 PESTI Nelson Freire (ISEP DEI-APROG 2012/13) 5/28

Preciso Saber Uso Declarar uma matriz Java Matriz é um Array de Arrays Manipular elementos de uma matriz Transferir uma matriz entre módulos/métodos Nelson Freire (ISEP DEI-APROG 2012/13) 6/28

Declaração 1/4 Algoritmia Declaração 1: dimensão definida na declaração Sintaxe: tipo nomematriz[linhas][colunas] Ex: INTEIRO notas[20][10] RAM notas[0,0] notas[0,1] notas[0,2] notas[19,9] Java Matriz é um objeto (array de arrays) Nome da matriz é referência para objeto tipo nomemat[ ][ ] = new tipo [Linhas][Colunas]; int notas[ ][ ] = new int[20][10]; ou tipo[ ][ ] nomemat = new tipo [Linhas][Colunas]; int[ ][ ] notas = new int[20][10]; Inicializações automáticas: Tipo primitivo Numérico: 0 Booleano: false Tipo referência: null (Ex: String) Declaração 2: dimensão definida depois da declaracão Sintaxe: tipo nomematriz[ ][ ] criar nomematriz[linhas][colunas] Ex: INTEIRO notas[ ][ ] criar notas[20][10] tipo nomematriz[ ][ ]; nomemat= new tipo [Linhas][Colunas]; int notas[ ][ ]; notas = new int[20][10]; Nelson Freire (ISEP DEI-APROG 2012/13) 7/28

Declaração 2/4 Exemplos // Algoritmia ED INTEIRO numlin, numcol, notas[20][10], mat[][] numlin lernumero("linhas") // lernumero é função do programa numcol lernumero("colunas") criar mat[numlin][numcol] FIM // Java public class Exemplo_1 { public static void main(string[] args) { int notas[][] = new int[20][10]; // matriz criada; elementos inicializados a 0 int numlin = lernumero("linhas"); // lernumero é função do programa int numcol = lernumero("colunas"); int mat[][] = new int[numlim][numcol]; Nelson Freire (ISEP DEI-APROG 2012/13) 8/28

Declaração 3/4 Exemplos // Algoritmia ED REAL mat1[][] INTEIRO[][] mat2 criar mat1[10][30] criar mat2[5][10] FIM // Java public class Exemplo_2 { public static void main(string[] args) { double mat1[][]; mat1 = new double[10][30]; int[][] mat2 = new int[5][10]; // declarada variável mat1 para representar matriz // matriz criada e atribuída a mat1 // elementos inicializados a zero Nelson Freire (ISEP DEI-APROG 2012/13) 9/28

Declaração 4/4 Exemplos // Algoritmia ED INTEIRO matriz[][] matriz {{10,12,15,{19,9,18 // criada e inicializada uma matriz 2x3 FIM linha 0 linha 1 10 12 15 19 9 18 // Java public class Exemplo_3 { public static void main(string[] args) { int matriz[][] = {{10,12,15,{19,9,18; // criada e inicializada uma matriz 2x3 Nelson Freire (ISEP DEI-APROG 2012/13) 10/28

Nome da Matriz Referência de um array // referência = endereço Guarda referências de outros arrays // podem ter dimensões diferentes Representam linhas da matriz Constituem os elementos da matriz Exemplo int[][] mat = new int[3] [3]; Representação RAM Java : Matriz é um Array de Arrays 1 2 3 4 5 6 7 8 9 mat referência mat[0][0] mat[0][1] mat[0][2] mat[0] referência 1 2 3 ARRAY mat.length mat[1] referência mat[1][0] 4 mat[1][1] 5 mat[1][2] 6 ARRAY ARRAYS mat[2] referência mat[2][0] 7 mat[2][1] 8 mat[2][2] 9 ARRAY ARRAY mat[x].length (x=0, 1 ou 2) Nelson Freire (ISEP DEI-APROG 2012/13) 11/28

Manipulação de Elementos Elemento Pode ser manipulado individualmente Funciona como variável simples Identificado Nome da matriz Índices de linha e coluna respetivos Indicar um elemento notas[0,0] notas[0,1] notas[0,2] notas[19,9] RAM Algoritmia Sintaxe: nomematriz [índicelinha] [índicecoluna] Ex: notas[0][2] Java nomematriz [índicelinha] [índicecoluna]; notas[0][2] Manipulação de Elementos Um elemento Todos os elementos Nelson Freire (ISEP DEI-APROG 2012/13) 12/28

Algoritmia Manipulação de um Elemento Java Atribuir um valor a um elemento Ex: guardar ou actualizar um elemento Sintaxe: nomematriz[índice Linha][índice Coluna] valor Ex: notas[0][2] 18 nomematriz[í. Linha][í. Coluna] = valor; notas[0][2] = 18; Atribuir o valor de um elemento a uma variável Sintaxe: variável nomematriz[índice Linha][indice Coluna] Ex: x notas[0][2] // x do tipo INTEIRO variável=nomematriz[í. Linha][í.Coluna]; x = notas[0][2]; // x do tipo int Nelson Freire (ISEP DEI-APROG 2012/13) 13/28

Algoritmia Manipulação de todos os Elementos Java Indicar todos os elementos (matriz n x m) PARA (i 0 ATÉ n-1 PASSO 1) FAZER PARA (j 0 ATÉ m-1 PASSO 1) FAZER nomematriz[i][j] for(i=0; i< nomematriz.length; i++){ nomematriz.length (nº linhas) nomematriz[i].length (nº cols linha i) for(j=0; j< nomematriz[i].length; j++){ nomematriz[i][j] Exemplo Preencher toda a matriz notas (n x m) com valores lidos do teclado PARA (i 0 ATÉ n-1 PASSO 1) FAZER PARA (j 0 ATÉ m-1 PASSO 1) FAZER LER( notas[i][j] ) for(i=0; i<notas.length; i++){ for(j=0; j<notas[i].length; j++){ notas[i][j]=ler.nextint(); Nelson Freire (ISEP DEI-APROG 2012/13) 14/28

Transferência entre Módulos/Métodos 1/5 Em Java Matriz é objeto basta transferir referência desse objeto indicar nome da matriz Exemplo int[ ][ ] mat = new int[3][3]; nome da matriz (objeto) mat referência mat[0][0] mat[0][1] mat[0][2] mat[0] referência 1 2 3 ARRAY mat.length mat[1] referência mat[1][0] 4 mat[1][1] 5 mat[1][2] 6 ARRAY ARRAYS (objetos) mat[2] referência mat[2][0] 7 mat[2][1] 8 mat[2][2] 9 ARRAY ARRAY (objeto) mat[2].length Nelson Freire (ISEP DEI-APROG 2012/13) 15/28

Transferência entre Módulos/Métodos 2/5 Formas de Transferir uma Matriz Passagem de parâmetros Retorno da função DEFINIR nome (, tipo nomematriz [ ][ ], ) ED // variáveis e constantes locais // corpo do procedimento FDEF Procedimento DEFINIR tipo_retornado nome (, tipo[ ][ ] nomematriz, ) ED // variáveis e constantes locais // corpo da função RETORNAR expressão_tipo_retornado Função FDEF DEFINIR tipo[ ][ ] nome () ED tipo[ ][ ] nomematriz // corpo da função RETORNAR nomematriz FDEF Função Nelson Freire (ISEP DEI-APROG 2012/13) 16/28

Transferência entre Módulos/Métodos 3/5 Passagem de Parâmetros Passada cópia da referência da matriz DEFINIR tipo nome(, tipo nomematriz [ ][ ], ) Módulo acede à matriz original Pode modificar a matriz original Parâmetro formal funciona como parâmetro de entrada e de saída Declaração de um parâmetro formal Para receber a referência da matriz Algoritmia Sintaxe: tipo nomematriz[][] ou tipo[][] nomematriz Ex: DEFINIR ler( INTEIRO matriz[ ][ ], ) Java tipo nomematriz[][]; ou tipo[][] nomematriz public static void ler( int matriz[ ][ ], ){ Chamada de um módulo Passar referência da matriz (i.e., nome da matriz) Algoritmia Sintaxe: nomematriz Ex: ler(notas, ) Java nomematriz ler(notas, ); Nelson Freire (ISEP DEI-APROG 2012/13) 17/28

Transferência entre Módulos/Métodos 4/5 Retorno da Função Retornada referência da matriz Declaração do tipo_retornado da função Tipo matriz Algoritmia Sintaxe: DEFINIR tipo[ ][ ] nomefunção ( ) Ex: DEFINIR INTEIRO[ ][ ] filtrar() DEFINIR tipo[ ][ ] nome() ED tipo[ ][ ] nomematriz // corpo da função RETORNAR nomematriz FDEF Java public static tipo[ ][ ] nomemétodo(){; public static int[ ][ ] filtrar(){ Retorno Referência da matriz (i.e., nome da matriz) Algoritmia Sintaxe: RETORNAR nomematriz Ex: RETORNAR notas Java return nomematriz; return notas; Nelson Freire (ISEP DEI-APROG 2012/13) 18/28

Transferência entre Módulos/Métodos 5/5 Exemplo import java.util.scanner; public class Exemplo { public static void main(string[] args) { int numlin = lernumero("linhas"); int numcol = lernumero("colunas"); int[][] m1 = new int[numlin][numcol]; lermatriz(m1); int[][] m2 = clonar(m1); mostrarmatriz(m1); mostrarmatriz(m2); private static void lermatriz(int[][] mat) { Scanner ler = new Scanner(System.in); System.out.println("\nDigite nº inteiros:"); for (int i = 0; i < mat.length; i++) { for (int j = 0; j < mat[i].length; j++) { System.out.print((i+1)+ "," +(j+1) +":"); mat[i][j] = ler.nextint(); private static void mostrarmatriz(int[][] mat){ System.out.println("\nMatriz:") for (int i = 0; i < mat.length; i++){ for (int j = 0; j < mat[i].length; j++) System.out.printf("%6d",mat[i][j]); System.out.println(); private static int[][] clonar(int[][] mat1){ int[][] mat2; mat2 = new int[mat1.length][mat1[0].length]; for (int i = 0; i < mat1.length; i++) { for (int j = 0; j < mat1[i].length; j++) mat2[i][j] = mat1[i][j]; return mat2; private static int lernumero(string s){ Scanner ler = new Scanner(System.in); System.out.print("\nInsira o nº de "+s+":"); int n = ler.nextint(); while (n<=0) { System.out.println("Valor Inválido!!" + "Insira novo nº de "+s+":"); n = ler.nextint(); return n; Nelson Freire (ISEP DEI-APROG 2012/13) 19/28

(Exemplos) Soma Global ED Funções pré-definidas INTEIRO soma, lin, col, matriz[][] comprimentolinhas matriz {{1,2,3,{4,5,6,{7,8,9,{10,11,12 comprimentocolunas soma 0 PARA (lin 0 ATÉ comprimentolinhas(matriz)-1 PASSO 1) FAZER PARA (col 0 ATÉ comprimentocolunas(matriz,lin)-1 PASSO 1) FAZER soma soma + matriz[lin][col] ESCREVER("A soma de todos os elementos é ", soma) FIM public class SomaGlobal { public static void main(string[] args) { int matriz[][] = {{1,2,3,{4,5,6,{7,8,9,{10,11,12; int soma=0; for (int lin = 0; lin < matriz.length; lin++) { for (int col = 0; col < matriz[lin].length; col++) { soma = soma + matriz[lin][col]; System.out.println("A soma de todos os elementos é " + soma); Nelson Freire (ISEP DEI-APROG 2012/13) 20/28

(Exemplos) Soma de Cada Linha ED INTEIRO soma, lin, col, matriz[][] matriz {{1,2,3,{4,5,6,{7,8,9,{10,11,12 PARA (lin 0 ATÉ comprimentolinhas(matriz)-1 PASSO 1) FAZER soma 0 PARA (col 0 ATÉ comprimentocolunas(matriz,lin)-1 PASSO 1) FAZER soma soma + matriz[lin][col] ESCREVER("A soma da linha ", lin, " é ", soma) FIM public class SomaLinha { public static void main(string[] args) { int matriz[][] = {{1,2,3,{4,5,6,{7,8,9,{10,11,12; for (int lin = 0; lin < matriz.length; lin++) { int soma=0; for (int col = 0; col < matriz[lin].length; col++) { soma = soma + matriz[lin][col]; System.out.println("A soma da linha " + lin + " é " + soma); Nelson Freire (ISEP DEI-APROG 2012/13) 21/28

(Exemplos) Soma de Cada Coluna ED INTEIRO soma, lin, col, matriz[][] matriz {{1,2,3,{4,5,6,{7,8,9,{10,11,12 PARA (col 0 ATÉ comprimentocolunas(matriz,0)-1 PASSO 1) FAZER soma 0 PARA (lin 0 ATÉ comprimentolinhas(matriz)-1 PASSO 1) FAZER soma soma + matriz[lin][col] ESCREVER("A soma da coluna ", col, " é ", soma) FIM public class SomaColuna { public static void main(string[] args) { int matriz[][] = {{1,2,3,{4,5,6,{7,8,9,{10,11,12; for (int col = 0; col < matriz[0].length; col++) { int soma=0; for (int lin = 0; lin < matriz.length; lin++) { soma = soma + matriz[lin][col]; System.out.println("A soma da coluna " + col + " é ", soma); Nelson Freire (ISEP DEI-APROG 2012/13) 22/28

(Exemplos) Soma da Diagonal Principal ED INTEIRO soma, lin, matriz[][] matriz {{1,2,3,{4,5,6,{7,8,9 soma 0 PARA (lin 0 ATÉ comprimentolinhas(matriz)-1 PASSO 1) FAZER soma soma + matriz[lin][lin] ESCREVER("A soma da diagonal principal é ", soma) FIM 1 2 3 4 5 6 7 8 9 public class SomaDiagonalPrincipal{ public static void main(string[] args) { int matriz[][] = {{1,2,3,{4,5,6,{7,8,9; int soma=0; for (int lin = 0; lin < matriz.length; lin++) { soma = soma + matriz[lin][lin]; System.out.println("A soma da diagonal principal é " + soma); Nelson Freire (ISEP DEI-APROG 2012/13) 23/28

(Exemplos) Maior Global ED INTEIRO maior, lin, col, matriz[][] matriz {{1,18,3,{4,17,6,{7,28,9,{10,11,12 maior matriz[0][0] PARA (lin 0 ATÉ comprimentolinhas(matriz)-1 PASSO 1) FAZER PARA (col 0 ATÉ comprimentocolunas(matriz,lin)-1 PASSO 1) FAZER SE ( matriz[lin][col] > maior ) ENTÃO maior matriz[lin][col] FSE ESCREVER("O maior número global é ", maior) FIM public class MaiorGlobal { public static void main(string[] args) { int matriz[][] = {{1,18,3,{4,17,6,{7,28,9,{10,11,12; int maior = matriz[0][0]; for (int lin = 0; lin < matriz.length; lin++) { for (int col = 0; col < matriz[lin].length; col++) if( matriz[lin][col] > maior ) maior = matriz[lin][col]; System.out.println("O maior número global é ", maior); Nelson Freire (ISEP DEI-APROG 2012/13) 24/28

(Exemplos) Maior de Cada Linha ED INTEIRO maior, lin, col, matriz[][] matriz {{1,18,3,{4,17,6,{7,28,9,{10,11,12 PARA (lin 0 ATÉ comprimentolinhas(matriz)-1 PASSO 1) FAZER maior matriz[lin][0] PARA (col 1 ATÉ comprimentocolunas(matriz,lin)-1 PASSO 1) FAZER SE ( matriz[lin][col] > maior ) ENTÃO maior matriz[lin][col] FSE ESCREVER("O maior número da linha ", lin, " é ", maior) FIM public class MaiorLinha { public static void main(string[] args) { int matriz[][] = {{1,18,3,{4,17,6,{7,28,9,{10,11,12; for (int lin = 0; lin < matriz.length; lin++) { int maior = matriz[lin][0]; for (int col = 1; col < matriz[lin].length; col++) if( matriz[lin][col] > maior ) maior = matriz[lin][col]; System.out.println("O maior número da linha ", lin, " é ", maior); Nelson Freire (ISEP DEI-APROG 2012/13) 25/28

(Exemplos) Maior de Cada Coluna ED INTEIRO maior, lin, col, matriz[][] matriz {{1,18,3,{4,17,6,{7,28,9,{10,11,12 PARA (col 0 ATÉ comprimentocolunas(matriz,0)-1 PASSO 1) FAZER maior matriz[0][col] PARA (lin 1 ATÉ comprimentolinhas(matriz)-1 PASSO 1) FAZER SE ( matriz[lin][col] > maior ) ENTÃO maior matriz[lin][col] FSE ESCREVER("O maior número da coluna ", col, " é ", maior) FIM public class MaiorColuna { public static void main(string[] args) { int matriz[][] = {{1,18,3,{4,17,6,{7,28,9,{10,11,12; for (int col = 0; col < matriz[0].length; col++) { int maior = matriz[0][col]; for (int lin = 1; lin < matriz.length; lin++) if( matriz[lin][col] > maior ) maior = matriz[lin][col]; System.out.println("O maior número da coluna ", col, " é ", maior); Nelson Freire (ISEP DEI-APROG 2012/13) 26/28

(Exemplos) Matriz Transposta ED INTEIRO lin, col, matriz[][], transposta[][] matriz {{1,2,3,{4,5,6,{7,8,9,{10,11,12 criar transposta[comprimentocolunas(matriz,0)][comprimentolinhas(matriz)] PARA (lin 0 ATÉ comprimentolinhas(matriz)-1 PASSO 1) FAZER PARA (col 0 ATÉ comprimentocolunas(matriz,lin)-1 PASSO 1) FAZER transposta[col][lin] matriz[lin][col] FIM public class MatrizTransposta { public static void main(string[] args) { int matriz[][] = {{1,2,3,{4,5,6,{7,8,9,{10,11,12; int transposta[][] = new int[matriz[0].length][matriz.length]; for (int lin = 0; lin < matriz.length; lin++) { for (int col = 0; col < matriz[lin].length; col++) { transposta[col][lin] = matriz[lin][col]; Nelson Freire (ISEP DEI-APROG 2012/13) 27/28

(Exemplos) Matriz Ordenada ED INTEIRO i, j, matriz[][], tmp[] matriz {{1,2,3,{7,8,9,{10,11,12,{4,5,6 PARA (i 0 ATÉ comprimentolinhas(matriz)-2 PASSO 1) FAZER PARA (j i+1 ATÉ comprimentolinhas(matriz)-1 PASSO 1) FAZER SE (matriz[j][0] > matriz[i][0]) ENTÃO tmp matriz[i] matriz[i] matriz[j] matriz[j] tmp FSE FIM Linhas ordenadas por ordem decrescente dos elementos da primeira coluna public class MatrizOrdenada { public static void main(string[] args) { int matriz[][] = {{1,2,3,{7,8,9,{10,11,12,{4,5,6; for (int i = 0; i < matriz.length-1; i++) for (int j = i+1; j < matriz.length; j++) if( matriz[j][0] > matriz[i][0]){ int[] tmp = matriz[i]; // matriz[i] é a linha i matriz[i] = matriz[j]; matriz[j] = tmp; Nelson Freire (ISEP DEI-APROG 2012/13) 28/28