Algoritmos Lógica e Programação
2016
Prof. Me. Adelson Felipe Dias NogueiraE-mail: [email protected]
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