ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins [email protected] CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins 1. Linguagens de Programação CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Linguagem de programação: Definições - Uma linguagem de programação é um método padronizado para comunicar instruções para um computador. - É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. - Permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias. - Linguagens de programação podem ser usadas para expressar algoritmos com precisão, para serem executados por uma máquina computável. CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Linguagem de programação: Baixo Nível x Alto Nível (de Abstração) - Baixo Nível: cujos símbolos são uma representação direta do código de máquina que será gerado (Ex. Assembly) - Alto nível: composta de símbolos mais complexos, inteligível pelo ser humano e não-executável diretamente pela máquina (Ex. Python) CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Linguagem de programação: Baixo Nível x Alto Nível (de Abstração) “Hello World” no Assembly http://ratosdelaboratorio.blogspot.com.br/2009/04/assembly-hello-world.html “Hello World” no Python CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Linguagem de programação: Compilação x Interpretação - Uma linguagem de programação pode ser convertida, ou traduzida, em código de máquina por compilação ou interpretada por um processo denominado interpretação. Em ambas ocorre a tradução do código-fonte para código de máquina. - Código-fonte (source code): é o conjunto de palavras ou símbolos escritos de forma ordenada e lógica, contendo instruções em uma linguagem de programação. - Código de máquina (machine code): é uma sequência de números (sistema binário, octal, hexadecimal, etc) que significam uma sequência de instruções a serem executadas pelo processador. CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Linguagem de programação: Compilação x Interpretação - Uma linguagem de programação pode ser convertida, ou traduzida, em código de máquina por compilação ou interpretada por um processo denominado interpretação. Em ambas ocorre a tradução do código-fonte para código de máquina. - Compilada: o código fonte é executado diretamente pelo sistema operacional ou pelo processador, após ser traduzido por meio de um processo chamado compilação, usando um programa de computador chamado compilador, para o código de máquina. CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Linguagem de programação: Compilação x Interpretação - Uma linguagem de programação pode ser convertida, ou traduzida, em código de máquina por compilação ou interpretada por um processo denominado interpretação. Em ambas ocorre a tradução do código-fonte para código de máquina. - Interpretada: o código-fonte é executado por um programa de computador chamado interpretador, que em seguida é executado pelo sistema operacional ou processador. Mesmo que um código em uma linguagem passe pelo processo de compilação, a linguagem pode ser considerada interpretada se o programa resultante não for executado diretamente pelo sistema operacional ou processador. Um exemplo disso é o Bytecode, que é um tipo de linguagem interpretada que passa pelo processo de compilação e, em seguida, é executado por uma máquina virtual, cuja sintaxe é similar ao código de máquina. CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Linguagem de programação: Compilação x Interpretação - Existem também, as linguagens de script, que são linguagens interpretadas, executadas do interior de programas e/ou de outras linguagens de programação. - Teoricamente, qualquer linguagem pode ser compilada ou interpretada e, por disso, há algumas linguagens que possuem ambas implementações. CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Linguagem de programação: Compilação x Interpretação Tipicamente compiladas ALGOL BASIC C C++ COBOL Cobra Common Lisp Delphi Eiffel Fortran JOVIAL LabVIEW Pascal Visual Basic Tipicamente interpretadas ActionScript BASIC C# Java JavaScript Lisp Logo Lua PHP Python R Ruby S Smalltalk CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Quantas linguagens de programação existem? http://alumni.cs.ucr.edu/~vladimir/cs181/PLchart.png CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Quantas linguagens de programação existem? CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Quais são as linguagens de programação mais populares? http://spectrum.ieee.org/computing/software/the-2016-top-programming-languages CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins 2. Linguagem Python CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Python como primeira linguagem: • Python tem uma sintaxe simples que é mais fácil de ler e usar; • Python tem a maioria dos recursos das linguagens de programação tradicionais. Como resultado, você pode usar python para aprender os conceitos e habilidades que se aplicam à essas linguagens. • Python suporta o desenvolvimento de uma ampla gama de aplicações, incluindo jogos, aplicações web, administração de sistemas e banco de dados, desenvolvimento cientifico, etc. • O Python é usado por muitas empresas de sucesso, incluindo o Google, IBM, Disney e EA Games. Como resultado, conhecer python é uma habilidade valiosa. • Python é de código aberto (open source). CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins • A linguagem de programação Python foi desenvolvida em 1990 por Guido Van Rossum, com o propósito de ser uma linguagem simples, intuitiva e tão poderosa quanto as linguagens tradicionais. • O nome Python foi uma homenagem de Guido ao grupo de humor “Monty Python's Flying Circus”. https://twitter.com/gvanrossum CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Ano Mês Distribuição (Release) 2000 Outubro 2.0 Primeira distribuição do Python 2. 2008 Dezembro 3.0 A primeira versão de uma distribuição redesenhada do Python, não retro compatível. 2010 Julho 2.7 A última distribuição do Python 2 com suporte até 2020. 2015 Setembro 3.5 A mais nova distribuição. Python 2.x Descrição Python 3.x CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Aplicações Python: Uma aplicação ou aplicativo (app) é um software de computador que executa uma tarefa ou um conjunto relacionado de tarefas. No entanto, os aplicativos também podem ser referidos como programas, mesmo que um aplicativo pode se constituir na verdade de muitos programas relacionados. Na prática, a maioria das pessoas usa esses termos de forma intercambiável. CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Aplicações Python: • Aplicativo de console (Console application): neste tipo de aplicativo, você insere comandos no prompt de comando no console que está disponível em seu sistema operacional. Os aplicativos de console são o tipo de aplicativo mais fácil de desenvolver. Um aplicativo de console é um aplicativo de desktop que usa o console para interagir com o usuário. CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Aplicações Python: • Aplicação GUI (GUI Application): É uma aplicação que possui uma Interface Gráfica do Usuário (GUI, do inglês Graphical User Interface). Nos casos mais simples o aplicativo GUI executa as mesmas tarefas que o aplicativo de console, contudo a aplicação GUI é mais amigável e intuitiva. Um aplicativo GUI é um aplicativo que usa uma interface gráfica do usuário (GUI) para interagir com o usuário. CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Aplicações Python: • Aplicativo Web (Web Application): Ao contrário de um aplicativo de desktop, que é executado diretamente em seu computador, um aplicativo da Web pode ser chamado por um navegador da Web que está sendo executado em um computador ou dispositivo móvel e pode usar um servidor para processar ou armazenar dados. Frameworks python estão disponíveis para ajudá-lo a desenvolver esse tipo de aplicativo. Um aplicativo da Web recebe solicitações de um navegador, processa-as em um servidor e retorna as respostas ao navegador. CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Como o Python gera o código fonte: • -The code in a program like the one in the last figura can be referred to as python source code. To create the file that contains this source code, the programmer uses a text editor or integrated development environment (IDE), which you'll learn more about in a moment. • -However, before the python source code can be run (or executed) on a computer, the code must be translated into code that the computer can undestand, as shown in figura 1-4. Here, you can see that the files that contain the source code have the .py extension. Then, the python interpreter is used to translate (or compile) the source code into bytecode. • -This bytecode can be run by any computer that has the python virtual machine installed on it. This virtual machine translates the bytecode so it can be run by the operating system of the computer. • -Since the python virtual machine is part of the python interpreter, it is available on all platforms that support python. In fact, that's why python is said to be platform-independent. In other words, it is the virtual machine that makes it possible for python to run on a widee variety of operating systems. • -Although this compilation process is complicated, it's done automatically with the push of a single key when you're using an IDE to develop your python programs. CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Como o Python gera o código fonte: Passo 1 - O programador usa um editor de texto ou IDE para inserir e editar o código-fonte. Em seguida, o programador salva o código para um arquivo com uma extensão .py. Passo 2 - O código fonte é compilado pelo interpretador python em bytecode. Passo 3 - O bytecode é traduzido pela máquina virtual python em instruções que podem interagir com o sistema operacional do computador. CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Como o Python gera o código fonte: Para criar o arquivo que contém o códigofonte, o programador usa um editor de texto ou Ambiente de Desenvolvimento Integrado (IDE, do inglês Integrated Development Environment). IDLE - Integrated Development and Learning Environment. CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Como o Python gera o código fonte: Os arquivos que contêm o códigofonte têm a extensão .py. Em seguida, o interpretador python é usado para traduzir (ou compilar) o código-fonte em bytecode. CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins Como o Python gera o código fonte: Este bytecode pode ser executado por qualquer computador que tenha a máquina virtual python instalada nele. Esta máquina virtual converte o bytecode para que ele possa ser executado pelo sistema operacional do computador. A máquina virtual Python é parte do pacote python e está disponível em todas as plataformas que suportam python. É por isso que python é independente da plataforma. Em outras palavras, é a máquina virtual que possibilita que o python funcione em uma ampla variedade de sistemas operacionais. CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins 3. Exercícios Python CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins 1. Exercício de compilação em bytecode: • Digite o seguinte código-fonte no IDE Python e salve como teste no desktop (área de trabalho). • Comandos úteis: import os os.getcwd() os.chdir('/name_dir/name_subdir') • O que foi gerado? Import py_compile py_compile.compile('name_code.py') CURSO DE MATEMÁTICA Algoritmos e Programação Prof. Me. Érico Fernando O. Martins 2. Exercício de implementação: a) Faça a implementação em python e crie os bytecodes dos algoritmos dos exercícios da Estrutura Condicional e Estrutura de Repetição. b) Faça a implementação em python e crie os bytecodes dos algoritmos dos exercícios de Estrutura de Dados (vetor e matriz).