algoritmos e programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... ·...

28
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: duongdien

Post on 11-Nov-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

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

Page 2: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

CURSO DE MATEMÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

1. Linguagens de Programação

Page 3: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

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.

Page 4: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

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)

Page 5: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

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

Page 6: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

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.

Page 7: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

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.

Page 8: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

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.

Page 9: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

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.

Page 10: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

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

Page 11: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

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

Page 12: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

CURSO DE MATEMÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

Quantas linguagens de programação existem?

Page 13: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

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

Page 14: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

CURSO DE MATEMÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

Linguagem Python

Page 15: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

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

Page 16: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

• 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

Page 17: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

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.

Page 18: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

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. Na prática, amaioria das pessoas usa esses termos de forma intercambiável.

• Tipos de aplicações Python:• Aplicativo de console (Console application)

• Aplicação GUI (GUI Application)

• Aplicativo Web (Web Application):

CURSO DE MATEMÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

Page 19: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

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.

Page 20: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

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.

Page 21: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

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.

Page 22: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

Como o Python gera o bytecode (“similar” ao código de máquina tradicional):

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.

Page 23: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

Como o Python gera o bytecode (“similar” ao código de máquina tradicional):

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.

Page 24: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

Como o Python gera o bytecode (“similar” ao código de máquina tradicional):

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.

Page 25: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

Como o Python gera o bytecode (“similar” ao código de máquina tradicional):

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.

Page 26: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

CURSO DE MATEMÁTICAAlgoritmos e Programação

Prof. Me. Érico Fernando O. Martins

1. Exercícios Python

Page 27: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

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')

Page 28: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/fot_145587__pbog... · Visual Basic ActionScript BASIC C# Java JavaScript ... 2010 Julho 2.7 A última

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.