Animados para a próxima aula?

É preciso, como já disse, muita atenção de vocês em três aulas: Estruturas de Repetição, Vetores e Matrizes.

Hoje falaremos das matrizes, que nada mais são do que arrays bidimensionais. Essas matrizes são as mesmas que aprendemos na escola, em Matemática.

MATRIZES

Matrizes são arrays que necessitam de dois índices para individualizar um elemento do conjunto. O primeiro índice representa as linhas e o segundo as colunas. Para definirmos uma matriz, utilizamos a seguinte sintaxe:
CODE
identificador : array[i1_inicial..i1_final, i2_inicial.. i2_final] de tipo;

onde,
identificador = nome de identificador válido
i1_inicial = limite inferior do intervalo de variação do primeiro índice
i1_final = limite superior do intervalo de variação do primeiro índice
i2_inicial = limite inferior do intervalo de variação do segundo índice
i2_final = limite superior do intervalo de variação do segundo índice
tipo = tipo primitivo dos elementos do array

Exemplo: Declarar uma matriz de 4 linhas por 3 colunas de elementos do tipo real.
CODE
matriz : array[0..3, 0..2] de real;

Dessa maneira, se quisermos inserir valores nos elementos da matriz, faremos assim:
CODE
matriz[0, 2] := 2.51;
matriz[1, 0] := 10;
matriz[2, 1] := 5.17;
matriz[3, 2] := 7.98;

Visualização didática:
CODE
M = |    |    |2.51|
    | 10 |    |    |
    |    |5.17|    |
    |    |    |7.98|


Utilizando Estruturas de Repetição e Matrizes

Assim como nos vetores, as matrizes, em princípio, têm número fixo de elementos, ou seja, têm número fixo de linhas e colunas. O número de elementos de uma matriz é determinado pelo produto do número de linhas e colunas.
Por esse motivo, indico o uso de estruturas de repetição incondicionais, quando trabalhamos com matrizes.

Exemplo de escrita de dados em um array de 5 linhas e 3 colunas.
CODE
INICIO
   nossa_matriz : array[0..4, 0..2] de inteiro;
   x, y : inteiro;
   PARA x DE 0 ATÉ 5 PASSO 1 FAÇA
      PARA y DE 0 ATÉ 3 PASSO 1 FAÇA
         nossa_matriz[x, y] := x + y;
      FIM PARA
   FIM PARA
FIM

Esta escrita resultará numa matriz como segue:
CODE
| 0 | 1 | 2 |
| 1 | 2 | 3 |
| 2 | 3 | 4 |
| 3 | 4 | 5 |
| 4 | 5 | 6 |

Exemplo de exibição dos elementos de um array de 5 linhas e 3 colunas. Leve em consideração que estaremos exibindo os elementos da matriz após a escrita do exemplo anterior.
CODE
INICIO
   nossa_matriz : array[0..4, 0..2] de inteiro;
   x, y : inteiro;
   PARA x DE 0 ATÉ 5 PASSO 1 FAÇA
      PARA y DE 0 ATÉ 3 PASSO 1 FAÇA
         MOSTRE nossa_matriz[x, y];
      FIM PARA
   FIM PARA
FIM

A exibição resultará neste resultado:
CODE
0
1
2
1
2
3
2
3
4
3
4
5
4
5
6


Nada melhor para aprendermos do que exercitarmos, certo?

Exercícios

1. Crie um algoritmo que escreva uma matriz conforme abaixo.
CODE
| 0 | 2 | 4 |
| 2 | 4 | 6 |
| 4 | 6 | 8 |

2. Dada uma matriz de inteiros composta por 5 linhas e 4 colunas, construa um algoritmo que leia um inteiro digitado pelo usuário e informe se o número existe ou não na matriz.
3. Como ficarão preenchidos os arranjos a partir do algoritmo abaixo?
CODE
INICIO
   matriz : array[0..5, 0..5] de inteiro;
   vet : array[0..9] de inteiro;
   i, j : inteiro;
   PARA i DE 0 ATÉ 5 PASSO 1 FAÇA
      PARA j DE 0 ATÉ 5 PASSO 1 FAÇA
         matriz[i, j] := i * j + 10;
      FIM PARA
      vet[i] := i * j;
   FIM PARA
FIM


Desafio

Este desafio é importante pois retrata basicamente o funcionamento de um sistema de login.

1. Dada uma matriz de caracteres composta por 5 linhas e 2 colunas, construa um algoritmo que leia um nome de cliente, verifique se existe na primeira coluna da matriz e, caso exista, retorne o endereço deste cliente. O endereço estará na segunda coluna da matriz. No exemplo de matriz abaixo, caso o usuário entre com o nome Pedro, o algoritmo deve retornar o endereço "Rua A, 3". Caso o usuário entre com o nome João, o algoritmo deve retornar "Cliente não encontrado".
CODE
|Beto     |Av. 28 de Março, 567|
|Carolina |Rua das Flores, 111 |
|Pedro    |Rua A, 3            |
|Augusto  |Rua Brasil Hexa, 06 |
|Maria    |Rua das Dores, 953  |

Você gostou? Comente no fórum!

Comentários:

dupa31 disse:

1. Crie um algoritmo que escreva uma matriz conforme abaixo.

| 0 | 2 | 4 |
| 2 | 4 | 6 |
| 4 | 6 | 8 |




CODE
INICIO
   dupa31_matriz : array[0..2, 0..4] de inteiro;
   D, P : inteiro;
   PARA d DE 0 ATÉ 3 PASSO 1 FAÇA
      PARA p DE 0 ATÉ 3 PASSO 1 FAÇA
         nossa_matriz[D, P] := d + p;
      FIM PARA
   FIM PARA
FIM

tmferreira disse:

Eduardo, vamos às correções:

1. A matriz tem a mesma quantidade de linhas e colunas. Ela é uma matriz 3 X 3. Corrija a declaração da matriz.
2. Esse não é erro, mas um ponto de atenção: existem linguagens de programação que diferenciam maiúsculas de minúsculas nos nomes de variáveis. Enão nem sempre D = d e P = p.
3. Não foi declarada a variável nossa_matriz.
4. O arranjo resultante não será igual ao do problema.

Em caso de dúvida é só perguntar.

Thiago Rodrigues disse:

1. Crie um algoritmo que escreva uma matriz conforme abaixo.

CODE
INICIO
    nossa_matriz : array[0..2, 0..2] de inteiro;
    x, y : inteiro;
    PARA x DE 0 ATÉ 3 PASSO 1 FAÇA
       PARA y DE 0 ATÉ 3 PASSO 1 FAÇA
          MOSTRE nossa_matriz[x, y] := (x + y) * 2;
       FIM PARA
    FIM PARA
FIM


No começo desta aula me confundi um pouco, na escola aprendemos matriz desta maneira Matriz A23 por exemplo, já em programação vemos Matriz A12, pois conta-se o zero, hehe. Mas já me adaptei.

2. Dada uma matriz de inteiros composta por 5 linhas e 4 colunas, construa um algoritmo que leia um inteiro digitado pelo usuário e informe se o número existe ou não na matriz.
CODE
INICIO
    matriz : array[0..4, 0..3] de inteiro;
   x, y, t, s, teste, numero : inteiro;
    PARA x DE 0 ATÉ 5 PASSO 1 FAÇA
      PARA y DE 0 ATÉ 4 PASSO 1 FAÇA
            // insere numeros na matriz
         nossa_matriz[x, y] := x + y;
      FIM PARA
   FIM PARA
    ESCREVA("Digite um número");
    LEIA(numero);
    PARA t DE 0 ATÉ 5 PASSO 1 FAÇA
        PARA s DE 0 ATÉ 4 FAÇA
            SE numero = matriz[t,s] ENTÃO
                    teste:= 1;
            SENÂO
                    teste:= 0;
        FIM PARA
    FIM PARA
    SE (teste => 1) ENTÃO
        ESCREVA("O número digitado existe na matriz");
    SE (teste = 0) ENTÃO
        ESCREVA("O número digitado não existe na matriz");
FIM

tmferreira disse:

QUOTE(Thiago Rodrigues @ 12/02/2007 - 13:36) [snapback]57512[/snapback]
1. Crie um algoritmo que escreva uma matriz conforme abaixo.

CODE
INICIO
   nossa_matriz : array[0..2, 0..2] de inteiro;
   x, y : inteiro;
   PARA x DE 0 ATÉ 3 PASSO 1 FAÇA
      PARA y DE 0 ATÉ 3 PASSO 1 FAÇA
         MOSTRE nossa_matriz[x, y] := (x + y) * 2;
      FIM PARA
   FIM PARA
FIM


No começo desta aula me confundi um pouco, na escola aprendemos matriz desta maneira Matriz A23 por exemplo, já em programação vemos Matriz A12, pois conta-se o zero, hehe. Mas já me adaptei.

Show!! Parabéns.

Ver o restante dos comentários no fórum (e aproveitar pra comentar também !).

Mais recentes em Outras Linguagens

Não consigo.
Por 2pac - Não consigo ver as aulas da 4 a 9 aula vai direto da...
Tudo sobre manipulação de strings e caracteres
Por fernando777 - Muito completo...
Criando bibliotecas no c
Por fernando777 - Criando bibliotecas no c - - a criação de bibliotecas...
Operador sizeof no c
Por fernando777 - Operador sizeof - - o operador sizeof mostra quanto...
Estrutura if else - se senÃo e operadores lógicos
Por fernando777 - If else e operadores lógicos no c...

Ver mais Artigos de Outras Linguagens.

Ver e retirar outras dúvidas no fórum Webly.

Alguns Direitos Reservados | RSS | O Fórum

Webly Portal e Fóruns - Internet + Humana | Design by ArthurHenrique.com