Introdução à Programação Aula 2 Introdução à linguagem Python



Documentos relacionados
Nesta aula... Analisamos na ultima aula a evolução e caraterísticas de computadores e linguagens de programação. Nesta aula iremos ver:

Programação I Aula 2 Apresentação da linguagem Python

1 Introdução à Programação O que é? Para que serve?... 1

Linguagens de programação

Linguagens de Programação. Introdução. Carlos Bazilio

Paradigmas de Programação

Organização de Computadores Software

Paradigmas de Linguagens de Programação

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Algoritmos e programação

Linguagens de. Aula 01. Profa Cristiane Koehler

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

INF1621 Linguagens de Programação I

Curso Técnico em Redes

INTRODUÇÃO À PROGRAMAÇÃO

Introdução à Engenharia de Computação

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

1 Expressões, valores e tipos 1. 2 Variáveis e atribuições 5. cálculo de expressões segue a estrutura de parênteses e as prioridades dos operadores

Fonte (livro-texto): Conceitos de Linguagens de Programação, 4ed. Robert W. Sebesta

Carga horária : 4 aulas semanais (laboratório) Professores: Custódio, Daniel, Julio foco: introdução a uma linguagem de programação Linguagem Java

Construção de Compiladores. Construção de Compiladores. Motivação. Motivação. Contexto Histórico. Classificações: Gerações 09/03/2010

Linguagens de Programação Aula 10

O Windows é um software de sistema, que permite ao utilizador interagir com o computador e com os seus periféricos.

TRABALHO DE PROGRAMAÇÃO FUNCIONAL LINGUAGEM DE PROGRAMAÇÃO I

UFRPE Prof. Gustavo Callou

Ruby. Simplicidade e produtividade

Programação Funcional. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2015.

O COMPUTADOR. Introdução à Computação

Introdução sobre Scilab

Algoritmos DCC 119. Introdução e Conceitos Básicos

ENIAC. Introdução aos Computadores e à Programação (Noções Básicas)

Algoritmos e Programação Aula 01 Introdução a Computação

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Utilização do Solver na solução de problemas de PL

Introdução. Capítulo Breve sinopse

Programação de Computadores

AULA 1: PARADIGMAS DE PROGRAMAÇÃO

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada

Convertendo Algoritmos para a Linguagem C

Introdução. Sumários. Objectivos da cadeira. História das linguagens de programação. Classificação das Linguagens de programação

Introdução a Informática. Prof.: Roberto Franciscatto

Programação de. Programa. Bibliografia. Páginas electrónicas de PM. Regras das aulas de laboratório. Métodos de Ensino - Aulas

Computador Digital Circuitos de um computador (Hardware)

MATA49 Programação de Software Básico

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

Linguagem de Programação

e à Linguagem de Programação Python

Arquitetura de Computadores Moderna

Programação de Computadores. Turma CI-180-B. Josiney de Souza.

Linguagens de Programação

Python - Variáveis e expressões

Indústria de Software - Histórico

Linguagem de Montagem

Introdução à Engenharia de Computação

Laboratório de Programação 1 Algoritmos e a Lógica de Programação

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

Algoritmo e Técnica de Programação - Linguagem C

Paradigmas e Linguagens de Programação. Prof. Josino Rodrigues Neto josinon@gmail.com

Informática I. Aula 6. Aula 6-12/09/2007 1

Conceitos básicos de programação

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

Organização de programas em Python. Vanessa Braganholo

15 a Aula Subprogramação /Subalgoritmos Função e Procedimento

Linguagem de Programação I

UNIP - UNIVERSIDADE PAULISTA. Arquitetura de computadores

Paradigmas. Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I

Linguagens de Programação. Linguagens de Script. Carlos Bazilio

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

Departamento de Informática

Paradigmas de Linguagens de Programação. Aspectos Preliminares

Programação de Computadores

E/S CPU. Memória (Instruções e dados) 2 PARADIGMA IMPERATIVO. Instruções e dados. Resultados das operações. Unidade lógica e aritmética

Apresentação. Rio de Janeiro, 19 de fevereiro de 2002 Waldemar Celes

Ferramentas Web, Web 2.0 e Software Livre em EVT

Programação. MEAer. Bertinho Andrade da Costa. Instituto Superior Técnico. Introdução ao Pré-Processador. 2011/2012 1º Semestre

Introdução à Computação. Conceitos básicos sobre computadores. ISEP DEI, Angelo Martins 2006 Conceitos básicos sobre computadores - 1

Uso de software livre para modelagem matemática e simulação

Objetivos: -Dar uma visão integrada do que é a Informática -Refletir sobre as motivações e problemas que envolvem o uso de ferramentas computacionais

Introdução. Paradigmas de Linguagens de Programação. Heloisa de Arruda Camargo. Motivos para estudar os conceitos de linguagens de programação

Breve Histórico & Conceitos Básicos

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

Formador: Carlos Maia

Roteiro. MC-102 Aula 01. Hardware e dispositivos. O que é um computador? Primeiro Semestre de A linguagem C

Capítulo 1. INTRODUÇÃO

Introdução às Linguagens de Programação

AMBIENTE DE PROGRAMAÇÃO PYTHON

ALGORITMOS MEMÓRIA, VARIÁVEIS E CONSTANTES, OPERADORES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Organização de Computadores 1. Prof. Luiz Gustavo A. Martins

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

LEI Sistemas de Computação 2011/12. Níveis de Abstração. TPC4 e Guião laboratorial. Luís Paulo Santos e Alberto José Proença

Invenções Implementadas por Computador (IIC) Patentes

Aula teórica 3. Tema 3.Computadores e linguagens Linguagens de Programação Compilação e linkagem LP Java. Preparado por eng.

Transcrição:

Introdução à Programação Aula 2 Introdução à linguagem Python Pedro Vasconcelos DCC/FCUP 2015 Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 1 / 24

Nesta aula... 1 Porquê programar? 2 Linguagens de Programação 3 A linguagem Python Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 2 / 24

O que é a programação de computadores? Implementação de métodos computacionais para resolução de problemas Análise e comparação de métodos diferentes Conjunção de várias competências: matemática linguagens formais para especificar processos; engenharia juntar componentes para formar um sistema; avaliar prós/contras de alternativas ciências naturais observar comportamento de sistemas complexos; formular hipóteses; testar previsões Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 3 / 24

Porquê aprender a programar? Trabalhos científicos necessitam de processamento complexo de dados Facilita a automatização de tarefas repetitivas Muitas aplicações científicas são programáveis (ex: Excel, GNUplot, Matlab, Maple, Mathematica) Estrutura o pensamento para resolver problemas Desenvolve o pensamento analítico É um desafio intelectual É divertido! Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 4 / 24

Porquê aprender a programar? (cont.) Programar desenvolve competências de resolução de problemas: capacidade para descrever problemas de forma rigorosa; pensar de forma criativa em possíveis soluções; expressar as soluções de forma clara e precisa. Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 5 / 24

Linguagens de Programação Linguagens formais para exprimir computação sintaxe: regras de formação (gramática) semântica: significado ou operação associados Outras linguagens: expressões aritméticas, símbolos químicos sintaxe semântica 3 (1 + 2) ok 9 3 1 + 2 ok 5 )1 + 2 + (3 erro H 2 O ok água 2zZ erro Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 6 / 24

Linguagem máquina 55 89 e5 83 ec 20 83 7d 0c 00 75 0f... Linguagem específica de cada micro-processador Códigos numéricos associados a operações básicas Única linguagem directamente executável pelo computador Não é pensada para ser usada por programadores Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 7 / 24

Linguagem assembly 55 push %ebp 89 e5 mov %esp,%ebp 83 ec 20 sub $0x20,%esp 83 7d 0c 00 cmpl $0x0,0xc(%ebp) 75 0f jne 1b...... Representação da linguagem máquina em mnemónicas Mais legível por humanos do que a linguagem máquina Pode ser traduzida para linguagem máquina automaticamente por um programa assemblador Continua a ser específica para cada micro-processador Muito baixo-nível: desenvolvimento lento, fastidioso, susceptível de erros Usada apenas em contextos muito específicos Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 8 / 24

Linguagens de alto-nível Exemplo: linguagem C p = 1; for(i=2; i<=n; i++) p = p*i; printf("factorial %d = %d\n", n, p); Mais próximas da formulação matemática dos problemas Facilitam o desenvolvimento de programas Programas são portáveis (independentes da arquitetura dum computador específico) Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 9 / 24

Interpretadores vs. compiladores Linguagens de alto-nível são traduzidas para linguagem máquina por programas especiais: interpretadores: tradução é efectuada sempre que o programa executa; compiladores: tradução é efectuada uma só vez; produz um programa código-máquina independente Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 10 / 24

Cronologia de algumas linguagens 1956 Fortran I 1958 Lisp 1960 Cobol, Algol 60 1964 PL/I 1968 Smalltalk 1970 Pascal, Prolog 1974 Scheme 1976 Fortran 77, ML 1978 C (K&R) 1980 Smalltalk 80 1982 Ada 83 1984 Common Lisp, C++, SML 1986 Eiffel, Perl, Caml 1988 Tcl 1990 Fortran 90, Python, Java 1994 Ruby, Perl 5 1995 JavaScript 1996 OCaml 1998 Scheme R5RS, C++(ISO), Haskell 98 2000 Python 2.0, C# 2004 C# 2.0(beta), Java 2 (beta) 2008 Python 3.0 Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 11 / 24

Porquê tantas linguagens? Diferentes níveis de abstração: nível mais alto: mais próximo da formulação dos problemas; facilita a programação, deteção e correção de erros nível mais baixo: mais próximo da máquina; potencialmente mais eficiente Diferentes tipos de problemas: cálculo numérico: Fortran, C, C++ sistemas operativos: C, C++ sistemas críticos: Ada, C, C++ sistemas web: Java, JavaScript, Ruby, Python Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 12 / 24

Porquê tantas linguagens? (cont.) Diferentes paradigmas: imperativo: Algol, Pascal, C funcional: Lisp, Scheme, ML, OCaml, Haskell lógico: Prolog orientado a objectos: Smalltalk, C++, Java, C# Preferências subjectivas (estilo, elegância, legibilidade) Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 13 / 24

A linguagem Python Linguagem de alto nível Sintaxe simples: fácil de aprender Pode ser usada em Windows, Linux, FreeBSD, Mac OS, etc.... Implementação distribuida como código livre Suporta programação procedimental e orientada a objectos Muitas bibliotecas disponíveis Usada no mundo real : Google, Microsoft, Yahoo!, NASA, Lawrence Livermore Labs, Industrial Light & Magic... Sítio oficial: http://www.python.org Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 14 / 24

A linguagem Python Python é implementado com um interpretador híbrido: programa Python é traduzido para um código intermédio (byte-code); o byte-code é executado por um interpretador especial. Vantagens: fácil de usar interativamente fácil testar e modificar componentes mais eficiente do que um interpretador clássico Desvantagem: não é tão eficiente como uma linguagem compilada tradicional (ex: C, C++, Fortran) Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 15 / 24

Utilização interativa Executando python3 num terminal podemos escrever comandos Python e ver os resultados imediatamente. Python 3.2.3 (default, Jul 5 2013, 08:29:02) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> 1+1 2 >>> print("ola, mundo!") Ola, mundo! >>> Ctrl-D ( end-of-file ) ou quit() para terminar. Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 16 / 24

Utilização com um script Em alternativa podemos escrever um programa completo num ficheiro de texto (script) e executar de uma só vez. programa.py print("ola, mundo!") print("1 + 1 = ", 1+1) Executamos no terminal python3 programa.py e obtemos: Ola, mundo! 1 + 1 = 2 Convenção: ficheiros de programas Python têm extensão.py Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 17 / 24

Utilização com um script (cont.) A forma interativa é usada para testar pequenas partes de código. Devemos escrever programas com mais do que algumas linhas num script. Ambientes de desenvolvimento como o IDLE e o IEP combinam: uma janela para testes interativos; uma ou mais janelas para scripts (segue-se uma demonstração... ) Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 18 / 24

Usar Python como uma calculadora Operadores aritméticos básicos: adição e subtração + - multiplicação e divisão * / exponenciação ** parênteses ( ) Números inteiros e fracionários: 42-7 3.1416 Expressões incorretas: SyntaxError Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 19 / 24

Usar Python como uma calculadora (cont.) Prioridade entre os operadores (ordem de cálculo): 1 parêntesis ( ) 2 exponenciação ** 3 multiplicação e divisão * / 4 soma e subtração + - Operadores da mesma prioridade agrupam à esquerda. Exemplos: >>> 1+2-3+4 4 >>> 1+2-(3+4) -4 >>> 2**3*4+1 33 >>> 2**3*(4+1) 40 Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 20 / 24

Funções matemáticas Muitas funções e constantes matemáticas estão disponíveis no módulo math. Para usar devemos começar por importar o módulo. >>> import math Os nomes das funções começam com prefixo math : >>> math.sqrt(2) 1.4142135623730951 >>> math.pi 3.141592653589793 Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 21 / 24

Funções matemáticas (cont.) Algumas funções e constantes do módulo math: raiz quadrada sqrt funções trignométricas sin, cos, tan funções trignométricas inversas asin, acos, atan, atan2 exponencial e logaritmos exp, log, log10 e, π e, pi Para obter mais informação: >>> help(math) informação geral >>> help(math.log) específica sobre uma função Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 22 / 24

Tipos Os valores em Python são classificados em diferentes tipos. Algumas operações só são possíveis com determinados tipos: >>> "Ola mundo!" + 42 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: Can t convert int object to str Tipos básicos tipo exemplos inteiros int 1-33 29 vírgula-flutuante float 1.0-0.025 3.14156 cadeias de texto str "Ola mundo!" ABC 1.23.99 Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 23 / 24

Tipo de um resultado No interpretador de Python podemos usar type(...) para obter o tipo dum resultado: >>> (1+2+3)*5-1 29 >>> type((1+2+3)*5-1) <class int > >>> type(1.234) <class float > >>> type( ABC ) <class str > Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 2 Introdução à linguagem Python 2015 24 / 24