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

Post on 08-Nov-2018

217 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Algoritmos Lógica e Programação

2016

Prof. Me. Adelson Felipe Dias NogueiraE-mail: adelson.nogueira@pitagoras.com.br

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).

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

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

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

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. )

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

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

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:

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

Algoritmos

Programação de um sistema computacional

• Exibir a média de 2 números

• Exibir se o aluno foi aprovado ou reprovado

• Exibir se o aluno foi aprovado ou reprovado

Programação de um sistema computacional

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

Algoritmos

• Remova o disco menor para o terceiro eixo

Algoritmos

• Remova o disco médio para o segundo eixo

Algoritmos

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

Algoritmos

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

Algoritmos

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

Algoritmos

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

Algoritmos

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

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

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

Realidade

Algoritmos

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

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).

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?

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

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

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

Linearização de Expressões

Operadores Aritméticos

Exercícios

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

Exercícios

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

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).

Tabela Verdade

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

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

Tabela Verdade

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}

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.

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.

Tabela de Prioridades

• Exemplo:

• (2 + 2)/2

• 2 + 2/2

Tabela de Prioridades

Exemplo

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

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

Dúvidas

top related