Professor Mauricio Lederer 2014 Tabelas (ou Vetores ou Matriz ou Arrays) Suponha que num problema eu necessite armazenar até 5 números de telefone de um cliente. Eu poderia criar 5 variáveis, por exemplo: numeroTelefone1 numeroTelefone2 numeroTelefone3 numeroTelefone4 numeroTelefone5 Estas 5 variáveis teriam a mesma característica e iriam guardar o mesmo tipo de informação. Para este caso, podemos criar uma Tabela com 5 elementos. Para isto basta criar uma única variável numeroTelefone e assinalar que eu preciso de 5 elementos. numeroTelefone[5] Assim, quando eu preciso mover um conteúdo para uma das 5 variáveis, basta eu indicar para qual elemento da tabela eu estou movendo, por exemplo: numeroTelefone(1) = 33242424 Obs: Se eu criei a tabela dizendo que ela terá 5 posições e tentar mover ou verificar uma posição fora da tabela, acarreta um erro no meu programa. O número 1 entre parêntesis indica que eu estou movendo o número 33242424 para a posição 1 da tabela. Seu nome é índice da tabela e ele pode ser uma variável. Algoritmos e Lógica de Programação – Linguagem de Programação I Página 1 Professor Mauricio Lederer 2014 Algoritmo TabelaExemplo1 var numeroTelefone[5]: inteiro; Início ixTelefone = 1; numeroTelefone(ixTelefone) = 33253464; ixTelefone = ixTelefone + 1; numeroTelefone(ixTelefone) = 33457765; ixTelefone = ixTelefone + 1; numeroTelefone(ixTelefone) = 35673342; ixTelefone = ixTelefone + 1; numeroTelefone(ixTelefone) = 35675632; ixTelefone = ixTelefone + 1; numeroTelefone(ixTelefone) = 33453542; Para (ixTelefone = 1 ; ixTelefone > 5 ; ixTelefone = ixTelefone + 1) Se numeroTelefone(ixTelefone) > 0 Escreva numeroTelefone(ixTelefone); Fim-se; Fim-para; Fim Algoritmos e Lógica de Programação – Linguagem de Programação I Página 2 Professor Mauricio Lederer 2014 Exemplo 2: Ler 100 números de um arquivo e apresentá-los na ordem inversa da leitura. No final dizer também em que posição encontra-se o número 2313. Algoritmo TabelaExemplo2 var numero[100]: inteiro; Início ixNum = 1; leia (numeroArquivo); Faça enquanto não for fim de arquivo E ixNum <= 100 numero(ixNum) = numeroArquivo; ixNum = ixNum + 1; leia (numeroArquivo); Fim-enquanto; Para (ixNum = 100 ; ixNum > 0 ; ixNum = ixNum - 1) escreva (numero(ixNum)); Se numero(ixNum) = 2313 posicao = ixNum; Fim-se; Fim-para; Se posicao > 0 escreva (“A posição do número 2313 é “, posição); Senão escreva (“O número 2313 não estava no arquivo”); Fim-se; Fim Algoritmos e Lógica de Programação – Linguagem de Programação I Página 3 Professor Mauricio Lederer 2014 Exemplo 3: Uma loja comercializa 5 tipos de mercadorias. A quantidade de mercadorias em estoque e o preço de cada uma das 5 devem ser informadas pelo usuário através do teclado e armazenadas em duas tabelas. Ao final de cada dia de trabalho, o comerciante informa a quantidade vendida de cada mercadoria. Faça um algoritmo que: Calcule e informe ao comerciante a situação do estoque de cada mercadoria; Calcule e informe o faturamento do dia. Algoritmo Faturamento var estoque[5]: inteiro; preco[5]: real; qtdeVendida[5]: inteiro; faturamento: real; Início Para (i = 1 ; i > 5 ; i++) escreva (“Informe o estoque inicial da mercadoria “, i); leia (estoqueDigitado); estoque(i) = estoqueDigitado; escreva (“Informe o preco da mercadoria “, i); leia (precoDigitado); preco(i) = precoDigitado; escreva (“Informe a Quantidade vendida da mercadoria “, i); leia (qtdeVendidaDigitada); qtdeVendida(i) = qtdeVendidaDigitada; Fim-para Para (i = 1 ; i > 5 ; i++) estoque(i) = estoque(i) – qtdeVendida(i); faturamento = faturamento + ( qtdeVendida(i) * preco(i) ); escreva (“O estoque atual do produto “, i , “é “, estoque(i)); Fim-para escreva (“O faturamento do dia foi de “, faturamento); Fim Algoritmos e Lógica de Programação – Linguagem de Programação I Página 4 Professor Mauricio Lederer 2014 Exercícios: 1. Faça um algoritmo que determine qual o maior elemento dentro de uma tabela com 1000 números. 2. Faça um algoritmo que determine qual o maior e o menor elemento dentro de uma tabela com 1000 números. 3. Faça um algoritmo que determine quantos números maiores que 1000 dentro de uma tabela com 10 números. 4. Faça um algoritmo que determine quantas vogais existem em uma tabela com 50 posições contendo letras. 5. Faça um algoritmo que determine quantos dígitos numéricos existem em uma tabela com 50 posições contendo caracteres diversos. 6. Faça um algoritmo que receba três tabelas de 6 ocorrências cada uma. As duas primeiras conterão números e a terceira será uma tabela de caracteres preenchida com as quatro operações aritméticas básicas. O algoritmo efetuará as operações contidas na terceira tabela com a primeira tabela como operador1 e a segunda tabela como operador2. O resultado deve ser armazenado em uma quarta tabela e mostrado no final. Exemplo: Tabela 1: 10 5 7 11 3 45 Tabela 2: 1 5 4 15 1 5 Tabela 3: ‘+’ ‘*’ ‘-‘ ‘-’ ‘+’ ‘/’ Resultado: 11 25 3 -4 4 9 7. Faça um algoritmo que leia um arquivo contendo o Número e Nome das Agências de um banco e carregue em uma tabela, colocando o nome da agência na posição correspondente ao seu número (supor, no máximo 2000 agências). Em seguida leu um segundo arquivo contendo o número da Agência e a quantidade de funcionários da agência e imprimir um relatório com o Nome da agência e esta quantidade de funcionários. Algoritmos e Lógica de Programação – Linguagem de Programação I Página 5