algoritmos e programação - unemat – campus...

29
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 Prof. Me. Érico Fernando O. Martins [email protected] Algoritmos e Programação

Upload: ngokhuong

Post on 03-Oct-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

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ÓGICASCURSO DE MATEMÁTICA

Prof. Me. Érico Fernando O. [email protected]

Algoritmos e Programação

CURSO DE MATEMÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

1. Linguagens de Programação

CURSO DE MATEMÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

Linguagem de programação: Definições

- Uma linguagem de programação é um método padronizado paracomunicar instruções para um computador.

- É um conjunto de regras sintáticas e semânticas usadas para definir umprograma de computador.

- Permite que um programador especifique precisamente sobre quais dadosum computador vai atuar, como estes dados serão armazenados outransmitidos e quais ações devem ser tomadas sob várias circunstâncias.

- Linguagens de programação podem ser usadas para expressar algoritmoscom precisão, para serem executados por uma máquina computável.

CURSO DE MATEMÁTICAAlgoritmos 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 demáquina que será gerado (Ex. Assembly)

- Alto nível: composta de símbolos mais complexos, inteligível pelo serhumano e não-executável diretamente pela máquina (Ex. Python)

CURSO DE MATEMÁTICAAlgoritmos 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 “Hello World” no Python

http://ratosdelaboratorio.blogspot.com.br/2009/04/assembly-hello-world.html

CURSO DE MATEMÁTICAAlgoritmos 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, emcódigo de máquina por compilação ou interpretada por um processodenominado interpretação. Em ambas ocorre a tradução do código-fontepara código de máquina.

- Código-fonte (source code): é o conjunto de palavras ou símbolos escritos de formaordenada 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 seremexecutadas pelo processador.

CURSO DE MATEMÁTICAAlgoritmos 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, emcódigo de máquina por compilação ou interpretada por um processodenominado interpretação. Em ambas ocorre a tradução do código-fontepara código de máquina.

- Compilada: o código fonte é executado diretamente pelo sistema operacional oupelo processador, após ser traduzido por meio de um processo chamado compilação,usando um programa de computador chamado compilador, para o código demáquina.

CURSO DE MATEMÁTICAAlgoritmos 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, emcódigo de máquina por compilação ou interpretada por um processodenominado interpretação. Em ambas ocorre a tradução do código-fontepara código de máquina.

- Interpretada: o código-fonte é executado por um programa de computador chamadointerpretador, que em seguida é executado pelo sistema operacional ou processador. Mesmoque um código em uma linguagem passe pelo processo de compilação, a linguagem pode serconsiderada interpretada se o programa resultante não for executado diretamente pelosistema operacional ou processador. Um exemplo disso é o Bytecode, que é um tipo delinguagem interpretada que passa pelo processo de compilação e, em seguida, é executadopor uma máquina virtual, cuja sintaxe é similar ao código de máquina.

CURSO DE MATEMÁTICAAlgoritmos 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 linguagensinterpretadas, executadas do interior de programas e/ou de outraslinguagens de programação.

- Teoricamente, qualquer linguagem pode ser compilada ou interpretadae, por disso, há algumas linguagens que possuem ambasimplementações.

CURSO DE MATEMÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

Linguagem de programação: Compilação x Interpretação

Tipicamente compiladas Tipicamente interpretadas

ALGOLBASICCC++COBOLCobraCommon LispDelphiEiffelFortranJOVIALLabVIEWPascalVisual Basic

ActionScriptBASICC#JavaJavaScriptLispLogoLuaPHPPythonRRubySSmalltalk

CURSO DE MATEMÁTICAAlgoritmos 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ÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

Quantas linguagens de programação existem?

CURSO DE MATEMÁTICAAlgoritmos 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ÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

2. Linguagem Python

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 habilidadesque se aplicam à essas linguagens.

• Python suporta o desenvolvimento de uma ampla gama de aplicações, incluindojogos, 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ÁTICAAlgoritmos 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 “MontyPython's Flying Circus”.

https://twitter.com/gvanrossum

CURSO DE MATEMÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

Python 2.x Python 3.x

CURSO DE MATEMÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

Ano Mês Distribuição (Release) Descrição

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.

Aplicações Python:

Uma aplicação ou aplicativo (app) é um software de computador queexecuta uma tarefa ou um conjunto relacionado de tarefas. No entanto, osaplicativos também podem ser referidos como programas, mesmo que umaplicativo 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ÁTICAAlgoritmos 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.

CURSO DE MATEMÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

Um aplicativo de console é um aplicativo de desktop que usa o console para interagir com o usuário.

Aplicações Python:

• Aplicação GUI (GUI Application): É uma aplicação que possui uma InterfaceGráfica do Usuário (GUI, do inglês Graphical User Interface). Nos casos maissimples o aplicativo GUI executa as mesmas tarefas que o aplicativo deconsole, contudo a aplicação GUI é mais amigável e intuitiva.

CURSO DE MATEMÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

Um aplicativo GUI é um aplicativo que usa uma interface gráfica do usuário (GUI) para interagir com o usuário.

Aplicações Python:

• Aplicativo Web (Web Application): Ao contrário de um aplicativo dedesktop, que é executado diretamente em seu computador, um aplicativoda Web pode ser chamado por um navegador da Web que está sendoexecutado em um computador ou dispositivo móvel e pode usar umservidor para processar ou armazenar dados. Frameworks python estãodisponíveis para ajudá-lo a desenvolver esse tipo de aplicativo.

CURSO DE MATEMÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

Um aplicativo da Web recebe solicitações de um navegador, processa-as em um servidor e retorna as respostas ao navegador.

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ÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

Como o Python gera o código fonte:

CURSO DE MATEMÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

Passo 1 - O programador usa um editor de texto ou IDEpara inserir e editar o código-fonte. Em seguida, oprogramador salva o código para um arquivo com umaextensão .py.

Passo 2 - O código fonte é compilado pelo interpretadorpython em bytecode.

Passo 3 - O bytecode é traduzido pela máquina virtualpython em instruções que podem interagir com osistema operacional do computador.

Como o Python gera o código fonte:

CURSO DE MATEMÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

Para criar o arquivo que contém o código-fonte, o programador usa um editor de textoou Ambiente de Desenvolvimento Integrado(IDE, do inglês Integrated DevelopmentEnvironment).

IDLE - Integrated Development and Learning Environment.

Como o Python gera o código fonte:

CURSO DE MATEMÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

Os arquivos que contêm o código-fonte têm a extensão .py. Emseguida, o interpretador python éusado para traduzir (ou compilar) ocódigo-fonte em bytecode.

Como o Python gera o código fonte:

CURSO DE MATEMÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

Este bytecode pode ser executado por qualquercomputador que tenha a máquina virtual pythoninstalada nele. Esta máquina virtual converte obytecode para que ele possa ser executado pelosistema operacional do computador.

A máquina virtual Python é parte dopacote python e está disponível emtodas as plataformas que suportampython. É por isso que python éindependente da plataforma. Emoutras palavras, é a máquina virtualque possibilita que o pythonfuncione em uma ampla variedadede sistemas operacionais.

CURSO DE MATEMÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

3. Exercícios Python

CURSO DE MATEMÁTICAAlgoritmos 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:

• O que foi gerado?

import osos.getcwd()os.chdir('/name_dir/name_subdir')

Import py_compilepy_compile.compile('name_code.py')

CURSO DE MATEMÁTICAAlgoritmos 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íciosda Estrutura Condicional e Estrutura de Repetição.

b) Faça a implementação em python e crie os bytecodes dos algoritmos dos exercíciosde Estrutura de Dados (vetor e matriz).