Baixe o app para aproveitar ainda mais
Prévia do material em texto
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA “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 II PROF. JOSÉ HENRIQUE HONJOYA SUMÁRIO AULA 01 AULA 02 AULA 03 AULA 04 AULA 05 AULA 06 AULA 07 AULA 08 AULA 09 AULA 10 AULA 11 AULA 12 AULA 13 AULA 14 AULA 15 AULA 16 05 08 15 21 26 31 34 46 49 52 56 59 63 69 74 77 INTRODUÇÃO A ALGORITMOS REPRESENTAÇÃO DE ALGORITMOS A LINGUAGEM SINTAXE, SEMÂNTICA, INSTRUÇÕES, PARÂMETROS E ATRIBUIÇÃO ENTRADA DE DADOS E SAÍDA STR (STRING) CONSTANTES, VARIÁVEIS E TIPOS DE DADOS OPERADORES MATEMÁTICOS EXPRESSÕES ARITMÉTICAS ÁLGEBRA BOOLEANA E OPERADORES LÓGICOS ESTRUTURA CONDICIONAL ESTRUTURA DE REPETIÇÕES VETORES, MATRIZES E DICIONÁRIO REFINAMENTO SUCESSIVO E MÓDULOS MÓDULO DICAS ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 4 INTRODUÇÃO Esta disciplina irá fornecer ao aluno conhecimento e ferramentas para que consiga desenvolver algoritmos utilizando uma linguagem de programação. Esta matéria é pilar para as futuras disciplinas. Após a conclusão desta aula o aluno será capaz de desenvolver programas funcio- nais que poderão ser utilizados em qualquer computador. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 5 AULA 1 INTRODUÇÃO A ALGORITMOS 1.1 O que é algoritmo? Com o advento dos computadores e seu uso para resolver problemas, ficou eviden- te o termo algoritmo, embora utilizamos algoritmos no nosso dia a dia para execuções de tarefas simples como escovar os dentes e até mesmo ligar um veículo. Mas o que é realmente algoritmo? Algoritmo é simplesmente uma receita para a execução de uma tarefa. Para que você tenha um algoritmo que atenda sua finalidade ele deverá sempre ter um objetivo alcançável, ou seja, ser finito. Abaixo temos descre- vemos o algoritmo para escovar os dentes: Problema: Escovar os dentes pela manhã - Algoritmo EscovarDentes 1. Molhar a escova de dente 2. Colocar creme dental na escova 3. Escovar os dentes 4. Enxaguar a boca com água 5. Lavar a escova 6. Enxugar a boca - Fim do algoritmo EscovarDentes Como citado anteriormente, o termo algoritmo e seu estudo se tornou mais evi- dente ao resolver problemas utilizando-se de recursos computacionais, seu estudo é requisito obrigatório em cursos voltados para desenvolvimento de sistemas. 1.2 Lógica Uma boa lógica é requisito essencial para um bom programador, sendo este ponto- -chave para a resolução de problemas no dia a dia. Alves (2014) descreve que a lógica ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 6 nos ensina como utilizar o pensamento em busca de uma solução frente a algum pro- blema, ajudando a organizar as tarefas para que o problema seja solucionado. Uma boa lógica o ajudará a elaborar algoritmos assertivos, cobrindo os cenários que poderão se apresentar no decorrer de sua execução. 1.3 Conceitos Básicos Dados: conjuntos de elementos brutos que podem ser utilizados como entrada em um sistema computacional, a fim de obter resultados após processado (Informação). Informação: conjunto de resultados fornecidos após processamento dos dados brutos, este processamento é realizado por um ou mais algoritmos. Programa de Computador: sequência de instruções não ambígua e finita em uma linguagem de programação específica que, quando executada, resolve um problema determinado pelo programador. Linguagem de máquina: linguagem binária, composta por sequências de uns e ou zeros, essas sequências são utilizadas para representar os dados, programas e outros de maneira digital. Linguagem de programação: hoje no mercado temos diversas linguagens de pro- gramação de diversos níveis, desde uma linguagem de baixo nível que se comunica com registradores do processador que é o caso do Assembler e linguagens de mais alto nível que é o caso do Java, PHP, Ruby, Go, Python e outras. Compiladores e Interpretadores: ambos têm como responsabilidade a tradução do código escrito em uma linguagem de alto nível para linguagem de máquina, a diferen- ça é que uma linguagem compilada obtém-se um executável em sua grande maioria e a interpretada é traduzida em tempo de execução. Sistema Operacional: primeira camada de software dos nossos computadores ele é responsável por realizar a comunicação dos programas e o hardware. O desenvolvi- mento de um SO (Sistema Operacional) é extremamente complexo. Hardware: termo utilizado para dispositivos físicos o qual podemos visualizar e que possuem funções específicas como mouse, teclado, monitor, processador, placa mãe, placa de rede etc. Memória: é utilizada para armazenamento dos dados que estão sendo processa- dos pelo seu algoritmo, o conhecimento de como a linguagem de programação traba- lha com ela é fundamental. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 7 O conceito apresentado é de extrema importância dentro do ambiente computacio- nal e no desenvolvimento de software, alguns destes conceitos poderão ser aplicados na escolha da linguagem de programação a ser utilizada no desenvolvimento do seu algoritmo, algumas linguagens de programação podem ser específicas para específi- cos sistemas operacionais (Android, Linux, Windows, embarcados ou outros) ou har- dwares (mobile, embarcados, com arquitetura 32 bits/ 64 bits ou outros). 1.4 Propriedades de um algoritmo Souza descreve que todo algoritmo possui propriedades tais como: - Valores de entrada: o algoritmo deve receber zero ou mais argumentos de entra- da, um algoritmo que recebe zero entrada terá seu funcionamento estático, ou seja, irá gerar saídas levando em consideração dados de entrada. - Valores de saída: todo algoritmo possui uma ou mais saídas que simboliza seu resultado, podemos utilizar como exemplo um algoritmo de soma, que passando dois números A e B o valor de saída seria R, onde R é a somatória de A e B. - Finitude: um algoritmo é desenvolvido para a execução de tarefa que irá resolver algum problema e como toda tarefa deve haver início, meio e fim. - Passos elementares: um algoritmo computacional deve ser explicado por meio de operações elementares ou seja sem ambiguidade e de forma lógica visando a fini- tude. - Correção: um algoritmo deve ser correto, isto é, deve permitir que, com sua exe- cução, se chegue à saída com resultados coerentes com a entrada, para saber se um algoritmo está correto ou não deve-se realizar testes com diversos valores de entrada, cujos valores a serem produzidos já se conhece o resultado, então, comparar esses resultados com os valores produzidos pelo algoritmo em questão. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 8 AULA 2 REPRESENTAÇÃO DE ALGORITMOS No desenvolvimento de software é muito comum a utilização de formas de repre- sentações textuais ou gráficas, seja para exemplificar um componente físico ou lógi- co. Na representação de algoritmos temos algumas formas que podem ser adotadas, sendo elas: - Através de uma Língua: estas formassão frequentemente utilizadas em manu- ais de montagem, configuração, algoritmos entre outros - Linguagem de Programação: sendo utilizadas por desenvolvedores que preferem pular a fase de prototipação e validação do algoritmo, partindo direto para a progra- mação. - Representações gŕaficas ou textuais, onde podemos utilizar algumas destas for- mas: - Diagrama de blocos - Português estruturado 2.1 Diagrama de blocos Manzano (2016) descreve que a representação gráfica baseada nas formas geo- métricas padronizadas que implica o uso e a implementação de ações distintas. O uso de diagramas facilita o entendimento das ideias de uma pessoa ou equipe e justifica sua popularidade. Este tipo de diagrama proporciona a visualização da entrada, processamento, flu- xos e a saída de um algoritmo, abaixo temos um exemplo: ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 9 Diagrama de bloco de um algoritmo de soma. Fonte: Algoritmos = Lógica de para Desenvolvimento de Programação de Computadores No exemplo acima, temos um algoritmo de soma que receberá A e B como dados de entrada, irá realizar a soma dos dados de entrada e atribuir a variável R, que irá re- tornar a escrita do valor atribuído a R. Como visto no exemplo o diagrama de bloco utiliza-se de formas geométricas, abai- xo temos as formas disponíveis e o significado de cada uma: ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 10 Tabela com as formas disponíveis no diagrama de blocos. Fonte: elaborado pelo autor Com as formas apresentadas acima, podemos representar algoritmos simples como o apresentado anteriormente, e até mesmo mais complexos, como algoritmos contendo laços de repetição, condicionais e sub-rotinas. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 11 Contador até 10, utilizando Diagrama de Bloco. Fonte: Algoritmos - Lógica de para Desenvolvimento de Programação de Computadores No exemplo acima temos um algoritmo que irá gerar saídas de zero a dez, onde: 1. I começa valendo 1 2. Há uma condicional, onde se I é menor ou igual a 10 deverá ser exibido o valor de I 3. Após exibição o valor de I é incrementado em + 1 4. Voltamos para a fase condicional (2) 5. Caso o valor de I seja maior do que 10, finaliza o algoritmo Isto está na rede Existem diversas ferramentas online que auxiliam o desenvolvimento de diagra- mas de forma gratuita, nelas você pode criar, editar, exportar e até compartilhar com outras pessoas os diagramas desenvolvidos. Abaixo segue algumas da mais utilizadas: - Creately - https://creately.com/pt/home/ - Diagrams.net - https://www.diagrams.net/ - Lucidchart - https://app.lucidchart.com/ https://creately.com/pt/home/ https://www.diagrams.net/ https://app.lucidchart.com/ ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 12 2.2 Português estruturado Este método é uma forma especial da linguagem, onde temos palavras do portu- guês que irão funcionar como comandos, possui uma maneira fácil de interpretação por utilizar o português. Abaixo temos um algoritmo de soma, utilizando-se do portu- guês estruturado. Representação utilizando português estruturado de um algoritmo de soma. Fonte: Algoritmos - Lógica de para Desenvolvimento de Programação de Computadores Podemos ter cenários mais complexos, envolvendo laço de repetição e condicio- nais, como exemplo utilizaremos o algoritmo de impressão de números de um até dez, conforme apresentado como exemplo no diagrama de blocos. Contador até 10, utilizando Português Estruturado. Fonte: Algoritmos - Lógica de para Desenvolvimento de Programação de Computadores Com base no “Português Estruturado” surgiram ferramentas que interpretam o có- digo escrito e o transformam em um programa, podemos citar a pseudolinguagem chama de Portugol. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 13 Portugol permite que o leitor possa desenvolver algoritmos estruturados de forma simples e intuitiva, emprega-se a técnica de refinamentos sucessivos, após refina- mento final o algoritmo é escrito em outra linguagem. 2.3 Linguagem de programação Muitas das instituições de ensino no mundo estão mudando a metodologia de ensi- no de algoritmo, pulando diretamente para o uso de uma linguagem de programação, essa iniciativa teve início em renomadas universidades americanas, abaixo temos o algoritmo de soma desenvolvido utilizando a Python. Algoritmo em Python com a função de soma. Fonte: elaborado pelo autor No exemplo abaixo temos o mesmo algoritmo de contagem de um a dez apresen- tado anteriormente escrito na linguagem Python, observe que temos duas formas de escrever o mesmo algoritmo. Contador até 10, utilizando Python versão somente com while. Fonte: elaborado pelo autor ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 14 Contador até 10, utilizando Python versão com condicional. Fonte: elaborado pelo autor Ambas as versões do contador possuem as mesmas saídas, porém utilizando ins- truções diferentes, mas não se preocupe caso não tenha entendido o código, nas au- las posteriores os códigos farão mais sentido. Isto está na rede A linguagem de programação Python foi lançada por Guido van Rossum em 1991 e possui seu desenvolvimento comunitário, aberto e gerenciado pela en- tidade Python Software Foundation, vem sendo adotada no desenvolvimento científico, no desenvolvimento de aplicações para web, jogos, desktop e outros. Fonte: Python Brasil - https://python.org.br/ 2.4 Abordagem escolhida Para potencializar o aprendizado do leitor será utilizado o Python no decorrer das próximas aulas, esta escolha proporcionará ao aluno o contato desde o início com uma linguagem de mercado e tornando seu aprendizado mais abrangente. https://python.org.br/ ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 15 AULA 3 A LINGUAGEM Nesta aula iremos conhecer um pouco mais sobre o Python e você terá o primeiro contato com a linguagem, abaixo temos tópicos que o ajudará a realizar a instalação e configuração do ambiente de desenvolvimento em sua máquina local e a execução do nosso primeiro algoritmo. 3.1 Python A linguagem de programação escolhida para o desenvolvimento desta disciplina é o Python ela é uma linguagem baseada em comandos (imperativa), ela é muito se- melhantes a outras linguagens como PHP, Java, C++, podemos dizer que ela é uma linguagem interpretada. Seu surgimento se deu em 1991 com o intuito de simplificar o desenvolvimento de aplicações, hoje ela é muito utilizada na mineração de dados, aprendizado de máqui- nas, em desktop e para internet. O Python leva a indentação (espaçamento do bloco de texto em referência a sua margem esquerda) do código muito a serio, então é extremamente importante que você tenha cuidado ao escrever seu código, outro ponto importante é que todas as linguagens de programação de mercado utilizam palavras reservadas em inglês. 3.1.1 IDE (Integrated Development Environment ou Ambiente de Desenvolvimento Integrado) As linguagens de programação são baseadas em texto, então podemos utilizar um simples editor de texto para escrever código, porém podemos utilizar uma IDE. A IDE é um conjunto de ferramentas que vem para nos apoiar no desenvolvimento, onde podemos maximizar nossa produtividade e reduzir a quantidade de erros, ela nos auxilia em: ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 16 - Visualizar os dados de forma organizada. - Auto completar de comandos específicos da linguagem, funções e processos. - Correção de espaçamentos (Muito importante quando utilizamos Python). - Ajuda na gestão dependência. - Fornece terminalacoplado para a execução do código. - Entre outras. Para potencializar o aprendizado iremos utilizar o PyCharm que é uma ferramenta desenvolvida pela empresa JetBrains e fornecida gratuitamente para a comunidade (Versão sem suporte avançado a outras tecnologias). Caso queira baixar a versão paga, você poderá solicitar a versão estudante, que lhe dará 1 ano de cortesia ou utili- zá-la gratuitamente por 30 dias. Acesso ao site do PyCharm: https://www.jetbrains.com/pt-br/pycharm/download 3.2 A instalação do Python no Windows Hoje temos diversas opções de sistemas operacionais no mercado, onde os mais conhecidos são o Windows, Linux e MacOS, para este livro iremos utilizar o Windows na versão 10, caso você faça uso do Linux, não se preocupe o python já vem instalado em diversas distribuições ou encontrará um tutorial no google para lhe auxiliar na ins- talação e configuração do ambiente. Instalando no Windows: Passo 1: Baixe o instalador do Python no site https://www.python.org/downloads/, será utilizada a versão 3.8.5, clique em Download e executar https://www.jetbrains.com/pt-br/pycharm/download https://www.python.org/downloads/ ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 17 Página de download do Python. Fonte: elaborado pelo autor Passo 2: Instalando o Python Início da instalação do Python. Fonte: elaborado pelo autor Selecione a opção “add Python 3.8 to PATH”, esta opção irá garantir que o instalador mapeie o python para utilização via linha de comando. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 18 Finalização da instalação do Python. Fonte: elaborado pelo autor Passo 3: Verificando se a instalação do Python foi realizada corretamente, para isso abra o PowerShell e execute o comando python --version, abaixo temos o resulta- do da execução do comando. Conferindo a instalação do Python. Fonte: elaborado pelo autor 3.3 Escrevendo o primeiro algoritmo Iremos dar nosso primeiro passo no mundo da programação e para isso iremos criar nosso primeiro código, o famoso Hello World, por curiosidade todas as lingua- gens de programação têm exemplos deste código, para isso dentro da pasta do seu usuário, que fica localizado em C:\Users\<SeuUsuario>, cria uma pasta chamada au- las, no caso da imagem abaixo o <SeuUsuario> é Python, após criação abra o Py- Charm e abra o projeto apontando para a pasta aulas. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 19 Pasta do usuário contendo a pasta aulas. Fonte: elaborado pelo autor Crie o arquivo hello.py dentro da pasta aula, dentro deste arquivo iremos escrever nosso primeiro algoritmo, adicione o código abaixo e salve o arquivo. print(‘Hello World’) A função print realiza a impressão do atributo informado, posteriormente iremos falar mais sobre a sintaxe do Python e a função print. Anote isso Por padrão todos os arquivos contendo código escrito em Python devem pos- suir a extensão .py, você poderá até utilizar outra extensão, porém recomenda- mos da extensão padrão. Após salvar o arquivo, localize a aba Terminal dentro do PyCharm esta aba será utilizada para acesso ao terminal do Windows via a ferramenta, a qual será utilizada para executar o código hello.py, para isso clique na aba Terminal e execute o comando abaixo: python hello.py ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 20 O comando python <nome-do-arquivo>.py será sempre utilizado para executar o código nele salvo. Abaixo temos a tela do PyCharm contendo o comando e a saída do terminal, que deverá ser “Hello World” Aba Terminal demonstrando a saída após execução do comando python hello.py. Fonte: elaborada pelo autor Isto acontece na prática Caso você tenha dúvida em como instalar o Python, você poderá fazer o acesso à documentação disponível no site https://python.org aonde encontrará as for- mas de instalação do Python para diversos Sistemas Operacionais. Fonte: https://wiki.python.org/moin/BeginnersGuide/Download https://wiki.python.org/moin/BeginnersGuide/Download ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 21 AULA 4 SINTAXE, SEMÂNTICA, INSTRUÇÕES, PARÂMETROS E ATRIBUIÇÃO Nesta aula você entenderá como a importância da sintaxe e a semântica do Python e como seu entendimento é importante para otimização de tempo. 4.1 Sintaxe A sintaxe de uma linguagem de programação é o conjunto de regras que a definem como o programa será escrito e interpretado/compilado, isso não é diferente no Py- thon que foi criado com foco em legibilidade e praticidade, ele possui um layout orga- nizado, fazendo uso de espaços para definir início e fim de blocos de código, diferente de outras linguagens que forçam o desenvolvedor realizar este tipo de declaração. Manzano (2016, p. 14) descreve que o excesso de erros de sintaxe denota um pro- fissional com pouca experiência na utilização de uma determinada linguagem de pro- gramação, enquanto erros de lógica mostram grande despreparo na “arte” de progra- mar um computador. Acreditando que os erros podem ser retirados no momento da compilação de um programa, as pessoas perdem muito mais tempo do que imagi- nam, e assim entram em um círculo vicioso de querer resolver o problema (erros de sintaxe e de lógica) por tentativa e erro. O profissional deve-se habituar-se com a linguagem, realizando a implementação de diversos algoritmos como treino, se habituando com a peculiaridade da linguagem. 4.1.1 Sintaxe no Python A linguagem Python foi criada com a premissa que o desenvolvedor consiga ler facilmente um código desenvolvido com ela, para isso possui uma sintaxe um pouco diferente de outras linguagens, onde: ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 22 - Espaços em branco: diferentemente de outras linguagens como Java, PHP, Pas- cal e outras o Python utiliza-se dos espaços para definir o que está dentro no contexto de um bloco. Exemplo 1 - uso de espaços em branco e bloco de código if. Fonte: elaborado pelo autor Ao analisar o código acima fica visível que o print(“Numeros são iguais - Dentro do bloco”) está utilizando espaçamento em branco em relação ao bloco if( 10==10): com base na sintaxe do Python significa que caso seja verdadeira a afirmação que 10 é igual a 10 será impresso a mensagem “Números são iguais - Dentro do bloco”, caso contrário será impresso a mensagem “Números não são iguais”, porém na linha 7 temos o comando print(“Finalizando”) , que sempre será executado independente da condição, pois ele está fora do bloco do if ou do else. Exemplo 2 - uso de espaços em branco e bloco de código if. Fonte: elaborado pelo autor No código acima existem duas instruções print dentro do bloco do if e duas instru- ções no bloco do else, ambas as instruções usam espaço em branco em relação às instruções if e else ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 23 - Uso de ponto e vírgula (;): é muito comum em algumas linguagens de programa- ção que ao término de uma instrução o uso obrigatório do (;), no Python o uso de (;) é opcional, não sendo recomendado, pois cada linha possui como boa prática uma única instrução. Em caso de mais de uma instrução por linha é obrigatório o uso de (;) ao término. Ainda há diversos elementos que abordam a sintaxe do Python que serão aborda- dos posteriormente nas próximas aulas. 4.2 Semântica Utilizando da sintaxe do Python vem outro ponto importante dentro da programa- ção que é a semântica ou lógica, ela garante que o código escrito tenha sentido dentro do contexto, podendo gerar erros de lógicas, causando saídas inesperadas. 4.3 Instruções Joyanes (2011, p. 77) define que uma instrução é um conjunto de tarefas que que o computadorirá executar, essas instruções também são conhecidas como ações, tipos de instruções: - Instruções de início/fim - Instruções de atribuição - Instruções de leitura - Instruções de escrita - Instruções de bifurcação Na linguagem Python há diversas instruções que podem ser utilizadas no seu algo- ritmo, como: - Leitura de teclado - Leitura de arquivos - Download de arquivos via rede - Escrita/Saída em monitores ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 24 - Impressão - Gravação de arquivos em disco - Envio de informações via rede - Condicionais - Laços de repetições - Lançamento de erros - Funções definidas pelo programador - etc Podemos utilizar a instrução print como exemplo, ela recebe como parâmetro o texto a ser impresso na tela do usuário. 4.4 Atribuição de valores Posteriormente iremos ter uma aula sobre o conceito e uso de variáveis, porém para que seja explicada a atribuição de valores, usaremos variáveis, mas não se preo- cupe o conceito de variável será abordado mais à frente. A atribuição é utilizada quando for necessário vincular valores para variáveis a se- rem utilizada em um algoritmo, por padrão as linguagens de programação utilizam o sinal de (=) igual para atribuição, abaixo exemplificamos a atribuição do texto “Hoje é dia de aprender” para a variável meu_texto e posteriormente sua impressão. Atribuindo um texto a variável meu_texto e imprimindo. Fonte: elaborado pelo autor 4.5 Comentários Na linguagem Python temos o recurso de comentários, com ele podemos adicionar comentários no código para auxiliar outros desenvolvedores ou até mesmo o autor, este tipo de recurso é frequentemente utilizado para documentar o código escrito ou ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 25 até mesmo deixar algo a ser melhorado. Vale ressaltar que os comentários são ignorados pelos compiladores e interpreta- dores e há duas formas de se comentar um código, podemos utilizar: - Comentário de uma linha utiliza-se o carácter # seguido pelo texto do comentário. Comentário de uma linha. Fonte: elaborado pela autora - Comentário englobando mais de uma linha devem utilizar “”” seguido pelo texto e finalizado por “”” Comentário de múltiplas de linhas. Fonte: elaborado pelo autor ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 26 AULA 5 ENTRADA DE DADOS E SAÍDA Nesta aula será abordada de forma teórica e prática a entrada de dados a qual irá fornecer os dados a serem trabalhados pelos algoritmos e as formas de saídas. Edelweiss (2014, p. 59) define que os comandos de entrada e de saída fazem a liga- ção entre o programa e o usuário. Toda comunicação entre o mundo virtual e o mundo real é feita através desses comandos, sem os quais o usuários não ficaria ciente do que ocorreu durante e ao término do processamento. Diagrama de entrada, processamento e saída. Fonte: elaborado pelo autor 5.1 Entrada A entrada de dados entre computador e o usuário é realizada através dos coman- dos de entrada, as linguagens de programação de computadores por padrão forne- cem mecanismos de entrada, podendo formar da instrução ser chamada variar entre as linguagens, por exemplo, para obter a interação do usuário via teclado na lingua- gem C é utilizado o comando gets ou getchar, no Pascal utiliza-se readln. Pode-se considerar como entrada de dados em um sistema computacional: - Interação teclado e mouse - Leitura de arquivos - Leitura de sensores - Captura de imagem via câmera - Entre outros Será utilizada a entrada de dados por interação do usuário com o teclado, esta inte- ração irá permitir que o usuário interaja com a máquina fornecendo dados de entrada para o algoritmo. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 27 5.1.1 Instrução input No Python a entrada de dados se dá pelo comando input este comando irá solicitar ao usuário a entrada de informações pela interface do teclado, abaixo exemplo de um algoritmo que irá solicitar o nome do usuário. Código solicitando a entrada do nome do usuário. Fonte: elaborado pelo autor Ao executar este comando será solicitada a resposta da pergunta “Qual é seu nome?” Ao usuário que poderá enviar sua resposta digitando o valor e pressionando a tecla ENTER, conforme demonstrado na imagem abaixo: Resultado da execução do código que solicita a enteada do nome do usuário. Fonte: elaborado pelo autor 5.2 Saída Há diversas formas de um algoritmo executar um comando de escrita (saída), a mais comum delas é a exibição através de um monitor outras formas também pode ser utilizadas: - Impressão - Sonora - Pulsos elétricos ou de luz - Gravação de arquivos - etc. Da mesma forma que as linguagens de programação dão suporte a comandos de ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 28 entrada, elas também dão suporte para os comandos de saída, por exemplo, podemos enviar um mensagem de saída para o monitor através de uma linguagem de progra- mação. A observação realizada referente à entrada e as diversas linguagens de programa- ção são aplicadas à saída, onde cada linguagem pode definir conjunto de instruções de saída. 5.2.1 Instrução print Abaixo será demonstrado como é realizada a exibição de informações ao usuário através do monitor, onde é utilizada a instrução print do Python que realiza a impres- são do valor. A instrução print é capaz de imprimir texto e número e pode-se realizar a impres- são de um de 1-n valores, bastando informar os valores separados por vírgulas, abaixo temos alguns exemplos de utilização do print. 5.2.1.1 Impressão de texto simples Impressão de um texto simples, o mesmo já utilizado no exemplo “hello.py” Código para impressão de um texto simples e saída. Fonte: elaborado pelo autor ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 29 5.2.1.2 Impressão de dois ou mais textos Para realizar a impressão de mais de um texto para informar os textos a serem impressos separado por vírgula. Código para impressão de dois textos Fonte: elaborado pelo autor 5.1.1.3 Impressão de números e textos Utilizando-se de instrução print é possível realizar a impressão de números e de números e textos. Código para impressão de número Fonte: elaborado pelo autor ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 30 Código para impressão de número e texto com parâmetros se- parados Fonte: elaborado pelo autor ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 31 AULA 6 STR (STRING) Nesta aula iremos ver um pouco mais sobre a str que é a abreviação de string que é uma sequência de caracteres, formando um texto. 6.1 Concatenando Dados Abaixo há necessidade de concatenar o número 7 ao texto, com a intenção de obter o resultado final de “Seu número da sorte é 7”, porém ao executado o algoritmo foi retornando um erro com a seguinte mensagem “can only concatenate srt (not int) to str”, isso quer dizer que temos uma texto que está sendo concatenando o número 7 que é inteiro. getchar Código com concatenação de texto e o número 7 Fonte: elaborado pelo autor Logo a seguir temos a correção do exemplo acima, onde utilizamos o instrução str passando como parâmetro o número 7, esta instrução realiza a conversão do 7 de inteiro para texto. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 32 Importante: o número 7 é do tipo inteiro, porém ao utilizar aspas simples ou duplas em um número o interpretador do Python entende o valor é um texto. 6.2 Formatando Texto (String Formatting) Há outras formas que podemos utilizar a concatenação de string em textosmais complexos, como a adição de valores em uma string pré definida como: “O aluno {} tirou {} na prova de {}” Precisamos que o nome, nota e o nome da matéria esteja presente neste texto, para isso podemos utilizar um método dentro da string, não se preocupe em tentar entender o que seria um método por enquanto, isso será tratado posteriormente. Código com concatenação utilizando string.format Fonte: elaborado pelo autor ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 33 Isto está na rede Toda linguagem de programação possui documentação a qual você consegue consultar informações sobre a introdução, parâmetros informados e compor- tamento, no caso do Python você poderá acessar https://docs.python.org/3/ library/string.html e obter mais informações sobre os métodos de uma string. Fonte: https://docs.python.org/3/ https://docs.python.org/3/ ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 34 AULA 7 CONSTANTES, VARIÁVEIS E TIPOS DE DADOS Nas aulas anteriores utilizamos variáveis em alguns exemplos de código em Py- thon, nesta aula iremos entender como podemos utilizar as variáveis para armazenar valores em nossos sistemas de acordo com o tipo dos dados e como podemos definir valores constantes. 7.1 Constantes Nos programas de computadores existem certos valores que devem ser fixos, não podendo sofrer modificações no decorrer da sua execução, vamos supor que temos um algoritmo que irá realizar o cálculo da área de círculo ( ) , neste algoritmo foi definido que o irá valer 3.14, então podemos definir o valor como uma constante, abaixo temos como podemos definir uma constante no Python. Anote isso O conceito sobre constante é importante para que se torne mais fácil a transi- ção de uma linguagem para outra, pois a forma de declaração de uma constan- te varia de acordo com a linguagem. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 35 No caso do Python, por ser tratar de uma linguagem dinâmica ele não faz o uso de constante, por isso devemos tomar muito cuidado em alterar valores, no exemplo abaixo trocamos o valor de PI para 10, abaixo temos saídas com valores diferentes, onde Área I é igual a 314 e Área II 1000. Para resolver o problema de constantes no Python, podemos utilizar funções con- forme demonstrado abaixo: 7.2 Variáveis As variáveis armazenam valores e são elementos básicos na programação, elas ar- mazenam os dados que precisamos em nosso algoritmo, no exemplo do IMC, temos a variável resposta que armazena valor do imc ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 36 Exemplificação do algoritmo de IMC Fonte: elaborado pelo autor Toda informação armazenada em uma variável são persistidas na memória do computador e os valores associados a elas podem ser modificados ao longo da exe- cução do algoritmo, conforme demonstrado anteriormente. Embora uma variável pos- sa assumir diversos valores em todo o ciclo de execução do algoritmo, ela só poderá armazenar um único valor a cada instante, ou seja, para cada nova atribuição o valor anterior armazenado é descartado. No caso do Python quando declaramos uma variável ela não precisa da definição do tipo, pode-se armazenar qualquer tipo de dados, seja ele um texto ou um número, em algumas linguagens como C e Java é necessário informar o tipo da informação a ser armazenada na criação da variável. Abaixo temos uma breve demonstração de como é realizada a criação de variável dentro do Python. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 37 Declarando e imprimindo dados de variáveis Fonte: elaborado pelo autor Devido ao dinamismo do Python mesmo que uma variável contenha um valor nu- mérico é possível atribuir um valor texto, conforme apresentado abaixo, temos a re- ceita inicialmente valendo 9802.30 (valor numérico) e logo abaixo substitui-se o valor pelo texto “1.4 Milhões”. Sobrescrita de valor em uma variável Fonte: elaborado pelo autor ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 38 7.3 Tipos de dados Na computação tipos de dados, abaixo será listado alguns dos tipos, cada tipo tem seu uso aplicado a uma finalidade, quando utilizamos um texto trabalhamos com str (Strings), o número 20 é um int (inteiro). Abaixo temos uma relação de tipos de dados e sua relação dentro do Python. Tipos de dados mais utilizados no Python Exemplo Tipo de dados x = “Hello World” str x = 20 int x = 20.5 float x = 1j complex x = [“apple”, “banana”, “maça”] list x = {“apple”, “banana”, “maça”} tuple x = frozenset({“apple”, “banana”, “maçã”}) frozenset x = True bool x = False bool x = b”Hello” bytes Fonte: elaborado pelo autor Um ponto importante a ser observado é que dependendo da sua aplicação e seu algoritmo é importante saber dos tipos de dados a serem utilizados, em aplicações que envolvem cálculos matemáticos o tipo do dado é um fator relevante, por exemplo, o cálculo da área. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 39 Declarando uma str ao invés de um inteiro Fonte: elaborado pelo Autor Ao executar o cálculo da área o interpretador do Python retorna um erro que diz que o tipo de operando não é suportado, no erro conseguimos visualizar: A linha que resultou o erro e o arquivo - File “calculo_area_com_str.py, ” Line 4 O tipo de erro e a mensagem: TypeError: unsupported operand types(s) for ** or pow(): ‘str’ and ‘int’ Erro ao tentar fazer cálculo com uma srt (Texto) Fonte: elaborado pelo autor O erro apresentado é referente ao tipo da informação passada para a instrução pow, esta função é definida pelo Python para cálculo com expoente e não é possível aplicar um expoente em um str (Texto). Como podemos saber o tipo de dados armazenado em uma variável? É simples basta chamar a instrução type informando a variável ou o valor. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 40 Descobrindo o tipo de um valor ou variável Fonte: elabordo pelo autor 7.4 Casting Casting é uma técnica de conversão de tipos de dados, nas aulas anteriores já foram utilizadas algumas funções de casting, uma delas é a str que é uma função responsável por converter um valor numérico em texto. No Python variáveis não possuem tipos declarados, porém a informação nela ar- mazenada sim, no caso abaixo temos a variável Área que possui armazenada o re- torno do cálculo matemático de PI * pow(Raio, 2), retorna o valor da área sendo este numérico. Abaixo é demonstrado como o casting resolveu o problema de entrada como str no cálculo da área, onde é aplicado o instrução float passando o valor do Raio que é uma str. A instrução float irá tentar converter o texto em str, caso não consiga irá gerar uma saída com erro de conversão “ValueError: could not convert string to float: <valor>”. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 41 Aplicando o casting float Fonte: elaborado pelo autor Aplicando o casting float no valor “xxxx” resultando em erro Fonte: elaborado pelo autor 7.5 Palavras reservadas Em todas as linguagens uma variável é declarada e identificada por um nome, este não deve ser um nome reservado, ou seja, uma palavra já utilizada pela linguagem, abaixo temos a lista das palavras reservadas no Python. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 42 Palavras reservadas no Python Fonte: https://docs.python.org/3.9/reference/lexical_analysis.html 7.6 Regras e Convenções para Nomeação de Variáveis e Constantes Dentro das linguagens há algumas regras definidas para declaraçãode variáveis e constantes: - Nome de variáveis e constantes não podem possuir espaços entre as palavras, nem no início e fim. - Não podem utilizar palavras reservadas ou caracteres especiais (%#!2) a não ser que esteja definido explicitamente na documentação, que é o caso do PHP que define que todas as variáveis devem ser declaradas com o prefixo $. - Não iniciar o nome com números, mesmo que a linguagem permita este tipo de abordagem, não a utilize, pois não é visto como uma boa prática. - Recomenda-se que constantes sejam sempre definidas com letras MAIÚSCULA. Anote isso As comunidades de desenvolvimento de software padronizam as boas práticas de escrita de código, o intuito desta prática é deixar os softwares mais fáceis para um ser humano ler. https://docs.python.org/3.9/reference/lexical_analysis.html ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 43 No caso do Python uma das boas práticas a serem adotadas é: 1. Utilizar em variáveis, funções e métodos com letras minúscula e underscores “lower_case_with_underscores” 2. Classes e Exceções com CamelCase “CamelCase” 3. Constantes sempre com todas as letras maiúscula e underscores “ALL_CAPS_ WITH_UNDERSCORES” ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 44 AULA 8 OPERADORES MATEMÁTICOS Nesta aula será abordado os operadores matemáticos utilizados nas linguagens Python e outras, visto que em quase todas as linguagens atuais utilizam para opera- ções essenciais os mesmos operadores. A linguagem Python além de ser uma excelente linguagem para a construção de aplicações de forma geral, também é uma excelente linguagem para ser utilizada jun- to com a matemática, como na geração de relatórios, gráficos, estatísticas e outras. 8.1 Operadores matemáticos Toda linguagem de programação fornece suporte para que seja realizada as opera- ções básicas e avançadas da matemática, praticamente todos os operadores aritmé- ticos funcionam no Python como conhecemos da matemática elementar. 8.1.1 Operadores básico Podemos trabalhar com as quatro principais operações matemáticas, utilizando os seguintes operadores: Operação Operador Example adição + 1+2 subtração - 5-2 multiplicação * 3*5 divisão / 12/2 atribuição e soma += numero += 1 atribuição e decremento -= numero -= 1 Fonte: elaborado pelo autor ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 45 Caso queira testar as operações de exemplo e visualizar seus resultados você pode: - Acesso via terminal do Windows: acesse o terminal do Windows e digite a pala- vra python, este comando irá acessar o console do Python, tornando possível digitar os comandos e obter a saída de forma automática, conforme demonstrado na figura abaixo: Terminal Windows executando console Python Fonte: elaborado pelo autor - Acesso via o PyCharm: acesse o PyCharm e clique na aba [Python Console] locali- zada na parte inferior da IDE, será aberto o mesmo terminal apresentado acima, basta digitar o código e pressionar ENTER. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 46 Terminal do PyCharm executando console Python Fonte: elaborado pelo autor 8.1.2 Operadores de exponenciação, parte inteira de uma divisão e módulo da divisão Assim como em uma calculadora podemos utilizar operadores de exponenciação, obtenção da parte inteira de uma divisão e extração do módulo de uma divisão. Operação Operador Example exponenciação ** 10**2 exponenciação pow(base, expoente) pow(10, 2) parte inteira // 10//3 módulo % 10%3 Fonte: elaborado pelo autor Podemos elevar um número a outro através da utilização de 2 sinais de multipli- cação seguidos **, isto é, o operador ** é o operador para exponenciação em Python. Também é possível obter a parte inteira da divisão, com o uso de // e o resto da divisão com % No Python é comum haver algumas instruções que fazem o papel de operador ma- temático, este é o caso da instrução pow que realizada a mesma operação que o ** A seguir, temos algumas operações matemáticas utilizando os operadores que acabamos de estudar e seus respectivos resultados. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 47 Exemplo do uso de operadores matemáticos Fonte: elaborado pelo autor 8.2 Módulo Math No Python há um módulo que auxilia aplicações que realizam cálculo, um módulo no Python é um conjunto de funções encapsuladas ou não dentro de um arquivo, no caso do módulo o arquivo math, este arquivo é nativo do Python, ou seja, instalando a linguagem ele já estará disponível para uso. Não se preocupe com o conceito de mó- dulo, iremos aprender mais a frente. Este módulo fornece diversas instruções matemáticas como: Tabela X: Instruções disponíveis no método math Instrução Resultado Observação math.floor(100.1) 100 Arredonda o número para baixo math.ceil(100.1) 101 Arredonda o número para cima math.fsum([10,10,5]) 25 Soma itens de uma lista math.truncate(123.30) 123 Retorna o número inteiro math.pow(2,3) 8 Cálculo com expoente math.sqrt(9) 3 Raiz quadrada math.pi 3.14…. Valor de Pi Fonte: elaborado pelo autor Para fazer uso do módulo é necessário fazer a importação através da instrução de import ela é responsável por carregar os módulos sendo utilizados em seu algoritmo. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 48 Importando o módulo math Fonte: elaborado pelo autor Isto está na rede É possível visualizar todos os comandos disponíveis no módulo math, para isso basta acessar a documentação da linguagem. https://docs.python.org/3/library/math.html https://docs.python.org/3/library/math.html ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 49 AULA 9 EXPRESSÕES ARITMÉTICAS Nesta aula iremos ver como a linguagem Python também é uma excelente lingua- gem para ser utilizada em cálculos, como na geração de relatórios, gráficos, estatísti- cas e outros. 9.1 Expressões aritméticas Com base no conhecimento adquirido podemos realizar operações aritméticas de forma simples utilizando o Python, operadores matemáticas e o módulo math, abaixo será apresentado alguns exemplos. 9.2 Sequência Fibonacci Fibonacci é uma sequência de números que aparece em certos mistérios da na- tureza e da vida onde a sequência inicia com 0 e 1, e os números seguintes serão a soma dos dois números anterior. Algoritmo para imprimir a Sequência Fibonacci Fonte: elaborado pelo autor ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 50 9.3 Exemplo Juros composto O algoritmo deve solicitar um número inteiro para o usuário e o algoritmo deverá imprimir se o número informado é impar ou par. 9.4 Exemplo Juros composto Neste tópico iremos utilizar o Python e o que aprendemos para resolver o problema: Se um capital de R$500 é aplicado durante 4 meses no sistema de juros compos- tos sob uma taxa mensal fixa que produz um montante de R$800, qual será o valor da taxa mensal de juros? Fórmula do Juros composto: M = C (1+i) t Onde, M: montante C: capital i: taxa fixa t: período de tempo Portanto: M = 800; C = 500 t = 4 e se pretendemos calcular somente os juros, apli- camos a seguinte fórmula: J = M - C Abaixo temos o código a qual resultará a taxa de juros mensal calculada com base no problema proposto, demonstrando que com os operadores visto até o momento é ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 51 possível realizar cálculos de expressões aritméticas da mesma forma que na calcula- dora. Exemplo do cálculo de juros composto utilizando Python Fonte: elaborado pelo autor ALGORITMOS E LÓGICA DE PROGRAMAÇÃOII PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 52 AULA 10 ÁLGEBRA BOOLEANA E OPERADORES LÓGICOS Nesta aula será abordada a lógica booleana e operadores, fornecendo ao aluno capacidade em desenvolver algoritmos que envolva operadores e lógica booleana. 10.1 Lógica Boolean Segundo Alves (p. 41), a Álgebra Booleana foi desenvolvida por um matemático chamado George Boole, ele acreditava que o raciocínio humano podia ser representa- do por meio da lógica formal, seu estudo criou o que chamamos de lógica booleana, ela se baseia na lógica binária, sendo esta representada por verdadeiro ou falso. A Álgebra Booleana faz uso de conectores que fazem a ligação entre duas ou mais expressões cujo o resultado será verdadeiro ou falso. Utiliza-se o recurso de tabela verdade a qual auxilia a testar cada situação dada uma expressão. A Tabela verdade é um dispositivo utilizado no estudo da lógica matemática. Com o uso desta tabela é possível definir o valor lógico de uma proposição, isto é, saber quando uma sentença é verdadeira ou falsa. 10.1.1 Conector AND (E) O conector AND (E) permite a análise de duas ou mais expressões lógicas, onde a condição será verdadeira somente se todas as expressões que estiverem utilizando deste conector serem verdadeiras. Abaixo temos 2 expressões lógicas, com base nestas expressões temos 2² = 4 linhas. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 53 Tabela verdade utilizando o operador AND A B A e B Verdadeiro Verdadeiro Verdadeiro Verdadeiro Falso Falso Falso Verdadeiro Falso Falso Falso Falso Fonte: elaborado pelo autor Ao invés de utilizarmos A e B, podemos aplicar qualquer expressão lógica na tabela verdade acima, utilizando o conector E, por exemplo. - Se Carlos tem energia e se ele achar a fonte do notebook em casa ele pode se co- nectar à internet, com base nestas informações podemos montar uma tabela verdade para saber se Carlos consegue usar a internet. Tabela verdade utilizando o operador AND em um caso real Possui Energia Achou a fonte Consegue utilizar a Internet Verdadeiro Verdadeiro Verdadeiro Verdadeiro Falso Falso Falso Verdadeiro Falso Falso Falso Falso Fonte: elaborado pelo autor 10.1.2 Conector OR (OU) O conector OR (OU) permite a análise de duas ou mais expressões lógicas, onde a condição será verdadeiro quando uma ou mais de uma condição quer ser verdadeiro. Abaixo temos 3 expressões lógicas, com base nestas expressões temos 2³ = 8 linhas. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 54 Tabela verdade utilizando o operador OR A B C A ou B ou C Verdadeiro Verdadeiro Verdadeiro Verdadeiro Verdadeiro Verdadeiro Falso Verdadeiro Verdadeiro Falso Falso Verdadeiro Falso Falso Falso Falso Falso Verdadeiro Verdadeiro Verdadeiro Falso Verdadeiro Falso Verdadeiro Falso Falso Verdadeiro Verdadeiro Falso Falso Verdadeiro Verdadeiro Fonte: elaborado pelo autor Podemos observar que utilizando o conector OR temos verdadeiro em qualquer linha que contenha um ou mais verdadeiro. 10.1.3 Operador de Negação NOT(Não) O conector NOT (Não) permite negar o resultado de uma expressão lógica, fazendo que o resultado da análise seja o inverso, por exemplo, uma expressão que será VER- DADEIRO quando negada se torna FALSA. Tabela verdade utilizando o operador NOT A NOT A Falso Verdadeiro Verdadeiro Falso Fonte: elaborada pelo autor ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 55 10.2 Operadores Relacionais Operadores relacionais são utilizados para comparar valores, o resultado de uma expressão relacional é um valor booleano. Os operadores relacionais são: igual, di- ferente, maior, menor, maior ou igual, menor ou igual. Na maioria das linguagens os operadores relacionais são os mesmo. Tabela Operadores no Python e outras linguagens Operador Comparação == Igual != Diferente < Menos > Maior <= Menor igual >= Maior igual Fonte: elaborada pelo autor ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 56 AULA 11 ESTRUTURA CONDICIONAL Nesta aula será abordado os operadores relacionais e sua relação com a estrutura condicional, ela possibilita a criação de algoritmos que fazem comparações entre va- lores, ele é utilizado na etapa de processamento. Através dos operadores é possível aplicar lógicas dentro do algoritmo aplicando condições simples e complexas ao seu código. 11.1 Instruções de comparação Este conjunto de instruções agregado com os operadores lógicos serve para reali- zar operações condicionais em um algoritmo. No Python Verdadeiro é True e Falso é False. Junto ao comando if e elif podemos utilizar os operadores booleanos, através das palavras reservadas, conforme demonstrado abaixo: Tabela Exemplo de condicional com operadores Operador Exemplo and if(idade > 18 and altura > 1.70): or if(idade > 19 or altura > 1.70): not if(not idade < 19): Fonte: elaborado pelo autor ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 57 - Sintaxe da instrução if : Exemplo da sintaxe do IF Fonte: elaborado pelo autor - Sintaxe do if , elif e else: Exemplo if e elif e else Fonte: elaborado pelo autor Conforme demonstrado no exemplo, com as estruturas de condições pode-se criar comparações simples e até complexas, sendo os operadores lógicos uma ferramen- ta-chave. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 58 11.2 Exemplo da Senioridade O Algoritmo deve receber a idade do usuário e informar sua senioridade de acordo com as regras abaixo: idade < 12 : Criança idade < 18 : Adolescente idade < 60 : Adulto Caso contrário informar a frase “idoso”: Exemplo senioridade Fonte: elaborado pelo autor ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 59 AULA 12 ESTRUTURA DE REPETIÇÕES A estrutura de repetição permite que uma sequência de comandos seja executada repetidamente até que uma determinada condição de interrupção seja satisfeita é também muito utilizada para percorrer matrizes de dados. A linguagem Python dá suporte às seguintes instruções: - while (enquanto) - for (para) Um ponto a ser observado é que quando uma instrução possui uma condição in- correta, ela poderá não ser executada ou até mesmo gerando um loop infinito, ao qual o interpretador poderá não gerar um erro de saída dependendo da ação sendo realiza- da. 12.1 Instrução while A instrução while pode ser utilizada quando sabemos a que uma repetição deve ser parada. Temos o exemplo de um contador de 1 a 30, sendo que quando alcançado o último número, no caso 30, o laço deve ser interrompido, neste exemplo a condição de para- da é passada explicitamente dentro da instrução while, ou seja, quando o número for menor e igual a 30. Exemplo 1: while com parada e incremento Fonte: elaborado pelo Autor ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 60 No exemplo abaixo temos uma condição True para o while a qual torna a execução do laço de repetição infinita, visto que True sempre será verdadeiro, no entanto, no blo- co do while há um incremento da variável número o que faz com que a cada iteração do loop seja incrementado o número armazenado na variável até que seu valor maior que 10, dando-se a entrada no bloco do if que realiza o break (pausa do loop). Exemplo 2: while com parada forçada Fonte: elaborado pelo autor Podemos utilizar o while para a execução de algoritmos em loop para que seja dada a entrada de dados, abaixo temos um algoritmo que retorna a quantidade de caracte- res no nome informado. Exemplo 3: while com entrada de dados Fonte: elaborado pelo autor ALGORITMOS E LÓGICA DE PROGRAMAÇÃOII PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 61 A instrução nome.replace(‘ ‘,’’) realiza a troca dos espaços por vazio, retornando somente “JoseHenriqueHonjoya”, logo em seguida chamamos a instrução len que retorna a quantidade de caracteres em cima do retorno da instrução nome.replace(‘ ‘,’’) 12.2 Instrução for A instrução for tem como característica obrigar o programador a definir, explicita- mente em seu cabeçalho, informando a quantidade de vezes que ela irá executar o bloco. A quantidade de vezes é determinada pela quantidade de elementos contidos na lista declarada na instrução. Dessa forma, será executado um ciclo para cada ele- mento isoladamente. Abaixo temos um exemplo uma lista de nomes e percorremos a lista utilizando o for imprimindo cada nome da lista Exemplo 1: for para listas Fonte: elaborado pelo autor Abaixo temos o mesmo exemplo de cima, porém desta vez imprimindo a posição do item na lista, ou seja, seu índice. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 62 Exemplo 2: for para listas com índice Fonte: elaborado pelo autor Conforme demonstrado acima foi utilizado a instrução enumerate que realiza a numeração dos índices da lista, tornando possível a obtenção do índice da de cada nome na lista. Lembre-se a primeira posição dentro de uma lista ou matriz é 0 (zero). ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 63 AULA 13 VETORES, MATRIZES E DICIONÁRIO 13.1 Vetores É um conjunto de variáveis do mesmo tipo acessíveis com um único nome. Arma- zenadas de forma contínua e ocupando as posições de forma fixas. Pode-se dizer que vetor é uma matriz unidimensional. Exemplo de Vetor 1 -5 4 9 8 Fonte: elaborado pelo autor Para declarar um vetor na linguagem Python utilizamos o tipo lista, este tipo de conjunto de dados é utilizado em algoritmos que possuem a necessidade de armaze- nar uma série de valores, sendo estes valores números, letras, textos, objetos, dicioná- rios e até mesmo outros vetores (aqui temos matrizes) que será o próximo objeto de estudo. Vetores já foram utilizados em aulas anteriores, por exemplo, na aula 9 criamos uma lista de nomes que foram armazenados em um vetor. O uso de vetores é constante, ele é empregado desde a recuperação de dados de uma base de dados ou até mesmo na leitura de um arquivo de texto, onde cada linha do documento se torna uma posição dentro do vetor. No exemplo abaixo utilizamos vetores para armazenar uma coleção de idades. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 64 13.1.1 Adicionando Item no Vetor Exemplo dos vetores armazenando dados em tempo de execução Fonte: elaborado pelo autor No exemplo acima, temos duas novas instruções sendo isdigit() esta instrução está disponível quando o tipo de dados for srt (Texto), ela verifica se o texto é um valor numérico, caso sim retorna True e a instrução append(x) que está disponível no tipo list, onde ao chamar esta instrução é adicionado o parâmetro informado. 13.1.2 Recuperando Item no Vetor Um vetor é uma lista ordenada por ordem de inserção dos itens nele expostos e pode ser acessado pelo índice, abaixo temos um exemplo de acesso via índices. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 65 Acessando itens de um vetor por índice Fonte: elaborado pelo autor Quando utilizamos vetores podemos acessar diretamente a posição a fim de recu- perar um valor existente, acessando a variável que armazena o vetor e a posição do item na lista, como foi feito no exemplo acima. Caso seja feito a tentativa de acesso a um índice que não existe, o interpretador do Python irá retornar o erro “list index of range” que indica que o índice informado está fora do faixa de índices existentes. 13.2 Matriz Uma matriz é uma estrutura bi-dimensional que armazenam dados, onde informa- ções são organizados dentro de linhas e colunas, por exemplo, a matriz abaixo possui dimensão 3x4. Tabela Exemplo de Matrix 2 -5 11 0 9 -1 GOLF 12 4 7 12 TED Fonte: elaborado pelo autor ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 66 Matrizes são utilizadas desde a renderização de uma imagem, cálculos utilizando- -se de modelo estatístico, análise, processamento e reconhecimento de padrões entre outras. 13.2.1 Criando uma Matriz 3x4 No Python a matriz é uma lista multidimensional a qual guardamos dados em duas dimensões. Abaixo temos um exemplo de matriz e sua impressão. Exemplo de matriz no Python Fonte: elaborado pelo autor Tabela Exemplo da matriz escrita em Python no formato de tabelas 1 2 3 4 5 6 7 8 9 10 11 12 Fonte: elaborado pelo autor 13.2.2 Acessando Valores de uma Matriz Da mesma forma que acessamos um valor no vetor, podemos acessar um valor em uma matriz, para isso utilizamos índices, mas no caso da matriz os índice(s) informa- ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 67 dos devem conter 1 posição quando queremos acessar uma lista localizada em uma determinada linha ou 2 posições quando for acessar o valor de uma linha e coluna. Abaixo é demonstrado como é realizado este acesso no Python. Acesso a uma matriz Fonte: elaborado pelo autor 13.3 Dicionário No Python dicionário é uma estrutura de dados que é, geralmente, conhecida como uma matriz associativa. Um dicionário consiste em uma coleção de pares de valores- -chave. Cada par de valor-chave mapeia a chave para seu valor associado. Os dicionários permitem mais de um nível, ou seja, dentro de uma chave podemos ter outro dicionário e assim por adiante. 13.3.1 Criando um dicionário Você pode definir um dicionário colocando uma lista separada por vírgulas de pares de valores-chave entre chaves ({}), dois pontos (:) separam cada chave de seu valor associado. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 68 Exemplo utilizando Dicionário Fonte: elaborado pelo autor 13.3.2 Modificando Valores do Dicionário Como um dicionário é uma coleção mutável podemos realizar alterações dos valo- res de uma determinada chave ou até mesmo criar novas chaves com novos valores. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 69 AULA 14 REFINAMENTO SUCESSIVO E MÓDULOS Nesta aula iremos falar sobre modularidade, subprogramas e a técnica de refina- mento sucessivo, os objetos desta aula serão utilizados sempre que você for desen- volver um algoritmo ou programa. 14.1 Refinamento Sucessivo Os programas de computadores estão cada dia mais presentes no nosso cotidiano, temos hoje aplicativos que realizam cálculos matemáticos, nos pedem um táxi ou co- mida ou gerenciam aviões de forma autônoma. Cada programa deve resolver um ou milhares de problemas e retornar uma ou mais saídas, imagine escrever um algoritmo para pedir um táxi, ao pensar já deve ter deparado com diversos problemas, como: - Consultar quem é o cliente. - Consultar a localização atual do cliente. - Localizar um motorista, este motorista deve ser localizado. - Realizar o cálculo de distância, demanda e aplicar valores da corrida. - Registrar o pagamento. - Acompanhar a locomoção do motorista etc. Nota-se que o problema de pedir um táxi é um problema complexo em linhas ge- rais, problemas complexos exigem, para sua solução, algoritmos complexos, no en- tanto, é possível dividir um problema grande em problemas menores (dividir para con- quistar), ou seja, usar o processo de modularidade. Cada parte menor ou módulo tem um algoritmo mais simples, o que facilita chegar à grande solução. O conceito de modularidade tem sido adotado desde meados da década de 1950. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUEHONJOYA FACULDADE CATÓLICA PAULISTA | 70 14.2 Módulos Conforme Manzano (2016, p. 230), o módulo é um bloco de programa que pode efetuar operações computacionais de entrada, processamento e saída. Ao dividir um problema complexo em módulos, automaticamente usa-se a ideia de abstração. Abs- trair um algoritmo significa considerar isoladamente um ou mais elementos de seu todo (à fazer); significa, de forma geral, separar o todo em partes. A operação de fun- cionalidade de um módulo em um programa de computador baseia-se na existência de três características operacionais. - Cada módulo possui um único ponto de entrada. - Toda unidade de programa chamadora (unidade mestre) é suspensa durante a execução da unidade de módulo chamada (unidade escravo), o que implica a exis- tência de somente um módulo em execução em um determinado momento, exceto quando se trabalha com paralelismo ou corrotinas. - Quando a execução da unidade escravo (módulo) é encerrada, o controle do fluxo de execução do programa volta para a primeira linha de instrução após a chamada do módulo na unidade mestre, quando se tratar da chamada de um procedimento. No caso de chamada de uma função, o retorno ocorre exatamente na mesma linha de código que efetuou a chamada. Ao trabalhar com essa técnica pode ocorrer a necessidade de dividir um módulo em outros tantos módulos quantos forem necessários, buscando uma solução mais simples de uma parte do problema maior. Um módulo de programa sempre terá um início e fim pode ser utilizado quando necessário dentro de outros módulos, tem como finalidade a separação de um proble- ma, diminuindo a complexidade de resolução de um problema complexo, a imagem abaixo exemplifica o uso do módulo. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 71 Diagrama da aplicação de subrotina Fonte: Algoritmos - Lógica de para Desenvolvimento de Programação de Computadores Quando falamos em módulos temos dois tipos distintos como: - Funções: quando um módulo possui como característica o retorno de saída o chamamos de funções, este tipo de recurso está presente em diversas linguagens de programação e iremos ver mais a frente o seu uso na linguagem Python. - Procedimento (Sub-rotinas): um módulo que não possui dados de saída é con- siderado como sub-rotina, podemos citar como sub-rotina módulos que realizam a gravação de dados em arquivo. 14.2.1 Funções As funções são utilizadas para dividir um problema complexo em partes, um arqui- vo pode conter uma ou mais funcionais e as funções podem ser importadas dentro de outros arquivos. Abaixo temos a sintaxe de uma função e sua estrutura: ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 72 Sintaxe de uma função ou instrução Fonte: elaborado pelo autor A estrutura de uma função deve seguir a seguinte estrutura: - def - (Palavra reservada, define). - nome_funcao - (Nome da função, podemos chamar cálculo, soma etc). - (parametro1, parametro2, parametroN) - os parâmetros são opcionais, quando informado precisamos passá-los separados por vírgula. - : - final da função. - return - é uma palavra reservada, retorna o valor que estiver na frente. Exemplo: desenvolver um algoritmo que tenha as operações de uma calculadora básica, onde a partir de dois números fornecidos e a operação desejada ela retorne o valor calculado. Para isso é possível separar as operações em funções: - Soma - Divisão - Sustração - Multiplicação Abaixo temos o algoritmo implementado, seguindo a separação acima: ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 73 Calculadora com a função soma Fonte: elaborado pelo autor ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 74 AULA 15 MÓDULO A reutilização de códigos no desenvolvimento de sistemas é visto com bons olhos, sendo que a grande maioria dos programas possuem módulos de outros programas e até mesmo de terceiros, vamos analisar o seguinte cenário: Ano passado o desenvolvedor criou um sistema para e-commerce onde havia um módulo que envia e-mail para o cliente, em um novo projeto este módulo poderá ser reaproveitado. Isso acontece porque os módulos devem ser projetados para não de- pender da classe que o chama. Nesta aula iremos ver como criar módulos que serão utilizados e organizados den- tro de um projeto que tenha mais de um algoritmo e que podem ser utilizados e reuti- lizados quando necessário. Para permitir isso, o Python tem uma maneira de colocar as definições em um ar- quivo e então usá-las em um script ou em uma execução interativa do interpretador. Tal arquivo é chamado de módulo; definições de um módulo podem ser importadas para outros módulos ou para o módulo principal. Um módulo é um arquivo contendo definições e instruções Python. O nome do ar- quivo é o nome do módulo acrescido do sufixo .py. Dentro de um módulo, o nome do módulo (como uma string) está disponível como o valor da variável global __name__. 15.1 Criando um módulo Como descrito anteriormente um módulo está localizado em um arquivo, para isso crie um arquivo chamado cadastro.py e outro comunicador.py, este será o projeto de um sistema que irá solicitar os dados do usuário (nome, idade e e-mail), após informar os dados será enviado uma mensagem de boas-vindas ao e-mail do usuário. O arquivo comunicador.py contém a função que irá enviar o e-mail ao usuário, ele pode ser utilizado em diversos pontos do sistema. Segue o algoritmo do arquivo abai- xo: ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 75 Arquivo comunicador.py Fonte: elaborado pelo autor O Arquivo cadastro.py será o responsável por implementar o algoritmo de obtenção dos dados do usuário, importar o módulo comunicador e chamar o método de enviar passando os parâmetros definidos. Arquivo cadastro.py Fonte: elaborado pelo autor Agora podemos realizar nosso arquivo principal, executando comando python ca- dastro.py dentro do terminal da IDE ou até mesmo pelo terminal do Windows. Abaixo tem-se o exemplo de saída após responder às perguntas. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 76 Saida ao executar o arquivo cadastro.py Fonte: elaborado pelo autor ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 77 AULA 16 DICAS No decorrer das aulas vimos diversos assuntos que lhe forneceram o conhecimen- to em algoritmos e na linguagem Python para continuar com seu aprendizado segue algumas dicas que lhe ajudará: 1. Planeje, entenda o problema e pense nas possibilidades Antes de desenvolver seu algoritmo, estude as possibilidades, as possíveis entra- das e como ele será utilizado. 2. Treine, a prática faz a perfeição Treine, use problemas conhecidos para treinar e tente resolvê-los de maneiras di- ferentes. 3. Tenha um bom inglês técnico As linguagens de programação, como quase tudo na área de informática, utiliza-se como linguagem padrão o inglês. 4. Leia mais sobre a linguagem de programação Toda linguagem de programação possui seu site oficial ou fóruns públicos e pri- vados que lá são discutidos ou apresentados diversos conceitos, estas discussões e conceitos aumentam as possibilidades de uso da linguagem. 5. Ensine e aprenda Ensinar é a melhor forma de aprender, o compartilhamento de conhecimento faz ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 78 você reforçar seu conhecimento. 6. Leia um bom código Há diversos códigos disponíveis em plataformas como Github, Fóruns e até mes- mo na documentação da linguagem escolhida, aprenda a ler o que outro desenvolve- dor escreveu, isso lhe ajudará a entender sobre a funcionalidade do código. 7. Google, elepode nos ajudar :) O Google não é novidade, ele nos auxilia a resolver problemas, achar curiosidades e até mesmo aprender algo novo. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 79 CONCLUSÃO Chegamos ao fim desta disciplina, o conhecimento até aqui adquirido será utiliza- do até o fim da sua formação e por toda a sua carreira profissional, lembre-se que no mundo do desenvolvimento de software há mais de uma forma de resolver um proble- ma e a evolução é constante. Mantenha-se atualizado, utilize as comunidades disponíveis nas redes sociais, em fóruns privados e públicos para tirar suas dúvidas e para ajudar a resolver dúvidas de outras pessoas. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 80 ELEMENTOS COMPLEMENTARES LIVRO Título: Introdução à programação com Python Autor: Nilo Ney Coutinho Menezes Editora: Novatec Sinopse: Este livro é orientado ao iniciante em programação. Os conceitos básicos de programação, como expressões, variáveis, repetições, decisões, listas, dicionários, conjuntos, funções, arquivos, classes, objetos e banco de dados com SQLite 3 são apresentados um a um com exemplos e exercícios. A obra visa a explorar a programa- ção de computadores como ferramenta do dia a dia. ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 81 WEB Site da linguagem Python, contendo a documentação da linguagem <https://docs.python.org/> Comunidade Brasileira de Python <https://www.facebook.com/groups/python.brasil/> https://docs.python.org/ https://www.facebook.com/groups/python.brasil/ ALGORITMOS E LÓGICA DE PROGRAMAÇÃO II PROF. JOSÉ HENRIQUE HONJOYA FACULDADE CATÓLICA PAULISTA | 82 REFERÊNCIAS ALVES, William Pereira. Linguagem e lógica de programação. 1. ed. São Pau- lo : Érica, 2014. EDELWEISS, N.; LIVI, M. A. C. Algoritmos e Programação com Exemplos em Pascal e C. Série Livros Didáticos UFRGS - Volume 23. Bookman, 2014. JOYANE Aguilar, Luis. Fundamentos de programação: algoritmos, estruturas de dados e objetos 3. ed. Porto Alegres: AMGH, 2011. MANZANO, José Augusto G.; OLIVEIRA, Jayr. Algoritmos: Lógica para Desen- volvimento de Programação de Computadores. São Paulo: Érica, 2016.
Compartilhar