Algoritmos e
Estruturas de Dados
Aula 5 e Aula 6
04 e 11/09/2012
Profª Ms. Engª Elaine Cecília Gatto
Unidade 5: Variáveis Compostas
Curso de Bacharelado em Engenharia de Computação
Universidade do Sagrado Coração – USC
Bauru/SP
MATRIZES
   • Matrizes são também chamadas de Variáveis Compostas
     Homogêneas Bidimensionais;
   • São variáveis que necessitam de dois ou mais índices para
     individualização de um elemento;

   PSEUDOCÓDIGO                          PASCAL
   nome_matriz: matriz[1..linhas,        Nome_da_variavel: array[1..n][1..n,
   1..colunas] de tipo de dados;         n..n] of tipo_de_dados;


                              1     2      3      4       Índices de coluna
Índices de linha      1      11     12    13      14
                      2      21     22    23      24         Posição M[2,3]
                      3      31     32    33      34
                      4      41     42    43      44
MATRIZES
• Para preencher uma matriz, necessitamos de um for para a
  linha e outro para a coluna;
• Para imprimir na tela, o que está armazenado na matriz,
  precisamos de outros dois for para percorrê-la;

para i de 1 até n passo 1 faça         linha
  inicio
      para j de 1 até n passo 1 faça           coluna
      inicio
        comandos;
      fim para;                                    leia( M[i, j] );
  fim para;                                        escreva( M[i, j] );
Exemplo
• Ler e imprimir elementos de uma matriz 2x3:
algoritmo exemplo;
   inicio
   tab: matriz[1..2, 1..3] de reais;
   inteiro: i, j;
   escreva(‘digite os elementos da matriz: ’);
   para i de 1 até 2 passo 1 faça
       inicio
       para j de 1 até 3 passo1 faça
          inicio
          leia(tab[i, j]);
Exemplo – continuação
                fim para;
        fim para;
   escreva(‘matriz’);
   para i de 1 até 2 passo 1 faça
      inicio
      para j de 1 até 3 passo 1 faça
        inicio
        escreva(tab[i, j]);
        fim para;
      fim para;
   escreva(‘’);
fim.
Exemplo - loteria
algoritmo loteria;
inicio
   tipo loteria: matriz[1..14,1..3] de caracteres;
   inteiro: i, j, maismar, njogo, marlin;
   maismar  0;
   para i de 1 até 14 passo1 faça
       inicio
          marlin  0;
          para j de 1 até 2 passo1 faça
            inicio
            se loteria*i, j+ = “x”;
Exemplo - loteria
               então marlin  marlin+1;
               fim se;
       fim para;
       se marlin  0 maismar então início
               maismar  marlin;
               njogo  1;
               fim;
               fimse:
       fimpara;
   escreva(‘jogo mais marcado: ’, njogo);
   escreva(‘quantidade marcações: ’, maismar);
fim.
Exercícios
1. Faça um algoritmo para ler as dimensões m e n de uma
   matriz – no máximo 10 elementos. Em seguida ler os
   elementos das matrizes e calcular uma nova matriz
   multiplicando os elementos positivos da matriz inicial por k,
   e os negativos por q. Imprimir as matrizes k e q.
2. Faça um algoritmo para lers os elementos de uma matriz
   4X4. em seguida imprimir uma mensagem dizendo se a
   matriz é diagonal ou não. Uma matriz é diagonal se e
   somente se todos os elementos que não forem da diagonal
   principal forem zero.
3. Construa um algoritmo que efetue a leitura, a soma e a
   impressão do resultado entre duas matrizes inteiras que
   comportem 25 elementos.
Exercícios
4. Elabore um algoritmo que leia duas matrizes inteiras, A e B,
   do tipo 3 x 3 e calcule em uma matriz R sua multiplicação,
   ou seja, R = A * B. (R11 = A11*B11 + A12*B21 + A13*B31, e
   assim por diante)
5. Faça um algoritmo que preencha uma matriz 5x5 de inteiros
   e escreva a soma dos números ímpares fornecidos, a soma
   de cada uma das 5 colunas e a soma de cada uma das 5
   linhas.
6. Construma um algoritmo que leia um conjunto de números
   inteiros para preencher uma matriz 10 x 10 e a partir daí,
   gere um vetor com os maiores elementos de cada linha e
   outro vetor com os menores elementos de cada coluna.

Aula 5 aed - matrizes

  • 1.
    Algoritmos e Estruturas deDados Aula 5 e Aula 6 04 e 11/09/2012 Profª Ms. Engª Elaine Cecília Gatto Unidade 5: Variáveis Compostas Curso de Bacharelado em Engenharia de Computação Universidade do Sagrado Coração – USC Bauru/SP
  • 2.
    MATRIZES • Matrizes são também chamadas de Variáveis Compostas Homogêneas Bidimensionais; • São variáveis que necessitam de dois ou mais índices para individualização de um elemento; PSEUDOCÓDIGO PASCAL nome_matriz: matriz[1..linhas, Nome_da_variavel: array[1..n][1..n, 1..colunas] de tipo de dados; n..n] of tipo_de_dados; 1 2 3 4 Índices de coluna Índices de linha 1 11 12 13 14 2 21 22 23 24 Posição M[2,3] 3 31 32 33 34 4 41 42 43 44
  • 3.
    MATRIZES • Para preencheruma matriz, necessitamos de um for para a linha e outro para a coluna; • Para imprimir na tela, o que está armazenado na matriz, precisamos de outros dois for para percorrê-la; para i de 1 até n passo 1 faça linha inicio para j de 1 até n passo 1 faça coluna inicio comandos; fim para; leia( M[i, j] ); fim para; escreva( M[i, j] );
  • 4.
    Exemplo • Ler eimprimir elementos de uma matriz 2x3: algoritmo exemplo; inicio tab: matriz[1..2, 1..3] de reais; inteiro: i, j; escreva(‘digite os elementos da matriz: ’); para i de 1 até 2 passo 1 faça inicio para j de 1 até 3 passo1 faça inicio leia(tab[i, j]);
  • 5.
    Exemplo – continuação fim para; fim para; escreva(‘matriz’); para i de 1 até 2 passo 1 faça inicio para j de 1 até 3 passo 1 faça inicio escreva(tab[i, j]); fim para; fim para; escreva(‘’); fim.
  • 6.
    Exemplo - loteria algoritmoloteria; inicio tipo loteria: matriz[1..14,1..3] de caracteres; inteiro: i, j, maismar, njogo, marlin; maismar  0; para i de 1 até 14 passo1 faça inicio marlin  0; para j de 1 até 2 passo1 faça inicio se loteria*i, j+ = “x”;
  • 7.
    Exemplo - loteria então marlin  marlin+1; fim se; fim para; se marlin  0 maismar então início maismar  marlin; njogo  1; fim; fimse: fimpara; escreva(‘jogo mais marcado: ’, njogo); escreva(‘quantidade marcações: ’, maismar); fim.
  • 8.
    Exercícios 1. Faça umalgoritmo para ler as dimensões m e n de uma matriz – no máximo 10 elementos. Em seguida ler os elementos das matrizes e calcular uma nova matriz multiplicando os elementos positivos da matriz inicial por k, e os negativos por q. Imprimir as matrizes k e q. 2. Faça um algoritmo para lers os elementos de uma matriz 4X4. em seguida imprimir uma mensagem dizendo se a matriz é diagonal ou não. Uma matriz é diagonal se e somente se todos os elementos que não forem da diagonal principal forem zero. 3. Construa um algoritmo que efetue a leitura, a soma e a impressão do resultado entre duas matrizes inteiras que comportem 25 elementos.
  • 9.
    Exercícios 4. Elabore umalgoritmo que leia duas matrizes inteiras, A e B, do tipo 3 x 3 e calcule em uma matriz R sua multiplicação, ou seja, R = A * B. (R11 = A11*B11 + A12*B21 + A13*B31, e assim por diante) 5. Faça um algoritmo que preencha uma matriz 5x5 de inteiros e escreva a soma dos números ímpares fornecidos, a soma de cada uma das 5 colunas e a soma de cada uma das 5 linhas. 6. Construma um algoritmo que leia um conjunto de números inteiros para preencher uma matriz 10 x 10 e a partir daí, gere um vetor com os maiores elementos de cada linha e outro vetor com os menores elementos de cada coluna.