No mundo real os seres humanos executam algoritmos. Os sistemas computacionais implementam estratgias para implementar alguns problemas que os seres humanos enfrentam e que podem ser resolvidos com maior rapidez e maior preciso.
Vamos comear nossos estudos com a primeira categoria de estratgia de desenvolvimento de algoritmos: a estrutura sequencial.
2014/1 Todos os direitos reservados A Estrutura Sequencial
A Estrutura Sequencial utiliza a estratgia algortmica mais simples de ser executada, que a sequencialidade.
Vamos lembrar da definio de algoritmo que eu apresentei no primeiro material de estudos: uma estrutura de passos bem definidos para que, quem o estiver seguindo possa chegar a um resultado previsto.
A primeira coisa que fazemos quando definimos passos para serem seguidos a ordenao. Por exemplo, veja que, em uma receita, a ordem de mistura dos ingredientes pode mudar totalmente o resultado da receita. Ou ento, para que possamos trocar um pneu, ser impossvel fazer a troca sem antes desparafusar a roda, suspender o pneu. Ento preciso colocar ordem.
Portanto, a estrutura sequencial prope que a resoluo de problemas comea com uma sequencia de passos ordenados. Os passos sero executados exatamente na ordem em que aparecem. Simples assim.
Vou apresentar ento uma srie de exerccios para ilustrar o desenvolvimento de algoritmos com a estrutura sequencial.
Para isso, separei uma srie de casos mais comuns, que eu encontrei na minha prtica como professor.
Vamos l.
Casos de uso da Estrutura Sequencial
Os casos de uso mais comuns da estrutura sequencial so:
problemas que envolvem o uso de expresses ou frmulas matemticas problemas que envolvem regra de trs problemas que envolvem porcentagem
Vamos ento estudar essas situaes.
a) Problemas que envolvem o uso de frmulas matemticas em geral
A implementao de uso de frmulas matemticas nosso primeiro caso de aplicao da Estrutura Sequencial.
O estudo da matemtica nos acompanha desde nossos estudos no ensino fundamental. Portanto, temos n casos como exemplo. 3 Algoritmos - Estrutura Sequencial: Elaborando Algoritmos Prof. Waine Teixeira Jnior
2014/1 Todos os direitos reservados Vamos utilizar os operadores j apresentados anteriormente.
Na construo de expresses ou frmulas matemticas utilizamos sinais de parnteses, chaves e colchetes. Entretanto, em Portugol, utilizamos apenas o sinal de parnteses para indicar a prioridade.
S para relembrar, a ordem de execuo sempre da esquerda para a direita, priorizando: 1. Radiciao e exponenciao; 2. Diviso e multiplicao; 3. Soma e subtrao.
Vamos agora ao exerccio.
Escreva um algoritmo para realizar a soma de dois nmeros reais, A e B. Leia as variveis A e B pelo teclado. Calcule a soma de A + B, atribuindo o resultado varivel chamada SOMA. Mostre o resultado da varivel soma.
A tcnica bsica para a resoluo de algoritmos : 1. Ler e compreender exatamente o que est sendo solicitado; 2. Buscar separar ou estruturar o enunciado do exerccio em entrada, processamento e sada; 3. Separar cada comando em uma linha; 4. Refinar os comandos e/ou operaes de processamento se for o caso; 5. Escrever o algoritmo em comandos em Portugol; 4 Algoritmos - Estrutura Sequencial: Elaborando Algoritmos Prof. Waine Teixeira Jnior
2014/1 Todos os direitos reservados 6. Coloque os comandos de apresentao de interface para o usurio (mensagens na tela, limpeza de tela, etc.); 7. Definir os tipos de variveis para as variveis utilizadas; 8. Atribuir um nome ao algoritmo.
Vejamos os passos que eu utilizo para a resoluo desse algoritmo.
1 estudo: separao entre entrada, processamento e sada.
Entrada Leia as variveis A e B pelo teclado Processamento Calcule a soma de A + B, atribuindo o resultado varivel chamada SOMA Sada Mostre o resultado da varivel soma
2 estudo: separao dos comandos, um por linha.
Entrada Leia a variveis A Leia a varivel B Processamento Calcule a soma de A + B, atribuindo o resultado varivel chamada SOMA Sada Mostre o resultado da varivel soma
3 estudo: escrever os comandos em Portugol.
Entrada Leia (A) Leia (B) Processamento SOMA A + B Sada Escreva (SOMA)
4 estudo: escrever os comandos de interface para o usurio. Foram inseridas mensagens para o usurio digitar o valor e tambm para apresentao do resultado. O comando Escrava foi substitudo pelo comando Escreval, para que cada mensagem aparea em uma linha separada.
Entrada Escreval (Digite o valor da varivel A) Leia (A) Escreval (Digite o valor da varivel B) Leia (B) Processamento SOMA A + B Sada Escreval (O resultado da soma de A + B = , SOMA)
5 estudo: definir os tipos de dados para as variveis utilizadas.
Variveis A, B, SOMA: real Entrada Escreval (Digite o valor da varivel A) Leia (A) Escreval (Digite o valor da varivel B) 5 Algoritmos - Estrutura Sequencial: Elaborando Algoritmos Prof. Waine Teixeira Jnior
2014/1 Todos os direitos reservados Leia (B) Processamento SOMA A + B Sada Escreval (O resultado da soma de A + B = , SOMA)
6 estudo: nomear o algoritmo.
Nome Exerccio01 Variveis A, B, SOMA: real Entrada Escreval (Digite o valor da varivel A) Leia (A) Escreval (Digite o valor da varivel B) Leia (B) Processamento SOMA A + B Sada Escreval (O resultado da soma de A + B = , SOMA)
O algoritmo final deve ser:
Algoritmo Exerccio01 Variveis A, B, SOMA: real Incio Escreva (Digite o valor da varivel A) Leia (A) Escreva (Digite o valor da varivel B) Leia (B) SOMA A + B Escreva (O resultado da soma de A + B = , SOMA) FimAlgorimto
O teste de mesa
O teste de mesa um procedimento que realizamos aps a elaborao de um algoritmo, para verificar sua corretitude, simulando mentalmente, o funcionamento de um computador.
O procedimento simples.
Vamos testar somente o trecho que est delimitado por Incio e FimAlgoritmo. Para isso vamos numerar todas as linhas, para facilitar nosso processo.
1. Escreva (Digite o valor da varivel A) 2. Leia (A) 3. Escreva (Digite o valor da varivel B) 4. Leia (B) 6 Algoritmos - Estrutura Sequencial: Elaborando Algoritmos Prof. Waine Teixeira Jnior
2014/1 Todos os direitos reservados 5. SOMA A + B 6. Escreva (O resultado da soma de A + B = , SOMA)
Muito bem. Agora vamos simular o funcionamento do computador. Basicamente, temos 2 pontos que nos interessam: a memria e a tela do computador, que vai mostrar as interaes e resultados. Logo, vamos construir uma estrutura que delimita essas duas reas:
Memria Tela
Agora vamos separar a memria de acordo com as variveis que foram declaradas na seo Variveis: A, B e SOMA.
Memria Tela A B SOMA
Agora vamos colocar o pseudocdigo na nossa tabela:
Algoritmo Memria Tela A B SOMA 1. Escreva (Digite o valor da varivel A)
2. Leia (A)
3. Escreva (Digite o valor da varivel B)
4. Leia (B)
5. SOMA A + B
6. Escreva (O resultado da soma de A + B = , SOMA)
Muito bem, agora vamos testar o algoritmo.
Minha orientao que quando for testar um algoritmo, utilizar valores pequenos sempre que possvel, para serem fceis de serem testados mentalmente, isso quer dizer, sem precisar de uso de calculadora.
Vamos testar ento com A valendo 1,5 e B valendo 2,5.
Memria Tela A B SOMA 1. Escreva (Digite o valor da varivel A) Digite o valor da varivel A 2. Leia (A) 1,5 1,5 3. Escreva (Digite o valor da varivel B) Digite o valor da varivel B Se, depois de inserirmos valores, no houver alterao nas variveis da memria, no h necessidade de repetir o valor nas clulas abaixo. Mas fica ao critrio do aluno repetir os valores ou no. 4. Leia (B) 2,5 5. SOMA A + B 4,0 6. Escreva (O resultado da soma de A + B = , SOMA) O resultado da soma de A + B = 4 7 Algoritmos - Estrutura Sequencial: Elaborando Algoritmos Prof. Waine Teixeira Jnior
2014/1 Todos os direitos reservados
Na linha 1, a mensagem foi apresentada na tela, conforme o comando escreva indicou. Na linha 2, o valor 1,5 foi digitado pelo usurio e apareceu na tela. Em seguida, o valor foi levado para a memria, no compartimento A, simulando a memria do computador. Na linha 3, a mensagem foi apresentada na tela, conforme o comando escreva indicou. Na linha 4, o valor 2,5 foi digitado pelo usurio e apareceu na tela. Em seguida, o valor foi levado para a memria, no compartimento A, simulando a memria do computador. Na linha 5, o compartimento SOMA recebeu o resultado da operao SOMA A + B. Na linha 6, a mensagem foi apresentada na tela, conforme o comando escreva indicou, incluindo o valor da varivel SOMA.
Importante, os finais valores da memria so observados nas colunas das variveis. Os ltimos valores que contam.
Se no conseguiu seguir o raciocnio, tente novamente desde o incio.
Vou agora inserir o cdigo no VISUALG e testar com os mesmos valores.
Finalmente, a tela do VISUALG, com a execuo do algoritmo:
b) Problemas que envolvem regra de trs
Uma srie de problemas que envolvem matemtica so mais facilmente resolvidos utilizando a tcnica de regra de trs como ferramenta para a descoberta do clculo. Por isso escrevi um material especfico para a reviso desse contedo e disponibilizei no Moodle. Tire um tempinho para estuda-lo. Vamos ao exerccio:
Elabore um algoritmo para calcular o salrio que uma pessoa receber por ms. Leia a quantidade de horas trabalhadas, como um valor real. Considere o ganho de 23,70 por hora.
Vamos executar os passos que eu sugeri para o desenvolvimento do algoritmo:
2014/1 Todos os direitos reservados 1. estudo: separao entre entrada, processamento e sada.
Nome Variveis Entrada Quantidade de horas trabalhadas Processamento Calcular o salrio que uma pessoa receber por ms Sada O salrio que uma pessoa receber por ms
2. estudo: separao dos comandos, um por linha.
Nome Variveis Entrada Ler a quantidade de horas trabalhadas Processamento Calcular o salrio que uma pessoa receber por ms Pergunta: como realizar esse clculo?
Se uma pessoa recebe 23,70 por hora, quanto recebe por ms?
Aplicando regra de trs: Se recebe 30 dias, cada dia 8 horas, ento recebe o trabalho de 30 x 8 = 240 horas
Tempo em horas Valor em reais 1 23,70 qHorasTrabalhadas X
Como se trata de regra de trs direta, s aplicar o clculo:
1 = 23,70 qHorasTrabalhadas X X= qHorasTrabalhadas *23,70 Como X o salrio que queremos saber, ento temos a expresso matemtica:
salario qHorasTrabalhadas *23,70
Sada Escrever o salrio que uma pessoa receber por ms
3. estudo: escrever os comandos em Portugol.
Nome Variveis Entrada Leia (qHorasTrabalhadas) Processamento salario qHorasTrabalhadas *23,70 Sada Escreva (O salrio que uma pessoa receber por ms : = , salario)
4. estudo: escrever os comandos de interface para o usurio. 10 Algoritmos - Estrutura Sequencial: Elaborando Algoritmos Prof. Waine Teixeira Jnior
2014/1 Todos os direitos reservados
Nome Variveis Entrada Escreval (Digite a quantidade de horas trabalhadas) Leia (qHorasTrabalhadas) Processamento salario qHorasTrabalhadas *23,70 Sada Escreval (O salrio que uma pessoa receber por ms : = , salario)
5. estudo: definir os tipos de dados para as variveis utilizadas.
Nome Variveis horas, salario: real Entrada Escreval (Digite a quantidade de horas trabalhadas) Leia (qHorasTrabalhadas) Processamento salario qHorasTrabalhadas *23,70 Sada Escreval (O salrio que uma pessoa receber por ms : = , salario)
6. estudo: nomear o algoritmo.
Nome Exerccio02 Variveis horas, salario: real Entrada Escreval (Digite a quantidade de horas trabalhadas) Leia (qHorasTrabalhadas) Processamento salario qHorasTrabalhadas *23,70 Sada Escreval (O salrio que uma pessoa receber por ms : = , salario)
O algoritmo final deve ser:
Exerccio02 Variveis horas, salario: real Incio Escreval (Digite a quantidade de horas trabalhadas) Leia (qHorasTrabalhadas) salario qHorasTrabalhadas *23,70 Escreval (O salrio que uma pessoa receber por ms : = , salario) FimAlgoritmo
O teste de mesa
Vamos ao teste de mesa. Supondo que o funcionrio trabalhou somente 10 horas, ento:
Algoritmo Memria Tela qHorasTrabalhadas salario 11 Algoritmos - Estrutura Sequencial: Elaborando Algoritmos Prof. Waine Teixeira Jnior
2014/1 Todos os direitos reservados 1. Escreval (Digite a quantidade de horas trabalhadas)
Digite a quantidade de horas trabalhadas 2. Leia (qHorasTrabalhadas) 10 10 3. salario qHorasTrabalhadas *23,70 237,00 4. Escreval (O salrio que uma pessoa receber por ms : = , salario)
O salrio que uma pessoa receber por ms : = 237
c) Problemas que envolvem porcentagem
Problemas que envolvem porcentagem so muito comuns em aplicaes de Sistemas de Informao. Isso porque a representao de um dado ou informao, no somente em valores absolutos, mas tambm em valores relativos, como em porcentagem, podem ajudar os tomadores de deciso a compreender melhor resultados de operaes, por exemplo.
Por isso escrevi um material com uma breve reviso sobre porcentagem e disponibilizei no Moodle. Tire um tempinho para estud-la.
Vamos ao exerccio:
Uma loja oferece 15% de desconto para pagamento a vista em qualquer dos produtos vendidos. Escreva um algoritmo que leia o valor do produto, calcule e mostre o valor final do produto com o desconto de 15%.
Vamos executar os passos que eu sugeri para o desenvolvimento do algoritmo:
1. estudo: separao entre entrada, processamento e sada.
Nome Variveis Entrada Ler o valor do produto Processamento Calcular o valor final do produto com o desconto de 15% Sada Mostrar o valor final do produto com o desconto de 15%
2. estudo: separao dos comandos, um por linha.
Nome Variveis Entrada Ler o valor do produto Processamento Calcular o valor final do produto com o desconto de 15% Pergunta: como realizar esse clculo? 1) Clculo do desconto % significa dividido por 100. 15% de x = 15 * x/100 Outra forma de clculo seria x *0,15. Considerando que x = valorDoProduto, ento: desconto valorDoProduto * 0,15 12 Algoritmos - Estrutura Sequencial: Elaborando Algoritmos Prof. Waine Teixeira Jnior
2014/1 Todos os direitos reservados
2) Clculo do valor final valorFinal valorDoProduto - desconto
Sada Escrever o salrio que uma pessoa receber por ms
3. estudo: escrever os comandos em Portugol.
Nome Variveis Entrada Leia (valorDoProduto) Processamento desconto valorDoProduto * 0,15 valorFinal valorDoProduto - desconto Sada Escreva (valorFinal)
4. estudo: escrever os comandos de interface para o usurio.
Nome Variveis Entrada Escreval (Digite o valor do produto) Leia (valorDoProduto) Processamento desconto valorDoProduto * 0,15 valorFinal valorDoProduto - desconto Sada Escreval (O valor final do produto com o desconto de 15% : = , valorFinal)
5. estudo: definir os tipos de dados para as variveis utilizadas.
Nome Variveis valorDoProduto, valorFinal: real Entrada Escreval (Digite o valor do produto) Leia (valorDoProduto) Processamento desconto valorDoProduto * 0,15 valorFinal valorDoProduto - desconto Sada Escreval (O valor final do produto com o desconto de 15% : = , valorFinal)
6. estudo: nomear o algoritmo.
Nome Exerccio03 Variveis valorDoProduto, valorFinal: real Entrada Escreval (Digite o valor do produto) Leia (valorDoProduto) Processamento desconto valorDoProduto * 0,15 valorFinal valorDoProduto - desconto Sada Escreval (O valor final do produto com o desconto de 15% : = , 13 Algoritmos - Estrutura Sequencial: Elaborando Algoritmos Prof. Waine Teixeira Jnior
2014/1 Todos os direitos reservados O algoritmo final deve ser:
Exerccio03 Variveis valorDoProduto, valorFinal: real Incio Escreval (Digite o valor do produto) Leia (valorDoProduto) desconto valorDoProduto * 0,15 valorFinal valorDoProduto - desconto Escreval (O valor final do produto com o desconto de 15% : = , valorFinal) FimAlgoritmo
O teste de mesa
Vamos ao teste de mesa. Supondo que o valor do produto seja R$100,00, ento:
Algoritmo Memria Tela valorDoProduto desconto valorFinal 1. Escreval (Digite o valor do produto)
(Digite o valor do produto) 2. Leia (valorDoProduto) 100 100 3. desconto valorDoProduto * 0,15 15 4. valorFinal valorDoProduto * 0,15 85 5. Escreval (O valor final do produto com o desconto de 15% : = , valorFinal) O valor final do produto com o desconto de 15% : = 85
Conclumos aqui nossa pequena introduo sobre a elaborao de algoritmos. Preparei uma lista de exerccios resolvidos para ajud-lo nos estudos. A lista est disponvel no ambiente Moodle.
Nesses primeiros passos, listas resolvidas, procure utilizar os passos que eu segui aqui, at que a soluo esteja mais tranquila, mais fcil.
Procure tambm realizar o teste de mesa nos exerccios, para melhorar o seu raciocnio.
Depois de elaborado o teste de mesa, utilize ento o VISUALG.
Siga devagar, estudando, construindo seu conhecimento gradativamente.