• Nenhum resultado encontrado

Programação de Computadores

N/A
N/A
Protected

Academic year: 2021

Share "Programação de Computadores"

Copied!
50
0
0

Texto

(1)

Programação de

Computadores

Instituto de Computação UFF

Departamento de Ciência da Computação

(2)

Conteúdo

● Alguns Conceitos sobre Linguagens ● Conceito de Algoritmo ● Pseudocódigo ● Tipos de Variáveis ● Operadores ● Estruturas de Controle ● Estruturas de Dados ● Subprogramação

(3)

Exemplos com caracteres

O tipo str em Python reserva espaço na memória do computador e permite atribuirmos os caracteres que estão definidos na tabela ASCII e suas extensões

(4)

Tabela ASCII

(5)

Exemplos com caracteres

Observe que temos um número inteiro associado a cada caracter. Por reconhecer o tipo da variável como str (e se referenciar ao número associado na tabela) é que os programas que estejam executando no computador reagem a estas variáveis de forma conveniente.

(6)

Exemplos com caracteres

As atribuições de caracteres são feitas de forma similar as outras variáveis já apresentadas, como apresentado no fragmento abaixo …

a = '/' b = 'B' c = a ...

(7)

Exemplos com caracteres

Podemos fazer comparações entre caracteres nos lembrando de que as referências serão sempre os valores da tabela ASCII

(8)

Mais um exemplo com

caracteres

(9)

Exemplos com caracteres

Experimente teclar algo como a letra S e a letra s e depois olhe a correspondência na tabela ASCII

(10)

Exemplos com caracteres

Podemos também ter “vetores” (sequências para ser mais exato) de tipo str e acessá-los pelo seus índices

(11)

Exemplos com caracteres

(12)

Cadeia de caracteres

(13)

Exemplos com cadeias

de caracteres

(14)

Cadeias de caracteres

Experimente usar type() para verificar se temos realmente uma lista como saída do input()

(15)

Cadeias de caracteres

Temos formas diferentes de trabalhar ao usarmos um tipo ou outro, cada um com suas vantagens e desvantagens

Há uma grande diferença entre o tipo str e list:

Enquanto list é mutável str é imutável, ou seja, podemos alterar

diretamente os valores de uma lista mas o mesmo não pode ser feito com uma cadeia de caracteres

(16)

Cadeias de caracteres

É bom observar aqui que diferente dos tipos como int, float, bool,

ditos tipos simples ou primitivos, str é um tipo composto, ou

seja, ele é constituído de partes menores.

Por exemplo, uma frase é constituída de ‘palavras’ (sub cadeias) e estas por caracteres (sub cadeias das ‘palavras’)

(17)

Operador in

Vejamos um operador que será útil no momento, embora ele já tenha sido apresentado informalmente

(18)

Operador in

Vejamos um operador que será útil no momento, embora ele já tenha sido apresentado informalmente

● in

Este operador retorna se falso ou verdadeiro se dada uma subcadeia (substring) se encontra em outra cadeia de caracteres

(19)

Operador in

Exemplos:

● ‘o‘ in “Tom“ retornará True ● ‘t‘ in “Tom“ retornará False

(20)

Operador in

...

(21)

Exemplos com cadeias

de caracteres

Aqui vemos que temos uma autêntica operação lógica que pode simplificar operações com cadeias de caracteres

(22)

Exemplos com cadeias

de caracteres

Aqui vemos que temos uma autêntica operação lógica que pode simplificar operações com cadeias de caracteres

(23)

Exemplos com cadeias

de caracteres

(24)

Exemplos com cadeias

de caracteres

(25)

Mais sobre o for

Aqui vemos mais sobre as possibilidades do for. Reescreveremos as sua expressão como

for elemento_da_sequência in sequência: comandos

onde sequências podem ser listas, cadeias de caracteres e outros tipos que são genericamente chamados de iteradores

(26)

Cadeias de caracteres

Podemos fazer uma lista se “transformar“ numa cadeia de caracteres De quebra no próximo exemplo faremos uso de uma função já

apresentada len() e também de uma sobrecarga do operador + que já vimos anteriormente

(27)

Cadeias de caracteres

(28)

Exemplos com cadeias

de caracteres

Observe que criamos uma cadeira de caracteres vazia introduzindo nenhum caracter

O “problema” que temos está na impressão sem espaços em branco da cadeia de caracteres.

Mas, é claro, foi precisamente o que pedimos para ser feito... Vamos adicionar espaços em branco para nosso conforto...

(29)

Cadeia de caracteres

(30)

Cadeia de caracteres

Ficou mais legível e ganhamos um pouco mais de conhecimento de manipulação de cadeia de caracteres

(31)

Cadeia de caracteres

Vejamos mais algumas operações que podemos fazer diretamente com o tipo str

● count(item_a) – conta o número de ocorrências de item_a

da cadeia

● replace(item_a, item_b) – substitui todas as ocorrências de item_a

por item_b

● find(item_a) – retorna o índice mais a esquerda onde

(32)

Cadeia de caracteres

(33)

Cadeia de caracteres

Mas aqui temos uma questão:

Se uma cadeia de caracteres é um tipo imutável, o que aconteceu quando usamos o replace?

Geramos uma outra cadeia de caracteres, ou seja, alocamos um espaço de memória diferente daquela cadeia original

(34)

Cadeia de caracteres

Um exercício:

Faça um programa em Python no qual se lê uma frase dada numa única cadeia de caracteres e que gere outra cadeia de caracteres sem os espaços em branco.

(35)

Cadeia de caracteres

Vamos introduzir mais algumas operações com cadeias de caracteres. Se cad é uma cadeia de caracteres:

● Fatiamento:

cad[n:m] gera uma cadeia do n-ésimo caracter ao m-ésimo caracter cad[n:m:p] gera uma cadeia do n-ésimo caracter ao m-ésimo caracter deslocando de p em p

● min(cad) – retorna o menor elemento da cadeia ● max(cad) – retorna o maior elemento da cadeia

(36)

Cadeia de caracteres

...

(37)

Cadeia de caracteres

Observe que maior e menor aqui estão referidos aos valores da

tabela ASCII e que o 'menor' caracter encontrado é o caracter espaço em branco, indicado na tabela ASCII como SP

(38)

Cadeia de caracteres

Vejamos como examinar uma cadeia de caracteres de várias maneiras, o que será útil para futuros exemplos e trabalhos.

Aqui novamente suporemos estar trabalhando com uma cadeia de caracteres de nome cad

● cad.isnumeric() – retorna True se a cadeia é constituída de apenas

caracteres numéricos

● cad.isspace() – retorna True se há somente espaços em branco ● cad.isalpha() – retorna True se há somente caracteres do alfabeto

(39)

Cadeia de caracteres

Observe que tais métodos podem ser, por exemplo, muito úteis em filtragem de dados de entrada

(40)

Cadeia de caracteres

(41)

Cadeia de caracteres

Este programa emitirá uma mensagem errada em algumas situações Descubra quais e corrija

(42)

Cadeia de caracteres

Repare que encontramos uma maneira pela qual podemos manipular o conteúdo de uma cadeia de caracteres. Basta criar uma nova ou usar o recurso do

(43)

Cadeia de caracteres

(44)

Cadeia de caracteres

Repare a forma com a qual imprimimos os elementos da lista antes e depois de modificarmos.

Em geral a operação do print() faz com que ao terminar a impressão solicitada, haja um salto para a próxima linha. Este salto é dado pelo uso de um caracter não imprimível.

Aqui substituímos o caracter padrão pelo espaço em branco numa impressão e por nenhum caracter para a outra impressão

(45)

Cadeia de caracteres

Também teve uma gambiarra:

usamos o print() sem argumentos para forçar um salto de linha, já que, seja lá o que você pedir para imprimir, o print() saltará para a próxima linha

(46)

Cadeia de caracteres

Mas esta história de ficar criando cadeia de caracteres fica enchendo a memória do computador.

Para programas como estes do curso, isto não é um grande problema mas, se você estiver trabalhando com uma massa de dados maior, podemos aí ter problemas

(47)

Cadeia de caracteres

Python permite você liberar o espaço de memória ocupado por uma variável de maneira direta usando o

(48)

Cadeia de caracteres

(49)

Cadeia de caracteres

Crie um programa em Python que, dada uma cadeia de caracteres, gere outra cadeia de caracteres na qual não há vogais. Imprima as duas cadeias.

(50)

Cadeia de caracteres

Faça um program em Python no qual se lê uma cadeia de caracteres com letras minúsculas e depois ordene as letras em ordem

Referências

Documentos relacionados

O Diretor Geral do Instituto Federal de Educação, Ciência e Tecnologia de Minas Gerais – IFMG – Campus Governador Valadares, por meio da Gestão de Pessoas, torna pública a

Foram abordados aspectos da biologia de morcegos em duas cavernas no estado de São Paulo, em estado de preservação distintos: Gruta da Toca, mais preservada e Gruta do

Especificamente, dá continuidade a um estudo recentemente concluído (MAYR, 2015) sobre o princípio da Grundgestalt, que foi cunhado por Arnold Schoenberg (1874-1951) sob

Afinal esse consumidor já não precisa mais se deslocar entre lojas físicas uma vez que ele pode acessar, de qualquer lugar, as ofertas dos competidores através de dispositivos

Cultural Brasil/Noruega 2014, pela representante do Setor Cultural da Embaixada do Brasil em Oslo.. 20:30 - Intervalo Intervalo Intervalo - Coquetel

O CONPEDI, ao produzir um Grupo de Trabalho dedicado ao estudo sobre a Propriedade Intelectual privilegia os acadêmicos da área em sua totalidade: os que

Com sua aprovação, o valor do benefício ACMV será recalculado de forma que o valor inicial da Aposentadoria Complementar Móvel Vitalícia, acrescido do valor devido pela

A Pró-Reitora de Ações Afirmativas e Assistência Estudantil da Universidade Federal da Bahia, no uso de suas atribuições e, em conformidade ao que estabelece o Edital de