64
Processamento da Informação Fabrício Olivetti de França 02 de Fevereiro de 2019

Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Processamento da Informação

Fabrício Olivetti de França

02 de Fevereiro de 2019

Page 2: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Topics

1. Processamento da Informação

1

Page 3: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Processamento da Informação

Page 4: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Programação de Computadores

Primeira tarefa da disciplina:

O que é programação de computadores?

2

Page 5: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Programação de Computadores

Construir e implementar um código executável ouinterpretável para fazer alguma tarefa.

3

Page 6: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Programas de Computador

Quais exemplos de programas de computador vocês conseguemimaginar?

4

Page 7: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Programas de Computador

• Windows?• App do Facebook para celular?• Filtros do Instagram?• Jogador inteligente de xadrez?• Interface com uma TV?

5

Page 8: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Passos para construção de um programa

1. Entender o problema2. Entender a solução para o problema3. Sistematizar a solução para o problema4. Escrever a solução de forma que o computador entenda5. Testar solução6. Analisar o desempenho do programa

etc.

6

Page 9: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Passos para construção de um programa

Nessa disciplina o foco será nos 3 primeiros itens!

7

Page 10: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Algoritmo e Computação

Um algoritmo é uma descrição precisa e desambígua de comoresolver um problema.

Computação é o cálculo feito seguindo a descrição doalgoritmo.

8

Page 11: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Algoritmo

Um algoritmo em sua forma mais primitiva pode ser escritocomo uma função matemática.

9

Page 12: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Algoritmo

Um algoritmo que divide um valor por 10

f(x) = x/10

10

Page 13: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Algoritmo

Qual o resultado para:

• f(1)• f(12)• f(123)• f(1234)

11

Page 14: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Algoritmo

Um algoritmo que calcula o resto da divisão por 10

g(x) = x % 10

12

Page 15: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Algoritmo

Qual o resultado para:

• g(1)• g(12)• g(123)• g(1234)

13

Page 16: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Quando a diversão começa?

O segredo da construção de algoritmos mais interessantes é acomposição.

A ideia geral é começar construindo funções pequenas e simplese, depois, utilizá-las para programas mais complexos!

14

Page 17: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Algoritmo

Qual o resultado para:

• g(f(1234))• f(g(1234))

15

Page 18: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Avaliação da parte prática

Nessa turma de prática faremos algo um pouco diferente dohabitual:

• Na segunda metade de todas as aulas faremos umaatividade valendo nota (1.5 pto).

• No início de cada atividade, o aluno receberá uma letracorrespondente a entrada de seu programa. NÃO UTILIZEOUTRA LETRA!

• Após a conclusão da atividade, o programa deve emitiruma (ou mais) respostas que devem ser escritas na folha deresposta e entregue ao professor ao final da aula.

Utilizaremos uma única folha de resposta para todas asatividades!

16

Page 19: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Folha de resposta

Proibições:

• NÃO leve a folha de resposta para casa.• NÃO rasure a letra de entrada de seu programa ou o visto

do professor.

O não cumprimento de alguma dessas regras acarretará emreprovação automática!

17

Page 20: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Multa por atraso

Caso o aluno não consiga completar o programa ou entregar aatividade com a resposta incorreta, poderá refazer a atividadeem casa e preencher a resposta na folha de atividade até duassemanas após. A nota da atividade atrasada será de 0.5 ponto.

Para isso a folha terá um campo apropriado para respostas ematraso.

18

Page 21: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Nota final

A nota final para o laboratório será a soma das 7 maiores notaslimitado em 10.

Caso o aluno falte em mais do que 3 atividades será reprovadopor falta.

19

Page 22: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Programa de Computador

Um programa de computador é um conjunto de instruções demáquina que implementam um algoritmo.

Passo a passo de como o computador deve processar os dados.

20

Page 23: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Programa de Computador

Internamente ele é definido por sequências de bits.

Cada sequência de bit é mapeada para uma instrução doprocessador.

21

Page 24: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Programa de Computador

22

Page 25: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Linguagem de Máquina

• Difícil de ler, escrever e entender.• Requer uma lógica de programação imperativa.

23

Page 26: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Linguagem de Alto Nível

Para resolver esses problemas, foram criadas linguagens deprogramação que serviriam como intermediários entre alinguagem de máquina e o programador.

24

Page 27: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Linguagem de Alto Nível

• Possui um conjunto de instruções próximas da linguagemnatural.

• Minimiza o número de instruções para tarefas frequentes.• Não requer completo entendimento do funcionamento do

computador.

25

Page 28: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Linguagem Python

Nesse curso utilizaremos a linguagem de programação Python:

• Tem uma sintaxe simples.• Filosofia de códigos pequenos e legíveis.• Declarativo (ou quase).

26

Page 29: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Linguagem de Máquina

Nas aulas práticas construiremos um interpretador delinguagem de máquina!

27

Page 30: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Instalando o Python

Acesse o site:

https://www.anaconda.com/distribution/

28

Page 31: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Instalando o Python

Clique em Download e, então, clique no botão Download logoabaixo de Python 3.7 version.

Siga os passos de instalação!

29

Page 32: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Instalando o editor

Abra o Anaconda Navigator procure por Spyder e clique emInstall.

30

Page 33: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Testando o editor

Abra o editor clicando em Launch. Deve aparecer uma telaparecida com essa:

31

Page 34: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Testando o editor

A janela da esquerda é chamada de Editor. É nela que vocêescreverá seus códigos.

32

Page 35: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Testando o editor

A janela no canto superior direito é o Explorador. Ela te trazinformações sobre o estado atual do seu programa, quando emexecução.

33

Page 36: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Testando o editor

A janela no canto superior direito é o Console. Ele te permitefazer alguns testes pontuais ou executar programas.

34

Page 37: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Tarefa

No Console escreva 1 + 2 e pressione a tecla enter. Qual oresultado?

35

Page 38: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Tarefa

Repita agora escrevendo a expressão 1 + 2 ∗ 3. Tente advinhar oresultado antes de apertar enter.

36

Page 39: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Tarefa

Repita agora escrevendo a expressão (1 + 2) ∗ 3. Tente advinharo resultado antes de apertar enter.

37

Page 40: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Precedência

Em operações aritméticas a linguagem de programação defineordem de precedência para calcular as operações. Primeiro elecalcula qualquer cálculo de potência, em seguida multiplicaçõese divisões e, finalmente, somas e subtrações.

38

Page 41: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Pergunta

Em uma expressão a + b − c faz diferença calcular a subtraçãoantes da soma?

39

Page 42: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Pergunta

Em uma expressão a ∗ b/c faz diferença calcular a divisão antesda multiplicação?

40

Page 43: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Tarefa

Calcule agora 3/2, qual o resultado? E se fizermos 3//2?

41

Page 44: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Operações com Inteiros

Por convenção, utilizamos / para um resultado nos númerosreais e // para resultados inteiros.

42

Page 45: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Criando e manipulando variáveis

Digite agora no console o seguinte comando:

x = 2

43

Page 46: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Criando e manipulando variáveis

Na janela Explorador clique em Explorador de Variáveis. Essajanela passa a mostrar o tipo, tamanho e conteúdo de nossavariável x.

Vocês estão de acordo com o que está sendo mostrado?

44

Page 47: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Tarefa

Teste agora:

x = 2.3x = ”Ola mundo!”x = [1,2,3,4]

E verifique como os valores do explorador se alteram.

45

Page 48: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Variáveis

Uma variável armazena um ou mais valores de um certo tipo dedado atribuindo um nome para esse(s) valor(es).

46

Page 49: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

O que podemos fazer com uma variável?

Podemos alterar seu valor, fazer operações, mostrar seu valor,utilizar como argumentos de uma função, etc.

47

Page 50: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Tarefa

Faça a seguinte sequência de instruções, o que aparece noExplorador de Variáveis?

x = 2y = 3z = x+y

48

Page 51: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Tarefa

Faça:

x = 2y = ”ola”z = x+y

O que acontece?

49

Page 52: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Tarefa

Faça agora:

print(x,y,z)

O que aparece no console?

50

Page 53: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Imprimindo valores

A função print recebe um ou mais argumentos de qualquer tipoe mostra os valores na tela:

print(”Ola mundo”)print(1+2)print(x)print(x, ” + ”, y, ” = ”, z)

51

Page 54: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Tarefa

Para tornar essa última instrução print mais fácil de escrever,podemos usar as strings de formatação:

print(f”{x} + {y} = {z}”)

A string de formatação inicia com a letra f seguido do que querque apareça na tela entre aspas duplas e toda variável entrechaves.

52

Page 55: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Editor

Para que serve o editor? Quando queremos criar uma sequênciade instruções, escrever programas maiores, organizar e guardarnosso programa.

53

Page 56: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Tarefa

Escreva no editor:

x = 10y = 20z = x+yprint(f”{x} + {y} = {z}”)

Clique no ícone de triângulo verde (ou aperte Ctrl+Enter).Esse botão tem a função de executar o programa.

54

Page 57: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Nossa primeira função

Para definir uma função, fazemos:

def funcao(x):return x+1

55

Page 58: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Nossa primeira função

O termo def indica que definirei uma nova função, em seguidaatribuímos um nome para ela e, entre parênteses, as variáveis deentrada para a função, terminando a linha com “:”.

56

Page 59: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Nossa primeira função

Na linha seguinte, alinhamos (utilizando espaço) o código 4colunas a direita e escrevemos a instrução a ser executada.

57

Page 60: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Nossa primeira função

A palavra return indica que a instrução nessa linha é o que afunção retorna como saída.

58

Page 61: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Tarefa

Escreva a função de exemplo no editor, clique em executar edigite no console:

funcao(1)

O resultado foi o que você esperava?

59

Page 62: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Tarefa

Vamos criar nossas duas funções de exemplo do início da aula:

def div10(x):return x//10

def mod10(x):return x%10

60

Page 63: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Tarefa

Qual o resultado de:

div10(1234)mod10(1234)

O que essas funções estão fazendo?

61

Page 64: Fabrício Olivetti de França 02 de Fevereiro de 2019 · Qual o resultado para: ... Um programa de computador é um conjunto de instruções de máquina que implementam um algoritmo

Tarefa

Crie uma função para recuperar o penúltimo dígito utilizandodiv10 e mod10.

62