http://olinux.uol.com.br/artigos/444/print_preview.html



                    Curso de Algoritmo - Aula X
                    Por: Jorge Luiz E. Sousa ( 15/02/2002 )




                        Introdução

                    Olá, comunidade!

                    Hoje começa uma nova faze do curso, onde veremos algumas estruturas novas e muito importantes
                    para programação. São chamadas VETORES.

                        Definição

                    São estruturas unidimensionais e homogêneas capazes de armazenar um número determinado de
                    variáveis e referenciálas utilizando uma estrutura de índice. De acordo com esta descrição, vejamos um
                    exemplo:

                    Exemplo de um vetor de 8 (oito) posições
                    5 15 25 100 0 21 35 50

                    Exemplo de um vetor de 8 (oito) posições
                    'JLes' 'Exemplo' 'de' 'VETORES' '' '' '' ''


                    Observe nas estruturas acima, que:


                          q   No primeiro exemplo temos um vetor numérico
                          q   No segundo temos um vetor literal
                          q   Os dois exemplos estão totalmente preenchidos
                          q   O primeiro vetor foi inicializado com zeros
                          q   O segundo vetor foi inicializado com '' (espaços/vazio)
                          q   Ambos são homogêneos, isto é, seu conteúdo é do mesmo tipo
                          q   Ambos são unidimencionais, um índice basta para referenciar as posições do vetor.


                    Com a explicação acima, concluimos que vetores são variáveis com múltiplas posições.


                        Sintaxe

                    A sintaxe de declaração de variáveis para vetores é:

                    Declare <NomeDaVariável> : Vetor [INI .. FIM]
                    TipoDoVetor


                    Onde:


                          q   Declare é a palavra reservada para declaração de variáveis (sempre no início do Algoritmo)
                          q   <NomeDaVariável> : é o nome dado pelo usuário para a variável
                          q   Vetor é a palavra reservada para definir que uma variável é do tipo VETOR
                          q   [INI .. FIM] define a quantidade de ítens de um vetor
                          q   TipoDoVetor define o tipo de variável que o vetor vai armazenar.


                    Exemplo:

                    Declare vetNome : vetor [1..50] literal
                    Declare vetSalario : vetor [1..50] numérico inteiro


                        Características


                          q   Unidimensionais,
q   Homogêneos,
    q   Um mesmo indice pode acessar valores em vários vetores distintos, desde que haja uma relação
        entre eles e sejam "do mesmo tamanho".
    q   Ao tentar acessar uma posição inexistente, ocorrerá um erro no programa.
    q   Vetores só existem na memória do computador e durante a execução de um programa ou
        "PROCEDIMENTO", não sendo estruturas para armazenamento permanente.

Obs.: PROCEDIMENTOS e FUNÇÕES serão matéria de aulas futuras




   Referência

Para acessar uma determinada posição do vetor, será necessário informar o nome do vetor e a posição
desejada.

Exemplo:

NomeAtual <- vetNome[40]
SalarioAtual <- vetSalario[40]


   Aplicação

Estas estruturas são utilizadas para armazenar temporáriamente vários valores relacionados.

Como mostrado no exemplo anterior, podemos ter vários vetores de "N" posições, armazenando dados
diferentes e relacionados, "SIMULANDO EM MEMÓRIA", o armazenamento de informações, para
referência futura.

   Exemplo

Como exemplo, vamos criar uma agenda virtual, que durante sua execução, armazenará: Nome,
Telefone, endereço e e-mail de 100 pessoas.

Algoritmo

Declare Nome,Ender,Telefone,EMail: vetor [1..100]literal
    Indice: numérico inteiro

//Início do algoritmo

    //Inicializando indice

    Indice<-1

    //Inicializando vetores
    Parai<- 1 até 100 Faça
        Nome[i]<-''
        Ender[i]<-''
        Telefone[i]<-''
        EMail[i]<-''
    FimPara //Obtendo dados do usuário
    Para i<- 1 até 100 Faça
        Escreva('Digite o nome:')
        Leia(Nome[i])
        Escreva('Digite o Endereco')
        Leia(Ender[i])
        Escreva('Digite o Telefone')
        Leia(Telefone[i])
        Escreva('Digite o e-mail')
        Leia(EMail[i])
    FimPara


    //Listando todos os registros em sequência
    Parai<- 1 até 100 Faça
        Escreva(Nome[i])
        Escreva(Ender[i])
Escreva(Telefone[i])
        Escreva(EMail[i])
    FimPara
FimAlgoritmo




Análise do algoritmo exemplo

Primeira Análise

O algoritmo acima contém muitas falhas, mas para uma visão inicial, serve ao propósito.

Segunda Análise

Note que a mesma estrutura "PARA" foi utilizada para todos os processos, a saber: Inicialização dos
vetores, obtenção dos dados e associação dos mesmos à uma mesma pessoa e impressão dos dados.

Terceira análise

O algoritmo, por utilizar a estrutura para, quando estiver no segundo laço (obtenção dos dados), não
vai parar antes de ler todos os 100 registros. Isto pode ser muito cansativo e é desagradável pensar
que estes dados serão perdidos assim que se chegar ao fim do algoritmo.

Quarta análise

Vetores são estruturas interessantes e úteis, mas não para uma agenda. sendo que a melhor utilização
desta estrutura seria, como forma, por exemplo, de guardar os últimos 100 registros lidos de um banco
de dados na memória para acesso imediato. Desta maneira, o acesso a disco (que é lento), seria feito
"uma vez somente", e os dados seriam acessados a partir da memória, que é muito mais eficiente e
rápido.


   Conclusão

Com o decorrer do curso, utilizaremos este mesmo algoritmo, melhorando-o a cada novo recurso
aprendido. Ao final, teremos um algoritmo de agenda completo, com arquivamento em disco e tudo o
que mais for de direito de uma agenda, inclusive o Programa codificado em pascal para DOS, utilizando
a interface do Delphi para implementação.

A próxima aula será sobre matrízes.

Espero que tenham apreciado, Críticas e Sugestões são bem vindas!




                                 Copyright (C) 1999- 2 0 0 0 Linux Solutions

Curso De Algoritmo Aula 10

  • 1.
    http://olinux.uol.com.br/artigos/444/print_preview.html Curso de Algoritmo - Aula X Por: Jorge Luiz E. Sousa ( 15/02/2002 ) Introdução Olá, comunidade! Hoje começa uma nova faze do curso, onde veremos algumas estruturas novas e muito importantes para programação. São chamadas VETORES. Definição São estruturas unidimensionais e homogêneas capazes de armazenar um número determinado de variáveis e referenciálas utilizando uma estrutura de índice. De acordo com esta descrição, vejamos um exemplo: Exemplo de um vetor de 8 (oito) posições 5 15 25 100 0 21 35 50 Exemplo de um vetor de 8 (oito) posições 'JLes' 'Exemplo' 'de' 'VETORES' '' '' '' '' Observe nas estruturas acima, que: q No primeiro exemplo temos um vetor numérico q No segundo temos um vetor literal q Os dois exemplos estão totalmente preenchidos q O primeiro vetor foi inicializado com zeros q O segundo vetor foi inicializado com '' (espaços/vazio) q Ambos são homogêneos, isto é, seu conteúdo é do mesmo tipo q Ambos são unidimencionais, um índice basta para referenciar as posições do vetor. Com a explicação acima, concluimos que vetores são variáveis com múltiplas posições. Sintaxe A sintaxe de declaração de variáveis para vetores é: Declare <NomeDaVariável> : Vetor [INI .. FIM] TipoDoVetor Onde: q Declare é a palavra reservada para declaração de variáveis (sempre no início do Algoritmo) q <NomeDaVariável> : é o nome dado pelo usuário para a variável q Vetor é a palavra reservada para definir que uma variável é do tipo VETOR q [INI .. FIM] define a quantidade de ítens de um vetor q TipoDoVetor define o tipo de variável que o vetor vai armazenar. Exemplo: Declare vetNome : vetor [1..50] literal Declare vetSalario : vetor [1..50] numérico inteiro Características q Unidimensionais,
  • 2.
    q Homogêneos, q Um mesmo indice pode acessar valores em vários vetores distintos, desde que haja uma relação entre eles e sejam "do mesmo tamanho". q Ao tentar acessar uma posição inexistente, ocorrerá um erro no programa. q Vetores só existem na memória do computador e durante a execução de um programa ou "PROCEDIMENTO", não sendo estruturas para armazenamento permanente. Obs.: PROCEDIMENTOS e FUNÇÕES serão matéria de aulas futuras Referência Para acessar uma determinada posição do vetor, será necessário informar o nome do vetor e a posição desejada. Exemplo: NomeAtual <- vetNome[40] SalarioAtual <- vetSalario[40] Aplicação Estas estruturas são utilizadas para armazenar temporáriamente vários valores relacionados. Como mostrado no exemplo anterior, podemos ter vários vetores de "N" posições, armazenando dados diferentes e relacionados, "SIMULANDO EM MEMÓRIA", o armazenamento de informações, para referência futura. Exemplo Como exemplo, vamos criar uma agenda virtual, que durante sua execução, armazenará: Nome, Telefone, endereço e e-mail de 100 pessoas. Algoritmo Declare Nome,Ender,Telefone,EMail: vetor [1..100]literal Indice: numérico inteiro //Início do algoritmo //Inicializando indice Indice<-1 //Inicializando vetores Parai<- 1 até 100 Faça Nome[i]<-'' Ender[i]<-'' Telefone[i]<-'' EMail[i]<-'' FimPara //Obtendo dados do usuário Para i<- 1 até 100 Faça Escreva('Digite o nome:') Leia(Nome[i]) Escreva('Digite o Endereco') Leia(Ender[i]) Escreva('Digite o Telefone') Leia(Telefone[i]) Escreva('Digite o e-mail') Leia(EMail[i]) FimPara //Listando todos os registros em sequência Parai<- 1 até 100 Faça Escreva(Nome[i]) Escreva(Ender[i])
  • 3.
    Escreva(Telefone[i]) Escreva(EMail[i]) FimPara FimAlgoritmo Análise do algoritmo exemplo Primeira Análise O algoritmo acima contém muitas falhas, mas para uma visão inicial, serve ao propósito. Segunda Análise Note que a mesma estrutura "PARA" foi utilizada para todos os processos, a saber: Inicialização dos vetores, obtenção dos dados e associação dos mesmos à uma mesma pessoa e impressão dos dados. Terceira análise O algoritmo, por utilizar a estrutura para, quando estiver no segundo laço (obtenção dos dados), não vai parar antes de ler todos os 100 registros. Isto pode ser muito cansativo e é desagradável pensar que estes dados serão perdidos assim que se chegar ao fim do algoritmo. Quarta análise Vetores são estruturas interessantes e úteis, mas não para uma agenda. sendo que a melhor utilização desta estrutura seria, como forma, por exemplo, de guardar os últimos 100 registros lidos de um banco de dados na memória para acesso imediato. Desta maneira, o acesso a disco (que é lento), seria feito "uma vez somente", e os dados seriam acessados a partir da memória, que é muito mais eficiente e rápido. Conclusão Com o decorrer do curso, utilizaremos este mesmo algoritmo, melhorando-o a cada novo recurso aprendido. Ao final, teremos um algoritmo de agenda completo, com arquivamento em disco e tudo o que mais for de direito de uma agenda, inclusive o Programa codificado em pascal para DOS, utilizando a interface do Delphi para implementação. A próxima aula será sobre matrízes. Espero que tenham apreciado, Críticas e Sugestões são bem vindas! Copyright (C) 1999- 2 0 0 0 Linux Solutions