Fundamentos da
Construção de
Algoritmos e programas
Algoritmos e Lógica de Programação
Prof. Messias R. Batista - @mrafaelbatista
professor@mrafaelbatista.com.br - www.mrafaelbatista.com.br
Agenda
❏ Arquitetura básica do
computador
❏ Lógica
❏ Lógica de Programação
❏ Algoritmos
❏ Exercícios (homework)
❏ Lógica
❏ Lógica de Programação
❏ Algoritmos
❏ Exercícios (homework)
Arquitetura Básica do
Computador
Arquitetura básica (Von Neumann)
“A UCP (ou CPU da sigla em inglês, Central Processing Unit)
é um conjunto de dispositivos eletrônicos responsável pelas
operações de processamento referentes aos cálculos
lógicos e matemáticos”
Unidade Central de Processamento (UCP)
❏ Unidade Aritmética e Lógica (UAL) responsável por realizar cálculos
matemáticos mais complexos de maneira mais rápida.
❏ Registradores Memória temporária para armazenar dados a serem
processados
❏ Unidade de Controle (UC) Controla o fluxo de dados na UCP: busca na
memória, chamadas da UAL, controle geral das tarefas da UCP.
❏ Relógio Gerador de pulsos que determinam um ciclo de tarefas da UCP. Em
cada ciclo (ou pulso) a UCP realiza uma tarefa, assim quanto maior a
frequência do relógio da UCP, mais tarefas esta pode realizar num mesmo
intervalo de tempo.
UCP | Composição
Memória
“A memória é o dispositivo responsável por armazenar
dados. Os vários tipos de memória no computador são
classificadas de maneira geral de acordo com a sua
capacidade de leitura, escrita e volatilidade”
Memória | RAM
“RAM sigla para memória de acesso aleatório, é uma
memória em que se pode ler e escrever, mas cujo conteúdo
é perdido uma vez que o computador é desligado. É a
memória principal do computador e a mais usada pelos
aplicativos e sistema operacional”
Memória | RAM
Memória | ROM
“ROM sigla para memória somente-leitura, como o nome diz
só é possível ler seu conteúdo, mas não alterá-lo. Não se
altera se o computador é desligado”
Memória | ROM
Memória | Secundária
“Secundária são dispositivos usados para armazenar
grandes quantidades de informação em caráter não volátil.
Na maioria das vezes é muito mais lenta que a RAM.
Exemplo são os discos rígidos”
Memória | Secundária
Dispositivos de E/S (I/O)
“Os dispositivos de entrada e saída de dados (E/S) são de
suma importância pois qualquer informação que deva entrar
ou sair do computador será feita através deles. Dentre os
dispositivos de entrada podemos citar: teclado, mouse,
câmera, digitalizador”
Dispositivos de E/S (I/O)
Dúvidas?
O que é Lógica?
“[...] a lógica
estuda e ensina a
colocar ‘ordem no
pensamento’”
Toda ave é um animal
Todo pássaro é uma ave
Portanto, todo pássaro é um animal
Todo nordestino é brasileiro
João é nordestino
Portanto, João é brasileiro
Lógica
A lógica objetiva “o estudo de técnica de
formalização, dedução e análise que permitam
verificar a validade de argumentos”
Mas, o encadeamento lógico pode desenvolver
uma sentença válida ou não.
Onde podemos encontrar
lógica no nosso dia?
1. A garagem está fechada
2. O carro está dentro da
garagem
3. É preciso abrir a garagem
para depois sair com o
carro
1. Eu leio 5 livros por semana
2. Minha mãe lê 6 livros a
mais do que eu
3. Logo, minha mãe é a que
ler mais livros
Podem comentar
outros exemplos?
Lógica de Programação
Conceito
[Lógica de Programação] “significa o uso correto
das leis do pensamento, da ‘ordem da razão’ e de
processos de raciocínio e simbolização formais na
programação de computadores…”
Características
❏ Raciocínio abstrato e intangível
❏ Seres humanos são capazes de expressá-lo
❏ Utilizam-se das várias linguagens e suas convenções
❏ Uma mente treinada desenvolve lógica de programação
❏ É possível representar o pensamento em linguagens de
programação
Algoritmos
“O objetivo principal
do estudo da lógica de
programação é a
construção de
algoritmos coerentes
e válidos”
“Um algoritmo pode
ser definido como
uma sequência de
passos que visam a
atingir um objetivo
bem definido”
Algoritmos
❏ Pensar especificando uma sequência de passos
❏ Utiliza-se uma ordem de passos, lógica
❏ Exemplo comum: uma receita de bolo
❏ Algoritmos devem apresentar ações claras e precisas
❏ Algoritmos fixam um padrão de comportamento
Algoritmos Eficientes | Características
❏ Definir ações simples e sem ambiguidade;
❏ Organizar as ações de forma ordenada;
❏ Estabelecer as ações dentro de uma sequência finita de
passos.
O que faz um Algoritmo?
❏ Ler e escrever dados;
❏ Avaliar expressões algébricas, relacionais e lógicas;
❏ Tomar decisões com base nos resultados das
expressões avaliadas;
❏ Repetir um conjunto de ações de acordo com uma
condição;
Exemplo
Algoritmo 1 Troca de pneu do carro.
1. desligar o carro
2. pegar as ferramentas (chave e macaco)
3. pegar o estepe
4. suspender o carro com o macaco
5. desenroscar os 4 parafusos do pneu furado
6. colocar o estepe
7. enroscar os 4 parafusos
8. baixar o carro com o macaco
9. guardar as ferramentas
“Algoritmizando” a Lógica
“Um algoritmo tem por objetivo representar
mais fielmente o raciocínio envolvido na
Lógica de Programação e, dessa forma,
permite-nos abstrair de uma série de
detalhes computacionais, que podem ser
acrescentados mais tarde”
Trocar a
lâmpada
1. Pegar uma escada;
2. Posicionar a escada
embaixo da lâmpada;
3. Buscar uma lâmpada nova;
4. Subir na escada;
5. Retirar a lâmpada velha;
6. Colocar a lâmpada nova.
Trocar a lâmpada de forma robusta
1. Acionar o interruptor;
2. Se a lâmpada não acender, então:
a. Pegar uma escada;
b. Posicionar a escada embaixo da lâmpada;
c. Buscar uma lâmpada nova;
d. Subir na escada;
e. Retirar a lâmpada velha;
f. Colocar a lâmpada nova.
Não podemos esquecer...
❏ Passos sequenciais bem definidos;
❏ Pode haver estruturas de controle ou repetição;
❏ Pode haver estruturas de limitação ou stop da execução;
“Tal atividade é
realizada pelos
programadores, que
podemos chamar de
construtores de
algoritmos”.
Vamos aos exercícios!
Fundamentos da
Construção de
Algoritmos e programas
Algoritmos e Lógica de Programação
Prof. Messias R. Batista - @mrafaelbatista
professor@mrafaelbatista.com.br - www.mrafaelbatista.com.br

Aula 01.3 - Fundamentos da Construção de Algoritmos e Programas

  • 1.
    Fundamentos da Construção de Algoritmose programas Algoritmos e Lógica de Programação Prof. Messias R. Batista - @mrafaelbatista professor@mrafaelbatista.com.br - www.mrafaelbatista.com.br
  • 2.
    Agenda ❏ Arquitetura básicado computador ❏ Lógica ❏ Lógica de Programação ❏ Algoritmos ❏ Exercícios (homework) ❏ Lógica ❏ Lógica de Programação ❏ Algoritmos ❏ Exercícios (homework)
  • 3.
  • 4.
  • 5.
    “A UCP (ouCPU da sigla em inglês, Central Processing Unit) é um conjunto de dispositivos eletrônicos responsável pelas operações de processamento referentes aos cálculos lógicos e matemáticos” Unidade Central de Processamento (UCP)
  • 6.
    ❏ Unidade Aritméticae Lógica (UAL) responsável por realizar cálculos matemáticos mais complexos de maneira mais rápida. ❏ Registradores Memória temporária para armazenar dados a serem processados ❏ Unidade de Controle (UC) Controla o fluxo de dados na UCP: busca na memória, chamadas da UAL, controle geral das tarefas da UCP. ❏ Relógio Gerador de pulsos que determinam um ciclo de tarefas da UCP. Em cada ciclo (ou pulso) a UCP realiza uma tarefa, assim quanto maior a frequência do relógio da UCP, mais tarefas esta pode realizar num mesmo intervalo de tempo. UCP | Composição
  • 7.
    Memória “A memória éo dispositivo responsável por armazenar dados. Os vários tipos de memória no computador são classificadas de maneira geral de acordo com a sua capacidade de leitura, escrita e volatilidade”
  • 8.
    Memória | RAM “RAMsigla para memória de acesso aleatório, é uma memória em que se pode ler e escrever, mas cujo conteúdo é perdido uma vez que o computador é desligado. É a memória principal do computador e a mais usada pelos aplicativos e sistema operacional”
  • 9.
  • 10.
    Memória | ROM “ROMsigla para memória somente-leitura, como o nome diz só é possível ler seu conteúdo, mas não alterá-lo. Não se altera se o computador é desligado”
  • 11.
  • 12.
    Memória | Secundária “Secundáriasão dispositivos usados para armazenar grandes quantidades de informação em caráter não volátil. Na maioria das vezes é muito mais lenta que a RAM. Exemplo são os discos rígidos”
  • 13.
  • 14.
    Dispositivos de E/S(I/O) “Os dispositivos de entrada e saída de dados (E/S) são de suma importância pois qualquer informação que deva entrar ou sair do computador será feita através deles. Dentre os dispositivos de entrada podemos citar: teclado, mouse, câmera, digitalizador”
  • 15.
  • 16.
  • 17.
    O que éLógica?
  • 18.
    “[...] a lógica estudae ensina a colocar ‘ordem no pensamento’”
  • 19.
    Toda ave éum animal Todo pássaro é uma ave Portanto, todo pássaro é um animal
  • 20.
    Todo nordestino ébrasileiro João é nordestino Portanto, João é brasileiro
  • 21.
    Lógica A lógica objetiva“o estudo de técnica de formalização, dedução e análise que permitam verificar a validade de argumentos” Mas, o encadeamento lógico pode desenvolver uma sentença válida ou não.
  • 22.
  • 23.
    1. A garagemestá fechada 2. O carro está dentro da garagem 3. É preciso abrir a garagem para depois sair com o carro
  • 24.
    1. Eu leio5 livros por semana 2. Minha mãe lê 6 livros a mais do que eu 3. Logo, minha mãe é a que ler mais livros
  • 25.
  • 26.
  • 27.
    Conceito [Lógica de Programação]“significa o uso correto das leis do pensamento, da ‘ordem da razão’ e de processos de raciocínio e simbolização formais na programação de computadores…”
  • 28.
    Características ❏ Raciocínio abstratoe intangível ❏ Seres humanos são capazes de expressá-lo ❏ Utilizam-se das várias linguagens e suas convenções ❏ Uma mente treinada desenvolve lógica de programação ❏ É possível representar o pensamento em linguagens de programação
  • 29.
  • 30.
    “O objetivo principal doestudo da lógica de programação é a construção de algoritmos coerentes e válidos”
  • 31.
    “Um algoritmo pode serdefinido como uma sequência de passos que visam a atingir um objetivo bem definido”
  • 32.
    Algoritmos ❏ Pensar especificandouma sequência de passos ❏ Utiliza-se uma ordem de passos, lógica ❏ Exemplo comum: uma receita de bolo ❏ Algoritmos devem apresentar ações claras e precisas ❏ Algoritmos fixam um padrão de comportamento
  • 33.
    Algoritmos Eficientes |Características ❏ Definir ações simples e sem ambiguidade; ❏ Organizar as ações de forma ordenada; ❏ Estabelecer as ações dentro de uma sequência finita de passos.
  • 34.
    O que fazum Algoritmo? ❏ Ler e escrever dados; ❏ Avaliar expressões algébricas, relacionais e lógicas; ❏ Tomar decisões com base nos resultados das expressões avaliadas; ❏ Repetir um conjunto de ações de acordo com uma condição;
  • 35.
    Exemplo Algoritmo 1 Trocade pneu do carro. 1. desligar o carro 2. pegar as ferramentas (chave e macaco) 3. pegar o estepe 4. suspender o carro com o macaco 5. desenroscar os 4 parafusos do pneu furado 6. colocar o estepe 7. enroscar os 4 parafusos 8. baixar o carro com o macaco 9. guardar as ferramentas
  • 36.
  • 37.
    “Um algoritmo tempor objetivo representar mais fielmente o raciocínio envolvido na Lógica de Programação e, dessa forma, permite-nos abstrair de uma série de detalhes computacionais, que podem ser acrescentados mais tarde”
  • 38.
    Trocar a lâmpada 1. Pegaruma escada; 2. Posicionar a escada embaixo da lâmpada; 3. Buscar uma lâmpada nova; 4. Subir na escada; 5. Retirar a lâmpada velha; 6. Colocar a lâmpada nova.
  • 39.
    Trocar a lâmpadade forma robusta 1. Acionar o interruptor; 2. Se a lâmpada não acender, então: a. Pegar uma escada; b. Posicionar a escada embaixo da lâmpada; c. Buscar uma lâmpada nova; d. Subir na escada; e. Retirar a lâmpada velha; f. Colocar a lâmpada nova.
  • 40.
    Não podemos esquecer... ❏Passos sequenciais bem definidos; ❏ Pode haver estruturas de controle ou repetição; ❏ Pode haver estruturas de limitação ou stop da execução;
  • 41.
    “Tal atividade é realizadapelos programadores, que podemos chamar de construtores de algoritmos”.
  • 42.
  • 43.
    Fundamentos da Construção de Algoritmose programas Algoritmos e Lógica de Programação Prof. Messias R. Batista - @mrafaelbatista professor@mrafaelbatista.com.br - www.mrafaelbatista.com.br