Histórico da Página
Treinamento básico de lógica de programação (Suporte técnico Microsiga Protheus)
Treinamento: | Lógica de programação nível básico |
Publico Alvo: | Analistas de Suporte Técnico e/ou Negócios |
Conhecimentos exigidos: | Estrutura básica do produto Microsiga Protheus |
Conteúdo: | INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO
1. LÓGICA DE PROGRAMAÇÃO E ALGORITMOS
1.1. LÓGICA DE PROGRAMAÇÃO
Lógica A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas. Ela permite definir a sequência lógica para o desenvolvimento. Então o que é lógica? Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo.
Sequência Lógica Estes pensamentos podem ser descritos como uma sequência de instruções, que devem ser seguidas para que seja cumprida determinada tarefa.
Sequência Lógica são passos executados até atingir um objetivo, ou solução de um problema.
Instruções Na linguagem comum entende-se por instruções como “um conjunto de regras, ou normas definidas para a realização, ou emprego de algo”. Em informática, porém, instrução é a informação que indica a um computador uma ação elementar a executar. Convém ressaltar que uma ordem isolada não permite realizar o processo completo, para isso é necessário um conjunto de instruções colocadas em ordem sequencial lógica. Por exemplo, se quisermos fazer uma omelete de batatas, precisaremos colocar em prática uma série de instruções: descascar as batatas, bater os ovos, fritar as batatas, etc. É evidente que essas instruções devem ser executadas em uma ordem adequada – não se podem descascar as batatas depois de fritá-las. Dessa maneira, uma instrução tomada isoladamente não tem muito sentido para obtermos o resultado. Precisamos colocar em prática o conjunto de todas as instruções, e na ordem correta. Instruções é um conjunto de regras, ou normas definidas para a realização ou emprego de algo. Em informática, é o que indica a um computador uma ação elementar a executar.
Algoritmo Um algoritmo é formalmente uma sequência finita de passos que levam à execução de uma tarefa. Podemos pensar em algoritmo como uma receita, uma sequência de instruções que dão cabo de uma meta específica. Estas tarefas não podem ser redundantes nem subjetivas na sua definição, devem ser claras e precisas.
Como exemplos de algoritmos é possível citar os algoritmos das operações básicas (adição, multiplicação, divisão e subtração) de números reais decimais. Outros exemplos seriam os manuais de aparelhos eletrônicos que explicam passo-a-passo como, por exemplo, gravar um evento.
Até mesmo as coisas mais simples podem ser descritas por sequências lógicas, tais como:
“Chupar uma bala” 1. Pegar a bala; 2. Retirar o papel; 3. Chupar a bala; 4. Jogar o papel no lixo.
“Somar dois números quaisquer” 1. Escreva o primeiro número no retângulo A; 2. Escreva o segundo número no retângulo B; 3. Some o número do retângulo A com número do retângulo B e coloque o resultado no retângulo C.
1.2. DESENVOLVENDO ALGORÍTIMOS
Pseudocódigo Os algoritmos são descritos em uma linguagem chamada pseudocódigo. Este nome é uma alusão à posterior implementação em uma linguagem de programação, ou seja, quando for utilizada a linguagem de programação propriamente dita como, por exemplo, ADVPL. Por isso os algoritmos são independentes das linguagens de programação, sendo que ao contrário de uma linguagem de programação, não existe um formalismo rígido de como deve ser escrito o algoritmo. O algoritmo deve ser fácil de interpretar e fácil de codificar. Ou seja, ele deve ser o intermediário entre a linguagem falada e a linguagem de programação.
Fases Para implementar um algoritmo de simples interpretação e codificação é necessário inicialmente dividir o problema apresentado em três fases fundamentais: ENTRADA: são os dados de entrada do algoritmo; PROCESSAMENTO: são os procedimentos utilizados para chegar ao resultado final; SAÍDA: são os dados já processados. “resultado da operação”
Regras para a construção do Algoritmo Para escrever um algoritmo precisamos descrever a sequência de instruções, de maneira simples e objetiva. Para isso utilizaremos algumas técnicas:
1.2.1. ESTUDANDO ALGORÍTIMOS Neste tópico serão demonstrados alguns algoritmos do cotidiano que foram implementados utilizando os princípios descritos nos tópicos anteriores.
Algorítimo 01 - "Fritar um ovo" 1. Pegar frigideira, ovo, óleo e sal. 2. Colocar óleo na frigideira. 3. Ascender o fogo. 4. Colocar a frigideira no fogo. 5. Esperar o óleo esquentar. 6. Quebrar o ovo na frigideira. 7. Jogar a casca no lixo. 8. Retirar a frigideira do fogo quando o ovo estiver no ponto. 9. Desligar o fogo. 10. Colocar sal a gosto.
Algorítimo 02 - "Jogar o jogo da forca" 1. Escolher a palavra. 2. Montar o diagrama do jogo. 3. Enquanto houver lacunas vazias e o corpo estiver incompleto: 3.1. Se acertar a letra: escrever na lacuna correspondente. 3.2. Se errar a letra: desenhar uma parte do corpo na forca.
Algorítimo 03 - "Calcular a média de notas" 1. Enquanto houver notas a serem recebidas: 1.1. Receber a nota. 2. Some todas as notas recebidas. 3. Divida o total obtido pela quantidade de notas recebidas. 4. Exiba a média das notas.
Algorítimo 04 - "Jogar o jogo da velha – contra o algoritmo 1. Enquanto existir um quadrado livre e ninguém ganhou ou perdeu o jogo: 1.1. Espere a jogada do adversário, continue depois. 1.2. Se o centro estiver livre: jogue no centro. 1.3. Senão, se o adversário possuir dois quadrados em linha com um quadrado livre jogue neste quadrado. 1.4. Senão, se há algum canto livre, jogue neste canto.
1.2.2.TESTE DE MESA Todo algoritmo desenvolvido, deve ser testado. Este teste é chamado “TESTE DE MESA”, que significa seguir as instruções do algoritmo de maneira precisa para verificar se o procedimento utilizado está correto ou não. Para avaliar a aplicação do teste de mesa, utilizaremos o algoritmo de calcular a média de notas:
Algoritmo: Calcular a média de notas 1. Enquanto houver notas a serem recebidas: a. Receber a nota. 2. Some todas as notas recebida. 3. Divida o total obtido pela quantidade de notas recebidas. 4. Exiba a média das notas. Teste de mesa 1.Para cada nota informada, receber e registrar na tabela abaixo: 2. Ao término das notas, a tabela deverá conter todas as notas informadas, como abaixo: 3. Some todas as notas: 45 4. Divida a soma das notas, pelo total de notas informado: 45/6 = 7.5 5. Exiba a média obtida: Mensagem (Média: 7.5)
2. ESTRUTURAS DE PROGRAMAÇÃO
2.1. DIAGRAMA DE BLOCO O diagrama de blocos é uma padronização que representa os passos lógicos de um determinado processamento. Com o diagrama definimos uma sequência de símbolos com significado bem definido. Portanto, sua principal função é a de facilitar a visualização dos passos de um processamento.
Simbologia Existem diversos símbolos em um diagrama de bloco. No quadro abaixo estão representados alguns dos símbolos mais utilizados:
Representação de algoritmos através de diagramas de bloco Algoritmo 01: Fritar um ovo 1. Pegar frigideira, ovo, óleo e sal. 2. Colocar óleo na frigideira. 3. Acender o fogo. 4. Colocar a frigideira no fogo. 5. Esperar o óleo esquentar. 6. Quebrar o ovo na frigideira. 7. Jogar a casca no lixo. 8. Retirar a frigideira do fogo quando o ovo estiver no ponto. 9. Desligar o fogo. 10. Colocar sal a gosto.
Algoritmo 02: Calcular a média de notas 1. Enquanto houver notas a serem recebidas: a. Receber a nota. 2. Some todas as notas recebidas. 3. Divida o total obtido pela quantidade de notas recebidas. 4. Exiba a média das notas
Exemplos de Algoritmos em Pseudocódigo Programa para calcular a média das notas. DECLARA nota1,nota2,media:NUMERO DECLARA nota1 = Zero DECLARA nota2 = Zero DECLARA media = Zero
ESCREVA "Digite a nota1:" LEIA nota1 ESCREVA "Digite a nota2:" LEIA nota2
media = (nota1 + nota2)/2
ESCREVA "Sua média foi:" ESCREVA media
SE media >= 7 ENTÃO ESCREVA "APROVADO" SE media < 4 ENTÃO ESCREVA "REPROVADO" SE media >= 4 E media < 7 ENTÃO ESCREVA "Precisa fazer prova final" O uso do SE. LEIA x SE x < 20 ENTÃO ESCREVA "o valor de X é menor que 20" O uso do SE e SENÃO. LEIA nota SE nota >= 7 ENTÃO ESCREVA "Aprovado" SENÃO ESCREVA "Reprovado"
Mostrar que não há ambiguidade no SE..SE..SENÃO, através da árvore sintática do seguinte código. O último SENÃO está associado ao SE do SE x>2 ENTÃO SE y>3 ENTÃO z = 4 SENÃO w = 5 Na realidade, se a árvore sintática foi construída, a ambiguidade já foi resolvida.
O uso do ENQUANTO. ENQUANTO nota = vazio FAÇA LEIA nota SE nota >= 7 ENTÃO ESCREVA "Aprovado" SENÃO ESCREVA "Reprovado" FIM_ENQUANTO
O uso do PARA. DECLARA numero,potencia,resultado:NUMERO resultado = 1 PARA i=0 ATÉ potencia FAÇA resultado = numero * resultado FIM_PARA
2.2. ESTRUTURAS DE DECISÃO E REPETIÇÃO A utilização de estruturas de decisão e repetição em um algoritmo permite a realização de ações relacionadas às situações que influenciam na execução e na solução do problema. Como foco na utilização da linguagem ADVPL, serão ilustradas as seguintes estruturas:
Estruturas de decisão
Estruturas de repetição
2.2.1. ESTRUTURAS DE DECISÃO
Os comandos de decisão são utilizados em algoritmos cuja solução não é obtida através da utilização de ações meramente sequenciais, permitindo que estes comandos de decisão avaliem as condições necessárias para optar por uma ou outra maneira de continuar seu fluxo.
As estruturas de decisão que serão analisadas são:
IF...ELSE A estrutura IF...ELSE (Se/Senão) permite a análise de uma condição e a partir da qual ser executada uma de duas ações possíveis: Se a análise da condição resultar em um valor verdadeiro ou, se a análise da condição resultar em um valor falso.
Representação 01: IF...ELSE com ações para ambas as situações Esta estrutura permite ainda que seja executada apenas uma ação, na situação em que a análise da condição resultar em um valor verdadeiro.
Representação 02: IF...ELSE somente com ação para situação verdadeira
DO CASE...CASE A estrutura DO CASE...ENDCASE (Caso) permite a análise de diversas condições consecutivas, para as quais somente a condição para a primeira condição verdadeira será sua ação vinculada e executada. O recurso de análise de múltiplas condições é necessário para solução de problemas mais complexos, nos quais as possibilidades de solução superam a mera análise de um único resultado verdadeiro, ou falso.
2.2.2. ESTRUTURAS DE REPETIÇÃO Os comandos de repetição são utilizados em algoritmos nas situações em que é necessário realizar uma determinada ação, ou um conjunto de ações para um número definido ou indefinido de vezes, ou ainda enquanto uma determinada condição for verdadeira.
As estruturas de decisão que serão analisadas são:
WHILE...END Nessa estrutura, o conjunto de ações é executado enquanto a análise de uma condição de referência resultar em um valor verdadeiro. É importante verificar que o bloco somente será executado, inclusive se na primeira análise a condição resultar em um valor verdadeiro.
Representação: WHILE...END FOR...TO...NEXT Nessa estrutura, o conjunto de ações é executado em uma quantidade de vezes definida, normalmente referenciada como “passo”.
Para cada “passo” realizado pela estrutura FOR...TO...NEXT, é avaliada uma condição que verifica se foi atingido o número de execuções previamente definido. Dessa forma, a estrutura compreende um controle de número de “passos” executados e incrementado na análise da expressão NEXT.
Semelhante a estrutura WHILE...END, a primeira ação somente será realizada mediante um resultado verdadeiro na análise da condição.
Representação: FOR...TO...NEXT 3. BIBLIOGRAFIA Apostila ADVPL 1 Ano 2005
|