Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e...

22
ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS Prof. Dr. Érico Fernando O. Martins [email protected] Algoritmos e Programação

Transcript of Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e...

Page 1: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA

UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP

FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS

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

Algoritmos e Programação

Page 2: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

2. Linguagens de Programação

Page 3: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

Python: Indentação

Indentação: Em tipografia, indentação é o recuo de um texto em relação à sua margem.

• Python utiliza a indentação para definir um bloco de código.• Um bloco de código (corpo de uma decisão, repetição ou até mesmo uma

função, etc) começa com indentação e termina com a primeira linha não intendata.

• Podem ser utilizados quatro espaços em branco ou “um tab” para fazer uma indentação.

Page 4: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

Python: Indentação

Page 5: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

Tipos primitivos (integrado ou built-in) simples de dados

• Números (Numbers)• int, long, float, complex

• Cadeias de caracteres (Strings)• str, unicode

• Booleano (Bool)• bool

Page 6: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

Tipos primitivos (integrado ou built-in) simples de dados

• Números (Numbers)• int, long, float, complex

>>> a = 3.14

>>> b = 5

>>> c = 3 + 14j

>>> d = 12345678901234567890

>>> e = 1L

Page 7: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

Tipos primitivos (integrado ou built-in) simples de dados

• Cadeias de caracteres (Strings)• str, unicode

>>> t = '9'

>>> k = 't'

>>> u = 'sala de aula '

>>> i = '32k, -fn%#@!'

>>> j = u 'integração1’

• Cadeias de caracteres do tipo unicode são declaradas acrescentando u no início;

Page 8: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

Tipos primitivos (integrado ou built-in) composto de dados

• Lista (List)

• Tupla (Tuple)

• Conjunto (Set)

• Dicionário (Dictionary)

Page 9: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

Tipos primitivos (integrado ou built-in) composto de dados• Lista (List)Lista é uma sequência ordenada de itens. É um dos tipos de dados mais utilizados em Python e é muitoflexível. Os itens de uma lista não precisam ser do mesmo tipo.

Declarar uma lista é bastante simples. Os itens separados por vírgulas são colocados entre colchetes [].

>>> a = [1, 2.2, 'python']

Podemos usar o operador de fatiamento [] para extrair um item ou um intervalo de itens de uma lista. Oíndice inicia em 0.

As listas são mutáveis, ou seja, o valor dos elementos de uma lista pode ser alterado.

>>> a = [1,2,3]

>>> a[2]=4

>>> a

[1, 2, 4]

Page 10: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

Tipos primitivos (integrado ou built-in) composto de dados

• Lista (List)

Aqui estão todos os métodos disponíveis em um objeto lista (list):

• list.append(x)

• list.extend(L)

• list.insert(i, x)

• list.remove(x)

• list.pop([i])

• list.index(x)

• list.count(x)

• list.sort()

• list.reverse()

Page 11: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

Tipos primitivos (integrado ou built-in) composto de dados• Tupla (Tuple)

Tupla é uma sequência ordenada de itens como as listas. A única diferença é que as tuplas sãoimutáveis, uma vez criadas não podem ser modificadas.

As tuplas são usadas para proteger a escrita de dados e geralmente são mais rápidas do que a lista,pois não podem ser alterados dinamicamente.

É definida entre parênteses () onde os itens são separados por vírgulas.

>>> t = (5, 'programa', 1 + 3j)

Podemos usar o operador de fatiamento [] para extrair itens, mas não podemos alterar seu valor.

Page 12: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

Tipos primitivos (integrado ou built-in) composto de dados• Conjunto (Set)

Conjunto é uma coleção desordenada de itens exclusivos (elimina duplicatas).

É definido por valores separados por vírgula dentro de chaves {}.

>>> a = {1,2,2,3,3,3}

>>> a

{1, 2, 3}

Uma vez que os conjuntos são coleções não ordenadas, a indexação não tem significado. Assim, o operador de corte[] não funciona.

>>> a = {1,2,3}

>>> a [1]

Page 13: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

Tipos primitivos (integrado ou built-in) composto de dados• Dicionário (Dictionary)

Dicionário é uma coleção desordenada de pares chave-valor. É geralmente usado quando temos uma enormequantidade de dados. Dicionários são otimizados para recuperar dados. Devemos saber a chave para recuperar ovalor.

Em Python, os dicionários são definidos dentro de chaves {}, sendo cada item um par na forma chave: valor. A chave eo valor podem ser de qualquer tipo.

>>> d = {1: 'valor', 'chave': 2}

>>> tipo (d)

<Class 'dict'>

Usamos a chave para recuperar o respectivo valor. Mas não o contrário.

Page 14: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

Conversão entre tipos primitivos compostos de dados

>>> float(5)

>>> int(10.6)

>>> int(-10.6)

>>> float('2.5')

>>> str(25)

>>> set([1,2,3])

>>> tuple({5,6,7})

>>> list('hello')

>>> dict([[1,2],[3,4]])

>>> dict([(3,26),(4,44)])

Page 15: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

Python: Variável

• Uma variável é apenas um NOME que REFERENCIA a um OBJETO na memória RAM.

• Todo o OBJETO têm:• algum conteúdo (atribuído por x = 5)

• uma identidade única (um valor inteiro que indica um endereço de memória, retornado por id(x))

• um tipo (retornado por type(x))

• As regras para escrever o nome das variáveis são as mesmas dos algoritmos.

• Não precisamos declarar uma variável antes de usá-la. Isso é tratado internamente de acordo com o tipo de valor que atribuímos à variável.

• A variável estará disponível na memória RAM (Random Access Memory) enquanto houver eletricidade e o ambiente de programação não for reiniciado.

Page 16: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

Python: Variável

>>> x = 10 # atribui o valor 10 à variável x (errado)

• Na verdade o interpretador Python cria um objeto do tipo int que possui 10como valor, cria o identificador x e faz com que o identificador x referencieo objeto.

• Toda vez que x for usado em seu código, ele será automaticamentesubstituído pelo valor do objeto que está referenciando (int 10).

Page 17: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

Python: Variável

>>> x = x + 1 # atualiza o valor de x (errado)

• Na verdade x passa a fazer referência a um novo objeto do tipo int, cujovalor é 11.

• Um objeto que não possui identificador algum o referenciando viracandidato a coleta de lixo, que é um mecanismo que elimina da memóriaobjetos que não são mais necessários.

Page 18: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

Python: Variável

>>> y = x # atribui para y o mesmo valor que foi atribuído à x (errado)

• Na verdade o interpretador cria um novo identificador y e faz com que elereferencie o objeto referenciado por x.

• Um objeto que não possui identificador algum o referenciando viracandidato a coleta de lixo, que é um mecanismo que elimina da memóriaobjetos que não são mais necessários.

Page 19: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

Python: Variável

• Objeto Imutável

>>> s = ‘abc’

>>> s = ‘abc’ + ‘d’ # não possui método, utiliza-se concatenação (+) para criar novo objeto.

• Objeto Mutável:

>>> h = [1, 2, 3] # cria uma lista

>>> h.append(4) # método append() adiciona o valor 4 ao final de h, modificando-a.

>>> print (h)

Page 20: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

Python: Variável

>>> x = 15 # atribui o valor 15 à variável x (errado)

• Como devemos interpretar corretamente?

• O que aconteceu com y ?

>>> m = [1, 2, 3] # cria uma lista m e atribui os valores 1, 2,3 (errado)

>>> p = m

>>> m.append(4)

• Como devemos interpretar corretamente?

• O que aconteceu com p ?

Page 21: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

Tipos primitivos (integrado ou built-in) simples de dados

• Números (Numbers)• int, long, float, complex

• Cadeias de caracteres (Strings)• str, unicode

• Booleano (Bool)• bool

MUTÁVEL OU IMUTÁVEL?

Page 22: Algoritmos e Programaçãosinop.unemat.br/site_antigo/prof/foto_p_downloads/... · Algoritmos e Programação Prof. Dr. Érico Fernando O. Martins Tipos primitivos (integrado ou built-in)

Algoritmos e ProgramaçãoProf. Dr. Érico Fernando O. Martins

Tipos primitivos (integrado ou built-in) composto de dados

• Lista (List)

• Tupla (Tuple)

• Conjunto (Set)

• Dicionário (Dictionary)

MUTÁVEL OU IMUTÁVEL?