Oct
5
2010

Aprenda a Programar #13 – Matriz

Aprenda a fazer programas de Computador

Olá algoritmizeiros…

Depois de algum tempo sem post da série Aprenda a Programar – Algoritmos, voltamos hoje com o décimo terceiro artigo e último da série.

Finalizando nosso estudo de algoritmos, iremos aprender hoje sobre variáveis compostas homogenias, ou seja… Matriz.

Antes de dar continuidade na leitura, recomendo que já estejam familiarizados com o assunto do post anterior, Vetores.

Afinal, o que é uma matriz?

Uma matriz, é nada mais, do que Vetores bi-dimensionais. Onde podemos acessar os dados ali contidos através de dois valores. As “linhas” e as “colunas”. Vocês entenderão logo!

Sintaxe…

nome: vetor[<linhas>,<colunas>] de <tipo>

Exemplo:

minhavar: vetor[1..3,1..3] de caractere

Onde o primeiro valor refere-se as linhas e o segundo as colunas. O exemplo acima, refere-se a criação de uma matriz com 3 linhas e 3 colunas, conforme imagem abaixo:

Como eu posso atribuir ou visualizar dados de minha matriz?

Para atribuir dados a uma determinada posição em uma Matriz, manteremos o mesmo padrão para variáveis comuns ou vetores.

* Para atribuir um determinado valor:

melhorblog[1,2] <- "Algoritmizando"

Atribui a palavra Algoritmizando na posição (1,2) da matriz melhorblog.

* Para ler determinado valor:

...
escreva("O melhor blog é: ",melhorblog[1,2])
...

Lê o valor que se encontra na posição (1,2) da matriz melhorblog.

E agora, um “pequeno” algoritmo, utilizando praticamente tudo o que vimos durante todos esses posts de algoritmos, inclusive o assunto desse post de hoje, Matriz:

Sistema de cadastro de alunos:

  • Fazer um programa de cadastro de alunos;
  • O programa deverá receber o nome, blog favorito e email de cada um dos alunos;
  • Após o cadastro, fornecer as seguintes opções:
  1. Consultar alunos cadastrados
  2. Consultar blogs favoritos por aluno
  3. Lista de emails cadastrados
  4. Lista completa, com todos os dados dos alunos cadastrados
  5. Finalizar o programa

Observação: O Programa só poderá ser finalizado quando escolhida a opção nº 5

algoritmo "Aprenda a Programar #13 - Matriz"
// Autor : Algoritmizando
// Seção de Declarações
var
alunos: vetor[1..2,1..3] de caractere
x, opcao, programa: inteiro

inicio
// Seção de Comandos
para x de 1 ate 2 faca
    escreval("============================")
    escreval("==== CADASTRO DE ALUNOS ====")
    escreval("============================")
    escreval("")
    escreva("Digite um Nome: ")
    leia(alunos[x,1])
    escreva("")
    escreva("Digite o blog favorito: ")
    leia(alunos[x,2]) // http://algoritmizando.com
    escreva("Informe o email: ")
    leia(alunos[x,3])
    limpatela
fimpara
limpatela

// Seta a variável 'programa' = 1 para manter o mesmo em execução
// Nosso programa só irá terminar quando esta variável for igual a zero

programa <- 1

enquanto programa = 1 faca
    escreval("")
    escreval("============================")
    escreval("==== CADASTRO DE ALUNOS ====")
    escreval("============================")
    escreval("")
    escreval("Digite a opção desejada: ")
    escreval("1 - Consulta Alunos Cadastrados")
    escreval("2 - Consulta Blogs Favoritos por aluno")
    escreval("3 - Lista de emails cadastrados")
    escreval("4 - Lista completa de alunos cadastrados")
    escreval("5 - Sair do Programa")
    escreval("")
    // Escolhendo a opção desejada...
    leia(opcao)
    limpatela
    escolha(opcao)
        caso 1
            escreval("---- Alunos Cadastrados: ")
            para x de 1 ate 2 faca
                escreval("---- ",alunos[x,1])
            fimpara
        caso 2
            escreval("---- Blogs favoritos por aluno: ")
            para x de 1 ate 2 faca
                 escreval("---- ",alunos[x,1],"    ",alunos[x,2])
            fimpara
        caso 3
            escreval("---- Lista de emails cadastrados: ")
            para x de 1 ate 2 faca
                escreval("---- ",alunos[x,3])
            fimpara
        caso 4
            escreval("---- Lista completa de alunos cadastrados: ")
            para x de 1 ate 2 faca
                escreval("---- ",alunos[x,1],"    ", alunos[x,2],"    ", alunos[x,3])
            fimpara
        caso 5
            escreval("==== OBRIGADO POR ACESSAR O BLOG! ====")
            programa <- 0
        outrocaso
            escreval("Opção Inválida...")
    fimescolha
fimenquanto

fimalgoritmo

Não entendeu? veja abaixo onde foi explicado cada trecho de nosso programa…

Caso prefira, você pode fazer o download de nosso algoritmo e testar no VisualG:

Cadastro de Alunos - Aprenda a Programar #13 (87)

Que tal praticar agora tudo o que você aprendeu?

Disponibilizamos para vocês 40 exercícios de Algoritmos e suas respectivas soluções. Mais de 2 mil pessoas já baixaram, está esperando o que para baixar e começar a praticar?

E aqui termina o último post da série ‘Aprenda a Programar’!

Continue Estudando!!!

Quer continuar estudando e se tornar um excelente programador? Recomendo a leitura do livro: Algoritmos e Programação – Teoria e Prática da editora Novatec. Vale a pena dar uma olhada.

Aprenda PHP no Algoritmizando!

PHP é uma das linguagens de programação mais utilizadas nos dias atuais, com ela é possível desenvolver desde simples páginas web até mesmo poderosos sistemas que rodam em qualquer navegador.

E o Algoritmizando agora ensina vocês a aprender a programar em PHP partindo do zero!

Está esperando o que para começar??? Enjoy!!!

Gostaríamos do seu feedback, deixe um comentário! O que você achou da série? O que poderíamos melhorar para o próximo? Sua opnião é muito importante para nós! Um forte abraço algoritmizeiros! e nos sigam no Twitter!


Receba nossos artigos em seu Email!


Digite o seu email abaixo:

Posts Relacionados:

Sobre o Autor: Bruno Barbosa

Bruno Barbosa cursa Análise e Desenvolvimento de Sistemas, é programador Python, Desenvolvedor Web, usuário Linux e entusiasta de Software Livre. Utiliza no dia-a-dia Python, Zope/Plone e o framework web2py para desenvolvimento de aplicações web. Me siga também no Twitter.

14 Comments + Add Comment

  • O post ficou maneirissímo!!! Curti muito o “indíce” ali no final, parabéns manolo!!

    Aprenda a programar é Sucesso! =)

    [Reply]

    Bruno Barbosa Reply:

    Valeu brother…
    Agora poderei concentrar na próxima série de posts… =)

    Até mais.

    [Reply]

  • Seria legal lançar um pdf com todos os capitulos inclusos o/ iria ser show.

    [Reply]

  • o que é uma matriz?
    Não entendi a parte de “linhas” e “colunas”.

    nome: vetor[,] de

    Exemplo:

    minhavar: vetor[1..3,1..3] de caractere “aqui o n° 1 e´a linha e o 3 é a coluna?”

    Onde é o primeiro valor? “é o n° 1 ou 1..3?” porque temos duas vezes “1..3,1..3″
    se puder me ajudar obrigado.

    [Reply]

    Bruno Barbosa Reply:

    Olá Fabio,

    Para entender matriz, primeiro você tem que ver se não tem mais nenhuma dúvida em vetores.

    >> minhavar: vetor[1..3,1..3] de caractere “aqui o n° 1 e´a linha e o 3 é a coluna?”

    A sua dúvida vou explicar de acordo com a sintaxe da matriz:

    Sintaxe: nome: vetor[ ,
    ] de

    o primeiro [1..3,1..3] significa que teremos 3 linhas em nossa matriz, e o segundo 1..3, o que está após a vírgula ([1..3,1..3] significa que teremos 3 colunas.

    Se ainda restarem dúvidas, pode deixar seu comentário. E seria interessante também você dar uma revisada em nosso post onde ensinamos o que é um vetor. Ele é um pré-requisito para entender matriz, que nada mais é do que vetores bi-dimensionais.

    Abraços.

    [Reply]

  • Muito obrigado pela ajuda!!! Vou iniciar meu curso técnico em informática em fevereiro e ele é voltado para programação. Por isso já estou dando uma estudada no português estruturado. Parabéns pelo seu blog, continue com seu trabalho porque tenho certeza que além de me ajudar, ajuda também muitas pessoas que querem um dia programar e é claro que também já estão no caminho. Afinal algoritmos é a base.

    [Reply]

  • Algoritmo Agenda
    ?
    Contactos:
    Nome: texto
    NomeEmpresa: Texto
    DataNascimento: Data
    Telefone: Int
    Telemovel: Int
    Email: Texto
    Morada: Texto
    TipoRelacionamento: Texto

    Var:
    Contactos [500]: contacto
    N: Int
    ?
    algoritmo: MenuAgenda
    var: op: int
    op ? 0
    repetir
    escrever (1: Adicionar contactos)
    escrever (2: Remover contactos)
    escrever (3: Editar contactos)
    escrever (4: Consultar contactos)
    escrever (5: Sair)
    escrever (Escolha uma opção)
    ler (op)
    caso op
    1: AdicionarContacto()
    2: RemoverContacto()
    3: EditarContacto()
    4: ConsultarContacto()
    senão escrever(“Digite um número entre 1 e 5!!!”)
    ate op = 5
    fim_caso
    fim
    ?
    algoritmo: AdicionarContacto()
    var: TotalContactos: int
    TotalContactos ? 0
    repetir
    TotalContactos ? TotalContactos + 1
    escrever(“Nome: ”)
    ler (Contactos[N].Nome)
    escrever(“Nome da Empresa: ”)
    ler (Contactos[N].NomeEmpresa)
    escrever(“Data de Nascimento: “)
    ler (Contactos[N].DataNascimento)
    escrever(“Telefone: ”)
    ler (Contactos[N].Telefone)
    escrever(“Telemóvel: “)
    ler (Contactos[N].Telemovel)
    escrever(“E-mail: “)
    ler (Contactos[N].Email)
    escrever(“Morada: “)
    ler (Contactos[N].Morada)
    escrever(“Tipo de Relacionamento: ”)
    ler (Contactos[N].TipoRelacionamento)
    escrever(“0 para sair!!!”)
    ate Contactos[TotalContactos].Nome = 0 ou TotalContactos > 500
    fim
    ?
    (? é a seta para a esquerda de atribuição)

    Boas

    Estou a fazer um algoritmo para uma agenda que tem que estar sempre ordenada alfabeticamente pelo nome da pessoa inserido, só que não sei como ordenar, até agora tenho o pseudocódigo acima transcrito, falta-me a ordenação e o resto dos menus, se alguém poder dar umas dicas agradeço muito.

    Cumprimentos,

    Paulo Martins

    [Reply]

  • muito obrigado

    [Reply]

  • Olá Bruno, eu curso Análise de Sistemas na UFPR, estou no 1º período, comecei este ano, e estou vendo vetores agora…fiquei com dúvidas em Pesquisa Binária e Pesquisa Sequencial Básica…mais você não comentou aqui…infelizmente.
    Mais enfim gostei muito dos seus posts…você sabe como explicar direitinho, entendi muito bem vetores no geral. Parabéns pelo blog.
    BJo (.^^)

    [Reply]

  • Parabéns Bruno muito bom esses seus posts do “Aprenda a programar”.

    abs.

    [Reply]

  • Olá, gostaria de perguntar como posso fazer um sistema tipo de senha, onde os caracteres escritos em um campo “leia” sejam substituídos por asteriscos… Alguém pode me ajudar?
    OBS: Gostaria que os caracteres seja apenas camuflados, para eu poder utiliza-lo depois!
    OBS2.: Gostaria de fazer isto utilizando o VisuAlg!
    Abraços, aguardo respostas!

    [Reply]

    Bruno Barbosa Reply:

    Olá Fabio,

    O VisualG e sua linguagem (Portugol) tem objetivos apenas didáticos, e não é possível fazer esse tipo de operação.
    Mas são tarefas absolutamente triviais em outra linguagem de programação.

    Agora que você terminou de ler todos os posts da série ‘Aprenda a Programar’, por que não tentar aprender uma nova linguagem de programação? Já conhece Python?

    Abraços.

    [Reply]

  • Ótimo trabalho!
    Mais eu gostaria de saber como programo o virtualG para fazer calculos
    exmplo

    2+2
    4.6
    5/6
    ou até

    x^2+4x+6

    coisas assim
    tem como vc me encinar
    por favor

    [Reply]

  • Oiie Bruno, muitoo muito agradecida peloos posts, foram de grande ajuda para miim, curso 1 semestre do Tecnico em Informatica pela Federal, e estava com algumas dificuldades para entender algoritmos, depois de ler seus posts minha consegui entender melhoor, tenhoo prova de algoritmo amanaha, espero que saiia bem *-* … Obrigada …

    [Reply]

Deixe o sua opinião abaixo

Wix – Criador de Sites

World Plone Day

World Plone Day

Nossos posts no seu Email

Informe seu email abaixo para receber nossas atualizações.

Facebook

Destaques

QuebraLink - Decodifica e inverte links Aprender Algoritmos Dicas Ubuntu Otimização de Sites

Sites Legais

Banner MeuPinguim

Vida de Programador Dicas em Geral - Dicas sobre Informática, Tecnologia e Inclusão Digital Ubuntu Dicas Infológico