Text Material Preview
1 49 1 Prof. Vinicius Pozzobon Borin Lógica de Programação e Algoritmos Aula 1 49 2 Conversa Inicial 49 3 O objetivo de hoje é introduzir os principais conceitos inerentes a esta disciplina de programação Tais conceitos serão recorrentes 49 4 A estrutura de conteúdos é a seguinte: O que é lógica? O que são algoritmos? Como representamos algoritmos? Que sistema computacional usamos para executar programas? O que são linguagens de programação? Qual linguagem vamos adotar? 49 5 Introdução à lógica e aos algoritmos 49 6 Aristóteles (384 a 322 a.C.) – conceito de lógica (logos) – linguagem racional Parte da filosofia que se ocupa das formas do pensamento e das operações intelectuais (Michaelis, 2020) O que é lógica? 1 2 3 4 5 6 2 49 7 Raciocínio lógico do nosso dia a dia para realizar atividades Na computação: maneira pela qual instruções, assertivas e pressupostos são organizados num algoritmo para viabilizar a implantação de um programa (Michaelis, 2020) 49 8 Um algoritmo é dado como uma sequência de passos a serem realizados para que determinada tarefa seja concluída, ou um objetivo atingido O que são algoritmos? 49 9 Exemplo de algoritmo: Pegue uma fatia de pão de forma Com a ponta da faca, raspe duas vezes na manteiga dentro do pote Com a mesma faca que contém a manteiga, espalhe uniformemente a manteiga em um dos lados do pão de forma No mesmo lado que você espalhou a manteiga, coloque uma fatia de queijo e uma de presunto, esta última em cima da de queijo Em cima das fatias, coloque o outro pão de forma e pronto, seu sanduíche está finalizado 49 10 Passo a passo da equação: 𝑎 + 𝑏 ∗ 𝑐 + 𝑑 Realizar o cálculo dentro dos parênteses a+b Multiplicar o resultado de dentro dos parênteses por c Por fim, somar com d 49 11 Sistemas de computação 49 12 Segunda Guerra Mundial: Cálculo de mísseis Mensagens codificadas Computadores construídos com milhares de válvulas e relés, pesando toneladas e consumindo montantes gigantes de energia elétrica 7 8 9 10 11 12 3 49 13 ENIAC (Electronic Numerical Integrator and Computer) Everett Historical/SHUTTERSTOCK 49 14 Percebeu-se a necessidade de mudar a maneira como computadores eram projetados, começando pela aritmética decimal para binária John von Neumann – matemático húngaro. Propôs o primeiro computador de programa armazenado e criado 49 15 A máquina de von Neumann Máquina original de von Neumann Memória Unidade de controle Unidade de lógica e aritmética Entrada Saída Acumulador 49 16 Base decimal – dígitos de 0 a 9 Base binária – dígitos 0 e 1 Todo e qualquer computador é binário Binary digit – a menor unidade de armazenamento de dados O bit 49 17 AbreviaçãoEquivale a B1 Byte8 bits KB1 KiloByte1024 Bytes MB1 MegaByte1024 KB GB1 GigaByte1024 MB TB1 TeraByte1024 GB PB1 PetaByte1024 TB 49 18 Binary digit – a menor unidade de armazenamento de dados Palavra (word) – a menor unidade útil de manipulação do dado A palavra (word) 13 14 15 16 17 18 4 49 19 Define quais softwares e quando serão executados Gerencia o uso de memória Abstrai o hardware para o usuário e para o desenvolvedor O sistema operacional 49 20 Stanislaw Mikulski/SHUTTERSTOCK 49 21 Representação de algoritmos 49 22 Linguagem natural Não utilizada em algoritmos computacionais Descrição narrativa 1. 2. 3. 4. 5. Ler dois valores (x e y) Verificar se x e y são iguais Se x for igual a y, mostrar a mensagem “Valores iguais!” Se x for diferente de y, mostrar a mensagem “Valores diferentes!” Fim 49 23 Português estruturado Representação mais próxima de um programa computacional, mas sem se preocupar com a linguagem de programação adotada Regras definidas Linguagem genérica Pseudocódigo 49 24 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Algoritmo – exemplo Var x, y: inteiro Início Ler (x, y) Se (x = y) então Mostrar (“Valores iguais!”) Senão Mostrar (“Valores diferentes!”) Fimse Fim 19 20 21 22 23 24 5 49 25 1. 2. 3. 4. 5. Ler dois valores (x e y) Verificar se x e y são iguais Se x for igual a y, mostrar... Se x for diferente de y, mostrar... Fim Comparando com a descrição narrativa... 49 26 Representação gráfica de um algoritmo Usado para passar a ideia do seu código e organizar o raciocínio lógico Simbologia gráfica padrão ISO 5807:1985 Fluxograma 49 27 Início x, y X = y Valores Diferentes! Valores Iguais! Fim1 F V Fluxograma do pseudocódigo apresentado anteriormente 49 28 Linguagens de programação e compiladores 49 29 Um computador só compreende bits Você conseguiria escrever um programa somente usando bits? iunewind/SHUTTERSTOCK 49 30 Jefferson Schnaider Altair 8800 25 26 27 28 29 30 6 49 31 Uma linguagem de programação é, portanto, esse conjunto de regras, com palavras- chaves, verbos, símbolos e sequências específicas. Chamamos todo esse conjunto de sintaxe da linguagem Resultam em instruções compreendidas pelo computador e não geram ambiguidades Linguagens de programação 49 32 Se o computador compreende uma linguagem e você trabalha em outra, diferente e ilegível para ele, como o computador entende o código que você faz? Ele transforma o código que você escreveu (alto nível) em uma linguagem de máquina (baixo nível) compreendida pelo hardware Software de compilação 49 33 Linguagem de programação Processo de compilação Linguagem de máquina Arquivo binário/ executável COMPILAÇÃO 49 34 Compilador – transforma um código-fonte em um arquivo binário Interpretador – o código não é convertido de uma só vez, mas, sim, executado instrução por instrução à medida que o programa vai requisitando Prós x contras 49 35 Language Ranking: Stack Overflow 49 36 Linguagem de programação Python 31 32 33 34 35 36 7 49 37 Site oficial da linguagem: https://www.python.org/ Site oficial no Brasil: https://python.org.br/ cash1994/SHUTTERSTOCK 49 38 O que torna o Python tão popular, amado e utilizado? Linguagem de propósito geral Vasta quantidade de bibliotecas existentes Linguagem simples, intuitiva. Ótima para iniciantes Linguagem multiplataforma Comunidade ativa e atualizações constantes Python Software Foundation (2001) 49 39 Linguagem criada em 1982 por Guido van Rossum Centrum Wiskunde & Informatica (CWI), Amsterdam Inspiração: linguagem ABC Histórico da linguagem 49 40 Monty Python Flying Circus Programa de televisão britânico (1969-1974) cash1994/SHUTTERSTOCKPeter Gudella/SHUTTERSTOCK 49 41 Sistemas operacionais. Linux, macOS RaspBerry Pi Exemplos de aplicações Python goodcat/shutterstock 49 42 Análise de dados e inteligência artificial Ali.alpha/shutterstock 37 38 39 40 41 42 8 49 43 Alex Cimbal/SHUTTERSTOCKpio3/SHUTTERSTOCK Industrial Light and Magical (ILM) 49 44 charnsitr/shutterstockmonticello/shutterstock 49 45 sukku_1242/shutterstock Praveen Nanu/shutterstock 49 46 O Zen do Python, por Tim Peters Bonito é melhor que feio Explícito é melhor que implícito Simples é melhor que complexo Complexo é melhor que complicado Plano é melhor que aglomerado Legibilidade faz diferença Agora é melhor que nunca 49 47 Referências 49 48 PERKOVIC, L. Introdução à computação usando Python – um foco no desenvolvimento de aplicações. Rio de Janeiro: LTC, 2016. PUGA, S.; RISSETI, G. Lógica de programação e estrutura de dados. 3. ed. São Paulo: Pearson, 2016. STALLINGS, W. Arquitetura e organização de computadores. 10. ed. São Paulo: Pearson, 2017. 43 44 45 46 47 48 9 49 49 TANENBAUM, A. Sistemas operacionais modernos. 3. ed. São Paulo, Pearson, 2013. TANENBAUM, A. Organização estruturada de computadores. 5. ed. São Paulo: Pearson, 2013. TOCCI, R. J. et al. Sistemas digitais: princípios e aplicações. 10. ed. São Paulo: 2007. 49 50 49 50