Programando em Python

Tamanho: px
Começar a partir da página:

Download "Programando em Python"

Transcrição

1 Programando em Python

2 Por que programar? É divertido Melhor que usar programas feitos por outros Fazer programas = resolver quebra-cabeças Programação como arte É útil Programação como ferramenta Pode ser aplicado a quase qualquer atividade Arte / Ciência / Filosofia / Entretenimento

3 Algoritmos e Programas Algoritmo = método para solucionar um problema Estruturas de dados = método para organizar informações Programa = algoritmos + estruturas de dados expressos de forma a ser entendidos pelo computador Programas tipicamente processam dados de entrada e produzem dados de saída Entrada Programa Saída

4 Linguagem de Programação Linguagem artificial com sintaxe e semântica bem definidos Usada para exprimir programas Mais técnica do que linguagens naturais Menos técnica do que a linguagem nativa ( máquina dos computadores (linguagem de

5 Compiladores Programas que traduzem programas escritos em linguagem de programação para programas equivalentes escritos em linguagem de máquina O primeiro é chamado de programa fonte, enquanto que o segundo é chamado de programa objeto Programa fonte Compilador Programa objeto

6 Link-Editores O programa-objeto nem sempre está pronto para ser executado Outros trechos de código precisam ser incluídos Bibliotecas Subprogramas Programa executável é montado por um programa chamado link-editor ou linking-loader Compilador normalmente chama o link-editor automaticamente

7 Link-Editores Prog objeto 1 Prog objeto N Link Editor Programa executável Biblioteca Biblioteca

8 Interpretadores Simulam uma máquina virtual Programa fonte é lido, entendido e as instruções são executadas imediatamente Entrada Interpretador Saída Programa fonte

9 Esquemas Híbridos Compilador gera código para uma máquina virtual ( pseudo-código ) Máquina virtual é executada separadamente lendo pseudo-código e interpretando-o Prog. Fonte Compilador Dados Entrada Prog objeto Interpretador Saída

10 Por que Python? Simples o suficiente para um curso introdutório Muitos recursos Orientação a Objetos ( exceções Escalável (módulos, classes, controle de Biblioteca embutida extensa e grande número de módulos fornecidos por terceiros Grande variedade de aplicações ( script ) Linguagem interpretada Multi-plataforma Gratuito Comunidade bastante desenvolvida

11 O que vamos precisar Uma implementação da linguagem ( windows ) Implementação pronta para baixar Linux normalmente já vem com python instalado Um editor de textos Qualquer editor serve Ambiente IDLE inclui um editor Incluído na distribuição windows

12 Python Interativo Rode o interpretador Digite comandos python Cada comando é executado imediatamente [cancer]~> python Python (#1, May , 15:19:29) [GCC (Red Hat )] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> print "alo!" alo! >>>

13 Executando um programa Python Escreva um programa python Invoque o interpretador para executá-lo [cancer]~> cat prog.py print "alo!" [cancer]~> python prog.py alo!

14 Executando um programa Python Interfaces gráficas normalmente já associam os sufixos.py e.pyc com o interpretador

15 Python: Tipos Básicos

16 Python como calculadora O Interpretador python pode ser usado como calculadora Por exemplo, as quatro operações aritméticas são denotadas pelos símbolos + adição - subtração * multiplicação / divisão

17 Python como calculadora >>> >>> # Um comentário é precedido do caracter "#"... # Comentários são ignorados pelo interpretador >>> # Comentários podem aparecer também após código -5 >>> 10*3 30 >>> 10/3 3 >>> 10/-3 # Divisão inteira retorna o piso -4 >>> 10%3 # Resto de divisão inteira simbolizado por % 1

18 Tipos de dados São categorias de valores que são processados de forma semelhante Por exemplo, números inteiros são processados de forma diferente dos números de ponto flutuante (decimais) e dos números complexos Tipos primitivos: são aqueles já embutidos no núcleo da linguagem Simples: numéricos (int, long, float, complex) e cadeias de ( strings ) caracteres Compostos: listas, dicionários, tuplas e conjuntos Tipos definidos pelo usuário: são correspondentes a classes ( objeto (orientação

19 Variáveis São áreas de memória reservadas para armazenamentos de dados Os nomes de variáveis são identificadores: Nomes podem ser compostos de algarismos (0-9), letras (a-z ou A-Z) ou sublinhado ( _ ) O primeiro caractere não pode ser um algarismo Não Palavras reservadas (if, while, etc) são proibidas Servem para: Guardar valores intermediários Construir estruturas de dados Uma variável é modificada usando o comando de atribuição: Var = expressão É possível também atribuir a várias variáveis simultaneamente: var1,var2,...,varn = expr1,expr2,...,exprn

20 Variáveis >>> a=1 >>> a 1 >>> a=2*a >>> a 2 >>> a,b=3*a,a >>> a,b ( 2,6) >>> a,b=b,a >>> a,b ( 6,2)

21 Variáveis Variáveis são criadas dinamicamente e destruídas quando não mais necessárias, por exemplo, quando saem fora de ( tarde escopo (veremos isso mais O tipo de uma variável muda conforme o valor atribuído, i.e., int, float, string, etc. Não confundir com linguagens sem tipo >>> a ="1" >>> b = 1 >>> a+b Traceback (most recent call last): File "<stdin>", line 1, in? TypeError: cannot concatenate 'str' and 'int' objects

22 Números Há vários tipos numéricos que se pode usar em python Int: números inteiros de precisão fixa 1, 2, 15, -19 Long: números inteiros de precisão arbitrária 1L, 10000L, L Floats: números racionais de precisão variável 1.0, 10.5, , 15e-5 Complex: números complexos 1+1j, 20j, J

23 Números inteiros Os ints têm precisão fixa ocupando tipicamente uma palavra de memória Em PC's são tipicamente representados com 32 bits (de a 2 32 ) Os números inteiros de precisão arbitrária (longs) são armazenados em tantas palavras quanto necessário Constantes do tipo long têm o sufixo L ou l Longs são manipulados bem mais lentamente que ints Quando necessário, cálculos usando ints são convertidos para longs

24 Números inteiros >>> a=2**30 # Potenciação >>> a >>> b=a*1000 >>> b L >>> b/ L

25 Números inteiros Constantes podem ser escritas com notação idêntica à usada em C Hexadecimal: preceder dígitos de 0x Octal: preceder dígitos de 0 Ex.: >>> >>> 0x10 16 >>> 0x1f 31

26 Números de ponto flutuante São implementados como os double's da linguagem C tipicamente usam 2 palavras Constantes têm que possuir um ponto decimal ou serem escritas em notação científica com a letra e (ou E ) precedendo a potência de 10 Ex: >>> 10 # inteiro 10 >>> 10.0 # ponto flutuante 10.0 >>> 99e >>> 99e

27 Números complexos Representados com dois números de ponto flutuante: um para a parte real e outro para a parte imaginária Constantes são escritas como uma soma sendo que a parte imaginária tem o sufixo j ou J Ex.: >>> 1+2j ( 1+2j ) >>> 1+2j*3 ( 1+6j ) >>> (1+2j)*3 ( 3+6j ) >>> (1+2j)*3j ( 6+3j -)

28 Strings São cadeias de caracteres Constituem outro tipo fundamental do python Constantes string são escritas usando aspas simples ou duplas Ex.: "a" ou 'a' O operador + pode ser usado para concatenar strings Ex.: "a"+"b" é o mesmo que "ab" O operador * pode ser usado para repetir strings Ex.: "a"*10 é o mesmo que "aaaaaaaaaa"

29 Strings Python usa a tabela de caracteres default do S.O. Ex.: ASCII, UTF-8 Caracteres não imprimíveis podem ser expressos usando notação (\) barra-invertida \n é o mesmo que new line \r é o mesmo que carriage return \t é o mesmo que tab \b é o mesmo que backspace \\ é o mesmo que \ \x41 é o mesmo que o caractere cujo código hexadecimal é 41 ( maiúsculo A )

30 Strings >>> "ab\rd" 'ab\rd' >>> print "ab\rd" # print exibe chars não imprimíveis db >>> print "abc\td" abc d >>> print "abc\nd" abc d >>> print "abc\\nd" abc\nd >>> print "ab\bc" ac >>> print "\x41\xa1" Aí

31 Strings A notação barra-invertida (\) pode ser desabilitada desde que a constante string seja precedida por um r (erre ( minúsculo ( cruas ) São chamadas strings raw Ex.: >>> print "abc\ncd\tef" abc cd ef >>> print r"abc\ncd\tef" abc\ncd\tef

32 Strings Constantes string podem ser escritas com várias linhas desde que as aspas não sejam fechadas e que cada linha termine com uma barra invertida Ex.: >>> print "abcd\n\... efgh\n\... ijk" abcd efgh ijk >>> print "abcd\... efgh\... ijk" abcdefghijk >>>

33 Strings Também é possível escrever constantes string em várias linhas incluindo as quebras de linha usando três aspas como delimitadores Ex.: >>> print """ Um tigre dois tigres três tigres""" Um tigre dois tigres três tigres >>> print '''abcd efgh''' abcd efgh

34 Strings Índices Endereçam caracteres individuais de uma string Notação: string[índice] O primeiro caractere tem índice 0 O último caractere tem índice -1 Ex.: >>> a = "abcde" >>> a[0] 'a' >>> a[-1] 'e'

35 ( slices ) Strings Fatias Notação para separar trechos de uma string Notação: string[índice1:índice2] Retorna os caracteres desde o de índice1 (inclusive) até o de ( exclusive ) índice2 Se o primeiro índice é omitido, é assumido 0 Se o último índice é omitido, é assumido o fim da string

36 ( slices ) Strings Fatias >>> a 'abcde' >>> a[0:2] 'ab' >>> a [2:] 'cde' >>> a[:] 'abcde' >>> a[-1:] 'e' >>> a[:-1] 'abcd'

37 Expressões booleanas Também chamadas expressões lógicas ( False ) Resultam em verdadeiro (True) ou falso São usadas em comandos condicionais e de repetição Servem para analisar o estado de uma computação e permitir escolher o próximo passo Operadores mais usados Relacionais: >, <, ==,!=, >=, <= Booleanos: and, or, not Avaliação feita em Curto-circuito Expressão avaliada da esquerda para a direita Se o resultado (verdadeiro ou falso) puder ser determinado sem avaliar o restante, este é retornado imediatamente

38 >>> 1==1 True >>> 1==2 False >>> 1==1 or 1==2 True >>> 1==1 and 1==2 False >>> 1<2 and 2<3 True >>> not 1<2 False >>> not 1<2 or 2<3 True ( 2<3 >>> not (1<2 or False >>> "alo" and 1 1 >>> "alo" or 1 'alo' Expressões booleanas

39 Expressões booleanas As constantes True e False são apenas símbolos convenientes Qualquer valor não nulo é visto como verdadeiro enquanto que 0 (ou False) é visto como falso O operador or retorna o primeiro operando se for vista como verdadeiro, caso contrário retorna o segundo O operador and retorna o primeiro operando se for vista como falso, caso contrário retorna o segundo Operadores relacionais são avaliados antes de not, que é avaliado antes de and, que é avaliado antes de or

40 >>> 0 or >>> False or >>> "abc" or 1 'abc' >>> 1 and 2 2 >>> 0 and 3 0 >>> False and 3 False >>> 1 and 2 or 3 2 >>> 0 or 2 and 3 3 >>> 1 and not 0 True Expressões booleanas

41 Funções Embutidas Além dos operadores, é possível usar funções para computar valores As funções podem ser definidas: Ex.: Pelo programador Em módulos da biblioteca padrão ( built-in ) Por default: são as funções embutidas Na verdade, fazem parte do módulo builtins, que é sempre importado em toda aplicação abs(x) retorna o valor absoluto do número x chr(x) retorna uma string com um único caractere cujo código ASCII é x ord(s) retorna o código ASCII do caractere s

42 ( 10 ) >>> abs 10 ( 19 -) >>> abs 19 ( 95 ) >>> chr '_' ( 99 ) >>> chr 'c' (' a ') >>> ord 97 Funções Embutidas

43 Importando módulos Muitas funções importantes são disponibilizadas em módulos da biblioteca padrão Ex.: o módulo math tem funções como sin, cos, exp e outras Um módulo pode conter não só funções mas também variáveis ou classes Por exemplo, o módulo math define a constante pi Para usar os elementos de um módulo, pode-se usar o comando import Formatos: import modulo from modulo import nome,...,nome from modulo import *

44 Importando módulos Por exemplo: from math import * # importa todos os elementos do módulo math from math import sin # importa apenas a função sin import math # importa o módulo math como um todo # (todos os elementos têm que ser citados (. math # precedidos por

45 Importando módulos >>> import math ( sin(30 >>> a = Traceback (most recent call last): File "<stdin>", line 1, in? NameError: name 'sin' is not defined ( math.sin(30 >>> a = >>> from math import sin ( sin(30 >>> a = >>> print a (( sin(radians(30 >>> a = Traceback (most recent call last): File "<stdin>", line 1, in? NameError: name 'radians' is not defined >>> from math import * (( sin(radians(30 >>> a = >>> a

46 Explorando Módulos >>> import math ( help(math.cos <<< Help on built-in function cos in module math: (...) cos ( cos(x Return the cosine of x (measured in radians). ( END ) Pressiona-se q para retornar ao interpretador.

47 Python: Comandos Básicos

48 Primeiros passos em programação Até agora só vimos como computar algumas expressões simples Expressões são escritas e computadas imediatamente Variáveis podem ser usadas para valores temporários Um programa típico entretanto usa vários tipos de construções tais como: Comandos condicionais Comandos de repetição ( subprogramas ) Definição e uso de procedimentos ( OO Definição e uso de classes e objetos (programação

49 Primeiros passos em programação >>> # Série de Fibonacci... a,b=0,1 >>> while b < 10:... print b... a,b=b,a+b... 1 Identação Resultado Comentário Atribuição dupla Comando de repetição Expressão booleana Bloco do comando de repetição

50 Programas armazenados À medida que os programas vão se tornando mais complicados, é mais interessante guardá-los em arquivos e executá-los quando necessário Arquivo fibo.py (use um editor de textos como o do IDLE): # Série de Fibonacci: a, b = 0, 1 while b < 10: print b a, b = b, a+b

51 Formas de Executar um Programa Digite python fibo.py no seu shell, ou Clique no ícone do arquivo, ou De dentro do editor IDLE, selecione Run Module (F5), ou De dentro do interpretador python: (" fibo.py ") >>> execfile Entre com um numero >>>

52 print Forma geral: print expr,expr,... Os valores das expressões são escritos um após o outro sem pular de linha: >>> print "1.001 ao quadrado é ",1.001** ao quadrado é Se o comando terminar com vírgula, o próximo print escreverá na mesma linha. Por exemplo: >>> a, b = 0, 1 >>> while b < 1000:... print b,... a, b = b, a+b

53 input O programa que computa elementos da série de Fibonacci termina quando atinge um elemento com valor superior a uma constante Podemos tornar o programa mais flexível se ao usuário for permitido estipular o valor máximo O comando input permite perguntar ao usuário um valor ( variável (normalmente é atribuído a uma ( input(pergunta Formato: onde pergunta é uma string opcional que será exibida para indicar ( prompt o valor que se espera (i.e., Exemplo: (" numero: >>> a = input("entre com um Entre com um numero: 19 >>> print a 19 Usuário digita o número

54 Input O comando input espera que se digite algo que faça sentido do lado direito de um sinal de atribuição. Ex: >>> print a 19 () input >>> b = a >>> b 19 (" caracteres: >>> c = input("entre com uma cadeia de entre com uma cadeia de caracteres: abc Traceback (most recent call last): File "<stdin>", line 1, in? File "<string>", line 0, in? NameError: name 'abc' is not defined (" caracteres: >>> c = input("entre com uma cadeia de entre com uma cadeia de caracteres: "abc" >>> c 'abc'

55 raw_input É semelhante ao input, mas não tenta interpretar o que foi digitado como uma expressão O resultado é simplesmente uma string com o texto digitado Ex.: (" nome: >>> nome = raw_input ("Entre seu Entre seu nome: Maria da Graça >>> print nome Maria da Graça >>> nome Maria da Gra\xe7a'

56 while Repete uma seqüência de comandos enquanto uma dada expressão booleana é avaliada como verdadeira Formato: while expressão: comando... comando Exemplo: >>> a = 10 >>> while a>8:... print a,... a = a

57 Laços Infinitos Como em todo comando de repetição, é importante evitar os chamados laços infinitos Ex.: >>> a = 10 >>> while a>8:... print a,... a = a

58 if É o comando condicional por excelência Formatos: if expressao: comandos if expressao: comandos1 else: comandos2 if expressao1: comandos1 elif expressao2: comandos2 else: ( comandos(n Executa comandos apenas se expressão for verdadeira Executa seq de comandos 1 caso expressão seja verdadeira. Caso contrário, executa seq de comandos 2 Executa seq de comandos 1 caso expressão1 seja verdadeira. Caso contrário, testa expressao2 e executa seq de comandos 2 se verdadeira Caso contrário, executa seq de comandos N

59 Exemplo 1 if a = input("entre com um numero:") if a < 0: print a," é negativo" print "Obrigado!" Execução 1: Entre com um numero:2 Obrigado! Execução 2: Entre com um numero:-2-2 é negativo Obrigado!

60 Exemplo 2 if a = input("entre com um numero:") if a < 0: print a," é negativo" else: print a," é zero ou positivo" print "Obrigado!" Execução 1: Entre com um numero:2 2 é zero ou positivo Obrigado! Execução 2: Entre com um numero:-2-2 é negativo Obrigado!

61 Exemplo 3 if a = input("entre com um numero:") if a < 0: print a," é negativo" elsif a==0: print a," é zero" else: print a," é positivo" print "Obrigado!" Execução 1: Entre com um numero:0 0 é zero Obrigado! Execução 2: Entre com um numero:2 2 é positivo Obrigado!

62 Exercício: algarismos romanos Fazer um programa que escreva a representação em algarismos romanos de um número inteiro positivo ( input ) O usuário deve entrar com um número ( print ) O resultado deve ser impresso no console Exemplo de execução: Entre com um numero positivo: 1985 Em algarismos romanos: MCMLXXXV

63 Exercício: números primos Fazer um programa que decida se um número positivo dado é primo ou não Entrada: número inteiro positivo Saída: diagnóstico de primalidade do número Exemplos de execução: Entre com um número inteiro positivo: é múltiplo de 13 Entre com um número inteiro positivo: é primo

64 Exercício: números primos Um número natural é primo se é divisível apenas por si mesmo ou pela unidade Isto sugere o seguinte algoritmo: Se o número é 1, então não é primo Se o número é 2, então é primo Caso contrário, Seja d um possível divisor, cujo valor é inicialmente 2 Repetir Se o resto da divisão do número por d é zero, então o número não é primo Caso contrário, incrementar d Se d é igual ou maior que o número, então terminar repetição diagnosticando o número como primo

65 Exercício: algarismos romanos Algoritmo A representação em romanos é uma string à qual é acrescentada uma letra por vez Inicialmente, uma string vazia Examinar as sucessivas potências de 10 Por exemplo, a letra 'M' corresponde à casa dos milhares Se o número é 2200, sabemos que teremos dois M's na representação em romanos Sabemos que há M's se o número é maior ou igual a 1000 Sempre que um milhar for computado, subtrair 1000 do número Um processamento semelhante é feito para outros algarismos romanos, por exemplo: Se o número é maior ou igual que 500, acrescentar 'D' Se o número é maior que 900, acrescentar 'CM'

66 Exercício: algarismos romanos DICA: processando um número entre 1 e 9 if num >= 9: romano = romano + "IX" num = num-9 if num >= 5: romano = romano + "V" num = num-5 if num >= 4: romano = romano + "IV" num = num - 4 while num >= 1: romano = romano + "I" num = num - 1

67 Python: Listas

68 Estruturas de dados Maneira de organizar dados de maneira a facilitar seu acesso Algumas formas são clássicas: Listas ( matrizes Arrays (vetores e ( registros ) Tuplas Árvores Linguagens freqüentemente possuem primitivas para construção dessas E.D. Estruturas de dados embutidas Outras E.D. mais complexas podem ser construídas combinando as E.D. clássicas

69 Estrutura de dados abstrata É uma especificação matemática que define uma coleção de dados e uma série de operações sobre ela É abstrata porque não especifica como as operações são feitas mas somente os dados de entrada e o resultado Numa linguagem de programação, essa coleção de operações é chamada de interface ou API (Application ( Interface Programming Usuários da e.d.a devem se preocupar com a interface e não com a implementação, que pode mudar com o tempo A implementação de uma e.d.a. requer cuidados quanto à correção e a eficiência da mesma

70 Listas São arranjos seqüenciais de informações mais simples Caracterizam-se por permitir o acesso eficiente aos seus elementos em ordem seqüencial A definição clássica de uma lista como estrutura de dados abstrata compreende: Operação de construção de uma lista vazia Operação que testa se uma dada lista é vazia Operação para obter o primeiro elemento de uma lista Uma operação para adicionar um novo elemento no início de uma lista Operação para retirar o elemento inicial de uma lista

71 Listas em Python A estrutura conhecida como lista (list, em inglês) em Python é bastante mais geral do que e.d.a. lista clássica Na verdade, pode ser vista como uma implementação tanto de listas como de arrays Além de acesso seqüencial, suportam também acesso direto através de índices Listas são variedades de seqüências assim como strings e portanto têm APIs semelhantes Podem ser indexadas e fatiadas Podem ser concatenadas (+) e repetidas

72 Listas em Python Entretanto, há diferenças importantes entre listas e strings Seqüência genérica X de seqüência de caracteres Elementos de listas podem ser alterados individualmente mas os de strings, não Listas constituem o tipo de agregação de dados mais versátil e comum da linguagem Python Podem ser usadas para implementar estruturas de dados mais complexas como matrizes e árvores, por exemplo

73 Listas: constantes e índices Uma constante do tipo lista é escrita entre colchetes com os elementos separados por vírgula: [] # lista vazia [1,2] # lista com 2 elementos Os elementos de uma lista podem ser de qualquer tipo, inclusive listas. Ex.: lista = [1, 'a', 2+3j, ['ab', 'CD']] Os elementos de uma lista podem ser acessados por índices como strings O primeiro elemento tem índice 0 O último elemento tem índice -1

74 Listas: constantes e índices >>> lista = [1, 'a', 2+3j, ['ab', 'CD']] >>> lista [0] 1 >>> lista [2] ( 2+3j ) >>> lista [3] ['ab', 'CD'] >>> lista [-1] ['ab', 'CD'] >>> lista [0] = 2 >>> lista [2, 'a', (2+3j), ['ab', 'CD']]

75 Listas: Concatenação e Repetição O operador + pode ser usado para concatenação e o operador * para repetição >>> lista = [0]*4 >>> lista [0, 0, 0, 0] >>> lista = lista + [1]*3 >>> lista [0, 0, 0, 0, 1, 1, 1]

76 Deletando elementos O operador del pode ser usado para remover elementos de uma lista Ex.: >>> lista [1, 2, 3, ['ab', 'CD']] >>> del lista [2] >>> lista [1, 2, ['ab', 'CD']] >>> del lista [2][1] >>> lista [1, 2, ['ab']]

77 Listas: fatias ( slices ) A notação de fatias também pode ser usada, inclusive para atribuição: >>> lista = [1, 'a', 2+3j, ['ab', 'CD']] >>> lista [1:] ['a', (2+3j), ['ab', 'CD']] >>> lista [:1] [1] >>> lista [1:2] ['a'] >>> lista [0:-1] [1, 'a', (2+3j)]

78 Listas: atribuição a fatias A atribuição a uma fatia requer que o valor atribuído seja uma seqüência ( exemplo (uma lista ou uma string, por A atribuição substitui os elementos da fatia pelos da seqüência >>> lista = [1, 'y', ['ab', 'CD']] >>> lista [1:1] = ['z'] >>> lista [1, 'z', 'y', ['ab', 'CD']] >>> lista [1:3] = [['x']] >>> lista [1, ['x'], ['ab', 'CD']] >>> lista [1:-1]= [2,3,4] >>> lista [1, 2, 3, 4, ['ab', 'CD']] >>> lista [:2] = 'xyz' >>> lista ['x', 'y', 'z', 3, 4, ['ab', 'CD']]

79 Incrementos em Fatias É possível usar um terceiro número na notação de fatias designando o incremento Default é 1, ou seja, toma os elementos de um em um do menor para o maior índice Pode-se usar qualquer número inteiro diferente de 0 a[0:10:2] retorna uma lista com os 10 primeiros elementos ( máximo de a tomados de 2 em 2 (5 elementos, no a[5:0:-1] retorna uma lista com os 5 primeiros elementos de a tomados da esquerda para a direita Obs.: Esta notação só existe nas versões de Python a partir da 2.3

80 Incrementos em Fatias Exemplo >>> a = ['a', 2, 3, 'd', 'x'] >>> a [:3:2] ['a', 3] >>> a [::-1] ['x', 'd', 3, 2, 'a']

81 Incrementos em Fatias Se um incremento de fatia é diferente de 1, uma atribuição à fatia deve ter o mesmo número de elementos: >>> l = [1,2,3,4,5] >>> l [0::2] = ['x','y','z'] >>> l ['x', 2, 'y', 4, 'z'] >>> l [0::2] = [6,7] Traceback (most recent call last): File "<pyshell#17>", line 1, in -toplevell [0::2] = [6,7] ValueError: attempt to assign sequence of size 2 to extended slice of size 3

82 Operador in Permite saber se um elemento pertence a uma lista Serve também para strings Ex.: >>> lista = [1, 'a', 'bc'] >>> 1 in lista True >>> 2 in lista False >>> 'b' in lista False >>> 'b' in lista[2] True >>> 'bc' in 'abcd' True

83 Inicializando listas Não é possível atribuir a uma posição inexistente de uma lista >>> vetor = [] >>> vetor [0] = 1 Traceback (most recent call last): File "<pyshell#21>", line 1, in -toplevelvetor [0] = 1 IndexError: list assignment index out of range Se uma lista vai ser usada como um array, isto é, vai conter um número predeterminado de elementos, é conveniente iniciá-la >>> vetor = [0]*10 >>> vetor [0] = 3 >>> vetor [3, 0, 0, 0, 0, 0, 0, 0, 0, 0]

84 Usando None No uso de estruturas de dados, às vezes é importante preencher uma posição com um valor não válido A melhor opção para esse uso é empregar o valor especial None Não faz parte de tipo nenhum É melhor que usar 0, [] ou uma string vazia Útil para criar uma lista vazia mas com um número conhecido de posições. Ex.: >>> lista = [None]*5 >>> lista [None, None, None, None, None]

85 Len, min e max len (lista) retorna o número de elementos de lista min (lista) e max (lista) retornam o menor/maior elemento de lista Ex.: >>> lista = [1, 2, 9, 3, 4] ( lista ) >>> min 1 ( lista ) >>> len 5 ( lista ) >>> max 9 ([' c ' >>> max (['a', 'b', 'c'

86 min e max Na verdade, min e max podem ser usados também com vários argumentos ao invés de uma lista Ex.: ( 1,2,3,4 ) >>> min 1 ( 3,4,5 ) >>> max 5 ([' 1],['a ],[]) >>> max ['a']

87 A função list Pode ser usada para converter uma string numa lista É útil pois uma lista pode ser modificada, mas uma string, não Para fazer a transformação inversa, pode-se usar o método ( tarde join (veremos métodos mais Ex.: (' list('alo >>> lista = >>> lista ['a', 'l', 'o'] >>> lista[1]='xx' >>> lista ['a', 'xx', 'o'] ( join(lista.'' >>> 'axxo'

88 A função range Retorna uma progressão aritmética de inteiros numa lista ( incremento Forma geral: range (início, parada, ( 0 (default: início (opcional) é o primeiro valor a ser gerado parada é o limite da progressão: a progressão termina no último valor antes de parada ( default:1 ) incremento (opcional) é o passo da progressão Ex.: ( range(3 <<< [0, 1, 2] ( range(2,5,2 <<< [2, 4] ( range(5,2,-2 <<< [5, 3]

89 Comando for Permite iterar sobre os elementos de uma lista Forma geral: for var in lista : comandos Os comandos são repetidos para cada valor de lista Durante a repetição, var possui o valor corrente da lista Uma grande utilidade da função range é construir a lista de iteração Ex.: >>>for i in range(1,7): print i,

90 Comparando listas Listas são comparadas lexicograficamente Se duas listas são iguais até os k-ésimos elementos, o resultado da comparação depende da comparação entre os (k+1)-ésimos elementos Se alguma das listas tem somente k elementos, então esta é a menor Duas listas são iguais se e somente se têm o mesmo comprimento e todos os elementos de mesma posição são iguais Uma lista é maior que um número, mas menor que uma string Não me pergunte por quê!

91 Comparando listas >>> [1,2] < [2, 3] True >>> [1,2] < [1, 2, 3] True >>> [1,2]!= [1,2] False ([[],[ min([[1],[2,3],[3,4 <<< [] ([[],[ max([[1],[2,3],[3,4 <<< [3, 4] ("",[], min(0 <<< 0 ("",[], max(0 <<< ''

92 Variáveis do tipo list Uma variável do tipo lista na verdade contém uma referência para um valor do tipo lista Atribuir uma variável a outra, cria uma nova referência mas não uma nova lista Para se criar um novo valor, pode-se usar uma expressão que retorne o valor desejado Para saber se duas variáveis se referem ao mesmo valor pode-se usar o operador is

93 Variáveis do tipo list >>> a = b = [1,2,3] >>> c = a >>> d = c[:] >>> a is b True >>> c is b True >>> d is c False >>> a [1]=5 >>> b [1, 5, 3] >>> d [1, 2, 3]

94 A Classe list Uma lista é na verdade um objeto de uma classe chamada list Não vimos ainda programação OO, mas alguns pontos devem ser enfatizados Listas possuem métodos que podem ser aplicados a elas Um método é semelhante a uma função, mas são ( objeto.método(args invocados de forma diferente: Ex.: lista.reverse() inverte a ordem dos elementos da lista Para saber todos os métodos de listas, escreva ( help(list

95 Alguns métodos m da classe list ( append(elemento Acrescenta o elemento no fim da lista Observe que a operação altera a lista, e não simplesmente retorna uma lista modificada Ex.: >>> lista = [1,2] <<< ( lista.append(3 >>> lista [1, 2, 3] <<< ([ lista.append([4,5 >>> lista [1, 2, 3, [4, 5]]

96 Alguns métodos m da classe list ( count(elemento Retorna quantas vezes o elemento aparece na lista Ex.: <<< ( 1,2,3,1,2,3,4].count(1 ] 2 ( extend(lista2 Acrescenta os elementos de lista2 ao final da lista OBS.: Altera a lista ao invés de retornar a lista alterada Ex.: >>> lista=[1,2] <<< ([ lista.extend([3,4 >>> lista [1, 2, 3, 4]

97 Alguns métodos m da classe list ( count(elemento Retorna quantas vezes o elemento aparece na lista Ex.: <<< ( 1,2,3,1,2,3,4].count(1 ] 2 ( extend(lista2 Acrescenta os elementos de lista2 ao final da lista OBS.: Altera a lista ao invés de retornar a lista alterada Ex.: >>> lista=[1,2] <<< ([ lista.extend([3,4 >>> lista [1, 2, 3, 4]

98 Alguns métodos m da classe list ( index(elemento Retorna o índice da primeira ocorrência de elemento na lista Um erro ocorre se elemento não consta da lista Ex.: >>> lista = [9,8,33,12] <<< ( lista.index(33 2 <<< ( lista.index(7 Traceback (most recent call last): File "<pyshell#3>", line 1, in -toplevel( lista.index(7 ValueError: list.index(x): x not in list

99 Alguns métodos m da classe list ( elemento insert(indice, insere elemento na lista na posição indicada por índice Ex.: >>> lista = [0,1,2,3] (' lista.insert(1,'dois <<< >>> lista [0, 'dois', 1, 2, 3] Como o extend, altera a lista ao invés de retornar a lista O valor retornado é None! Atribuições a fatias servem para a mesma finalidade mas são menos legíveis >>> lista = [0,1,2,3] >>> lista [1:1] = ['dois'] >>> lista [0, 'dois', 1, 2, 3]

100 Alguns métodos m da classe list ( pop(índice Remove da lista o elemento na posição índice e o retorna Se índice não for mencionado, é assumido o último Ex.: >>> lista = [1,2,3,4] <<< () lista.pop 4 >>> lista [1, 2, 3] <<< ( lista.pop(1 2 >>> lista [1, 3]

101 Alguns métodos m da classe list ( remove(elemento Remove da lista o primeiro elemento igual a elemento Se não existe tal elemento, um erro é gerado Ex.: >>> lista = ['oi', 'alo', 'ola'] <<< (' lista.remove('alo >>> lista ['oi', 'ola'] <<< (' lista.remove('oba Traceback (most recent call last): File "<pyshell#24>", line 1, in -toplevel(' lista.remove('oba ValueError: list.remove(x): x not in list

102 Alguns métodos m da classe list () reverse Inverte a ordem dos elementos da lista Ex.: >>> lista=[1,2,3] <<< () lista.reverse >>> lista [3, 2, 1]

103 Alguns métodos m da classe list ( reverse=false sort(cmp=none, key=none, Ordena a lista Os argumentos são opcionais. Por default, a lista é ordenada crescentemente Ex.: >>> lista = [9,8,7,1,4,2] () lista.sort <<< >>> lista [1, 2, 4, 7, 8, 9]

104 Alguns métodos m da classe list ( reverse=false sort(cmp=none, key=none, É possível obter a ordem inversa, passando True para o argumento reverse Ex.: >>> lista = [9,8,7,1,4,2] ( lista.sort(reverse=true <<< >>> lista [9, 8, 7, 4, 2, 1] OBS.: A notação acima permite passar um argumento sem especificar os anteriores, mas poderíamos ter escrito: >>> lista = [9,8,7,1,4,2] ( lista.sort(none,none,true <<< >>> lista [9, 8, 7, 4, 2, 1]

105 Alguns métodos m da classe list ( reverse=false sort(cmp=none, key=none, O argumento cmp especifica uma função de comparação É uma função que o sort chama para definir se um elemento é anterior ou posterior a outro A função a ser passada tem a forma comp(elem1,elem2) e deve retornar um inteiro negativo caso elem1 seja anterior a elem2, positivo caso elem2 seja anterior a elem1 e zero se tanto faz Ex.: >>> def compara(elem1,elem2): return elem1%10 - elem2%10 ( compara(100,22 <<< -2 >>> lista=[100,22,303,104] ( lista.sort(compara <<< >>> lista [100, 22, 303, 104]

106 Alguns métodos m da classe list ( reverse=false sort(cmp=none, key=none, O argumento key especifica uma função aplicada a cada elemento Se for passada uma função f, em vez de ordenar os elementos ( f(v baseado em seus valores v, ordena baseado em Ex.: >>> lista = ['abc','de','fghi'] ( lista.sort(key=len <<< >>> lista ['de', 'abc', 'fghi']

107 Matrizes Listas podem ser usadas para guardar matrizes Por exemplo, podemos criar uma matriz-identidade de 3x3 com o código: m = [] for i in range(3): ( m.append([0]*3 m[i][i]=1 Obs.: Não é boa idéia iniciar uma matriz assim: m = [[0]*3]*3 for i in range(3): m[i][i]=1 print m Resultado:[[1, 1, 1], [1, 1, 1], [1, 1, 1]] ( referências Por quê? (Na realidade foram criadas

108 Exercícios cios Escreva um programa que intercale os elementos de duas listas l1 e l2 Exemplo: para l1 = [1,2,3] e l2 = ['a','b','c','d','e'], o programa deve computar a lista [1,'a',2,'b',3,'c','d','e'] Escreva um programa para computar o produto de duas matrizes m1 e m2

109 Exercícios cios Escreva um programa para computar o triângulo de Pascal até a linha n, onde n é um valor inteiro positivo lido da linha de comando Lembre-se que o elemento na i-ésima linha e j-ésima coluna do triângulo de Pascal contém o número de combinações de i elementos j a j O triângulo deve ser posto numa lista onde o i-ésimo elemento é uma lista com a i-ésima linha do triângulo Ex: Quantas linhas? 7 [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1], [1, 5, 10, 10, 5, 1], [1, 6, 15, 20, 15, 6, 1]]

110 Python: Tuplas e Strings

111 Tuplas São estruturas de dados parecidas com listas, mas com a particularidade de serem imutáveis Tuplas são seqüências e, assim como listas, podem ser indexadas e fatiadas, mas não é possível modificá-las Um valor do tipo tupla é uma série de valores separados por vírgulas e entre parênteses ( 1,2,3 ) = x >>> >>> x ( 3 (1, 2, >>> x [0] 1 >>> x [0]=1... TypeError: object does not support item assignment

112 Uma tupla vazia se escreve () Tuplas Os parênteses são opcionais se não provocarem ambigüidade Uma tupla contendo apenas um elemento deve ser escrita com uma vírgula ao final Um valor entre parênteses sem vírgula no final é meramente uma expressão: ( 10 ) <<< 10 >>> 10, (, 10 ) (, 10 ) <<< (, 10 ) ( 3*(10+3 <<< 39 (, 3*(10+3 <<< ( 13 (13, 13,

113 A função tuple Assim como a função list constrói uma lista a partir de uma seqüência qualquer, a função tuple constrói uma tupla a partir de uma seqüência qualquer (" list("abcd <<< ['a', 'b', 'c', 'd'] (" tuple("abcd <<< (' d ' ('a', 'b', 'c', ([ tuple([1,2,3 <<< ( 3 (1, 2, (( list((1,2,3 <<< [1, 2, 3]

114 Quando usar tuplas Em geral, tuplas podem ser substituídas com vantagem por listas Entretanto, algumas construções em Python requerem tuplas ou seqüências imutáveis, por exemplo: Tuplas (ao contrário de listas) podem ser usadas como chaves de dicionários Funções com número variável de argumentos acessam os argumentos por meio de tuplas O operador de formatação aceita tuplas, mas não listas

115 O operador de formatação Strings suportam o operador % que, dada uma string especial (template) e um valor, produz uma string formatada O formato geral é template % valor O template é uma string entremeada por códigos de formatação Um código de formatação é em geral composto do caracter % seguido de uma letra descritiva do tipo do valor a ( etc formatar (s para string, f para float, d para inteiro, Exemplo: >>> '====%d====' % 100 '====100====' >>> '====%f====' % 1 '==== ===='

116 Formatando tuplas Um template pode ser aplicado aos diversos valores de uma tupla para construir uma string formatada Ex.: >>> template = "%s tem %d anos" ( 10 ('Pedro', >>> tupla = >>> template % tupla 'Pedro tem 10 anos' Obs: mais tarde veremos que o operador de formatação também pode ser aplicado a dicionários

117 Anatomia das especificações de formato Caracter % Flags de conversão (opcionais): - indica alinhamento à esquerda + indica que um sinal deve preceder o valor convertido (um branco) indica que um espaço deve preceder números positivos 0 indica preenchimento à esquerda com zeros ( opcional ) Comprimento mínimo do campo O valor formatado terá este comprimento no mínimo Se igual a * (asterisco), o comprimento será lido da tupla ( opcional ) Um. (ponto) seguido pela precisão Usado para converter as casas decimais de floats Se aplicado para strings, indica o comprimento máximo Se igual a *, o valor será lido da tupla Caracter indicador do tipo de formato

118 Tipos de formato d, i Número inteiro escrito em decimal o Número inteiro sem sinal escrito em octal u Número inteiro sem sinal escrito em decimal ( minúsculas ) x Número inteiro sem sinal escrito em hexadecimal ( maiúsculas ) X Número inteiro sem sinal escrito em hexadecimal ( minúsculo e Número de ponto flutuante escrito em notação científica ('e' ( maiúsculo E Número de ponto flutuante escrito em notação científica ('E' f, F Número de ponto flutuante escrito em notação convencional g Mesmo que e se expoente é maior que -4. Caso contrario, igual a f G Mesmo que E se expoente é maior que -4. Caso contrario, igual a F ( 1 c Caractere único (usado com inteiro ou string de tamanho r String (entrada é qualquer objeto Python que é convertido usando a ( repr função

119 Exemplos >>> "Numero inteiro: %d" % 55 'Numero inteiro: 55' >>> "Numero inteiro com 3 casas: %3d" % 55 'Numero inteiro com 3 casas: 55' >>> "Inteiro com 3 casas e zeros a esquerda: %03d" % 55 'Inteiro com 3 casas e zeros a esquerda: 055' >>> "Inteiro escrito em hexadecimal: %x" % 55 'Inteiro escrito em hexadecimal: 37' >>> from math import pi >>> "Ponto flutuante: %f" % pi 'Ponto flutuante: ' >>> "Ponto flutuante com 12 decimais: %.12f" % pi 'Ponto flutuante com 12 decimais: ' >>> "Ponto flutuante com 10 caracteres: %10f" % pi 'Ponto flutuante com 10 caracteres: ' >>> "Ponto flutuante em notacao cientifica: %10e" % pi 'Ponto flutuante em notacao cientifica: e+00' >>> "String com tamanho maximo definido: %.3s" % "Pedro" 'String com tamanho maximo definido: Ped'

120 Exemplo: Imprimindo uma tabela itens = ["Abacate", "Limão", "Tangerina", "Melancia", "Laranja da China"] precos = [2.13, 0.19, 1.95, 0.87, 12.00] len_precos = 10 # Coluna de precos tem 10 caracteres # Achar a largura da coluna de itens ([ len(itens[0 len_itens = (( max(len_itens,len(it for it in itens : len_itens = # Imprimir tabela de precos ( len_itens+len_precos )*"-" print print "%-*s%*s" % (len_itens, "Item", len_precos, (" Preço " ( len_itens+len_precos )*"-" print for i in range(len(itens)): print "%-*s%*.2f" % (len_itens, itens[i], ([ precos[i len_precos,

121 Exemplo: resultados Item Preço Abacate 2.13 Limão 0.19 Tangerina 1.95 Melancia 0.87 Laranja da China 12.00

122 O Módulo M String Manipulação de strings é uma atividade freqüente em programas Python Existe um módulo chamado string que contém uma grande quantidade de funcionalidades para trabalhar com strings Para usá-las: from string import * Entretanto, strings pertencem à classe str e a maior parte do que existe no módulo string aparece como métodos da classe str

123 Strings: método m find find (substring, inicio, fim) Retorna o índice da primeira ocorrência de substring inicio e fim são opcionais e indicam os intervalos de índices onde a busca será efetuada Os defaults são 0 e o comprimento da string, respectivamente Caso substring não apareça na string, é retornado -1 Observe que o operador in pode ser usado para dizer se uma substring aparece numa string

124 Strings: método m find ( exemplo ) >>> s = "quem parte e reparte, fica com a maior parte" <<< (" s.find("parte 5 <<< (" s.find("reparte 13 <<< (" s.find("parcela -1 >>> "parte" in s True <<< ( s.find("parte",6 15 <<< ( s.find("parte",6,12-1

125 ( join(seqüência Strings: método m join Retorna uma string com todos os elementos da seqüência concatenados Obs: Os elementos da seqüência têm que ser strings A string objeto é usada como separador entre os elementos Ex.: <<< ((" join(("usr","bin","python."/" 'usr/bin/python' <<< (( Q".join((1,2,3,4,5 "... TypeError: sequence item 0: expected string, int found <<< ((' Q".join(('1','2','3','4','5 " '1Q2Q3Q4Q5'

126 Strings: métodos m lower e upper () lower Retorna a string com todos os caracteres maiúsculos convertidos para minúsculos () upper Retorna a string com todos os caracteres minúsculos convertidos para maiúsculos Ex.: >>> print () Esperança".upper " ESPERANÇA >>> print "Pé de Laranja () Lima".lower pé de laranja lima

127 Strings: método m replace ( replace(velho,novo,n Substitui as instâncias da substring velho por novo Se n for especificado, apenas n instâncias são trocadas Caso contrário, todas as instâncias são trocadas Ex.: >>> s = "quem parte e reparte, fica com a maior parte" <<< (" s.replace("parte","parcela 'quem parcela e reparcela, fica com a maior parcela' <<< ( s.replace("parte","parcela",2 'quem parcela e reparcela, fica com a maior parte'

128 ( split(separador Strings: método m split Retorna uma lista com as substrings presentes entre cópias da string separador Faz o contrário do método join Se separador não for especificado, é assumido seqüências de caracteres em branco, tabs ou newlines Ex.: >>> s = "xxx yyy zzz xxx yyy zzz" <<< () s.split ['xxx', 'yyy', 'zzz', 'xxx', 'yyy', 'zzz'] <<< (' s.split('xxx ['', ' yyy zzz ', ' yyy zzz']

129 ( strip(ch Strings: método m strip Retorna a string sem caracteres iniciais ou finais que estejam na string ch Se ch não for especificada, retira caracteres em branco Pode-se também usar rstrip() para retirar caracteres à direita (final) ou lstrip() para retirar caracteres à esquerda ( início ) Ex.: >>> " xxx afdsfa () strip." 'xxx afdsfa' >>> "xxx yyy zzz xxx".strip("xy (" 'zzz' >>> " xxx () rstrip." ' xxx'

130 Strings: método m translate ( translate(trans Retorna uma cópia da string onde os caracteres são substituídos de acordo com a tabela de tradução trans trans é uma string com 256 caracteres, um para cada possível código de oito bits Ex.: se trans tem 'X' na posição 65 (correspondente ao caractere ASCII 'A'), então, na string retornada, todos os caracteres 'A' terão sido substituídos por 'X' Na verdade, as tabelas de tradução são normalmente construídas com a função maketrans do módulo string

131 Função string.maketrans ( novo maketrans (velho, retorna uma tabela de tradução onde os caracteres em velho são substituídos pelos caracteres em novo Ex.: >>> from string import maketrans (' kz ' >>> trans = maketrans('qs', >>> s = "que surpresa: quebrei a cara" ( s.translate(trans <<< 'kue zurpreza: kuebrei a cara'

132 Python: Dicionários

133 Dicionários São estruturas de dados que implementam mapeamentos Um mapeamento é uma coleção de associações entre pares de valores O primeiro elemento do par é chamado de chave e o outro de conteúdo De certa forma, um mapeamento é uma generalização da idéia de acessar dados por índices, exceto que num mapeamento os índices (ou chaves) podem ser de qualquer tipo imutável

134 Chaves vs. Índices Considere que queiramos representar um caderno de telefones Uma solução é ter uma lista de nomes e outra de telefones Telefone de nome[i] armazenado em telefone[i] Acrescentar Joao com telefone : nome+= Joao telefone+= Para encontrar o telefone de Joao : Tel = telefone[nome.index[ Joao ]] Dicionários tornam isso mais fácil e eficiente telefone[ Joao ] = Tel = telefone[ Joao ]

135 Criando dicionários Uma constante do tipo dicionário é escrita { chave1:conteúdo1,... chaven:conteúdon} Uma variável do tipo dicionário pode ser indexada da maneira habitual, isto é, usando colchetes O conteúdo associado a uma chave pode ser alterado atribuindo-se àquela posição do dicionário Novos valores podem ser acrescentados a um dicionário fazendo atribuição a uma chave ainda não definida Não há ordem definida entre os pares chave/conteúdo de um dicionário

136 Exemplo >>> dic = {"joao":100,"maria":150} >>> dic["joao"] 100 >>> dic["maria"] 150 >>> dic["pedro"] = 10 >>> dic {'pedro': 10, 'joao': 100, 'maria': 150} >>> dic = {'joao': 100, 'maria': 150, 'pedro': 10} >>> dic {'pedro': 10, 'joao': 100, 'maria': 150}

137 Dicionários não têm ordem As chaves dos dicionários não são armazenadas em qualquer ordem específica Na verdade, dicionários são implementados por tabelas de ( Tables espalhamento (Hash A falta de ordem é proposital Diferentemente de listas, atribuir a um elemento de um dicionário não requer que a posição exista previamente X = [] X [10] = 5 # ERRO!... Y = {} Y [10] = 5 # OK!

138 A função dict A função dict é usada para construir dicionários e requer como parâmetros: Uma lista de tuplas, cada uma com um par chave/conteúdo, ou Uma seqüência de itens no formato chave=valor Nesse caso, as chaves têm que ser strings, mas são escritas sem aspas

139 Exemplo ([(' dict([(1,2),('chave','conteudo >>> d = >>> d[1] 2 >>> d['chave'] 'conteudo' ( dict(x=1,y=2 >>> d = >>> d['x'] 1 ( dict(1=2,3=4 >>> d = SyntaxError: keyword can't be an expression

140 Formatando com Dicionários O operador de formatação quando aplicado a dicionários requer que os valores das chaves apareçam entre parênteses antes do código de formatação O conteúdo armazenado no dicionário sob aquela chave é substituído na string de formatação Ex: >>> dic = { "Joao":"a", "Maria":"b" } >>> s = "%(Joao)s e %(Maria)s" >>> s % dic 'a e b'

141 () clear Método clear Remove todos os elementos do dicionário Ex.: >>> x = { "Joao":"a", "Maria":"b" } >>> y = x <<< () x.clear >>> print x,y {} {} Diferente de atribuir {} à variável: >>> x = { "Joao":"a", "Maria":"b" } >>> y = x >>> x = {} >>> print x,y {} {'Joao': 'a', 'Maria': 'b'}

142 () copy Método copy Retorna um outro dicionário com os mesmos pares chave/conteúdo Observe que os conteúdos não são cópias, mas apenas referências para os mesmos valores >>> x = {"Joao":[1,2], "Maria":[3,4]} >>> y = () x.copy >>> y ["Pedro"]=[5,6] >>> x ["Joao"] += [3] >>> print x {'Joao': [1, 2, 3], 'Maria': [3, 4]} >>> print y {'Pedro': [5, 6], 'Joao': [1, 2, 3], 'Maria': [3, 4]}

143 Método fromkeys ( fromkeys(lista,valor Retorna um novo dicionário cujas chaves são os elementos de lista e cujos valores são todos iguais a valor Se valor não for especificado, o default é None <<< ([ fromkeys([2,3.{} {2: None, 3: None} # Podemos usar o nome da classe ao invés # de um objeto: <<< ( dict.fromkeys(["joao","maria"],0 {'Joao': 0, 'Maria': 0}

144 ( get(chave,valor Método get Obtém o conteúdo de chave Não causa erro caso chave não exista: retorna valor Se valor não for especificado chaves inexistentes retornam None Ex.: >>> dic = { "Joao":"a", "Maria":"b" } <<< (" dic.get("pedro >>> print (" dic.get("pedro None >>> print (" dic.get("joao a >>> print (" dic.get("carlos","n/a N/A

145 ( has_key(chave Método has_key dic.has_key(chave) é o mesmo que chave in dic Ex.: >>> dic = { "Joao":"a", "Maria":"b" } <<< (" dic.has_key("joao True <<< (" dic.has_key("pedro False

146 Métodos items, keys e values items() retorna uma lista com todos os pares chave/conteúdo do dicionário keys() retorna uma lista com todas as chaves do dicionário values() retorna uma lista com todos os valores do dicionário Ex.: () dic.items <<< [('Joao', 'a'), ('Maria', 'b')] () dic.keys <<< ['Joao', 'Maria'] () dic.values <<< ['a', 'b']

147 ( chave ) pop Método pop Obtém o valor correspondente a chave e remove o par chave/valor do dicionário Ex.: >>> d = {'x': 1, 'y': 2} (' d.pop('x <<< 1 >>> d {'y': 2}

148 () popitem Método popitem Retorna e remove um par chave/valor aleatório do dicionário Pode ser usado para iterar sobre todos os elementos do dicionário Ex: >>> d {'url': ' 'spam': 0, 'title': 'Python Web Site'} <<< () d.popitem ('url', (' ' >>> d {'spam': 0, 'title': 'Python Web Site'}

149 ( update(dic Método update Atualiza um dicionário com os elementos de outro Os itens em dic são adicionados um a um ao dicionário original É possível usar a mesma sintaxe da função dict para especificar dic Ex.: >>> x = {"a":1,"b":2,"c":3} >>> y = {"z":9,"b":7} <<< ( x.update(y >>> x {'a': 1, 'c': 3, 'b': 7, 'z': 9} <<< (" x.update(a=7,c="xxx >>> x {'a': 7, 'c': 'xxx', 'b': 7, 'z': 9}

150 Python: Funções

151 Abstração É uma técnica de programação que nos permite pensar num problema em diversos níveis A idéia é que quando estamos pensando num problema macroscopicamente, não estamos preocupado com minúcias Dividir para conquistar: Um problema é dividido em diversos sub-problemas As soluções dos sub-problemas são combinadas numa solução do problema maior

152 Programação Estruturada É uma disciplina de programação que incorpora o princípio de Dividir para Conquistar (... outra (Programação Orientada a Objetos é Programas são divididos em sub-programas Cada sub-programa é invocado por meio de um identificador e uma lista de entradas Permite especificar como um problema pode ser resolvido em geral O mesmo sub-programa pode ser invocado para resolver diversos problemas de mesma natureza mas com valores específicos diferentes Os resultados computados por um sub-programa podem ser combinados com os de outros sub-programas

153 Definindo funções Em Python, sub-programas têm o nome de funções Formato geral: def nome (arg, arg,... arg): comando... comando Onde: nome é o nome da função args são especificações de argumentos da função Uma função pode ter 0, 1 ou mais argumentos comandos contêm as instruções a ser executadas quando a função é invocada

154 Resultado de funções Uma função tipicamente computa um ou mais valores Para indicar o valor a ser devolvido como o resultado da função, usa-se o comando return, que tem o formato return expressão onde a expressão é opcional e designa o valor a ser retornado Ao encontrar o comando return, a função termina imediatamente e o controle do programa volta ao ponto onde a função foi chamada Se uma função chega a seu fim sem nenhum valor de retorno ter sido especificado, o valor de retorno é None

Python: Comandos Básicos. Claudio Esperança

Python: Comandos Básicos. Claudio Esperança Python: Comandos Básicos Claudio Esperança Primeiros passos em programação Até agora só vimos como computar algumas expressões simples Expressões são escritas e computadas imediatamente Variáveis podem

Leia mais

Danilo Borges da Silva daniloborges_@hotmail.com

Danilo Borges da Silva daniloborges_@hotmail.com Danilo Borges da Silva daniloborges_@hotmail.com Simples o suficiente para um curso introdutório Muitos recursos Orientação a Objetos Escalável (módulos, classes, controle de exceções) Biblioteca embutida

Leia mais

Tuplas e Dicionários. Vanessa Braganholo vanessa@ic.uff.br

Tuplas e Dicionários. Vanessa Braganholo vanessa@ic.uff.br Tuplas e Dicionários Vanessa Braganholo vanessa@ic.uff.br 2 Tuplas Tuplas } Tuplas são sequências de valores, da mesma forma que listas } Mas, existem diferenças... } Os valores de uma tupla, ao contrário

Leia mais

Introdução à Linguagem

Introdução à Linguagem Introdução à Linguagem Curso de Nivelamento do PPGMNE Janeiro / 2011 Juliano J. Scremin jjscremin@jjscremin.t5.com.br Um pouco de história Um pouco de história: Nascimento do Python Um pouco de história:

Leia mais

Python: Listas. Claudio Esperança

Python: Listas. Claudio Esperança Python: Listas Claudio Esperança Estruturas de dados Maneira de organizar dados de maneira a facilitar seu acesso Algumas formas são clássicas: Listas Arrays (vetores e matrizes) Tuplas (registros) Árvores

Leia mais

Python: Funções. Claudio Esperança

Python: Funções. Claudio Esperança Python: Funções Claudio Esperança Abstração É uma técnica de programação que nos permite pensar num problema em diversos níveis A idéia é que quando estamos pensando num problema macroscopicamente, não

Leia mais

Organização de programas em Python. Vanessa Braganholo vanessa@ic.uff.br

Organização de programas em Python. Vanessa Braganholo vanessa@ic.uff.br Organização de programas em Python Vanessa Braganholo vanessa@ic.uff.br Vamos programar em Python! Mas... } Como um programa é organizado? } Quais são os tipos de dados disponíveis? } Como variáveis podem

Leia mais

e à Linguagem de Programação Python

e à Linguagem de Programação Python Introdução a Algoritmos, Computação Algébrica e à Linguagem de Programação Python Curso de Números Inteiros e Criptografia Prof. Luis Menasché Schechter Departamento de Ciência da Computação UFRJ Agosto

Leia mais

PYTHON LISTAS. Introdução à Programação SI2

PYTHON LISTAS. Introdução à Programação SI2 PYTHON LISTAS Introdução à Programação SI2 3 Sequências Sequências! Podem ser indexados por algum valor ordinal posicional Algumas operações são aplicadas a todos os tipos de sequências. Listas li = [1,2,3,

Leia mais

Python: Tuplas e Strings. Claudio Esperança

Python: Tuplas e Strings. Claudio Esperança Python: Tuplas e Strings Claudio Esperança Tuplas São estruturas de dados parecidas com listas, mas com a particularidade de serem imutáveis Tuplas são seqüências e, assim como listas, podem ser indexadas

Leia mais

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10 1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores INTRODUÇÃO AOS ALGORITMOS E À PROGRAMAÇÃO DE COMPUTADORES PARTE 2 Renato Dourado Maia Instituto de Ciências Agrárias Universidade Federal de Minas Gerais Exemplo Inicial Uma

Leia mais

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 1 Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira Linguagem a ser Utilizada? Nossa disciplina é de Algoritmos e Estrutura de Dados, e não de linguagem

Leia mais

Python Funções. Introdução à Programação SI1

Python Funções. Introdução à Programação SI1 Python Funções Introdução à Programação SI1 Conteúdo Funções Conceitos Objetivos Modularização Exemplos Exercícios 2 Funções O que são? Qual a função de uma função? 3 Imagine o código 4 Imagine o código

Leia mais

Introdução aos cálculos de datas

Introdução aos cálculos de datas Page 1 of 7 Windows SharePoint Services Introdução aos cálculos de datas Aplica-se a: Microsoft Office SharePoint Server 2007 Ocultar tudo Você pode usar fórmulas e funções em listas ou bibliotecas para

Leia mais

Algoritmos com VisuAlg

Algoritmos com VisuAlg Algoritmos com VisuAlg Prof Gerson Volney Lagemann Depto Eng de Produção e Sistemas UDESC - CCT Algoritmos com VisuAlg Introdução A linguagem VisuAlg é simples, seu objetivo é disponibilizar um ambiente

Leia mais

AMBIENTE DE PROGRAMAÇÃO PYTHON

AMBIENTE DE PROGRAMAÇÃO PYTHON Computadores e Programação Engª Biomédica Departamento de Física Faculdade de Ciências e Tecnologia da Universidade de Coimbra Ano Lectivo 2003/2004 FICHA 1 AMBIENTE DE PROGRAMAÇÃO PYTHON 1.1. Objectivos

Leia mais

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

MC102 Algoritmos e programação de computadores Aula 3: Variáveis MC102 Algoritmos e programação de computadores Aula 3: Variáveis Variáveis Variáveis são locais onde armazenamos valores na memória. Toda variável é caracterizada por um nome, que a identifica em um programa,

Leia mais

Algoritmos e Programação Estruturada

Algoritmos e Programação Estruturada Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.

Leia mais

Minicurso de Python Aula 1. Raphael Lupchinski Marcelo Millani

Minicurso de Python Aula 1. Raphael Lupchinski Marcelo Millani Minicurso de Python Aula 1 Raphael Lupchinski Marcelo Millani Introdução Python é uma linguagem de programação poderosa e fácil de aprender Possui estruturas de dados eficientes e de alto nível, além de

Leia mais

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação Primeiro Programa em Java public class OlaPessoal

Leia mais

Componentes da linguagem C++

Componentes da linguagem C++ Componentes da linguagem C++ C++ é uma linguagem de programação orientada a objetos (OO) que oferece suporte às características OO, além de permitir você realizar outras tarefas, similarmente a outras

Leia mais

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura UFPI CCN DIE Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura O projeto Desenvolver um compilador de um subconjunto básico da linguagem PORTUGOL.

Leia mais

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza. josineys@inf.ufpr.br

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza. josineys@inf.ufpr.br Fundamentos de Programação Turma CI-240-EST Josiney de Souza josineys@inf.ufpr.br Agenda do Dia Aula 2 (07/08/15) Introdução ao Python História Características Estrutura dos código-fonte Primeiros elementos

Leia mais

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem. 1 - O que é JAVASCRIPT? É uma linguagem de script orientada a objetos, usada para aumentar a interatividade de páginas Web. O JavaScript foi introduzido pela Netscape em seu navegador 2.0 e posteriormente

Leia mais

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP AGRUPAMENTO DE ESCOLAS DE SANTA COMBA DÃO CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS 2012-2015 PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO MÓDULO 2 Mecanismos de Controlo de

Leia mais

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]

Leia mais

Resumo da Matéria de Linguagem de Programação. Linguagem C

Resumo da Matéria de Linguagem de Programação. Linguagem C Resumo da Matéria de Linguagem de Programação Linguagem C Vitor H. Migoto de Gouvêa 2011 Sumário Como instalar um programa para executar o C...3 Sintaxe inicial da Linguagem de Programação C...4 Variáveis

Leia mais

JSP - ORIENTADO A OBJETOS

JSP - ORIENTADO A OBJETOS JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...

Leia mais

20 Caracteres - Tipo char

20 Caracteres - Tipo char 0 Caracteres - Tipo char Ronaldo F. Hashimoto e Carlos H. Morimoto Até agora vimos como o computador pode ser utilizado para processar informação que pode ser quantificada de forma numérica. No entanto,

Leia mais

Roteiro 1: Dados, variáveis, operadores e precedência

Roteiro 1: Dados, variáveis, operadores e precedência 1. Introdução Universidade Federal do ABC Disciplina: Processamento da Informação (BC-0505) Assunto: Dados, variáveis, operadores e precedência Roteiro 1: Dados, variáveis, operadores e precedência Nesta

Leia mais

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto ALGORITMOS PARTE 01 Fabricio de Sousa Pinto Algoritmos: Definição 2 É uma sequência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. Algoritmos 3

Leia mais

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma Roteiro: Conceitos básicos de algoritmo, linguagem, processador de linguagem e ambiente de programação; Aspectos fundamentais da organização e do funcionamento de um computador; Construções básicas de

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 12 Cadeia de Caracteres (Strings) Edirlei Soares de Lima Caracteres Até o momento nós somente utilizamos variáveis que armazenam números (int, float ou

Leia mais

Aluísio Eustáquio da Silva

Aluísio Eustáquio da Silva 1 Aluísio Eustáquio da Silva SciLab Programável Material didático usado em aulas de Programação de Computadores, Algoritmos e Lógica de Programação Betim Maio de 2012 2 PROGRAMAÇÃO O SciLab permite que

Leia mais

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo: Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

Leia mais

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

Leia mais

Programação Elementar de Computadores Jurandy Soares

Programação Elementar de Computadores Jurandy Soares Programação Elementar de Computadores Jurandy Soares Básico de Computadores Computador: dispositivos físicos + programas Dispositivos físicos: hardware Programas: as instruções que dizem aos dispositivos

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais

Leia mais

2 echo "PHP e outros.";

2 echo PHP e outros.; PHP (Hypertext Preprocessor) Antes de qualquer coisa, precisamos entender o que é o PHP: O PHP(Hypertext Preprocessor) é uma linguagem interpretada gratuita, usada originalmente apenas para o desenvolvimento

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5

Leia mais

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis 1. TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que

Leia mais

Resolução de problemas e desenvolvimento de algoritmos

Resolução de problemas e desenvolvimento de algoritmos SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Resolução de problemas e desenvolvimento de algoritmos Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário Análise e solução de

Leia mais

Capítulo 2: Introdução à Linguagem C

Capítulo 2: Introdução à Linguagem C Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição de constantes:

Leia mais

AULA 02. 1. Uma linguagem de programação orientada a objetos

AULA 02. 1. Uma linguagem de programação orientada a objetos AULA 02 TECNOLOGIA JAVA O nome "Java" é usado para referir-se a 1. Uma linguagem de programação orientada a objetos 2. Uma coleção de APIs (classes, componentes, frameworks) para o desenvolvimento de aplicações

Leia mais

Universidade Federal Rural do Rio de Janeiro PET-Sistemas de Informação. Lucas Nunes Paim lucaspaim@pet-si.ufrrj.br

Universidade Federal Rural do Rio de Janeiro PET-Sistemas de Informação. Lucas Nunes Paim lucaspaim@pet-si.ufrrj.br Universidade Federal Rural do Rio de Janeiro PET-Sistemas de Informação Lucas Nunes Paim lucaspaim@pet-si.ufrrj.br Aula 1 1. Introdução O que é Python? Por que usar Python? 2. Instalação 3. Variáveis 4.

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Aritmética Computacional Slide 1 Sumário Unidade Lógica e Aritmética Representação de Números Inteiros Aritmética de Números Inteiros Representação de Números

Leia mais

Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados)

Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados) Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados) Os algoritmos são descritos em uma linguagem chamada pseudocódigo. Este nome é uma alusão à posterior implementação

Leia mais

Introdução a Algoritmos Parte 04

Introdução a Algoritmos Parte 04 Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Introdução a Algoritmos Parte 04 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti

Leia mais

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo. Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto

Leia mais

AULA 2: INTRODUÇÃO A LINGUAGEM DE C. Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme

AULA 2: INTRODUÇÃO A LINGUAGEM DE C. Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme AULA 2: INTRODUÇÃO A LINGUAGEM DE C Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme Agenda Introdução a linguagem C Compiladores Variáveis IDEs Exemplos Exercícios Introdução A Linguagem C

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Introdução à Lógica de Programação

Introdução à Lógica de Programação Introdução à Lógica de Programação Sistemas Numéricos As informações inseridas em um computador são traduzidos em dados, ou seja, em sinais que podem ser manipulados pelo computador. O computador trabalha

Leia mais

Geração de código intermediário. Novembro 2006

Geração de código intermediário. Novembro 2006 Geração de código intermediário Novembro 2006 Introdução Vamos agora explorar as questões envolvidas na transformação do código fonte em uma possível representação intermediária Como vimos, nas ações semânticas

Leia mais

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES CAPÍTULO 5 5 VETORES E MATRIZES 5.1 Vetores Um vetor armazena uma determinada quantidade de dados de mesmo tipo. Vamos supor o problema de encontrar a média de idade de 4 pessoas. O programa poderia ser:

Leia mais

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas

Leia mais

Curso de Programação Computadores

Curso de Programação Computadores 3 O Primeiro Programa em C Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro 3 O Primeiro Programa em C 3.1 - Introdução Depois dos conceitos

Leia mais

Python Condicionais e Loops. Introdução à Programação SI1

Python Condicionais e Loops. Introdução à Programação SI1 Python Condicionais e Loops Introdução à Programação SI1 Conteúdo Comando de Decisão Comandos de Repetição Exercícios 13/06/2013 2 Condicional Controle de fluxo É muito comum em um programa que certos

Leia mais

3 Sistemas de Numeração:

3 Sistemas de Numeração: 3 Sistemas de Numeração: Os computadores eletrônicos têm como base para seu funcionamento a utilização de eletricidade. Diferente de outras máquinas que a presença ou ausência de eletricidade apenas significam

Leia mais

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Cálculo Numérico Aula : Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Computação Numérica - O que é Cálculo Numérico? Cálculo numérico é uma metodologia para resolver problemas matemáticos

Leia mais

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária 1- Apresentação Binária Os computadores funcionam e armazenam dados mediante a utilização de chaves eletrônicas que são LIGADAS ou DESLIGADAS. Os computadores só entendem e utilizam dados existentes neste

Leia mais

Javascript 101. Parte 2

Javascript 101. Parte 2 Javascript 101 Parte 2 Recapitulando O Javascript é uma linguagem de programação funcional Os nossos scripts são executados linha a linha à medida que são carregados. O código que está dentro de uma função

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 06: Ponteiros Declarando e utilizando ponteiros Ponteiros e vetores Inicializando ponteiros Ponteiros para Ponteiros Cuidados a serem

Leia mais

Sistemas de Numerações.

Sistemas de Numerações. Matemática Profº: Carlos Roberto da Silva; Lourival Pereira Martins. Sistema de numeração: Binário, Octal, Decimal, Hexadecimal; Sistema de numeração: Conversões; Sistemas de Numerações. Nosso sistema

Leia mais

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação Universidade Federal de Campina Grande Departamento de Sistemas e Computação Introdução à Computação A Informação e sua Representação (Parte III) Prof.a Joseana Macêdo Fechine Régis de Araújo joseana@computacao.ufcg.edu.br

Leia mais

Aula de JavaScript 05/03/10

Aula de JavaScript 05/03/10 Objetos Sabe-se que variável são contêiners que podem armazenar um número, uma string de texto ou outro valor. O JavaScript também suporta objetos. Objetos são contêiners que podem armazenar dados e inclusive

Leia mais

Algoritmos em Javascript

Algoritmos em Javascript Algoritmos em Javascript Sumário Algoritmos 1 O que é um programa? 1 Entrada e Saída de Dados 3 Programando 4 O que é necessário para programar 4 em JavaScript? Variáveis 5 Tipos de Variáveis 6 Arrays

Leia mais

Busca. Pesquisa sequencial

Busca. Pesquisa sequencial Busca Banco de dados existem para que, de tempos em tempos, um usuário possa localizar o dado de um registro, simplesmente digitando sua chave. Uma tabela ou um arquivo é um grupo de elementos, cada um

Leia mais

Tutorial de Matlab Francesco Franco

Tutorial de Matlab Francesco Franco Tutorial de Matlab Francesco Franco Matlab é um pacote de software que facilita a inserção de matrizes e vetores, além de facilitar a manipulação deles. A interface segue uma linguagem que é projetada

Leia mais

INTRODUÇÃO À LINGUAGEM C++

INTRODUÇÃO À LINGUAGEM C++ INTRODUÇÃO À LINGUAGEM C++ 1 - VARIÁVEIS Variáveis espaço de memória reservado para armazenar tipos de dados, com um nome para referenciar seu conteúdo. Observações importantes Todas as variáveis devem

Leia mais

2. Representação Numérica

2. Representação Numérica 2. Representação Numérica 2.1 Introdução A fim se realizarmos de maneira prática qualquer operação com números, nós precisamos representa-los em uma determinada base numérica. O que isso significa? Vamos

Leia mais

Algoritmos de pesquisa. Tabelas de dispersão/hash

Algoritmos de pesquisa. Tabelas de dispersão/hash Algoritmos de pesquisa Tabelas de dispersão/hash Introdução Motivação: Considerar o problema de pesquisar um determinado valor num vetor (array). Se o vetor não está ordenado, a pesquisa requer O(n) de

Leia mais

2 Orientação a objetos na prática

2 Orientação a objetos na prática 2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos

Leia mais

Estruturas de Dados Pilhas, Filas e Deques

Estruturas de Dados Pilhas, Filas e Deques Estruturas de Dados Pilhas, Filas e Deques Prof. Eduardo Alchieri Estruturas de Dados Pilhas Pilhas Lista LIFO (Last In, First Out) Os elementos são colocados na estrutura (pilha) e retirados em ordem

Leia mais

Introdução à Engenharia de

Introdução à Engenharia de Introdução à Engenharia de Computação Tópico: Sistemas de Numeração José Gonçalves - LPRM/DI/UFES Introdução à Engenharia de Computação Introdução O número é um conceito abstrato que representa a idéia

Leia mais

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Disciplina de Lógica Computacional Aplicada. Prof. Dr.

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Disciplina de Lógica Computacional Aplicada. Prof. Dr. Índice 1. SISTEMAS NUMÉRICOS 1.1 Caracterização dos Sistemas Numéricos 1.2 Sistemas Numéricos em uma Base B Qualquer 1.2.1 Sistema de Numeração Decimal 1.2.2. Sistema de Numeração Binário 1.2.3 Sistema

Leia mais

JavaScript (ou JScript)

JavaScript (ou JScript) 1. Introdução JavaScript (ou JScript) Uma linguagem como o JavaScript permite criar interfaces interativas na web (permite a interação do usuário). Para desenvolver web sites interativos precisamos de

Leia mais

Universidade Federal de Minas Gerais Instituto de Ciências Agrárias

Universidade Federal de Minas Gerais Instituto de Ciências Agrárias Universidade Federal de Minas Gerais Instituto de Ciências Agrárias Professor: Renato Dourado Maia Disciplina: Programação de Computadores Curso: Engenharia de Alimentos Turma: Terceiro Período 1 Introdução

Leia mais

Internet e Programação Web

Internet e Programação Web COLÉGIO ESTADUAL PEDRO MACEDO Ensino Profissionalizante Internet e Programação Web 3 Técnico Prof. Cesar 2014 1 SUMÁRIO Criar sites dinâmicos em PHP --------------------------------------------------------

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA RESUMO DE AULA CRIAÇÃO E MANIPULAÇÃO DO BANCO DE DADOS

Leia mais

CURSO BÁSICO DE PROGRAMAÇÃO AULA 7

CURSO BÁSICO DE PROGRAMAÇÃO AULA 7 CURSO BÁSICO DE PROGRAMAÇÃO AULA 7 Revisão para prova: Comandos de Entrada e Saída Estruturas de Decisão (Se, caso (escolha)) Laços de Repetição (Enquanto, Repita, Para) Relembrando Trabalho 1 Prazo de

Leia mais

Informática I. Aula 6. http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1

Informática I. Aula 6. http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1 Informática I Aula 6 http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1 Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript e

Leia mais

Estrutura de Dados Básica

Estrutura de Dados Básica Estrutura de Dados Básica Professor: Osvaldo Kotaro Takai. Aula 4: Tipos de Dados O objetivo desta aula é apresentar os tipos de dados manipulados pela linguagem C, tais como vetores e matrizes, bem como

Leia mais

Representação de Dados

Representação de Dados Representação de Dados Introdução Todos sabemos que existem diferentes tipos de números: fraccionários, inteiros positivos e negativos, etc. Torna-se necessária a representação destes dados em sistema

Leia mais

Algoritmos e Programação

Algoritmos e Programação Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Algoritmos e Programação Parte 05 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti

Leia mais

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Linguagem e Técnicas de Programação I Operadores, expressões e funções Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Ameliara Freire Operadores básicos Toda linguagem de programação, existem

Leia mais

Linguagens de programação

Linguagens de programação Prof. André Backes Linguagens de programação Linguagem de Máquina Computador entende apenas pulsos elétricos Presença ou não de pulso 1 ou 0 Tudo no computador deve ser descrito em termos de 1 s ou 0 s

Leia mais

&XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO

&XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO Universidade Federal de Viçosa Departamento de Informática &XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO Flaviano Aguiar Liziane Santos Soares Jugurta Lisboa Filho (Orientador) PROJETO UNESC@LA Setembro de

Leia mais

Lógica de Programação com Python

Lógica de Programação com Python Lógica de Programação com Python por Nilo Menezes http://www.nilo.pro.br/python/ Python 2.7 requer PyGame Atualizada em 30/10/2012 1 Objetivos Introduzir os conceitos de programação Apresentar as principais

Leia mais

Fábio Rodrigues Jorge. E-mail: fabinhojorgenet@gmail.com

Fábio Rodrigues Jorge. E-mail: fabinhojorgenet@gmail.com Fábio Rodrigues Jorge E-mail: fabinhojorgenet@gmail.com Este minicurso tem por objetivo apresentar uma noção introdutória á linguagem Python. Temas abordados no minicurso: -variáveis -comandos de decisão

Leia mais

Microsoft Excel 2007

Microsoft Excel 2007 Microsoft Excel 2007 O Microsoft Excel é um aplicativo para a construção e edição de planilhas eletrônicas, que permite o trabalho com: formulários, tabelas, gráficos e outros. 2.1 CONCEITOS INICIAIS:

Leia mais

AULA 12 CLASSES DA API JAVA. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes alba.lopes@ifrn.edu.br

AULA 12 CLASSES DA API JAVA. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes alba.lopes@ifrn.edu.br AULA 12 CLASSES DA API JAVA Disciplina: Programação Orientada a Objetos Professora: Alba Lopes alba.lopes@ifrn.edu.br CLASSES DA API JAVA A maioria dos programas de computador que resolvem problemas do

Leia mais

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação FaculdadedeCiências UniversidadeAgostinhoNeto DepartamentodeMatemáticaeEngenhariaGeográfica CiênciasdaComputação ProgramaçãoII SegundaParte Adaptado de um original dos docentes de ISCTE Objectivos Os alunos

Leia mais

1. Sistemas de numeração

1. Sistemas de numeração 1. Sistemas de numeração Quando mencionamos sistemas de numeração estamos nos referindo à utilização de um sistema para representar uma numeração, ou seja, uma quantidade. Sistematizar algo seria organizar,

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o funcionamento do computador Apresentar a função da memória e dos dispositivos

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais