Baixe o app para aproveitar ainda mais
Prévia do material em texto
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA “A Faculdade Católica Paulista tem por missão exercer uma ação integrada de suas atividades educacionais, visando à geração, sistematização e disseminação do conhecimento, para formar profissionais empreendedores que promovam a transformação e o desenvolvimento social, econômico e cultural da comunidade em que está inserida. Missão da Faculdade Católica Paulista Av. Cristo Rei, 305 - Banzato, CEP 17515-200 Marília - São Paulo. www.uca.edu.br Nenhuma parte desta publicação poderá ser reproduzida por qualquer meio ou forma sem autorização. Todos os gráficos, tabelas e elementos são creditados à autoria, salvo quando indicada a referência, sendo de inteira responsabilidade da autoria a emissão de conceitos. Diretor Geral | Valdir Carrenho Junior ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA SUMÁRIO AULA 01 AULA 02 AULA 03 AULA 04 AULA 05 AULA 06 AULA 07 AULA 08 AULA 09 AULA 10 AULA 11 04 05 07 09 12 17 19 22 29 31 35 INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO CONCEITOS INICIAIS COMO CONSTRUIR ALGORITMOS TIPOS DE ALGORITMOS: LINGUAGEM NATURAL, FLUXOGRAMA E PSEUDOCÓDIGO COMANDOS DE ENTRADA E SAÍDA TABELA-VERDADE (OPERADORES LÓGICOS) ESTRUTURA SEQUENCIAL ESTRUTURA DE SELEÇÃO SELEÇÃO HOMOGÊNEA MÚLTIPLA ESCOLHA ESTRUTURA DE REPETIÇÃO FACULDADE CATÓLICA PAULISTA | 4 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA AULA 1 INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO É muito comum associarmos a palavra lógica apenas à matemática, mas esse termo normalmente está relacionado à coerência e à racionalidade (FORBELLONE, 2005). A lógica pode ser relacionada com a expressão “correção do pensamento”, pois uma de suas responsabilidades é determinar quais operações são válidas e quais não são (FORBELLONE, 2005). De acordo com Forbellone (2005), a lógica também pode ser interpretada como a “ciência das formas do pensamento”, uma vez que a forma mais complexa do pensamento é o raciocínio e, portanto, a lógica estuda a correção do raciocínio. A lógica de programação utiliza-se do uso correto das leis do pensamento e dos processos de raciocínio na programação de computadores, com o objetivo de racionalizar e desenvolver técnicas que auxiliem na produção de soluções logicamente válidas e coerentes e que resolvam com eficiência os problemas que se deseja programar (FORBELLONE, 2005). Segundo Forbellone (2005), o principal objetivo do estudo da Lógica de Programação é a construção de algoritmos válidos e compreensivos. Indicação de filme Nome: O Jogo da Imitação Ano: 2014 Comentário: O filme é baseado na história real Alan Turing, matemático britânico e considerado o pai da computação. Em plena Segunda Guerra Mundial, Turing é contratado pelo governo inglês para ajudar a construir uma máquina capaz de decriptografar mensagens nazistas e assim contribuir para que sejam definidas novas estratégias de guerra pelos aliados com o intuito de vencer a guerra. Essa máquina ficou conhecida como máquina de Turing e utilizou conceitos de lógica e de algoritmos para ser construída. Para conhecer mais sobre o filme, acesse o trailer disponível em: < https://www.youtube. com/watch?v=YIkKbMcJL_4>. FACULDADE CATÓLICA PAULISTA | 5 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA AULA 2 CONCEITOS INICIAIS A começar de sua existência, os seres humanos sempre estiveram determinados em desenvolver máquinas que os ajudassem com as suas tarefas cotidianas, com o objetivo de economizar tempo e minimizar as dificuldades. No meio dessas máquinas, o computador vem se destacando por ser um dispositivo flexível, veloz e seguro (ASCENCIO, 2012). Nos dias atuais o computador é uma ferramenta essencial em diversos setores da sociedade. São apresentados nos mais diversos formatos, desde o computador de mesa, os desktops, os portáteis, notebooks e tablets, até os supercomputadores que realizam cálculos exorbitantes (GUEDES, 2014). Mas sozinho, o computador não tem nenhuma iniciativa e precisa receber instruções claras e detalhadas de como e em quais ocasiões ele deve realizar o processamento dos dados (ASCENCIO, 2012) (GUEDES, 2014). Portanto, é necessário programá-lo para que ele possa executar as tarefas e solucionar problemas (GUEDES, 2014). De acordo com Guedes (2014), para que o computador possa executar tarefas é necessário efetuar uma programação com uma sequência bem definida de instruções e essa elaboração de sequência bem definida é conhecida como algoritmo. Um algoritmo é classificado como uma sequência de etapas que devem ser realizadas para alcançar um determinado objetivo (GUEDES, 2014). Segundo Ascencio (2012), um algoritmo é a descrição de uma sequência de passos que deve ser seguida para efetuar uma tarefa. É muito comum em nosso dia a dia nos depararmos com diversos exemplos de algoritmos. Um exemplo cotidiano é o da receita de bolo, onde está descrito um conjunto de ingredientes essenciais, com suas respectivas quantidades e uma sequência de passos que devem ser executados para que o resultado final seja alcançado com sucesso (GUEDES, 2014). De acordo com Guedes (2014), cada tarefa que realizamos no nosso dia a dia é um algoritmo, que atua como uma receita, obedecendo as etapas necessárias para chegar no resultado final. Podemos observar no exemplo a seguir a execução de um algoritmo comumente utilizado em nosso dia a dia (ASCENCIO, 2012). FACULDADE CATÓLICA PAULISTA | 6 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA ALGORITMO – Fazer um sanduíche Passo 1: Pegar o pão. Passo 2: Cortar o pão ao meio. Passo 3: Pegar a maionese. Passo 4: Passar a maionese no pão. Paso 5: Pegar e cortar a alface o tomate. Passo 6: Colocar a alface e o tomate no pão. Passo 7: Pegar o hambúrguer. Passo 8: Fritar o hambúrguer. Passo 9: Colocar o hambúrguer no pão. Os algoritmos podem ser executados de maneiras diferentes, assim como os problemas podem ter diversas soluções, mas sempre alcançando o mesmo resultado. Sendo assim, podem existir diversos algoritmos para solucionar o mesmo problema (ASCENCIO, 2012) (GUEDES, 2014). FACULDADE CATÓLICA PAULISTA | 7 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA AULA 3 COMO CONSTRUIR ALGORITMOS Um algoritmo tem por finalidade fazer a representação mais fiel do raciocínio envolvido na Lógica de Programação, e desse modo, nos permite absorver uma sequência de detalhes computacionais (FORBELLONE, 2005). De acordo com Forbellone (2005), uma das importâncias da construção de algoritmos é que uma vez compreendida uma solução algorítmica para um determinado problema, esta pode ser traduzida para qualquer linguagem de programação. Segundo Ascencio (2012), para a construção de qualquer tipo de algoritmo, é preciso seguir estes passos: a. Compreender completamente o problema a ser resolvido e destacar os pontos mais importantes e os objetos que o compõem. b. Definir os dados de entrada, isto é, quais dados serão fornecidos e quais objetos fazem parte do cenário do problema. c. Definir o processamento. Quais operações serão efetuadas e quais serão as restrições para essas operações. A responsabilidade de transformar os dados de entrada em dados de saída e de verificar quais objetos são responsáveis pela atividade é atribuição do processamento; d. Definir os dados de saída. e. Construir o algoritmo utilizando um dos tipos mais comuns de algoritmos. f. Testar o algoritmo através de simulações. Na prática qualquer pessoa amparada na própria experiência é capaz de resolver problemas, entretanto, um programa de computador não tem conhecimento prévio e não adquire experiência própria na solução de problemas, o que ocasiona que devemos determinar em detalhes todas as ações que ele deve executar, prevendo as dificuldades e as maneiras de superá-las para que se consigaa solução do problema. Todo esse processo é realizado pelos programadores, também conhecidos como construtores de algoritmos (FORBELLONE, 2005). FACULDADE CATÓLICA PAULISTA | 8 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA Dica de leitura Nome do livro: Algoritmos e Programação: Teoria e Prática Editora: Novatec Autor: Marco Medina e Cristina Fertig ISBN: 978-8575220733 Comentário: Essa é uma obra bastante didática, que demonstra como compreender algoritmos e pseudocódigo com uma linguagem muito simples. O livro detalha todos os processos da construção de algoritmos e oferece diversos exemplos em pseudocódigo e nas linguagens de programação Pascal e C. FACULDADE CATÓLICA PAULISTA | 9 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA AULA 4 TIPOS DE ALGORITMOS: LINGUAGEM NATURAL, FLUXOGRAMA E PSEUDOCÓDIGO Um algoritmo é uma linha de raciocínio que pode ser descrito de diversas maneiras, de forma textual ou gráfica, e cada uma dessas técnicas tem suas vantagens e desvantagens, mas ambas permitem um nível elevado de clareza em relação ao fluxo de execução (FORBELLONE, 2005). De acordo com Ascencio (2012), os três tipos de algoritmos mais utilizados são: linguagem natural, fluxograma e pseudocódigo. Linguagem Natural Linguagem natural ou descrição narrativa consiste em analisar o problema e escrever utilizando uma linguagem natural, por exemplo, a língua portuguesa os passos para a sua resolução (ASCENCIO, 2012). A vantagem de utilizar a descrição narrativa é que não há necessidade de aprender nenhum conceito novo e a sua desvantagem é que a linguagem natural pode ser interpretada de várias maneiras, o que pode dificultar a transcrição do algoritmo para uma linguagem de programação (GUEDES, 2014). Exemplo de algoritmo em linguagem natural para a multiplicação de dois números: Passo 1: Receber os dois números que serão multiplicados. Passo 2: Multiplicar os dois números. Passo 3: Mostrar o resultado da multiplicação dos dois números. Fluxograma O algoritmo baseado em fluxograma consiste em interpretar o enunciado do problema e escrever os passos a serem seguidos para a solução do problema utilizando símbolos gráficos predefinidos (ASCENCIO, 2012). De acordo com Guedes (2014), uma das vantagens em se utilizar símbolos gráficos é que estes são mais simples de compreender em relação aos textos, mas é necessário aprender a simbologia, que não permite detalhes mais precisos, o que dificulta a transcrição do algoritmo para uma linguagem de programação e problemas complexos resultam em um fluxograma muito amplo, o que torna difícil a visualização. FACULDADE CATÓLICA PAULISTA | 10 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA Exemplo de algoritmo em fluxograma para a multiplicação de dois números: Figura 1 – Algoritmo representado em fluxograma Fonte: Adaptado de Ascencio (2012, p. 04). Anote isso Fonte: Guedes (2014, p. 7). FACULDADE CATÓLICA PAULISTA | 11 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA Pseudocódigo Também conhecido como portugol o pseudocódigo consiste em interpretar o enunciado do problema e escrever os passos a serem seguidos para a sua resolução através de regras predefinidas (ASCENCIO, 2012). No pseudocódigo, a transcrição do algoritmo para qualquer linguagem de programação é quase imediata, mas é necessário aprender as regras do padrão do pseudocódigo utilizado. Na prática é o mesmo que desenvolver o programa aplicativo para depois reproduzir para uma linguagem de programação (ASCENCIO, 2012). O pseudocódigo é amplamente utilizado pela maioria dos programadores para desenvolver seus algoritmos. É mais comum utilizar o pseudocódigo por ser o tipo de algoritmo mais próximo de uma linguagem usual (GUEDES, 2014). Exemplo de algoritmo em pseudocódigo para a multiplicação de dois números: Algoritmo Declare N1, N2, M Numérico Escreva “Digite dois números” Leia N1, N2 M N1 * N2 Escreva “Multiplicação = “, M Fim_Algoritmo. FACULDADE CATÓLICA PAULISTA | 12 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA AULA 5 COMANDOS DE ENTRADA E SAÍDA Os algoritmos necessitam ser abastecidos com dados provenientes do meio externo para que consigam realizar as operações e os cálculos que são fundamentais para almejar o resultado necessário. Sendo assim, são utilizados os comandos de entrada e saída (FORBELONE, 2005). O comando de entrada em algoritmos é utilizado para receber os dados digitados pelo usuário e que serão armazenados em variáveis (ASCENCIO, 2012), ou seja, a finalidade desse comando é atribuir o dado a ser fornecido para uma variável identificada (FORBELLONE, 2005). No pseudocódigo esse comando é representado pela palavra LEIA (ASCENCIO, 2012). Exemplo: LEIA X Nesse caso, um valor digitado pelo usuário será armazenado na variável X. Quando o algoritmo mostra os dados que calculou, como uma forma de apresentar a resposta ao problema que solucionou, utiliza-se o comando de saída ESCREVA, cuja finalidade é exibir o conteúdo da variável identificada (FORBELLONE, 2005). Esse comando é utilizado para mostrar os dados na tela (ASCENCIO, 2012). Exemplo: ESCREVA X Exibe o valor armazenado na variável X. 5.1 Variáveis, Operadores e Constantes Quando o assunto é programação esbarramos em dois tipos de valores: as variáveis, que se alteram conforme determinadas condições e que exigem que o algoritmo esteja preparado para atender essas alterações e os valores constantes, que não se alteram, permanecem sempre os mesmos, não importando a condição. Também são utilizados as operações e os operadores, que caracterizam as expressões de cálculo, condição, atribuição e comparação (GUEDES, 2014). FACULDADE CATÓLICA PAULISTA | 13 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA 5.2 Tipos de Processamento: Variáveis, Constantes, Expressões Aritméticas e Lógicas Variáveis Nos algoritmos são utilizadas as variáveis para representarem valores conhecidos e desconhecidos. Esses valores são utilizados na resolução de um problema e podem ser alterados de acordo com a condição. Sendo assim, pode-se dizer que as variáveis armazenam dados de uma forma temporária que serão utilizados durante o processamento do programa para a resolução do problema em questão (GUEDES, 2014). Quando um dado tem a possibilidade de ser alterado durante a execução do algoritmo ele é considerado uma variável (FORBELLONE, 2005). Uma variável representa uma posição de memória e possui nome, tipo e seu conteúdo pode variar ao longo do tempo de execução do programa e, embora uma variável possa assumir valores diferentes, ela somente pode armazenar um valor de cada vez (ASCENCIO, 2012). Constantes Quando um dado não sofre nenhuma alteração no decorrer da execução do programa, ou seja, quando o seu valor se mantém constante do início até o fim da execução do programa, esse dado é considerado uma constante (FORBELLONE, 2005). Expressões Aritméticas e Lógicas Quando os operadores são aritméticos e os operandos são constantes ou variáveis do tipo numérico, temos então uma expressão aritmética (FORBELLONE, 2005). E quando temos um conjunto de símbolos que representam as operações básicas da matemática, temos os operadores aritméticos (FORBELONNE, 2005). As expressões lógicas são aquelas cujos operadores são lógicos ou relacionais e os operandos são relações, variáveis ou constantes do tipo lógico (FORBELLONE, 2005). 5.3 Operadores: Matemáticos, Funções Matemáticas Os operadores aritméticos são utilizados para a realização de cálculos matemáticos e são compostos por um conjunto de símbolos utilizados nas operações básicas da matemática (GUEDES, 2014). FACULDADE CATÓLICA PAULISTA | 14 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA Operador Função Exemplos + Adição 1 + 2, A + B - Subtração 6 – 3, A – B * Multiplicação 2 * 4, A * B / Divisão6/3, A/B Tabela 1 – Operadores Aritméticos Fonte: Adaptado de Forbellone (2005, p. 19). Alguns operadores aritméticos utilizados na realização de cálculos podem ser também representados por funções matemáticas, como a potenciação, a radiciação, o resto da divisão e o quociente da divisão (GUEDES, 2014). Operador Função Significado Exemplos pot(x,y) Potenciação x elevado a y Pot(2,4) rad(x) Radiciação Raiz quadrada de x rad(25) Tabela 2 – Potenciação e radiciação Fonte: Adaptado de Forbellone (2005, p. 19). Operador Função Exemplos mod Resto da divisão 9 mod 4 resulta em 1 27 mod 5 resulta em 2 div Quociente da divisão 9 div 4 resulta em 2 27 div 5 resulta em 5 Tabela 3 – Operador de resto e quociente da divisão inteira Fonte: Adaptado de Forbellone (2005, p. 19). De acordo com Forbellone (2005), para a resolução das expressões aritméticas, as operações devem obedecer a uma hierarquia entre elas. Prioridade Operadores 1ª parênteses mais internos 2ª pot rad 3ª * / div mod 4ª + - Tabela 4 – Precedência entre os operadores aritméticos Fonte: Adaptado de Forbellone (2005, p. 20). FACULDADE CATÓLICA PAULISTA | 15 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA No caso de operadores de mesma prioridade se deve resolver da esquerda para a direita, conforme a sequência existente na expressão aritmética (FORBELLONE, 2005). Exemplos: a. 4 + 2 + 6/2 4 + 2 + 3 9 b. 4 – 2 * 6/3 – pot(2,3) 4 – 2 * 6/3 – 8 4 – 12/3 – 8 4 – 4 – 8 - 8 c. pot(4,2) – 6/3 + rad(1 + 4 * 6) /5 pot(4,2) – 6/3 + rad(1 + 24) /5 pot(4,2) – 6/3 + rad(25) /5 16 – 6/3 + 1 16 – 2 + 1 15 As expressões lógicas são aquelas cujos operadores são lógicos ou relacionais e os operandos são relações, variáveis ou constantes do tipo lógico (FORBELLONE, 2005). Os operadores relacionais são utilizados para realizar comparações entre dois valores do mesmo tipo primitivo, onde esses valores são representados por constantes, variáveis ou expressões aritméticas e nas construções de equações são comuns a utilização de operadores relacionais, onde o resultado de uma relação é sempre um valor lógico (FORBELLONE, 2005). Operador Função Exemplos = Igual a 2 = 2, A = B > Maior que 8 > 7, A > B < Menor que 2 < 3, A < B >= Maior ou igual a 4 >= 2, A >= B <= Menor ou igual a 2 <= 4, A <= B <> Diferente de 4 <> 5, A <> B Tabela 5 – Operadores relacionais Fonte: Adaptado de Forbellone (2005, p. 21). FACULDADE CATÓLICA PAULISTA | 16 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA Exemplos: a. 3 * 4 = 24/2 12 = 12 V b. 15 mod 4 > 9 mod 4 3 > 1 V c. 2 * 5 div 3 <= pot(2,3) /2 10 div 3 <= 8 /2 3 <= 4 V FACULDADE CATÓLICA PAULISTA | 17 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA AULA 6 TABELA-VERDADE (OPERADORES LÓGICOS) Os operadores lógicos são utilizados para associar expressões que estabelecem uma comparação entre valores, segundo Guedes (2014), para a formação de novas proposições lógicas compostas a partir de outras proposições lógicas mais simples (FORBELLONE, 2005). Operador Função não negação e conjunção ou disjunção Tabela 6 – Operadores lógicos Fonte: Adaptado de Forbellone (2005, p. 22). A tabela-verdade é o conjunto de todas as possibilidades combinatórias entre os valores de diversas variáveis ou expressões lógicas em função do operador lógico utilizado que se encontram em duas possíveis situações, verdadeiro ou falso (FORBELLONE, 2005) (GUEDES, 2014), sendo uma ferramenta muito utilizada para facilitar a análise da combinação de expressões e variáveis (GUEDES, 2014). As tabelas abaixo apresentam exemplos de tabelas-verdade. A não A F V V F Tabela 7 – Operação de negação Fonte: Adaptado de Forbellone (2005, p. 23). A B A e B F F F F V F V F F V V V Tabela 8 – Operação de conjunção Fonte: Adaptado de Forbellone (2005, p. 23). A B A ou B F F F F V V V F V V V V Tabela 9 – Operação de disjunção Fonte: Adaptado de Forbellone (2005, p. 23). FACULDADE CATÓLICA PAULISTA | 18 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA De acordo com o autor Forbellone (2005), abaixo seguem alguns exemplos de aplicações com tabelas-verdade: a. Se chover e relampejar, eu fico em casa. Quando eu fico em casa? Nesse exemplo, a proposição somente será verificada quando os termos chover e relampejar forem simultaneamente verdadeiros. b. Se chover ou relampejar eu fico em casa. Quando eu fico em casa? Com o operador lógico ou as possibilidades de “eu fico em casa” são maiores, pois de acordo com a tabela-verdade, a proposição se tornará verdadeira nos casos: somente chovendo, somente relampejando e chovendo e relampejando. c. 2 < 5 e 15/3 = 5 V e 5 = 5 V = V V d. 2 < 5 ou 15/3 = 5 V ou V V Prioridade Operadores 1ª não 2ª e 3ª ou Tabela 10 – Operação de conjunção Fonte: Adaptado de Forbellone (2005, p. 24). Prioridade Operadores 1ª parênteses mais internos 2ª operadores aritméticos 3ª operadores relacionais 4ª operadores lógicos Tabela 11 – Precedência entre todos operadores Fonte: Adaptado de Forbellone (2005, p. 24). Exemplo: a. não (4 <> 8/2) ou V e 3 – 6 > 6 – 3 ou V não ( 4 <> 4 ou V e – 3 > 3 ou V) não (F ou V e F ou V) não (F ou F ou V) não (F ou V) não (V) F FACULDADE CATÓLICA PAULISTA | 19 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA AULA 7 ESTRUTURA SEQUENCIAL De acordo com Forbellone (2005), uma estrutura sequencial de um algoritmo está relacionada com o fato de que o conjunto de ações primitivas será executado em uma sequência linear de cima para baixo e da esquerda para a direita, ou seja, da mesma maneira em que foram escritas. As ações serão seguidas de um ponto-e-vírgula (;), que tem por finalidade separar uma ação de outra e auxiliar na organização sequencial das ações, pois ao encontrar um ponto- e-vírgula se deve executar o próximo comando na sequência (FORBELLONE, 2005). Segundo Forbellone (2005), o modelo abaixo representa um modelo básico de estrutura sequencial para se escrever um algoritmo, identificando o bloco, colocando início e fim, e dentro iniciando a declaração das variáveis e depois o corpo do algoritmo. Algoritmo Modelo básico 1. início // identificação do início do bloco correspondente ao algoritmo 2. 3. // declaração de variáveis 4. 5. // corpo do algoritmo 6. Ação 1; 7. Ação 2; 8. Ação 3; 9. . 10. . 11. . 12. Ação n; 13. 14. Fim. // fim do algoritmo Segundo Ascencio (2012), as variáveis são declaradas após a palavra DECLARE e os tipos mais usuais são: NUMÉRICO (para variáveis que irão receber números), LITERAL (para as FACULDADE CATÓLICA PAULISTA | 20 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA variáveis que irão receber caracteres) e LÓGICO (para as variáveis que irão receber valores verdadeiro ou falso). Exemplo: DECLARE X NUMÉRICO Y, Z LITERAL TESTE LÓGICO O comando de atribuição é usado para fornecer valores ou operações para as variáveis (ASCENCIO, 2012). Exemplo: X 6 X X + 2 Y “nome” teste verdade Exemplo do algoritmo para calcular a média aritmética. Algoritmo Média Aritmética 1. início // começo do algoritmo 2. 3. Declare // declaração de variáveis 4. N1, N2, N3, N4 numérico // notas bimestrais 5. MA numérico // média anual 6. 7. // entrada de dados 8. Leia (N1, N2, N3, N4); 9. 10. // processamento 11. MA (N1, N2, N3, N4) / 4; 12. 13. // saída de dados 14.Escreva (MA); 15. 16. Fim. // fim do algoritmo FACULDADE CATÓLICA PAULISTA | 21 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA Anote isso Quando é criado um algoritmo deve-se especificar ações claras e precisas que, a partir de um estado inicial e após um determinado tempo, resultem em um resultado final esperado. Um algoritmo estabelece um padrão de comportamento a ser seguido, com o objetivo de solucionarum problema, garantindo que sempre que for feito do mesmo modo, o resultado final será o mesmo. Fonte: Forbellone (2005, p. 4). FACULDADE CATÓLICA PAULISTA | 22 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA AULA 8 ESTRUTURA DE SELEÇÃO A estrutura de seleção permite a escolha de um grupo de ações ou bloco a ser executado quando determinadas condições representadas por expressões lógicas ou relacionais são ou não satisfeitas (GUEDES, 2014). Serão abordados dois tipos de estrutura de seleção: simples e composta. 8.1 Sintaxe da Estrutura Sequencial: Seleção Simples e Seleção Composta A seleção simples é utilizada para testar certa condição antes de executar determinada ação. Se a condição for aceita um determinado bloco de instruções deverá ser executado e se a condição não for aceita, o fluxo da execução do algoritmo irá seguir após o fim do bloco de decisão (GUEDES, 2014), como mostra o modelo abaixo: se <condição> então <conjunto de instruções> fimse Exemplo: Algoritmo Saber se o número informado é ímpar 1. declare 2. numero numérico 3. 4.início 5. 6. leia (numero) 7. 8. se ((numero mod 2) = 1 então 9. 10. escreva (“O número informado é ímpar”) 11. 12. fimse 13. 14. fim. FACULDADE CATÓLICA PAULISTA | 23 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA Como no exemplo anterior somente existe uma condição a ser executada, então esta estrutura de seleção é denominada estrutura simples (GUEDES, 2014). Utiliza-se a estrutura da seleção composta quando houver casos em que duas alternativas dependem de uma mesma condição, uma de a condição ser verdade e outra de a condição ser falsa como é descrito no modelo (FORBELLONE, 2005): se <condição> então <conjunto de instruções para o teste de condição resultar em verdade> senão <conjunto de instruções para o teste de condição resultar em falso> fimse Exemplo: Algoritmo Cálculo do bônus salarial 1. declare 2. salario, bônus, tempo numérico 3. 4. início 5. 6. leia (salario) 7. leia (tempo) 8. 9. se (tempo >= 5) então 10. 11. bônus salario * 0,20 12. 13. senão 14. 15. bônus salario * 0,10 16 17. fimse 18. 19. escreva (“O valor do bônus é”, bônus) 20. 21. fim. FACULDADE CATÓLICA PAULISTA | 24 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA Nota-se que existe uma condição para a resposta verdadeira e outra condição para a resposta falsa, sendo assim, caracterizado como uma estrutura de seleção composta (GUEDES, 2014). 8.2 Introdução à Linguagem de Programação Segundo Guedes (2014), a linguagem de programação é constituída de um conjunto de regras e palavras agrupadas em frases que irão resultar em um determinado significado e, sendo assim, essas palavras podem ser chamadas de comandos e as frases oriundas de estruturas de programação. Um programa de computador é formado de comandos e estruturas de programação definidas pelas regras da linguagem de programação e produzidas de maneira que sejam fáceis de serem compreendidas pelos seres humanos (GUEDES, 2014). As linguagens de programação foram criadas para solucionarem determinados tipos de problemas, sendo que algumas podem ser melhores para determinadas aplicações do que outras. Portanto, a linguagem de programação depende muito da sua adequação para a tarefa que se pretende realizar (GUEDES, 2014). 8.2.1 História da Linguagem de Programação De acordo com Guedes (2014), existem diferentes linguagens de programação que surgiram ao longo do desenvolvimento dos sistemas computacionais e cada uma delas tem características próprias e recursos existentes da época de sua criação. Algumas permanecem ativas e foram atualizadas, recebendo novas funcionalidades e se adaptando para a exigente realidade de avanços no desempenho de hardware e exigências dos sistemas. As primeiras linguagens de programação que surgiram eram de estrutura sequencial não possuíam interatividade e se destinavam a uma única atividade específica devido as características dos sistemas existentes à época. Depois, com a evolução dos computadores, dos sistemas operacionais e da complexidade computacional surgiram as linguagens estruturadas que permitiram a criação de sistemas mais interativos, organizados e com mais funcionalidades (GUEDES, 2014). Posteriormente, surgiram as linguagens orientadas a objetos que promoveram uma grande transformação no modo como os sistemas são desenvolvidos e codificados, retornando grande interatividade, processamento distribuído e alta diversidade para dispositivos (GUEDES, 2014). FACULDADE CATÓLICA PAULISTA | 25 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA 8.2.2 Tipos de Dados, Constantes e Variáveis Os tipos de dados mais utilizados são os numéricos, os lógicos e os literais. Os dados numéricos se dividem em dois grupos: inteiros e reais. Os dados numéricos do tipo inteiros podem ser positivos ou negativos e não podem ser fracionários (GUEDES, 2014). Exemplos: -10, 32, 129, -418. Já os dados numéricos reais podem ser positivos ou negativos e apresentam parte fracionária (GUEDES, 2014). Exemplo: 1.45, - 3.50, 225.75, 319.12. Também conhecidos como dados booleanos, os dados lógicos assumem valores verdadeiros e falsos (GUEDES, 2014). E os dados literais são tipos de dados formados por um único caractere ou por uma sequência de caracteres. Esses dados podem ser caracteres do alfabeto, números, letras maiúsculas e minúsculas e caracteres especiais (GUEDES, 2014). Exemplo: “nome”, “2A”, “23#”, ‘5’. Os caracteres representados entre aspas duplas (“ “) caracterizam um conjunto de caracteres e um único caractere é representado por aspas simples (‘ ‘) (GUEDES, 2014). De acordo com Guedes (2014), os tipos de constantes que são valores que não sofrem alterações ao longo do desenvolvimento do algoritmo ou da execução do programa são expressas como dados constantes como o π, a raiz quadrada de um número e a constante de Napier (e), ou até mesmo um valor informado que não se altera durante a execução do algoritmo. Como exemplos de tipos de variáveis podemos citar a cotação de moedas como o dólar e o euro, o índice de inflação (GUEDES, 2014), as ações de uma empresa na bolsa de valores, o valor do consumo de quilowatt/hora de uma residência. 8.3 Comandos de Entrada e Saída: Estrutura Sequencial A estrutura sequencial em uma linguagem de programação pode ser descrita como no exemplo abaixo, onde foi utilizada a estrutura sequencial da linguagem de programação PASCAL (ASCENCIO, 2012). PROGRAM nome; USES nomes_das_unidades; VAR nomes_das_variáveis: tipo; BEGIN bloco_de_comandos END. FACULDADE CATÓLICA PAULISTA | 26 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA A declaração de variáveis em Pascal é dada da seguinte maneira: VAR X: INTEGER; Y, Z: REAL; NOME: STRING SEXO: CHAR; TESTE: BOOLEAN; E as declarações de constantes realizadas após a palavra CONST. CONST X = 10; Y = 6.5; NOME = “ZECA”; SEXO = ‘M’; TESTE = TRUE; A atribuição de valores é feita da seguinte forma: X := 5; Y := 3.5; Nome := “Arthur”; Sexo := ‘M”; Teste := false; Um comando de entrada é descrito da seguinte forma: READLN(nome_da_variável); Exemplo: READLN(NOME); Um comando de saída é descrito da seguinte forma: WRITELN(nome_da_variável); Exemplo: WRITELN(NOME); FACULDADE CATÓLICA PAULISTA | 27 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA 8.4 Estrutura de Controle: Sequencial e de Seleção No desenvolvimento de algoritmos são utilizados os conceitos de bloco lógico, entrada e saída de dados, variáveis, constantes, atribuições, expressões lógicas, relacionais e aritméticas e também comandos que realizam a tradução de todos esses conceitos de maneira que representem um conjunto de ações (FORBELLONE, 2005). De acordo com Forbellone (2005), esse conjunto de ações somente será viável se existir uma perfeita relação lógicaessencial para a forma que essas ações são executadas pela forma que é conduzido o fluxo de execução do algoritmo. Assim sendo, os algoritmos que serão desenvolvidos e empregados nas resoluções dos problemas devem ser criados por meio das estruturas básicas de controle de fluxo de execução: sequenciação, seleção e repetição. 8.4.1 Estrutura Sequencial Em algoritmos, uma estrutura sequencial corresponde ao fato de que o conjunto de ações primitivas será executado em uma sequência linear de cima para baixo e da esquerda para a direita, ou seja, da mesma forma em que foram escritas. As ações devem ser seguidas de um ponto e vírgula (;), que tem por objetivo separar uma ação da outra e auxiliar na organização sequencial das ações, uma vez que um ponto e vírgula (;) for encontrado, se deve executar o próximo comando da sequência (FORBELLONE, 2005). De acordo com Forbellone (2005), um modelo básico de algoritmo deve identificar os blocos, utilizando início e fim, e dentro do bloco devem ser iniciadas a declaração das variáveis e depois o corpo do algoritmo. Exemplo: Modelo geral de um algoritmo sequencial 1. início // identificação do início do bloco correspondente ao algoritmo 2. 3. // declaração de variáveis 4. 5. // corpo do algoritmo 6. 7. ação 1; 8. ação 2; 9. ação 3; 10 ação 4; 11. . 12. . 13. . 14. ação n; 15. 16. fim. // fim do algoritmo FACULDADE CATÓLICA PAULISTA | 28 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA Anote isso Depois de definir as variáveis de entrada e de saída é recomendável realizar uma série de perguntas do tipo “o quê?” com o objetivo de descobrir, de uma forma clara e objetiva, alguns aspectos relevantes que se deve levar em conta na criação do algoritmo e nas ações envolvidas no processamento necessário para a obtenção das respostas desejadas. Fonte: Forbellone (2005, p. 31). 8.4.2 Estrutura de Seleção A estrutura de seleção permite a escolha de um grupo de ações, ou blocos, a serem executados quando determinadas condições, descritas por expressões lógicas ou relacionais são ou não satisfeitas (FORBELLONE, 2005). Segundo Forbellone (2005), quando a estrutura é encadeada ela pode ser homogênea ou heterogênea. Uma estrutura encadeada é caracterizada quando são agrupadas várias seleções. Essa estrutura, geralmente, ocorre quando uma determinada ação ou bloco deve ser executado caso um grande conjunto de possibilidades ou combinações for satisfeito. FACULDADE CATÓLICA PAULISTA | 29 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA AULA 9 SELEÇÃO HOMOGÊNEA A seleção homogênea utiliza a construção de diversas estruturas de seleção encadeadas que devem seguir um determinado padrão lógico (FORBELLONE, 2005). Na seleção homogênea um comando deve ser executado apenas quando forem satisfeitas algumas condições e a construção do algoritmo deve seguir um padrão. Posteriormente a cada “então”, existe um outro “se”, e não existem “senões”. Isso define uma estrutura encadeada homogênea (FORBELLONE, 2005). Exemplo: Se <condição 1> Então se <condição 2> Então se <condição 3> Então se <condição 4> Então faça; Fim_se; Fim_se; Fim_se; Fim_se; O comando somente é executado quando todas as condições forem simultaneamente verdadeiras (FORBELLONE, 2005). Exemplo: Se <condição 1> e <condição 2> e <condição 3> e <condição 4> Então faça; Fim_se; 9.1 Seleção heterogênea Quando não é possível identificar um padrão lógico de cosntrução de uma estrutura de seleção, esta seleção é caracterizada como sendo uma estrutura de seleção heterogênea (FORBELLONE, 2005). FACULDADE CATÓLICA PAULISTA | 30 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA De acordo com Forbellone (2005), uma estrutura de seleção heterogênea pode ser descrita como o exemplo abaixo: Exemplo: Se <condição 1> Então Se <condição 2> Então Início // bloco verdade 1 Ação 1; . . . Ação n; Fim; // bloco verdade 1 Fim_Se; Senão Se <condição 3> Então Início // bloco verdade 2 Ação 1; . . . Ação n; Fim; // bloco verdade 2 Senão Se <condição 4> Então Se <condição 5> Então <comando_verdadeiro>; Fim_Se Senão <comando_falso>; Fim_Se; Fim_Se; Fim_Se; FACULDADE CATÓLICA PAULISTA | 31 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA AULA 10 MÚLTIPLA ESCOLHA Quando uma estrutura de seleção exerce um conjunto de opções para escolha ela é denominada de seleção de múltipla escolha e existem duas formas de realizar, uma delas é utilizando o encadeamento de instrução “Se”, e a outra é usando a instrução “escolha caso” (GUEDES, 2014). Na estrutura de seleção de múltipla escolha um conjunto de valores discretos precisa ser testado e ações distintas são relacionadas a esses valores (FORBELLONE, 2005). Exemplo pseudocódigo utilizando a instrução Se: Se (variável = Tal_Coisa_1) então <conjunto de instruções A> Senão Se (variável = Tal_Coisa_2) então <conjunto de instruções B> Senão Se (variável = Tal_Coisa_3) então <conjunto de instruções C> Senão <conjunto de instruções D> Fim_Se Fim_Se Fim_Se Exemplo pseudocódigo utilizando a instrução escolha caso: Escolha variável_escolha Caso Tal_Coisa_1 <conjunto de instruções A> Caso Tal_Coisa_2 <conjunto de instruções B> Caso Tal_Coisa_3 <conjunto de instruções C> Outro_caso <conjunto de instruções D> Fim_Escolha Caso o valor da variável_escolha seja igual ao valor de Tal_Coisa_N, então o comando Caso será executado, caso contrário, serão verificados os outros casos até ser encontrada uma igualdade ou terminarem os casos. Para um comando que possui mais de um valor em que se verifica sua necessidade, todos esses valores são agrupados em um único caso. Para executar um comando que FACULDADE CATÓLICA PAULISTA | 32 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA se verifica com todos os outros valores, exceto os discriminados caso a caso, é incluído a situação “outro caso” (FORBELLONE, 2005). Anote isso Para aprender mais sobre as estruturas de controle, assista o vídeo “Lógica de Programação | Estruturas de Controle” acessando o link:< https://www.youtube.com/ watch?v=RUy_EI4SIcA> 10.1 Seleção Múltipla Escolha O exemplo a seguir demonstra uma estrutura de seleção encadeada homogênea se- senão-se: Se (A = X1) Então C1; Senão Se (A = X2) Então C2; Senão Se (A = X3) Então C3; Senão Se (A = X4) Então C4; Senão Se (A = X5) Então C5; Senão C6; Fim_Se Fim_Se Fim_Se Fim_Se Fim_Se O mesmo exemplo pode ser escrito utilizando a estrutura de múltipla escolha: Escolha A Caso X1 C1; Caso X2 C2; Caso X3 C3; Caso X4 C4; Caso X5 C5; Outro_caso C6; Fim_Escolha FACULDADE CATÓLICA PAULISTA | 33 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA Anote isso Quer aprender um pouco mais sobre seleção múltipla escolha? acesse o link:< https://www. youtube.com/watch?v=UG27GMtvzQM> e assista o vídeo “Seleção de Múltipla Escolha (ESCOLHA...CASO)”, do Canal Byte no YouTube. 10.2 Implementação das Estruturas de Decisão As estruturas de decisão são utilizadas para verificar um comando e efetuar a decisão do mesmo. Veremos a seguir a implementação das estruturas de decisão simples, composta e homogênea, heterogênea e múltipla escolha. 10.2.1 Implementação da Estrutura de Decisão Simples Na estrutura de decisão simples o comando somente será executado se a condição for verdadeira e essa condição é uma comparação que possui dois valores possíveis: verdadeiro ou falso (ASCENCIO, 2012). Se condição Então Início Comando 1 Comando 2 Comando 3 Fim Os comandos 1, 2 e 3 somente serão executados se a condição for verdadeira. 10.2.2 Implementação da Estrutura de Decisão Composta Se a condição for verdadeira os comandos 1 e 2 serão executados,caso contrário serão executados os comandos 3 e 4. Se condição Então Início Comando 1 Comando 2 Fim Senão Início Comando 3 Comando 4 FACULDADE CATÓLICA PAULISTA | 34 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA 10.2.3 Implementação da Estrutura de Decisão Múltipla Escolha Existem situações recíprocas exclusivas que se uma situação for executada, as outras demais não serão. Para o caso é indicado um comando mais seletivo como o “escolha_caso” (ASCENCIO, 2012). Escolha_caso (variável) Início Caso valor1: comando 1; Ação 1; Caso valor2: comando 2; Ação 2; Caso valor3: comando 3; Ação 3; Outro_caso: lista comandos; Fim_Escolha_caso O comando “escolha_caso” avalia o valor de uma variável para decidir qual caso será executado. Cada caso está relacionado a um possível valor da variável. Quando o valor da variável não coincidir com os valores especificados nos casos, então será executado o comando “outro_caso” (ASCENCIO, 2012). Dica de leitura Nome do livro: Fundamentos da Programação de Computadores Editora: Pearson Education do Brasil Autor: Ana Fernanda Gomes Ascencio e Edilene Aparecida Veneruchi de Campos ISBN: 978-8564574168 Comentário: Este livro apresenta técnicas e comandos para a elaboração e implementação de algoritmos nas linguagens PASCAL, C/C++ e JAVA. É um livro indicado para quem está iniciando no mundo da programação de computadores, visto que as linguagens de programação abordadas são muito utilizadas no início do aprendizado da programação de computadores e por serem de fácil entendimento, proporcionando o despertar para o raciocínio lógico. FACULDADE CATÓLICA PAULISTA | 35 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA AULA 11 ESTRUTURA DE REPETIÇÃO As estruturas de repetição permitem que um mesmo trecho de código seja executado mais de uma vez (GUEDES, 2014). Essa estrutura é muito utilizada quando um algoritmo inteiro ou somente um trecho dele precisa ser repetido e esse número de repetições pode ser fixo ou estar vinculado a uma condição, segundo Ascencio (2012) que pode ser indeterminado, mas necessariamente finito (FORBELLONE, 2005). Segundo Forbellone (2005), os trechos dos algoritmos que se repetem são chamados de laços de repetição e também são conhecidos por sua tradução em inglês, loops ou looping, por lembrarem uma execução finita em círculos, que posteriormente, segue sua execução normalmente. 11.1 Estrutura de Repetição com Teste no Início - While A repetição com teste no início é caracterizada por uma estrutura de controle de fluxo de execução que permite repetir diversas vezes um mesmo trecho de algoritmo, mas sempre verificando antes de cada execução se é permitido executar o mesmo trecho do algoritmo (FORBELLONE, 2005). Para que aconteça a repetição com teste no início é utilizado a estrutura “enquanto”, que possibilita que um bloco seja repetido enquanto uma determinada condição for verdadeira (FORBELLONE, 2005). De acordo com Ascencio (2012), essa estrutura de repetição é indicada quando não se sabe a quantidade de vezes que um trecho do algoritmo deve ser repetido, mas também pode ser utilizada quando se conhece a quantidade de vezes e se baseia na análise de uma condição e a repetição é realizada enquanto a condição for verdadeira. Enquanto a condição for verdadeira, os comandos 1, 2 e 3 serão executados. Enquanto condição Faça Início Comando 1 Comando 2 Comando 3 Fim FACULDADE CATÓLICA PAULISTA | 36 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA Em algumas situações o teste condicional da estrutura de repetição irá resultar em um valor falso já na primeira comparação. Assim sendo, os comandos escritos dentro dessa estrutura não serão executados (ASCENCIO, 2012). Enquanto a condição for verdadeira, o comando 1 será executado. Enquanto condição Faça Comando 1 Anote isso Acesse o vídeo “Lógica de Programação – Estrutura de Repetição ENQUANTO”, do canal Escola WWW no YouTube, para aprender um pouco mais sobre estrutura de repetição “enquanto”. Visite o link:< https://www.youtube.com/watch?v=u8MN57YKrEk> 11.2 Estrutura de Repetição: Conceitos de contadores e acumuladores De acordo com Guedes (2014), para os comandos internos das estruturas de repetição existem dois tipos de uso de variáveis: os acumuladores e os contadores. Quando a execução de um cálculo necessita de valores que sejam obtidos a cada interação ou quando o cálculo somente estará finalizado com a conclusão da repetição, utiliza-se os acumuladores. Para a operação em que será utilizado um acumulador deve ser inicializado com um valor neutro (GUEDES, 2014). No caso de uma adição o acumulador deve ser iniciado com o valor zero e ser for uma multiplicação, o acumulador deve ser inicializado com o valor 1 (GUEDES, 2014). A variável acumulador é usada para acumular à soma uma série de valores e devem ser inicializadas com o valor zero antes de serem utilizadas, pois se isso não acontecer, a soma irá incluir o valor anterior armazenado na posição de memória da variável acumulador (DEITEL, 2011). FACULDADE CATÓLICA PAULISTA | 37 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA Exemplo: Algoritmo Soma Var soma, i, num: inteiro; Início soma 0 // inicialização da variável soma com o valor zero para i de 1 até 5 faça escreva(“Digite um número: ”); leia(num); soma soma + num fim_para escreva(“Soma = “, soma); fim_algoritmo Já os contadores servem para executar a contagem de uma ação que ocorre dentro da estrutura de repetição (GUEDES, 2014). Essa técnica de utilizar um contador para controlar a estrutura de repetição serve então para especificar a quantidade de vezes que um conjunto de comandos será executado e é conhecida como repetição definida, pois o número de repetições é conhecido antes que o loop comece a ser executado (DEITEL, 2011). Essas variáveis contadoras devem ser inicializadas com os valores zero ou 1, dependendo da sua utilização (DEITEL, 2011). FACULDADE CATÓLICA PAULISTA | 38 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA Exemplo: Algoritmo Compara_Numero Var cont, i: inteiro; Início cont 0 // inicialização da variável cont com o valor zero para i de 1 até 5 faça escreva(“Digite um número: “); leia(num); se (num > 5) então cont cont + 1 // conta mais 1 na variável cont fim_se fim_para escreva(“Quantidade de números maiores que 5 é = “,cont); fim _algoritmo Anote isso Caso uma variável acumuladora ou contadora não for inicializada, os resultados do algoritmo podem estar incorretos. Por isso é muito importante inicializar todas as variáveis acumuladores e contadores. Fonte: DEITEL (2011, p. 53). FACULDADE CATÓLICA PAULISTA | 39 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA 11.3 Estrutura de Repetição com Teste no Final e Variável de Controle Do - While A estrutura de repetição com teste no final é utilizada juntamente com a estrutura repita que possibilita que um bloco ou uma ação seja repetida até que uma determinada condição seja verdadeira (FORBELLONE, 2005). Essa estrutura de repetição com teste no final é utilizada quando não se sabe a quantidade de vezes que um trecho do algoritmo deve ser repetido, mas também pode ser utilizada quando se conhece a quantidade de vezes de repetição do trecho do algoritmo (ASCENCIO, 2012). O teste condicional da estrutura de repetição é realizado ao final da estrutura (GUEDES, 2014), e essa estrutura se baseia na análise de uma condição onde a repetição será realizada até a condição se tornar verdadeira (ASCENCIO, 2012), e isso implica que os comandos internos sempre serão executados na primeira iteração (GUEDES, 2014). Exemplo estrutura de repetição repita: Algoritmo Exemplo_Repita Var // declaração de variáveis Início Repita Comando Até condição Fim_algoritmo A estrutura de repetição DO - WHILE podeser utilizada quando o número de repetições necessárias não for fixo e os comandos serão repetidos até a condição assumir o valor falso (ASCENCIO, 2012). Nessa estrutura o teste de condição é realizado no fim e, portanto, a repetição será executada, no mínimo uma vez, quando todo o bloco for executado uma vez e, ao final, a condição assumir o valor falso (ASCENCIO, 2012). FACULDADE CATÓLICA PAULISTA | 39 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA 11.3 Estrutura de Repetição com Teste no Final e Variável de Controle Do - While A estrutura de repetição com teste no final é utilizada juntamente com a estrutura repita que possibilita que um bloco ou uma ação seja repetida até que uma determinada condição seja verdadeira (FORBELLONE, 2005). Essa estrutura de repetição com teste no final é utilizada quando não se sabe a quantidade de vezes que um trecho do algoritmo deve ser repetido, mas também pode ser utilizada quando se conhece a quantidade de vezes de repetição do trecho do algoritmo (ASCENCIO, 2012). O teste condicional da estrutura de repetição é realizado ao final da estrutura (GUEDES, 2014), e essa estrutura se baseia na análise de uma condição onde a repetição será realizada até a condição se tornar verdadeira (ASCENCIO, 2012), e isso implica que os comandos internos sempre serão executados na primeira iteração (GUEDES, 2014). Exemplo estrutura de repetição repita: Algoritmo Exemplo_Repita Var // declaração de variáveis Início Repita Comando Até condição Fim_algoritmo A estrutura de repetição DO - WHILE pode ser utilizada quando o número de repetições necessárias não for fixo e os comandos serão repetidos até a condição assumir o valor falso (ASCENCIO, 2012). Nessa estrutura o teste de condição é realizado no fim e, portanto, a repetição será executada, no mínimo uma vez, quando todo o bloco for executado uma vez e, ao final, a condição assumir o valor falso (ASCENCIO, 2012). FACULDADE CATÓLICA PAULISTA | 39 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA 11.3 Estrutura de Repetição com Teste no Final e Variável de Controle Do - While A estrutura de repetição com teste no final é utilizada juntamente com a estrutura repita que possibilita que um bloco ou uma ação seja repetida até que uma determinada condição seja verdadeira (FORBELLONE, 2005). Essa estrutura de repetição com teste no final é utilizada quando não se sabe a quantidade de vezes que um trecho do algoritmo deve ser repetido, mas também pode ser utilizada quando se conhece a quantidade de vezes de repetição do trecho do algoritmo (ASCENCIO, 2012). O teste condicional da estrutura de repetição é realizado ao final da estrutura (GUEDES, 2014), e essa estrutura se baseia na análise de uma condição onde a repetição será realizada até a condição se tornar verdadeira (ASCENCIO, 2012), e isso implica que os comandos internos sempre serão executados na primeira iteração (GUEDES, 2014). Exemplo estrutura de repetição repita: Algoritmo Exemplo_Repita Var // declaração de variáveis Início Repita Comando Até condição Fim_algoritmo A estrutura de repetição DO - WHILE pode ser utilizada quando o número de repetições necessárias não for fixo e os comandos serão repetidos até a condição assumir o valor falso (ASCENCIO, 2012). Nessa estrutura o teste de condição é realizado no fim e, portanto, a repetição será executada, no mínimo uma vez, quando todo o bloco for executado uma vez e, ao final, a condição assumir o valor falso (ASCENCIO, 2012). verdadeiro FACULDADE CATÓLICA PAULISTA | 40 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA Exemplo da estrutura DO – WHILE do Início Comandos Fim_do While (condição) Anote isso Depois de definir as variáveis de entrada e de saída é recomendável realizar uma série de perguntas do tipo “o quê?” com o objetivo de descobrir, de uma forma clara e objetiva, alguns aspectos relevantes que se deve levar em conta na criação do algoritmo e nas ações envolvidas no processamento necessário para a obtenção das respostas desejadas. Fonte: Forbellone (2005, p. 31). FACULDADE CATÓLICA PAULISTA | 41 ALGORITMOS E LÓGICA DE PROGRAMAÇÃO I PROF. ME. RICARDO ZANNI SILVEIRA REFERÊNCIAS ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos da programação de computadores: algoritmos, Pascal, C/C++ (padrão ANSI) e Java. 3. ed. São Paulo: Person Education do Brasil, 2012. FORBELLONE, A. L. V. Lógica de Programação: A construção de algoritmos e estruturas de dados. 3. ed. São Paulo: Prentice Hall, 2005. GUEDES, S. Lógica de programação algorítmica. São Paulo: Pearson Education do Brasil, 2014.
Compartilhar