Baixe o app para aproveitar ainda mais
Prévia do material em texto
Desenvolvimento de algoritmo – Tipos de dados III SST Pereira, Fernanda Helena Rosa Desenvolvimento de algoritmo – Tipos de dados III / Fernanda Helena Rosa Pereira Ano: 2020 nº de p.: 13 Copyright © 2020. Delinea Tecnologia Educacional. Todos os direitos reservados. Desenvolvimento de algoritmo – Tipos de dados III 3 Apresentação Nessa unidade, discutiremos os tipos de dados e o desenvolvimento de algoritmos, levando em consideração os operadores que são necessários para que se possa acrescentar, diminuir e comparar os valores. Assim, iremos aprofundar o conceito frente aos tipos de operadores existentes no mercado hoje. Para tal, aprenderemos sobre os operadores aritméticos (recebem resultados numéricos), relacionais (comparam valores) e lógicos (que conferem a lógica de verdadeiro ou falso). Dentro dos operadores lógicos, também serão discutidos os de conjunção, de disjunção inclusiva, os de negação e o teste de mesa. Operadores Os operadores são os elementos disponíveis para que possamos acrescentar (incrementar), diminuir (decrementar) e comparar valores dentro do algoritmo. São classificados em três tipos: aritméticos, relacionais e lógicos, conforme as seções seguintes. (CORMEN et al., 2012) Curiosidade Operadores aritméticos e operadores relacionais Os operadores aritméticos existem para receber resultados numéricos; para tanto, são considerados: subtração, adição, divisão, multiplicação e, também, a exponenciação. 4 Existe uma simbologia que deve ser seguida para cada operador: Simbologia de operadores aritméticos Operador Simbologia a ser utilizada Adição + Subtração - Divisão / Multiplicação * Exponenciação ** Fonte: Elaborado pela autora (2018). Esta simbologia é utilizada tanto na elaboração de algoritmos, quanto em linguagens de programação. Ela é considerada universal, ou seja, caso não utilize essa simbologia, seu código não funcionará. Algumas linguagens de programação podem utilizar os operadores aritméticos de forma particular, por exemplo: o operador aritmético de exponenciação em Python é a função “POW”. Ao se utilizar operadores aritméticos, uma sequência deve ser considerada. Em diversos algoritmos ou, se não, em sua maioria, uma expressão aritmética poderá ter mais de um operador aritmético. Para isso, existe uma sequência de hierarquia que deve ser seguida, fazendo com que seu cálculo tenha o resultado correto. • 1º - ( ) Parênteses; • 2º - ** Exponenciação; • 3º - * ou / Multiplicação ou Divisão; • 4º - + ou - Subtração ou Adição. Atenção 5 A ordem listada acima deve ser impreterivelmente seguida. Veja o seguinte exemplo: 2 + 10 * 2 ** 2 – 2 = 40 Esta expressão possui quatro operadores aritméticos: se a conta for feita iniciando no primeiro operador (2 + 10) e assim por diante, o resultado não será 40, mas 574 (que é um resultado incorreto!). Vejamos mais alguns exemplos para melhor fixação. (2 + 10) * 2 + 10 / 2 = 29 10 / 2 + 3 * 2 = 11 5 / 2 – (7 / 2) + 1 = 0 Operadores relacionais são elementos utilizados para a comparação entre dois valores ou caracteres. Vale salientar que sempre é retornado um valor lógico (verdadeiro ou falso), perante a condição colocada. Os elementos que representam operadores relacionais são: Operadores relacionais e sua simbologia Elemento Simbologia a ser utilizada Igual a = Diferente de <> Maior que > Menor que < Maior ou igual que >= Menor ou igual que <= Fonte: Elaborado pela autora (2018). Suponhamos que X receba o valor 10 e Y receba o valor 5: X10 A 5 6 Utilizando os operadores relacionais, as respostas serão as seguintes: Exemplo de utilização de operadores relacionais Condição Resposta X >= Y Verdadeiro / Sim Y=X Falso / Não X<>Y Verdadeiro / Sim Y <= X Verdadeiro / Sim X < Y Falso / Não Y > X Falso / Não Fonte: Elaborado pela autora (2018). Os operadores relacionais são fundamentais ao elaborar um algoritmo, pois eles delimitam a execução de código associados a condições lógicas. Um exemplo do dia a dia bem simples, para compreensão, é: tenho dois irmãos, Caroline e Estevão. Caroline tem 24 anos e mede 1,78; Estevão tem 24 anos e mede 1,80. Concluímos que, quando se tratar de altura, Caroline é menor que Estevão e Estevão é maior que Caroline. Em se tratando de gênero, Estevão tem sexo diferente de Caroline. E por fim, ao observar a idade, Caroline é igual a Estevão. Operadores lógicos, operador lógico de conjunção, operador lógico de disjunção inclusiva, operador lógico de negação e teste de mesa Os operadores lógicos seguem também a forma de condição verdadeiro ou falso; contudo, ao contrário dos operadores relacionais, eles testam mais de uma condição ao mesmo tempo, tornando, portanto, os testes mais complexos. 7 Os operadores lógicos são subdivididos em três: operador lógico de conjunção, operador lógico de disjunção inclusiva e operador lógico de negação, que serão explicados a seguir. O operador lógico de conjunção utiliza a terminação E/AND e impõe que todas a condições comparadas sejam verdadeiras. (FORBELLONE; EBERSPÄCHER, 2005) Para melhor entendimento, faremos uso da tabela de verdade: Expressão avaliada: Condição 1 E Condição 2 = Resultado do Teste Tabela de verdade, utilizando o operador lógico E Tabela de verdade utilizando o operador lógico e CONDIÇÃO 1 CONDIÇÃO 2 RESULTADO VERDADEIRO VERDADEIRO VERDADEIRO VERDADEIRO FALSO FALSO FALSO VERDADEIRO FALSO FALSO FALSO FALSO Fonte: Elaborado pela autora (2018). A tabela verdade nos mostra como podemos utilizar a condição E/ AND. Veja, no exemplo a seguir, um trecho de um algoritmo que mostra a utilização dessa condição. Algoritmo com a condição E/AND Fonte: Elaborada pela autora (2018). 8 O algoritmo anterior (Figura) mostra a função SE, comparando duas condições: a > b E b < a - nesse caso, o algoritmo entraria na primeira função SE, pois, o resultado da comparação entre os dois será verdadeiro; caso o resultado fosse falso, ele entraria no bloco SENÃO. O operador lógico de disjunção inclusiva utiliza a terminação OU/ OR, impondo que apenas uma das condições comparadas seja verdadeira. (FORBELLONE; EBERSPÄCHER, 2005) Expressão avaliada: Condição 1 OU Condição 2 = Resultado do Teste Tabela de verdade utilizando o operador lógico OU Tabela de verdade utilizando o operador lógico ou CONDIÇÃO 1 CONDIÇÃO 2 RESULTADO VERDADEIRO VERDADEIRO VERDADEIRO VERDADEIRO FALSO VERDADEIRO FALSO VERDADEIRO VERDADEIRO FALSO FALSO FALSO Fonte: Elaborado pela autora (2018). A tabela verdade nos mostra como podemos utilizar a condição OU/OR. Veja, no exemplo a seguir, o mesmo trecho do algoritmo utilizado com a condição E. 9 Algoritmo com a condição OU/OR Fonte: Elaborada pela autora (2018). Foi feita uma pequena mudança no algoritmo, quando utilizamos a condição E. A função SE está comparando as duas seguintes condições: a < b OU b > a. O resultado da comparação entre as duas condições será falso, pois ambas deram o resultado negativo. Nesse caso, o algoritmo iniciaria sua execução dentro do SENÃO. O operador lógico de negação utiliza a terminação NÃO/NOT, que nega qualquer condição que está sendo comparada. Tabela de verdade utilizando o operador lógico NÃO Tabela de Verdade utilizando o operador lógico NÃO CONDIÇÃO RESULTADO Verdadeiro Falso Falso Verdadeiro Fonte: Elaborado pela autora (2018). A tabela da verdade (Quadro) nos mostra que, em qualquer opção, ela inverte a condição para seu valor oposto, isto é, se a condição é verdadeira, ela se torna falsa; e se falsa, vira verdadeira. A seguir, está o mesmo exemplo utilizado anteriormente com as modificações necessárias para a condição NÃO/NOT: 10 Algoritmo com a condição NÃO/NOT Fonte: Elaborada pela autora (2018). O proposto anteriormente (Figura) nos mostra uma abordagem diferente: nesse caso, não estamos comparando duas condições, mas apenas uma, NÃO (a < b), a não é menor que b, sendo assim, seguindo a tabela de verdade da operaçãoNÃO, a condição passa a ser verdadeira, sendo que o algoritmo iniciará sua execução no primeiro bloco SE-ENTÃO. É importante ressaltar que, nesta unidade, a intenção não é aprender funções (a função SE foi inserida nos exemplos, pois se trata de uma função autoexplicativa e para melhor entendimento dos operadores lógicos e relacionais). O teste de mesa consiste, basicamente, em fazer a compilação visual de um algoritmo. Existem programas nos quais se pode escrever os algoritmos e mostrar, automaticamente, na hora da execução, onde está o erro. Apesar dessa facilidade, ainda não há nada mais representativo do que o teste de mesa. Se ele se chama “teste de mesa”, siga a nomenclatura à risca: debruce- se sobre a mesa, com papel, caneta e muita atenção. Isso te ajudará a entender exatamente o que está acontecendo com o código. (RITA, 2009) Caso algo esteja errado, você encontrará os bugs do algoritmo e entenderá o que está acontecendo em cada linha de comando. Um dos exemplos de algoritmo já 11 utilizado será reproduzido para melhor compreensão de como é feito o teste de mesa: Algoritmo para exemplificar o teste de mesa Fonte: Elaborada pela autora (2018) Existem diversas formas de fazer um teste de mesa, por isso, é preciso experimentar várias maneiras para decidir qual é a melhor para sua compreensão. De qualquer modo, entender cada linha do código parece ser o mais relevante, no momento, sobretudo para quem está aprendendo. No quadro a seguir, há três partes, sendo que na primeira o usuário poderá digitar seus comandos; veja o que o sistema processará e o que será mostrado: 12 Exemplo de teste de mesa TESTE DE MESA – DADOS CADASTRAIS ENTRADA PROCESSAMENTO SAÍDA Karina - - 46 - - 1000.00 - - - 1000.00 – 10.00 = 990.00 - - - Karina - - 46 - - 990.00 Fonte: Elaborado pela autora (2018). Nesse caso, o algoritmo é básico, mas não veja como: “pra que vou fazer um teste de mesa de um algoritmo tão simples?”. Lembre-se que, para se chegar ao domínio de qualquer técnica, o treino é necessário, e não funcionará se iniciado do topo, pois é no chão que se fixa qualquer estrutura. No caso da aprendizagem de algoritmo, precisamos começar do básico para chegar ao avançado com excelência. Fechamento Estudamos nessa unidade os diferentes operadores existentes: operadores aritméticos, que são aqueles que recebem resultados numéricos, e os operadores relacionais, utilizados para comparação entre dois valores ou caracteres. Já os operadores lógicos conferem a condição de verdadeiro ou falso, e também testam mais de uma condição ao mesmo tempo. Por fim, o teste de mesa busca fazer uma compilação visual de um algoritmo. 13 Referências CORMEN, T. H. et al. Algoritmos: teoria e prática. 3. ed. Rio de Janeiro: Elsevier, 2012. FORBELLONE, A. E.; EBERSPÄCHER, H. F. Lógica de programação: a construção de algoritmos e estruturas de dados. 3. ed. São Paulo: Pearson, 2005. RITA, S. Treinamento em Lógica de Programação: Desenvolva projetos de software com mais eficiência e aprimore códigos e programas já existentes. São Paulo: Digerati Books, 2009.
Compartilhar