Baixe o app para aproveitar ainda mais
Prévia do material em texto
PENSAMENTO COMPUTACIONAL Cleiton Silvano Goulart Atribuição, operadores aritméticos (utilizando a linguagem Python) Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: � Definir o comando de atribuição e os operadores aritméticos. � Introduzir os testes de mesa utilizando os comandos print, input e de atribuição. � Aplicar os operadores aritméticos e de atribuição em problemas computacionais. Introdução Os operadores são símbolos utilizados para escrever expressões; eles são essenciais para o desenvolvimento de algoritmos em qualquer linguagem de programação. Os operadores de atribuição possuem o papel de atri- buir um determinado valor a uma variável. Já os operadores aritméticos consistem em operações matemáticas básicas, que podem sem aplicadas a variáveis numéricas. Neste capítulo, você vai estudar os operadores de atribuição e os operadores aritméticos da linguagem de programação Python. Você também vai analisar o uso dos testes de mesa utilizando os comandos print, input e de atribuição. Por fim, você vai verificar como aplicar os operadores aritméticos e de atribuição em problemas computacionais. Comandos de atribuição e operadores aritméticos Os operadores são símbolos utilizados para realizar alguma operação com as variáveis do programa. Lembre-se de que as variáveis consistem em um pequeno espaço na memória, em que podemos armazenar alguma informação, seja ela um número ou um texto, conforme leciona Santos (2018). O operador de atribuição mais simples que existe na linguagem Python é o operador de igualdade, cujo símbolo é o =. Por meio dele, podemos armazenar uma nova informação dentro de uma variável, de acordo com a sintaxe básica representada na Figura 1. Figura 1. Representação da sintaxe básica do operador de atribuição de igualdade em Python. Além do operador de atribuição (=), existem ainda as quatro operações aritméticas básicas: soma, subtração, multiplicação e divisão, representadas pelos operadores +, –, * e /, respectivamente. Todos esses operadores devem ser utilizados de forma análoga à forma ilustrada na Figura 1. Na Figura 2, é possível observar um exemplo de código com essas operações. Observe que cada operação foi realizada e armazenada em uma variável com o nome da operação realizada. Para exibir o valor da variável na tela, foi utilizado o comando print, que será estudado nas próximas lições. Atribuição, operadores aritméticos (utilizando a linguagem Python)2 Figura 2. Exemplo de uso dos operadores aritméticos básicos da linguagem Python. Além das operações aritméticas básicas, existem, ainda, os operadores de potenciação (**), o operador resto da divisão, também conhecido como módulo (%), e o operador parte inteira da divisão (//). No código ilustrado na Figura 3, é possível observar um exemplo de operação desses operadores adicionais. Figura 3. Exemplo de uso dos operadores aritmé- ticos adicionais da linguagem Python. 3Atribuição, operadores aritméticos (utilizando a linguagem Python) Ordem de interpretação dos operadores Na avaliação de uma expressão aritmética, é importante lembrar que alguns desses operadores serão avaliados antes dos outros. Na linguagem Python, a ordem de prioridade começa nos operadores de potência (*), de módulo (%) e de resto da parte inteira (//). Após esses operadores terem sido avaliados, serão avaliados os operadores de multiplicação e divisão, para, só então, serem avaliados os operadores de soma e subtração. Da mesma forma que, em uma expressão aritmética, é possível empregar os parênteses, os colchetes e as chaves para separar a expressão matemática em blocos, é possível fazer isso na linguagem Python. Porém, nessa linguagem, é possível usar apenas os parênteses. Os colchetes e as chaves possuem funções especiais na linguagem Python. A ordem de interpretação da expressão será sempre do parêntese mais interno para o mais externo. Por exemplo, na expressão 1 * 2 – (3 + 4), será avaliada primeiro a soma de 3 + 4, depois a multiplicação de 1 * 2, para, só então, ser avaliada a subtração do resultado da multiplicação com o resultado da soma. Operadores de atribuição compostos A linguagem Python possui um conjunto de operadores que facilitam opera- ções, como a soma de um número qualquer a uma variável. Por exemplo, se tivermos uma variável auxiliar, cujo valor consiste em um número inteiro qualquer, e queremos adicionar 3 a ela, podemos escrever auxiliar = au- xiliar + 3. Observe que, nesse exemplo, apesar de simples, foi necessário escrever o nome da variável duas vezes. Isso não só é mais cansativo, como pode ser uma fonte de erros. Além disso, deixa o código final mais difícil de ler. Nesse caso, podemos lançar mão dos operadores de atribuição compostos, conforme sugere Banin (2018). O mesmo exemplo abordado acima poderia ser escrito da forma auxiliar += 3, sendo ambas as abordagens iguais, em termos funcionais. Porém, mediante o uso desse operador, o código fica mais simples, mais limpo e menos sujeito a erros de digitação. Como você pode perceber, os operadores de atribuição compostos permitem uma escrita de código mais limpa, mais clara e muito mais eficiente. Além do operador de atribuição composto +=, a linguagem Python possui ainda os operadores -=, *=, /= e %=. Cada um deles possui um funcionamento análogo ao do operador +=. Na Figura 4 você pode observar como se dá o funcionamento de cada um desses operadores de atribuição compostos. Atribuição, operadores aritméticos (utilizando a linguagem Python)4 Figura 4. Exemplo de uso dos operadores de atribui- ção compostos. Testes de mesa Muitas vezes, quando você está desenvolvendo um código ou um algoritmo, é necessário que você garanta que esse código será funcional. Independentemente da linguagem de programação ou da forma de representação do algoritmo, por meio de testes, você vai conseguir eliminar uma série de erros que poderiam trazer um resultado inesperado ao código. O teste que é realizado durante a fase de desenvolvimento do algoritmo é conhecido como teste de mesa, conforme leciona Schach (2009). Esses testes devem ser realizados a partir de uma série de dados válidos, isto é, dados previstos para o correto funcionamento do teste. Porém, também é importante usar dados inválidos, para verificar a robustez do algoritmo. Existem várias formas de se aplicar esses testes. Eles podem ser realizados a partir da análise de execução direta do código, ou mesmo a partir da interpretação de algum pseudocódigo com funcionamento esperado para o código sob teste. Procedimento para fazer um teste de mesa Como regra geral, um teste de mesa deve avaliar a capacidade de um algoritmo de funcionar conforme o esperado. Se tomarmos como exemplo uma expressão aritmética cujo algoritmo deve ser avaliado, o procedimento consiste em aplicar uma série de valores de entrada no algoritmo e anotar suas saídas. Uma forma bastante prática consiste em utilizar uma tabela com os valores de entrada, os valores de saída e os valores esperados. 5Atribuição, operadores aritméticos (utilizando a linguagem Python) Para você fazer um teste de mesa em algum algoritmo, muitas vezes você vai precisar ter esse algoritmo escrito em alguma linguagem de programação (como a linguagem Python) ou por meio de uma representação gráfica (como o diagrama de blocos). Outro aspecto muito importante para realizar um teste de mesa em uma expressão aritmética consiste em dividir essa expressão em blocos menores, para facilitar a análise. Nesse caso, o teste pode ser feito bloco a bloco. Por meio da comparação direta do valor esperado com o valor de saída do algo- ritmo, é possível detectar rapidamente qual o trecho da expressão que precisa ser revisado. Exemplo de aplicação do teste de mesa Para exemplificar a aplicação de um teste de mesa em uma expressão aritmética, vamos tomar a função matemática expressa na equação 1. Observe que essa função podeser desmembrada em três partes, A, B e C, sendo que a parte A representa o termo x2, a parte B representa , e a parte C representa o termo – 7x. A fração da parte B ainda teve seu numerador e seu denominador separados nas variáveis B1 e B2, respectivamente. (1) Para o teste de mesa desse algoritmo, observe no Quadro 1 que foram usados os operadores de atribuição e aritméticos para compor cada um dos termos da equação 1. Ainda no Quadro 1, temos o valor de entrada que será aplicado ao algoritmo; na coluna valor de saída, temos o valor dado pelo algoritmo (código em Python, nesse exemplo), e na coluna valor esperado, temos o valor que seria esperado após a realização desse algoritmo. Os valores encontrados na coluna de valores esperados devem ser calculados à mão, de forma que você tenha plena certeza de que eles estejam corretos. Atribuição, operadores aritméticos (utilizando a linguagem Python)6 Comando em Python Valor de entrada Valor de saída Valor esperado 1 1 1 0 0 4 4 0 0 -7 -7 -6 -6 Quadro 1. Teste de mesa da equação 1: comandos e tabela de valores de saída O teste apresenta um resultado positivo quando todos os valores de saída do algoritmo forem iguais aos valores esperados para cada bloco de código. Já no Quadro 2, o mesmo teste foi repetido, porém, com um erro de digitação dos comandos. Você sabe dizer qual foi o erro? Observe os valores de saída e os valores esperados. A partir dessa análise, é possível identificar que o erro está no cálculo da variável C — foi ignorado um sinal de negativo. Repare que o valor final da função (y) é totalmente diferente do valor esperado para o valor de entrada 1. O teste de mesa que foi exemplificado pelos Quadros 1 e 2 deve ser repetido quantas vezes forem necessárias, mas com um valor de entrada diferente de 1. Podemos, por exemplo, aplicar como entrada os valores 0 e – 4. Repare que, assim, é possível testar o algoritmo matemático para uma variedade maior de entradas (uma positiva, uma negativa e uma nula — 0). 7Atribuição, operadores aritméticos (utilizando a linguagem Python) Comando em Python Valor de entrada Valor de saída Valor esperado 1 1 0 0 4 4 0 0 7 -7 8 -6 Quadro 2. Teste de mesa da equação 1, com um erro de digitação no algoritmo Aplicação prática nos problemas computacionais Os operadores aritméticos e de atribuição são essenciais para a criação de algoritmos computacionais que resolvam algum problema. Os operadores de atribuição são responsáveis por armazenar alguma informação nas variáveis de memória. Essas variáveis serão tratadas e recuperadas posteriormente, conforme a necessidade do algoritmo. Por meio de dois exemplos, será ilustrado, de forma simples e clara, como os operadores aritméticos e de atribuição podem ser empregados na solução de problemas computacionais. Exemplo 1: determinando o índice de massa corporal (IMC) O IMC é uma medida internacional usada para determinar a relação entre a altura e o peso corporal de um indivíduo. Por meio dessa medida, é possível determinar se uma pessoa está com o seu peso ideal. Esse indicador pode ser determinado por meio da equação (2). Para exemplificar como é possível usar os operadores de atribuição e os operadores aritméticos para resolver Atribuição, operadores aritméticos (utilizando a linguagem Python)8 problemas computacionais, a Figura 5 apresenta um código em Python que tem como objetivo perguntar ao usuário, por meio da função input, qual é o seu peso e sua altura, e, por meio dos operadores, determinar o IMC da pessoa. Após determinar o IMC, esse programa informa ao usuário o valor do seu índice de massa corporal, por meio da função print. (2) Figura 5. Código em Python para um programa que calcula o índice de massa corporal de uma pessoa. Exemplo 2: calculadora interativa simples Na Figura 6, temos um exemplo simples de uma calculadora interativa, que pode ser implementada com os operadores de atribuição e os operadores aritméticos. Para esse exemplo, foram utilizadas as seguintes funções: � print — usada para exibir algum conteúdo na tela; � input — usada para interagir com o usuário, solicitando que ele digite algo; e � float — usada para converter a entrada do usuário para um número de ponto flutuante, para que a linguagem Python possa fazer as operações aritméticas com os números digitados. Além disso, foi utilizada a estrutura if..elif..else para a tomada de decisões. 9Atribuição, operadores aritméticos (utilizando a linguagem Python) Figura 6. Código em Python para uma calculadora interativa simples. Exemplo 3: cálculo do teorema de Pitágoras Um triângulo retângulo é todo aquele que possui um de seus ângulos internos com 90º. A hipotenusa é o lado que fica oposto a esse ângulo, enquanto os catetos são os outros dois lados (que são adjacentes ao ângulo de 90º). Por meio do teorema de Pitágoras, expresso na equação (3), é possível obter o valor de qualquer um dos lados a partir do tamanho dos outros dois. Esse teorema é vastamente empregado nas engenharias, nas ciências da computação e em várias outras áreas, em diversos processos e operações. c2 = a2 + b2 (3) Uma aplicação muito interessante desse teorema é a determinação da menor distância entre dois pontos em um plano cartesiano. Esse problema é muito comum em situações reais e, até mesmo, em algoritmos de jogos. Considerando a situação da Figura 7, se tivermos dois pontos x1 e x2, a menor distância entre eles é dada pela reta c. Observe que, conhecendo as coorde- nadas cartesianas de ambos os pontos, é possível definir as distâncias a e b. O teorema de Pitágoras da equação (3) relaciona essas grandezas, conforme leciona Dasgupta, Papadimitriou e Vizirani (2009). Atribuição, operadores aritméticos (utilizando a linguagem Python)10 Supondo que o lado a = 3 e o lado b = 4, a partir da aplicação direta da equação 3, o lado c resulta em 5. Na Figura 8, é possível observar um algoritmo em linguagem Python que comprova tal exemplo e ilustra como é possível determinar essa relação com essa linguagem. Figura 7. Exemplo da determinação da menor distância em linha reta entre dois pontos por meio do teorema de Pitágoras. Figura 8. Exemplo de código em linguagem Python para determinação da menor distância entre dois pontos por meio do teorema de Pitágoras. 11Atribuição, operadores aritméticos (utilizando a linguagem Python) BANIN, S. L. Python 3: conceitos e aplicações: uma abordagem didática. São Paulo: Érica, 2018, 264 p. DASGUPTA, S.; PAPADIMITRIOU, C.; VIZIRANI, U. Algoritmos. São Paulo: McGraw-Hill, 2009. 336 p. SANTOS, M. G. Algoritmos e programação. Porto Alegre: Sagah, 2018. SCHACH, S. R. Engenharia de software: os paradigmas clássico & orientado a objetos. 7. ed. São Paulo, McGraw-Hill, 2009. 618 p. Leituras recomendadas BARRY, P. Use a cabeça! Python. 2. ed. Rio de Janeiro: Alta Books, 2018. 616 p. (Série Use a Cabeça/Head First). PERKOVIC, L. Introdução à computação usando Python: um foco no desenvolvimento de aplicações. Rio de Janeiro: LTC, 2016. 516 p. SANTOS, M. G.; SARAIVA, M. O.; GONÇALVES, P. F. Linguagem de programação. Porto Alegre: Sagah, 2018. 204 p. Atribuição, operadores aritméticos (utilizando a linguagem Python)12
Compartilhar