Computação 1 aula 1 - Teórica professor: Leonardo Carvalho Resolver problemas de forma rápida e com precisão Exemplo: escrever uma palavra Exemplo: escrever uma palavra exatamente 1687 vezes Programação de computadores Programação de computadores Instruções em códigos Linguagem de programação Linguagens naturais vs linguagem de máquina Linguagem natural Linguagem de programação Linguagem de máquina uma das linguagens de programação mais populares do mundo segundo o índice TIOBE Desktop, web, mobile Utilizada em Grandes empresas Linguagem de script em Softwares profissionais Linguagem de script em Softwares profissionais Sobre o curso Página oficial www.dcc.ufrj.br/~pythonufrj Minha página www.dcc.ufrj.br/~lcarvalho/comp1.html aulas teóricas e práticas Quint as-fei 13h às ras Sala F 15h 2-011 ras i e f s Terça 15h 13h às Lep 2 avaliação provas e trabalhos Provas ● 3 provas ● É necessário fazer pelo menos 2 provas! ● Nota final ○ NF = 30%P1 + 50%max(P2, P3) + 20%T ○ NF = 40%P2 + 40%P3 + 20%T (se não fizer a P1) ● Aprovação: NF >= 5.0 O que vamos aprender? Tópicos ● ● ● ● ● Manipulação de dados Funções Estrutura condicional Estruturas de repetição Comunicação com o usuário Como deixar o curso mais divertido? Módulo TURTLE Módulo PYGAME Mãos à obra Antes de tudo: instalação do Python No Windows: 32 bits: python.org/ftp/python/2.7.10/python-2.7.10.msi 64 bits: python.org/ftp/python/2.7.10/python-2.7.10.amd64.msi Modo interativo Ambiente para testarmos nossos códigos $ python Python 2.7.6 (default, Jun 22 2015, 17:58:13) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> Modo interativo IDLE Modo interativo Editor online: repl.it/languages/python Primeiros passos: valores numéricos >>> 1 1 >>> 10 10 >>> 4.2 4.2 >>> 8 8 >>> 346874187 346874187 >>> 548.8918725 548.8918725 Tipos de dados Números inteiros Números reais (float) Operações fundamentais >>> 8+5 13 >>> 7-3 4 >>> 27*39 1053 >>> 12/3 4 >>> 20/3 6 >>> 20.0/3 6.666666666666667 >>> 20.0//3 6.0 Potência >>> 8**5 32768 >>> 5**3 125 >>> 12.2**5.7 1556865.2849978525 >>> 9**0.5 3.0 >>> 72**0.6 13.013661254372382 Resto: operador módulo >>> 2 >>> 3 >>> 1 >>> 0 13/5 13%5 17%8 21%7 Expressões >>> 5+8-2*7/3 9 >>> 20*(13-7)/8 15 >>> 17+8*23-10 191 >>> 17+8*(23-10) 121 >>> (17+8)*(23-10) 325 >>> 5+8-2*7/3.1 8.483870967741936 Expressões: regra de precedência 1. 2. 3. 4. Expressões entre parênteses Exponenciação Multiplicação, divisão, módulo (*) Adição, subtração (*) (*) da esquerda para a direita Expressões: regra de precedência >>> ? >>> ? >>> ? >>> ? 1+2*3 3*2**(2+1)*5 100/25/4 100/(25/4) Testando >>> 15.9827*32.5487 520.2161074899999 >>> 15.9827+32.5487 48.5314 >>> 15.9827-32.5487**0.5 10.277553200836984 O que essas operações têm em comum? Podemos guardar valores! Variáveis >>> a = 15.9827 >>> b = 32.5487 >>> a*b 520.2161074899999 >>> a+b 48.5314 >>> a-b**0.5 10.277553200836984 Identificadores: nomes de variáveis Letras, números, underline. >>> x = 2 >>> valor = 12 >>> valor_total = 1938.8 >>> _1x = 10 >>> 1x = 10 SyntaxError: invalid syntax Valor: dado armazenado >>> >>> >>> >>> >>> idade = 30 peso = 60.2 altura = 1.72 x = 3*2 y = 5 + 4 Uso de variáveis Simplificar expressões >>> (18.37**2 - 3*18.37 + 8)/(3*18.37 - 7) 6.035063396383288 >>> x = 18.37 >>> (x**2 - 3*x + 8)/(3*x - 7) 6.035063396383288 Uso de variáveis Organizar cálculos >>> a = 2 >>> b = -6 >>> c = 4 >>> delta = b**2 - 4*a*c >>> x0 = (-b-delta**0.5)/(2*a) >>> x1 = (-b+delta**0.5)/(2*a) >>> x0 1.0 >>> x1 2.0 Atribuição >>> >>> >>> >>> 6 >>> x = 2 y = 3*x x = 4 y camarote = 10000.00 Atribuição múltipla >>> >>> 2 >>> 4 >>> >>> 12 >>> 2 >>> 9 x, y = 2, 4 x y a, b, c = 12, x, y+5 a b c Manipulação de texto Strings: sequências de caracteres >>> 'a' 'a' >>> "b" 'b' >>> 'Bob Esponja' 'Bob Esponja' >>> "Aham... senta la, Claudia." 'Aham... senta la, Claudia.' >>> "armaria mainha, nam" 'armaria mainha, nam' Strings: sequências de caracteres Por enquanto, nada de caracteres especiais. >>> 'chão' 'ch\xc3\xa3o' >>> 'ಠ_ಠ' '\xe0\xb2\xa0_\xe0\xb2\xa0' Concatenação de strings >>> 'a' + 'b' 'ab' >>> a = 'Um milhao de reais ' >>> b = 'em barras de ouro, ' >>> a+b 'Um milhao de reais em barras de ouro, ' >>> c = 'que vale mais do que dinheiro' >>> a+b+c 'Um milhao de reais em barras de ouro, que vale mais do que dinheiro' Multiplicação de inteiro por string >>> 3*'a' 'aaa' >>> 10*'hue' 'huehuehuehuehuehuehuehuehuehue' >>> 10*'hue' + 'br' 'huehuehuehuehuehuehuehuehuehuebr' Escrever uma palavra exatamente 1687 vezes >>> 1687*'bola ' Divirtam-se