algoritmos lógica e programação - cloud object storage · uma lista de instruções. –os...

42
Algoritmos Lógica e Programação 2016 Prof. Me. Adelson Felipe Dias Nogueira E-mail: [email protected]

Upload: trinhduong

Post on 08-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Algoritmos Lógica e Programação

2016

Prof. Me. Adelson Felipe Dias NogueiraE-mail: [email protected]

Page 2: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Conceitos Preliminares

Histórico do Computador:

– Um computador é uma máquina que manipula dados a partir de

uma lista de instruções.

– Os computadores podem ser mecânicos (computador analógico)

ou eletrônicos

– (computadores digitais).

Page 3: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Histórico do Computador

Mecânicos:

o – Ábaco 1000 A.C

o – Ossos de Napier 1612

o – Pascaline, Pascal 1642

o – Tear automático, Jacquard 1801

o – Máquina de diferenças, Babbage 1882

o – Tabulador eletromecânico, Hollerith 1890

Page 4: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Histórico do Computador

1a GERAÇÃO – eletroeletrônicos

o Z1, Z2, Z3 (relés), Konrad Zuse 1935

o ABC (válvulas), Atanosoff 1936

o MARK-1, 1941, 120 m2, 10 multiplicações em 3 segundos

o ENIAC, 1946, 30 toneladas, 18000 válvulas, 5000 somas/s

Page 5: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Histórico do Computador

2a GERAÇÃO – transistores 1947

o – TX-0, 1957

o – PDP-1, Digital, 1o computador comercial

3a GERAÇÃO – circuitos integrados 1958

o – IBM 360, 1965

o – PDP-11, sucesso universitário

Page 6: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Histórico do Computador

4a GERAÇÃO – microprocessadores 1970:

o Intel 4004, 1971, 4 bits

o Intel 8008, 1972

o Altair 8800, 1974, montado em kits

o Apple, 1976, TV+Teclado, BASIC escrito por Bill Gates

o IBM-PC, 1981, computador pessoal, (projeto aberto, processador 8088

Intel,

o 16 bits, 4.77 MHz, 16 kb RAM, US$ 4400. )

Page 7: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Histórico do Computador

5a GERAÇÃO:

o Inteligência artificial

• – reconhecimento de voz

• – sistemas inteligentes

• – redes neurais

• – Robótica

o Redes de Alta Velocidade

o Escala de Integração

• ULSI: Ultra Large Scale Integration

Page 8: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Histórico do Computador

6a GERAÇÃO:

o Computação Distribuída

o Computação nas Nuvens

o Computação em Grade

o Computação Móvel

o Computação Ubíqua

o Realidade Aumentada

Page 9: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Histórico do Computador

Arquitetura Básica:

• Internamente os computadores modernos podem ser caracterizados por trêspartes distintas, a unidade central de processamento (UCP), a memória(MEM) e os dispositivos de entrada e saída (E/S), conforme esquema naFigura abaixo:

Page 10: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

• A programação de um sistema computacional pode serresumida em 3 passos básicos

Algoritmos

Page 11: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Programação de um sistema computacional

• Exibir a média de 2 números

• Exibir se o aluno foi aprovado ou reprovado

Page 12: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

• Exibir se o aluno foi aprovado ou reprovado

Programação de um sistema computacional

Page 13: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Algoritmos

• Problema da Torre de Hanói

– Seja a seguinte situação:

• deve-se mover todos os discos do primeiro eixo para o terceiro mantendo-se a ordem original

• em cada movimento, pode-se mover apenas um disco

• um disco nunca poderá ser sobreposto por outro maior

Page 14: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Algoritmos

• Remova o disco menor para o terceiro eixo

Page 15: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Algoritmos

• Remova o disco médio para o segundo eixo

Page 16: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Algoritmos

• Retire o disco menor do terceiro disco e o coloque no eixo central.

Page 17: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Algoritmos

• Remova o disco maior do primeiro eixo e o coloque no terceiro eixo

Page 18: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Algoritmos

• Remova o disco menor do eixo central e o coloque no primeiro eixo.

Page 19: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Algoritmos

• Remova o disco médio e o coloque no terceiro eixo.

Page 20: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Algoritmos

• Remova o disco menor do primeiro eixo e o coloque no terceiro eixo.

Page 21: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Algoritmos

Sequência de passos completa:

• Passo 1: mova disco menor para terceiro eixo

• Passo 2: mova disco médio para segundo eixo

• Passo 3: mova disco menor para segundo eixo

• Passo 4: mova disco maior para terceiro eixo

• Passo 5: mova disco menor para primeiro eixo

• Passo 6: mova disco médio para terceiro eixo

• Passo 7: mova disco menor para terceiro eixo

Page 22: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

A criação de um algoritmo é um exercício de criatividade

(conhecimento) e experiência (técnica e prática)

O que é Programação? = ABSTRAÇÃO!

A realidade é complexa e rica em detalhes!

Abstração = Operação mental que observa a realidade e captura

apenas os aspectos relevantes para um contexto!

Algoritmos

Page 23: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Realidade

Algoritmos

Page 24: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

A tarefa de programar sistemas computacionais envolve oexercício constante da abstração da realidade e sua codificaçãoem uma linguagem de programação

RealidadeRealidade

Sistema de Locadora de Veículo

Abstração+

Programação

Algoritmos

Page 25: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Programação de um Sistema Computacional

Unidade de entrada: em que ocorre a entrada de dados. Ex.: teclado,

mouse.

Unidade de saída: há a saída de informações. Ex.: monitor,

impressora.

Unidade de Processamento Central: responsável pelo processamento

das informações e alocação de recursos.

Memória: armazenamento de dados (RAM, HD, ROM, Cache).

Page 26: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Lógica

• Pense em soluções para os problemas (7 minutos)

1. Uma lesma deve subir um poste de 10m de altura. De dia sobe 2m e ànoite desce 1m. Em quantos dias atingirá o topo do poste?

2. Três gatos comem três ratos em três minutos. Cem gatos comem cemratos em quantos minutos?

3. Se um bezerro pesa 75 kg mais meio bezerro, quanto pesa um bezerrointeiro?

4. Qual o próximo número da sequência 7,8,10,13,17,?

5. Um pai de 80kg e suas 2 filhas (40kg cada), precisam sair de uma ilhacom um barco. Porém a capacidade do barco é de 80kg. Como farãopara sair da ilha?

6. Usando uma jangada, um camponês precisa atravessar uma cabra, umleão e um fardo de capim para a outra margem do rio. A jangada só temlugar para ele e mais outra coisa. O que ele deve fazer para atravessar orio com seus pertences intactos?

Page 27: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Respostas

1. 9(nove) dias. No nono dia a lesma sobe 2(dois) metros, atinge o topo e

evidentemente não desce 1 metro

2. 3 (três) minutos

3. 150 (cento e cinquenta) kg

4. 22

5. Vão as duas filhas. Uma delas volta. O pai sai. A outra filha volta. As duas filhas saem

juntas.

6. Primeiro leve a cabra, volte e pegue o capim; deixe o capim e leve a cabra de

volta; deixe a cabra e leve o leão, depois é só voltar e pegar a cabra.

Lógica

Page 28: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Proposição é um enunciado verbal, ao qual deve ser atribuído, sem ambiguidade, um valor lógico verdadeiro (V) ou falso (F).

Exemplos de proposições:

• Adelson Felipe é professor (V) • 3 + 5 = 10 (F) • 5 < 8 (V)

Lógica

Page 29: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Linearização de Expressões

. • Para a construção de algoritmos que realizam cálculomatemático, todas as expressões aritméticas devem serlinearizadas, ou seja, colocadas em linhas ser linearizadas, ouseja, colocadas em linhas, devendo também ser feito omapeamento dos operadores da aritmética tradicional paraos do Português estruturado

Page 30: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Linearização de Expressões

Page 31: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Operadores Aritméticos

Page 32: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Exercícios

• Escreva as expressões abaixo na forma na sintaxe doPortuguês Estruturado.

Page 33: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Exercícios

• Escreva as expressões abaixo na forma na formaconvencional.

Page 34: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Operadores Lógicos

• Os operadores relacionais realizam a comparação entre doisoperandos ou duas expressões e resultam em valores lógicos(VERDADEIRO ou FALSO).

Page 35: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Tabela Verdade

• Mostra os resultados das aplicações dos operadores lógicosconforme os valores dos operadores envolvidos.

Page 36: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Exemplo:(2+5>4) e (3<>3) resulta FALSO, pois :VERDADEIRO e FALSO resulta FALSO.

Tabela Verdade

Page 37: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Tabela Verdade

• Resolva as expressões lógicas determinando se a expressão é VERDADEIRA ou FALSA:

1. 2 > 3

2. (6<8) ou (3>7)

3. Não (2<3)

4. (5>=6 ou 6<7 ou não (a+5-6=8) {onde a = 5}

5. (34>9 e 5+u = 34) ou (5=15/3 e 8>12 = ((u=29) e 8>12) { onde u= 29}

Page 38: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Modularização

• É a divisão de uma expressão em partes proporcionando maior

compreensão e definindo prioridades para a resolução da mesma.

• Utilizaremos somente parêntesis “()” para modularização.

• Podemos ter parêntesis dentro de parênteses, como serial os colchetes e

chaves na matemática.

Page 39: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Modularização

• Os parênteses indicam quais sub expressões, dentro de uma expressão,

serão executados primeiro.

• A princípio, a execução é da esquerda para direita, mas além dos

parênteses, existem prioridades entre os operadores envolvidos na

expressão.

Page 40: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Tabela de Prioridades

• Exemplo:

• (2 + 2)/2

• 2 + 2/2

Page 41: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Tabela de Prioridades

Exemplo

▫ (2>3) ou (3<2) e (2<3)

▫ (2>3) e (3<2) ou (2<3)

Page 42: Algoritmos Lógica e Programação - Cloud Object Storage · uma lista de instruções. –Os computadores podem ser mecânicos (computador analógico) ... 3a GERAÇÃO –circuitos

Dúvidas