informação processamento da -...

96
Processamento da informação Prof. Fabrício Olivetti de França

Upload: trantram

Post on 11-Nov-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Processamento da informação

Prof. Fabrício Olivetti de França

Page 2: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Do latim, informatio onis, conceber ideia.

Informação

Page 3: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Conceber Ideia

Preciso que você encontre a derivada de

log(x)!

Page 4: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Conceber Ideia

Encontre uma forma de construir

isso com segurança máxima e gastando apenas

R$ 100.000,00.

Page 5: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Conceber Ideia

Page 6: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Conceber Ideia

MARTELE ESSE PREGO NA TÁBUA!

Page 7: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Conceber Ideia

O prego que já está na tábua ou colocar o outro

prego na tábua??!

Page 8: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Conceber Ideia

Page 9: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Conceber Ideia

#$!% 0101101?

Page 10: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Ensinar o pensamento computacional para resolver problemas e descrevê-los de forma clara.

Como explicar um algoritmo para o computador a uma linguagem de programação.

Objetivo do Curso

Page 11: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

3 horas de aulas teóricas + 2 horas de aulas práticas.

Metodologia

Page 12: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

No site:

http://folivetti.github.io /courses/ProcessamentoInformacao/

E códigos exemplos no github:

https://github.com/folivetti/PI-UFABC

Material de Aula

Page 13: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Conceitos de Programação

13

Page 14: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Conceitos de ProgramaçãoA computação está relacionada com a execução de um procedimento bem definido para a solução de um problema.

Não necessariamente está ligado a fazer isso utilizando um computador.

14

Page 15: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Conceitos de ProgramaçãoAlgoritmo é a descrição da solução do problema computável.

O termo vem de al-Khwarizmi, um dos percursores da algebra.

15

Page 16: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Conceitos de Programação

O primeiro algoritmo que se tem conhecimento é o Algoritmo de Euclides, utilizado para calcular o Máximo Divisor Comum.

16

Page 17: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Conceitos de ProgramaçãoDados dois números inteiros m, n.

1. [Encontre o resto] Divida m por n e guarde o resto r (temos que 0 < r < n)

2. [Encontrei a resposta?] Se r==0, o algoritmo termina e n é a resposta

3. [Reduzir o problema] Faça m=n e n=r e retorne ao passo 1

17

Page 18: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Propriedades de um Algoritmo1. Finitude: um algoritmo deve SEMPRE terminar em um

período finito de tempo.

O algoritmo de Euclides é finito, pois n é um inteiro que sempre decresce, necessariamente atingindo zero.

18

Page 19: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Propriedades de um Algoritmo2. Desambiguidade: não pode haver ambiguidade em

qualquer instrução do algoritmo.

19

Page 20: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Propriedades de um Algoritmo3. Entrada: o algoritmo pode requisitar 0 (zero) ou mais

entradas como condições iniciais.

20

Page 21: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Propriedades de um Algoritmo4. Saída: o algoritmo deve ter uma ou mais saídas com a

resposta do problema.

21

Page 22: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Notações e Exemplo

Page 23: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Notações

== representa a RELAÇÃO de igualdade (comparação) entre dois valores

= tem o sentido de atribuição ou substituição dos valores de uma variável matemática (x = y, x agora tem o valor de y).

Page 24: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Notações

Se quisermos alterar o valor de uma variável por uma constante (por exemplo, 1), fazemos:

x = x + 1

Page 25: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Notações

Note, no algoritmo, que a ordem dos passos descritos tem importância:

m = n, n = r

é diferente de

n = r, m = n

Page 26: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Exemplo

Vamos verificar se o algoritmo de Euclides funciona:

Dado m=68 e n=119

Passo 1: dividir m/n e encontrar o resto r; r = 68Passo 2: r==0? NãoPasso 3: m = 119, n = 68

Page 27: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

ExemploPasso 1: dividir m/n e encontrar o resto r; r = 68Passo 2: r==0? NãoPasso 3: m = 119, n = 68

Page 28: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

ExemploPasso 1: dividir m/n e encontrar o resto r; r = 68Passo 2: r==0? NãoPasso 3: m = 119, n = 68Passo 1: r = 51Passo 2: r==0? Não

Page 29: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

ExemploPasso 1: dividir m/n e encontrar o resto r; r = 68Passo 2: r==0? NãoPasso 3: m = 119, n = 68Passo 1: r = 51Passo 2: r==0? NãoPasso 3: m = 68, n = 51

Page 30: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

ExemploPasso 1: dividir m/n e encontrar o resto r; r = 68Passo 2: r==0? NãoPasso 3: m = 119, n = 68Passo 1: r = 51Passo 2: r==0? NãoPasso 3: m = 68, n = 51Passo 1: r = 17Passo 2: r==0? Não

Page 31: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

ExemploPasso 1: dividir m/n e encontrar o resto r; r = 68Passo 2: r==0? NãoPasso 3: m = 119, n = 68Passo 1: r = 51Passo 2: r==0? NãoPasso 3: m = 68, n = 51Passo 1: r = 17Passo 2: r==0? NãoPasso 3: m = 51, n = 17

Page 32: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

ExemploPasso 1: dividir m/n e encontrar o resto r; r = 68Passo 2: r==0? NãoPasso 3: m = 119, n = 68Passo 1: r = 51Passo 2: r==0? NãoPasso 3: m = 68, n = 51Passo 1: r = 17Passo 2: r==0? NãoPasso 3: m = 51, n = 17Passo 1: r = 0Passo 2: r==0? Sim

Page 33: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Linguagem de Programação

Aprendemos como descrever um algoritmo na nossa própria linguagem.

Qualquer aluno do BC&T consegue ler aquelas descrições e efetuar o cálculo do MDC.

Mas e se m e n forem números muito grandes? Levaríamos muito tempo para calcular....

Page 34: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Linguagem de Programação

Para efetuar tais cálculos é interessante usarmos o computador para automatizar essa tarefa.

Se as regras dos cálculos estão bem descritas, o computador não terá problemas em entender né?

Page 35: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Linguagem de Programação

Mas...temos que lembrar que os computadores só entendem 0s e 1s...

Precisamos então de um “dicionário” que traduza aquelas instruções para sequências de bits que o computador entenda.

Page 36: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Linguagem de Programação

Linguagem de Programação é uma linguagem bem definida e sem ambiguidades utilizada para se comunicar com o computador.

36

Page 37: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Linguagem de Programação

Inicialmente consistia em um conjunto limitados de instruções, pré-definidos pelo processador do computador e um conjunto fixo de espaços de memória para serem utilizadas como variáveis do algoritmo.

37

Page 38: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Exemplo Linguagem de Máquina

add eax 360

001000 00001 0000000101011110

Código OP Endereço Valor

38

Page 39: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Algoritmo de Euclides em Ling. Maq.mov esi, 68 # m = 68mov ebx, 119 # n = 119jmp .L2 # vai para o passo 2

.L3: mov ebx, edx # n = r.L2: mov eax, ebx idiv esi # EAX = m / n (EAX), EDX = r mov esi, ebx # m = n test edx, edx # verifica se o resto é zero jne .L3 # se teste anterior não zero, vai para L3 39

Page 40: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Linguagem de Máquina

Além da dificuldade em entender o que cada instrução faz e a limitação de trabalhar com registradores, o entendimento do fluxo do algoritmo é prejudicado.

40

Page 41: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Linguagem de Alto Nível

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

41

Page 42: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Linguagem de Alto NívelOs objetivos dessas linguagens eram:

● Ter um conjunto de instruções próximas da linguagem natural

● Minimizar o número de instruções para tarefas frequentes

● Ter o máximo de controle sobre o computador, mas sem a necessidade de entendê-lo completamente

42

Page 43: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Compilador x Interpretador

Compiladas: o código-fonte é traduzido para código de máquina e escrito em um arquivo executável.

Interpretadas: o código-fonte é traduzido para instruções de máquina em tempo de execução.

43

Page 44: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Algoritmo de Euclides em Java/* valores iniciais */

int m = 68;int n = 119;int r = m%n;

/* reduz o problema para um problema mais simples */while( r!=0 ){ m = n; n = r; r = m%n;} 44

Page 45: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Solução de Problemas

Perceberemos ao longo do curso que a solução de muitos problemas consiste em reduzí-los para um problema mais simples em que a solução é trivial.

45

Page 46: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Java

Page 47: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Linguagem de ProgramaçãoNo JAVA todo programa começa com as seguintes instruções:

class NOME { public static void main (String[] args) { // o algoritmo é escrito aqui }}

Page 48: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Linguagem de ProgramaçãoNo JAVA todo programa começa com as seguintes instruções:

class NOME { public static void main (String[] args) { // o algoritmo é escrito aqui }}

Nome do programa, deve ser o mesmo do nome do arquivo onde está escrevendo.

Marca o início do programa.

Page 49: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Linguagem de ProgramaçãoNo JAVA todo programa começa com as seguintes instruções:

class NOME { public static void main (String[] args) { // o algoritmo é escrito aqui }}

MARCA OS BLOCOS DE INSTRUÇÕES: tudo que está dentro do {} pertence ao programa

Page 50: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Linguagem de ProgramaçãoNo JAVA todo programa começa com as seguintes instruções:

class NOME { public static void main (String[] args) { // o algoritmo é escrito aqui }}

Comentários: o computador ignora tudo que tem após “//” na mesma linha

Page 51: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Linguagem de ProgramaçãoNa aula teórica, para simplificar, vamos ignorar essa parte e escrever apenas o que tem dentro do bloco {}

class NOME { public static void main (String[] args) { // o algoritmo é escrito aqui }}

Page 52: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Linguagem de ProgramaçãoNa aula teórica, para simplificar, vamos ignorar essa parte e escrever apenas o que tem dentro do bloco {}

NOME {// o algoritmo é escrito aqui

}

Page 53: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Cálculo da MédiaDados dois números m, n calcular a média aritmética.

1. [Soma e divida] Some m com n e divida por 2, retorne o resultado

53

Page 54: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Cálculo de MédiaMEDIA {

Dado m e nSome m com n e divida por 2, retorne o

resultado}

Page 55: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Cálculo de MédiaMEDIA {

Dado m e nSome m com n e divida por 2, retorne o

resultado}

???

Page 56: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Cálculo de Média

O conceito de variáveis matemáticas é entendida pelo computador como valores que ele deve memorizar!

Dado m,n => Memorize os valores de m e n

Page 57: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Cálculo de Média

O computador precisa saber que tipo de valores você quer que ele memorize para gerenciar o uso de sua memória (que é limitada).

Alguns tipos possíveis são: numéricos, lógicos e textuais.

Page 58: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Tipos NuméricosPara tipos numéricos com valores inteiros, positivos ou negativos, temos:

Nome Memória Mínimo Máximobyte 1 byte -128 127short 2 bytes -32768 32767int 4 bytes -231 231 – 1long 8 bytes -263 263 – 1

Page 59: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Tipos NuméricosPara tipos numéricos com valores fracionários, positivos ou negativos, temos:

Nome Memóriafloat 4 bytesdouble 8 bytes

Page 60: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Cálculo de MédiaMEDIA {

double m, n;Some m com n e divida por 2, retorne o

resultado}

???

O “;” indica o finalda instrução

Page 61: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

NOME DE VARIÁVEIS

Use nomes de variáveis que descrevam de forma sucinta o que ela representa:

double media;

double mediaentredoisnumeros;

okx

Page 62: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

NOME DE VARIÁVEIS

Não use acentos ou símbolos para o nome:

double media;

double média;

double média☺;

okxx

Page 63: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

NOME DE VARIÁVEIS

O Java diferencia maiúsculas de minúsculas:

double media, Media;

Para saber mais:https://github.com/folivetti/PI-UFABC/blob/master/AULA_01/variaveis.java

Page 64: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Entrada de DadosPara obtermos uma entrada de dados do usuário, utilizaremos uma instrução chamada Scanner.

Primeiro dizemos ao computador que queremos pegar entrada do usuário com:

Scanner leitor = new Scanner(System.in);

Depois requisitamos as entradas com:

m = leitor.nextDouble();

Page 65: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Entrada de DadosAtente que devemos substituir XXX no comando “nextXXX()” pelo tipo do valor que queremos obter (com a primeira letra em maiúscula):

nextByte()nextInt()nextLong()nextDouble()...

Page 66: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Entrada de DadosPara usarmos o Scanner em nossos códigos, temos que escrever, antes da linha class NOME, a seguinte instrução:

import java.util.Scanner;

Page 67: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Entrada de Dados

Na aula teórica vamos ignorar tudo isso e usar apenas os comandos nextXXX() diretamente!

Mas não esqueçam de incluir isso nos códigos da aula prática!

Page 68: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Cálculo de MédiaMEDIA {

double m, n;m = nextDouble();n = nextDouble();Some m com n e divida por 2, retorne o

resultado}

???

Page 69: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

OperadoresComo o computador é uma máquina avançada de calcular, existem diversos operadores matemáticos prontos para serem usados:

+ soma dois números- subtrai dois números* multiplica dois números/ divide um número pelo outro% resto da divisão

Page 70: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

OperadoresAvançado:

o Java conta com diversas funções matemáticas para serem usadas

http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html

Para saber mais:https://github.com/folivetti/PI-UFABC/blob/master/AULA_01/operadores.java

Page 71: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Cálculo de MédiaMEDIA {

double m, n, media;m = nextDouble();n = nextDouble();media = m+n/2;

}

1010101

Page 72: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

SaídaPara mostrar o resultado na tela, usaremos o comando

System.out.println( saida )

Podemos combinar texto com os valores de nossas variáveis utilizando o operador “+”

Para simplificar, utilizaremos apenas “println()”

Page 73: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Cálculo de MédiaMEDIA {

double m, n, media;m = nextDouble();n = nextDouble();media = m+n/2;println(“Media = “+media);

}

1010101

Page 74: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Vamos testar!

Digamos que a entrada é:

m = 10n = 5

Page 75: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Cálculo de MédiaMEDIA {

double m, n, media;m = nextDouble();n = nextDouble();media = m+n/2;println(“Media = “+media);

}

vou guardar 3 valores

float

Page 76: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Cálculo de MédiaMEDIA {

double m, n, media;m = nextDouble();n = nextDouble();media = m+n/2;println(“Media = “+media);

}

o 1º. valor é 10

Page 77: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Cálculo de MédiaMEDIA {

double m, n, media;m = nextDouble();n = nextDouble();media = m+n/2;println(“Media = “+media);

}

o 2º. valor é 5

Page 78: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Cálculo de MédiaMEDIA {

double m, n, media;m = nextDouble();n = nextDouble();media = m+n/2;println(“Media = “+media);

}

armazena 10+5/2

em media

Page 79: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Cálculo de MédiaMEDIA {

double m, n, media;m = nextDouble();n = nextDouble();media = m+n/2;println(“Media = “+media);

}

Media = 12.5

Page 80: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Ordem de OperaçõesA expressão

10 + 2 / 5

é ambígua! O que devo calcular primeiro? Dependendo da escolha da ordem, o resultado muda!

Page 81: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Ordem de OperaçõesO computador segue uma regra de precedência das operações, que define a ordem em que ele irá calcular:

1as. operações: * e / e %2as. operações: + e –

em caso de empate, da esquerda para direita.

Page 82: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Ordem de OperaçõesNo caso de

10 + 2 / 5

ele vai fazer primeiro 2/5 e depois o resultado + 10.

Page 83: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Ordem de OperaçõesPara definir nossa própria precedência utilizamos parênteses!

(10 + 2)/5

Para saber mais:https://github.com/folivetti/PI-UFABC/blob/master/AULA_01/operadores_precedencia.java

Page 84: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Cálculo de MédiaMEDIA {

double m, n, media;m = nextDouble();n = nextDouble();media = (m+n)/2;println(“Media = “+media);

}

código completo:https://github.com/folivetti/PI-UFABC/blob/master/AULA_01/Media.java

Media = 7.5

Page 85: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Cálculo da MédiaDados dois números m, n calcular a média aritmética.

1. [Soma] Some m com n

2. [Divisão]Divida o resultado do passo anterior por 2 e retorne o novo resultado

85

Page 86: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Exercícios da TeoriaOs exercícios na parte teórica (e isso pode incluir a prova) serão feitos em duas partes:

1) Descrição textual do algoritmo (vide slide anterior)

2) Código Java (na teoria pode ser o simplificado utilizado nos slides)

Page 87: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Exercícios

Page 88: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Exercício 1

Descreva um algoritmo para resolver a equação:

a.x2 + b.x + c = 0

Defina a entrada e a saída e o procedimento para efetuar o cálculo de forma clara e desambígua.

https://github.com/folivetti/PI-UFABC/blob/master/AULA_01/SegundoGrau.java

Page 89: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Exercício 2Descreva um algoritmo para calcular a média ponderada entre dois números, a e b, utilizando um peso 0 <= w <= 1.

A média ponderada é dada por:

w * a + (1-w) * b

Algo pode dar errado?

https://github.com/folivetti/PI-UFABC/blob/master/AULA_01/MediaPonderada.java

Page 90: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Atividade para treinar em casa IImplemente um algoritmo para converter uma temperatura em Celsius para Kelvin e Fahrenheit:

pesquise as fórmulas de conversão, defina os tipos de variáveis, descreva o seu algoritmo textualmente, implemente na linguagem Java.

https://github.com/folivetti/PI-UFABC/blob/master/AULA_01/MediaPonderada.java

Page 91: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Atividade para treinar em casa IIImplemente um algoritmo para converter a idade da pessoa em anos para segundos.

A conversão proposta é precisa? Crie soluções para torná-la mais próxima do real!

https://github.com/folivetti/PI-UFABC/blob/master/AULA_01/IdadeSegundos.java

Page 92: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Atividade para treinar em casa IIIImplemente vários programas que calcula área e volume de formas geométricas:

RetânguloTriânguloCircunferênciaCuboEsferaPirâmide

https://github.com/folivetti/PI-UFABC/blob/master/AULA_01/AreaFormas.java

Page 93: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Resumo

Page 94: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Estrutura Básica de um Programa - Java

import java.util.Scanner; // vamos usar Scanner

class NOMEPROGRAMA {public static void main (String[] args) {

// sequencia de comandos}

}

Page 95: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Estrutura Básica de um Programa - Javaint x; // vou precisar de uma variável com nome x e contendo valores do tipo int

Scanner leitor = new Scanner(System.in); // vou pegar entradas do usuário

x = leitor.nextInt(); // pega um valor inteiro do usuário

System.out.prinln(“X = “+x); // imprime na tela

Page 96: informação Processamento da - folivetti.github.iofolivetti.github.io/courses/ProcessamentoInformacao/PDF/Aula 01... · Processamento da informação ... segurança máxima e gastando

Estrutura Básica de um Programa - Javax = y+z; // soma os valores de y e z e armazena em x

x = (y+z)*2; // soma os valores de y e z, multiplica o resultado por 2 e armazena em x

x = x%y; // x agora tem o valor do resto da divisão de x por y