Aula 01
Introdução a Algoritmos
Ênio Prates Vasconcelos Filho
Faculdades Alfa
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Tópicos
Δ O que é um Algoritmo;
Δ Por que criamos algoritmos?
Δ Tipos de Algoritmos;
Δ Linguagens de Baixo x Alto nível;
Δ Exemplos;
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
O que é um Algoritmo?
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
O que é um algoritmo?
Δ Sequência finita de instruções, ordenadas de forma lógica para a resolução
de uma determinada tarefa ou problema;
Δ Não necessariamente envolve aspectos computacionais. Ex.:
• Uma receita de bolo,
• Trocar um pneu de carro,
• Trocar uma lâmpada...;
Δ Um algoritmo também não representa, necessariamente, um programa
de computador e sim os passos necessários para realizar uma tarefa ou
solucionar um problema, seja de que área for.
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
O que é um algoritmo?
Δ Exemplo: Sequência para fritar um ovo:
1. Retirar o ovo da geladeira;
2. Colocar a frigideira no fogo;
3. Colocar óleo;
4. Esperar até o óleo ficar quente;
5. Quebrar o ovo separando a casca;
6. Colocar o conteúdo do ovo na frigideira;
7. Esperar um minuto;
8. Retirar o ovo da frigideira;
9. Apagar o fogo;
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
O que é um algoritmo?
Δ Tal sequência é um algoritmo? Vejamos...
• A sequência anterior possui instruções finitas e ordenadas?
o SIM. 9 instruções ordenadas;
o O início de uma instrução depende da conclusão de uma instrução anterior;
Δ O objetivo da sequência foi atingido?
• SIM. O ovo foi frito;
Δ Logo, a sequência anterior é um algoritmo!
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
O que é um Algoritmo?
Δ Todo algoritmo precisa possuir as seguintes características:
• Entrada: zero ou mais valores de entrada;
• Saída: pelo menos um valor é produzido;
• Clareza ou Definição: cada passo/instrução/etapa de um algoritmo
deve ser claro e não ambíguo;
• Efetividade: cada passo/instrução/etapa de um algoritmo deve ser
executável;
• Finitude: o algoritmo deve ter um conjunto finito de passos.
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
O que é um algoritmo?
⚫ Exercício
– Ordene e estruture uma sequência para a realização de uma
ligação telefônica em um orelhão.
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
O que é um algoritmo?
Δ Uma possível solução:
1. Tirar o telefone do gancho;
2. Ouvir o sinal de linha;
3. Introduzir o cartão no orelhão;
4. Teclar o número desejado;
5. Conversar;
6. Desligar;
7. Tirar o cartão;
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
O que é um algoritmo?
Δ A solução anterior... mais robusta:
1. Tirar o telefone do gancho;
2. Ouvir o sinal de linha;
3. Introduzir o cartão no orelhão;
4. Teclar o número desejado;
5. Se chamar e alguém atender...
1. Conversar;
2. Desligar;
3. Retirar o cartão;
6. Senão...
1. Desligar;
2. Voltar para a instrução 1;
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Desafio
Δ Escreva um algoritmo que ajude o homem do barco a levar o lobo, a ovelha
e a caixa de verduras para o outro lado do lago. Utilize a descrição narrativa
para representar o algoritmo. Lembre-se:
• Lobos comem ovelhas e ovelhas comem as verduras quando o homem está na
outra margem!
• O Barco tem apenas dois lugares;
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Desafio
Δ Solução:
1. Pega a ovelha
2. Vai para a outra margem
3. Deixa a ovelha
4. Volta a margem inicial
5. Pega a caixa de verduras
6. Vai para a outra margem
7. Deixa a caixa de verduras e pega a ovelha
8. Volta a margem inicial
9. Deixa a ovelha e pega o lobo
10. Vai para a outra margem
11. Deixa o lobo
12. Volta a margem inicial
13. Pega a ovelha
14. Vai para a outra margem
15. Deixa a ovelha
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Por que criamos algoritmos?
Δ A linguagem natural não pode ser
interpretada por computadores;
Δ Computadores são projetados para
executar tarefas bem definidas a partir
de instruções;
Δ Para desenvolver software, utilizamos
linguagens de programação...
Δ A linguagem algorítmica é similar a
uma linguagem de programação;
Δ Logo, aprendendo a criar algoritmos,
estamos aptos a programar em
qualquer linguagem de programação;
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Por que programar?
Δ No fundo, programar é ensinar um computador a resolver problemas!
Δ Mesmo que você não seja um programador no futuro, programar ajuda a
despertar as seguintes habilidades:
• Ajuda a encontrar a solução para problemas;
• Ensina a persistir;
• Desperta para o mundo;
• Estimula a criatividade;
• Desperta a paixão em aprender;
• Ensina a trabalhar coletivamente;
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de algoritmos
⚫ Descrição Narrativa;
⚫ Fluxograma;
⚫ Pseudocódigo, Português Estruturado
ou Portugol;
SUBJETIVIDADE
PRECISÃO
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de algoritmos
Δ Descrição Narrativa
• Utiliza-se preferencialmente um verbo por frase;
• Formada por frases curtas e simples;
• É objetiva;
• Evita palavras com sentido dúbio;
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de algoritmos
Δ Descrição Narrativa – Exemplo:
• Dobro de um número (dobro = número x 2)
oDigitar um número;
oGravar em uma variável;
oMultiplicar o número digitado por 2;
oGravar o resultado em outra variável;
oMostrar o resultado da operação;
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de algoritmos
Δ Fluxograma
• Descrevem o fluxo de ação de um determinado trabalho lógico;
• Usa símbolos convencionais, permitindo poucas variações;
• Representados por símbolos geométricos;
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de algoritmos
Δ Fluxograma – Conjunto de Símbolos:
INÍCIO OU FIM DE
ALGORITMO
CÁLCULO OU
ATRIBUIÇÃO DE VALOR
ENTRADA DE
DADOS
SAÍDA DE DADOS
DECISÃO
FLUXO DE DADOS
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de algoritmos
Δ Exemplo:
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de algoritmos
Δ Exemplo: Faça um algoritmo que calcula e apresenta a multiplicação entre
dois números.
INÍCIO
Calcule a Multiplicação
M = N1 * N2
Leia Notas
N1, N2
Apresente Resultado:
M FIM
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de algoritmos
Δ Exercício: Faça um algoritmo (narrativa) que calcula a média de três notas
de um determinado aluno e informa se o aluno está aprovado ou
reprovado.
• O aluno estará aprovado se sua média for maior ou igual a 6;
Δ Solução:
• Lê as Notas N1, N2 e N3;
• Calcula a MÉDIA entre N1, N2 e N3;
• Se MÉDIA é maior que 6,
oO Aluno está aprovado;
• Senão,
oO Aluno está Reprovado;
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de algoritmos
Δ Exercício: Faça um algoritmo (fluxograma) que calcula a média de três notas
de um determinado aluno e informa se o aluno está aprovado ou
reprovado.
• O aluno estará aprovado se sua média for maior ou igual a 6;
INÍCIO
CALCULE A MÉDIA
MEDIA = (N1 + N2 + N3) / 3
LEIA NOTAS:
N1, N2, N3
APROVADO
FIM
MEDIA
>= 6
SIM NÃO
REPROVADO
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de algoritmos
Δ Português Estruturado (Portugol)
• Linguagem mais restrita que o português em linguagem natural;
• Simplificação extrema do português;
• Significados bem definidos para todos os termos utilizados nas instruções;
• Possui um conjunto de palavras e regras específicas (sintaxe da linguagem);
• Normalmente as implementações são feitas em papel, escritas a mão;
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de algoritmos
Δ Forma básica de um algoritmo em portugol:
• ALGORITMO
oDECLARE/DEFINA
• FIM_ALGORITMO
VARIÁVEIS
INSTRUÇÕES
TIPOS DE DADOS
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de algoritmos
Δ Macarrão Instantâneo:
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de algoritmos
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de algoritmos
Δ Exemplo: Faça um algoritmo que calcula e apresenta a multiplicação entre
dois números.
ALGORITMO
DECLARE N1, N2, M NUMÉRICO
ESCREVA “Digite dois números”
LEIA N1, N2
M <- N1 * N2
ESCREVA “MULTIPLICAÇÃO = ” , M
FIM_ALGORITMO
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de Algoritmos
Δ Exemplo: Faça um algoritmo que calcula e apresenta a média entre quatro
números.
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
O computador não nos entende ...
Δ O computador não entende linguagem natural, pseudocódigo ou
fluxograma.
Δ Problema de comunicação !
Fala alguma coisa
!
011011011
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
O computador não nos entende ...
PROBLEMA
SOLUÇÃO
ALGORITMO
Linguagens de Programação:
JAVA, PHP, C, C++, C#, RUBY, COBOL, DELPHI .....
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Computadores conversam ... ?
• Qual linguagem os computadores entendem ?
• Qual o problema com a linguagem de máquina ?
• Palavras são mais fáceis de lembrar do que sequencias de zeros e uns.
• Qual instrução é mais fácil de ler:
AL=1;
mov $1, AL
10110000
01100001
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Linguagens de baixo nível
movl $5, %eax
movl $1, %edx
.L4:
imull %eax, %edx
decl %eax
testl %eax, $0
jg .L4
Coloque 5 em eax
Coloque 1 em edx
Multiplique eax por edx e coloque o
resultado em edx
Subtraia 1 de eax
Teste se eax é 0
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Linguagens de Alto nível
Δ Utiliza uma linguagem cuja sintaxe é mais próxima da linguagem natural;
Δ Principais características:
• Alta legibilidade;
• Independente da arquitetura do computador (alta portabilidade);
• Fácil manipulação (uso de abstrações);
• Maior confiabilidade;
• Maior produtividade do programador;
• Usada por não-especialistas.
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Linguagens de Alto nível - C
#include<stdio.h>
int main()
{
int n1, n2, p3; //n1 = numero 1 n2 = numero 2 p3 = produto
printf("Sejam Bem Vindos!!n");
printf("Digite o primeiro Numeron");
scanf("%d",&n1);
printf("Digite o Segundo Numeron");
scanf("%d",&n2);
p3=n2*n1 ;
printf("O Resultado eh: %dn",p3);
}
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Mas o computador não entende só zeros e uns ... ?
Δ Linguagem de alto nível permite uma maior produtividade ao programador
e uma maior legibilidade, confiabilidade e portabilidade aos programas
desenvolvidos.
Δ Linguagem de máquina é a linguagem que o computador entende e
consegue executar.
Δ Linguagem de montagem usa mnemônicos para facilitar um pouco o
trabalho do programador, mas apresentam os mesmos fundamentos da
linguagem de máquina.
TRADUÇÃO
I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS - 02/2015 – ÊNIO FILHO
Resumindo
HARDWARE
SISTEMA OPERACIONAL
Compilador ou
Interpretador
Linguagem
de máquina
Linguagem
de alto nível
DÚVIDAS?
Contatos:
E-mail: enio.filho@alfa.br
Skype: eniopvf
Twitter: eniopvf
Bibliografia:
• MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lógica para
desenvolvimento de programação de computadores. 18ª. ed. São Paulo: Érica, 2006. 236 p. ISBN
857194718;
• FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de programação: a construção
de algoritmos e estruturas de dados. 3ª. ed. São Paulo (SP): Pearson Prentice Hall, 2005. 195 p. ISBN
9788576050247;

Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf

  • 1.
    Aula 01 Introdução aAlgoritmos Ênio Prates Vasconcelos Filho Faculdades Alfa
  • 2.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Tópicos Δ O que é um Algoritmo; Δ Por que criamos algoritmos? Δ Tipos de Algoritmos; Δ Linguagens de Baixo x Alto nível; Δ Exemplos;
  • 3.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO O que é um Algoritmo?
  • 4.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO O que é um algoritmo? Δ Sequência finita de instruções, ordenadas de forma lógica para a resolução de uma determinada tarefa ou problema; Δ Não necessariamente envolve aspectos computacionais. Ex.: • Uma receita de bolo, • Trocar um pneu de carro, • Trocar uma lâmpada...; Δ Um algoritmo também não representa, necessariamente, um programa de computador e sim os passos necessários para realizar uma tarefa ou solucionar um problema, seja de que área for.
  • 5.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO O que é um algoritmo? Δ Exemplo: Sequência para fritar um ovo: 1. Retirar o ovo da geladeira; 2. Colocar a frigideira no fogo; 3. Colocar óleo; 4. Esperar até o óleo ficar quente; 5. Quebrar o ovo separando a casca; 6. Colocar o conteúdo do ovo na frigideira; 7. Esperar um minuto; 8. Retirar o ovo da frigideira; 9. Apagar o fogo;
  • 6.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO O que é um algoritmo? Δ Tal sequência é um algoritmo? Vejamos... • A sequência anterior possui instruções finitas e ordenadas? o SIM. 9 instruções ordenadas; o O início de uma instrução depende da conclusão de uma instrução anterior; Δ O objetivo da sequência foi atingido? • SIM. O ovo foi frito; Δ Logo, a sequência anterior é um algoritmo!
  • 7.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO O que é um Algoritmo? Δ Todo algoritmo precisa possuir as seguintes características: • Entrada: zero ou mais valores de entrada; • Saída: pelo menos um valor é produzido; • Clareza ou Definição: cada passo/instrução/etapa de um algoritmo deve ser claro e não ambíguo; • Efetividade: cada passo/instrução/etapa de um algoritmo deve ser executável; • Finitude: o algoritmo deve ter um conjunto finito de passos.
  • 8.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO O que é um algoritmo? ⚫ Exercício – Ordene e estruture uma sequência para a realização de uma ligação telefônica em um orelhão.
  • 9.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO O que é um algoritmo? Δ Uma possível solução: 1. Tirar o telefone do gancho; 2. Ouvir o sinal de linha; 3. Introduzir o cartão no orelhão; 4. Teclar o número desejado; 5. Conversar; 6. Desligar; 7. Tirar o cartão;
  • 10.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO O que é um algoritmo? Δ A solução anterior... mais robusta: 1. Tirar o telefone do gancho; 2. Ouvir o sinal de linha; 3. Introduzir o cartão no orelhão; 4. Teclar o número desejado; 5. Se chamar e alguém atender... 1. Conversar; 2. Desligar; 3. Retirar o cartão; 6. Senão... 1. Desligar; 2. Voltar para a instrução 1;
  • 11.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Desafio Δ Escreva um algoritmo que ajude o homem do barco a levar o lobo, a ovelha e a caixa de verduras para o outro lado do lago. Utilize a descrição narrativa para representar o algoritmo. Lembre-se: • Lobos comem ovelhas e ovelhas comem as verduras quando o homem está na outra margem! • O Barco tem apenas dois lugares;
  • 12.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Desafio Δ Solução: 1. Pega a ovelha 2. Vai para a outra margem 3. Deixa a ovelha 4. Volta a margem inicial 5. Pega a caixa de verduras 6. Vai para a outra margem 7. Deixa a caixa de verduras e pega a ovelha 8. Volta a margem inicial 9. Deixa a ovelha e pega o lobo 10. Vai para a outra margem 11. Deixa o lobo 12. Volta a margem inicial 13. Pega a ovelha 14. Vai para a outra margem 15. Deixa a ovelha
  • 13.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Por que criamos algoritmos? Δ A linguagem natural não pode ser interpretada por computadores; Δ Computadores são projetados para executar tarefas bem definidas a partir de instruções; Δ Para desenvolver software, utilizamos linguagens de programação... Δ A linguagem algorítmica é similar a uma linguagem de programação; Δ Logo, aprendendo a criar algoritmos, estamos aptos a programar em qualquer linguagem de programação;
  • 14.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Por que programar? Δ No fundo, programar é ensinar um computador a resolver problemas! Δ Mesmo que você não seja um programador no futuro, programar ajuda a despertar as seguintes habilidades: • Ajuda a encontrar a solução para problemas; • Ensina a persistir; • Desperta para o mundo; • Estimula a criatividade; • Desperta a paixão em aprender; • Ensina a trabalhar coletivamente;
  • 15.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Tipos de algoritmos ⚫ Descrição Narrativa; ⚫ Fluxograma; ⚫ Pseudocódigo, Português Estruturado ou Portugol; SUBJETIVIDADE PRECISÃO
  • 16.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Tipos de algoritmos Δ Descrição Narrativa • Utiliza-se preferencialmente um verbo por frase; • Formada por frases curtas e simples; • É objetiva; • Evita palavras com sentido dúbio;
  • 17.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Tipos de algoritmos Δ Descrição Narrativa – Exemplo: • Dobro de um número (dobro = número x 2) oDigitar um número; oGravar em uma variável; oMultiplicar o número digitado por 2; oGravar o resultado em outra variável; oMostrar o resultado da operação;
  • 18.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Tipos de algoritmos Δ Fluxograma • Descrevem o fluxo de ação de um determinado trabalho lógico; • Usa símbolos convencionais, permitindo poucas variações; • Representados por símbolos geométricos;
  • 19.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Tipos de algoritmos Δ Fluxograma – Conjunto de Símbolos: INÍCIO OU FIM DE ALGORITMO CÁLCULO OU ATRIBUIÇÃO DE VALOR ENTRADA DE DADOS SAÍDA DE DADOS DECISÃO FLUXO DE DADOS
  • 20.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Tipos de algoritmos Δ Exemplo:
  • 21.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Tipos de algoritmos Δ Exemplo: Faça um algoritmo que calcula e apresenta a multiplicação entre dois números. INÍCIO Calcule a Multiplicação M = N1 * N2 Leia Notas N1, N2 Apresente Resultado: M FIM
  • 22.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Tipos de algoritmos Δ Exercício: Faça um algoritmo (narrativa) que calcula a média de três notas de um determinado aluno e informa se o aluno está aprovado ou reprovado. • O aluno estará aprovado se sua média for maior ou igual a 6; Δ Solução: • Lê as Notas N1, N2 e N3; • Calcula a MÉDIA entre N1, N2 e N3; • Se MÉDIA é maior que 6, oO Aluno está aprovado; • Senão, oO Aluno está Reprovado;
  • 23.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Tipos de algoritmos Δ Exercício: Faça um algoritmo (fluxograma) que calcula a média de três notas de um determinado aluno e informa se o aluno está aprovado ou reprovado. • O aluno estará aprovado se sua média for maior ou igual a 6; INÍCIO CALCULE A MÉDIA MEDIA = (N1 + N2 + N3) / 3 LEIA NOTAS: N1, N2, N3 APROVADO FIM MEDIA >= 6 SIM NÃO REPROVADO
  • 24.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Tipos de algoritmos Δ Português Estruturado (Portugol) • Linguagem mais restrita que o português em linguagem natural; • Simplificação extrema do português; • Significados bem definidos para todos os termos utilizados nas instruções; • Possui um conjunto de palavras e regras específicas (sintaxe da linguagem); • Normalmente as implementações são feitas em papel, escritas a mão;
  • 25.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Tipos de algoritmos Δ Forma básica de um algoritmo em portugol: • ALGORITMO oDECLARE/DEFINA • FIM_ALGORITMO VARIÁVEIS INSTRUÇÕES TIPOS DE DADOS
  • 26.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Tipos de algoritmos Δ Macarrão Instantâneo:
  • 27.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Tipos de algoritmos
  • 28.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Tipos de algoritmos Δ Exemplo: Faça um algoritmo que calcula e apresenta a multiplicação entre dois números. ALGORITMO DECLARE N1, N2, M NUMÉRICO ESCREVA “Digite dois números” LEIA N1, N2 M <- N1 * N2 ESCREVA “MULTIPLICAÇÃO = ” , M FIM_ALGORITMO
  • 29.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Tipos de Algoritmos Δ Exemplo: Faça um algoritmo que calcula e apresenta a média entre quatro números.
  • 30.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO O computador não nos entende ... Δ O computador não entende linguagem natural, pseudocódigo ou fluxograma. Δ Problema de comunicação ! Fala alguma coisa ! 011011011
  • 31.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO O computador não nos entende ... PROBLEMA SOLUÇÃO ALGORITMO Linguagens de Programação: JAVA, PHP, C, C++, C#, RUBY, COBOL, DELPHI .....
  • 32.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Computadores conversam ... ? • Qual linguagem os computadores entendem ? • Qual o problema com a linguagem de máquina ? • Palavras são mais fáceis de lembrar do que sequencias de zeros e uns. • Qual instrução é mais fácil de ler: AL=1; mov $1, AL 10110000 01100001
  • 33.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Linguagens de baixo nível movl $5, %eax movl $1, %edx .L4: imull %eax, %edx decl %eax testl %eax, $0 jg .L4 Coloque 5 em eax Coloque 1 em edx Multiplique eax por edx e coloque o resultado em edx Subtraia 1 de eax Teste se eax é 0
  • 34.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Linguagens de Alto nível Δ Utiliza uma linguagem cuja sintaxe é mais próxima da linguagem natural; Δ Principais características: • Alta legibilidade; • Independente da arquitetura do computador (alta portabilidade); • Fácil manipulação (uso de abstrações); • Maior confiabilidade; • Maior produtividade do programador; • Usada por não-especialistas.
  • 35.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Linguagens de Alto nível - C #include<stdio.h> int main() { int n1, n2, p3; //n1 = numero 1 n2 = numero 2 p3 = produto printf("Sejam Bem Vindos!!n"); printf("Digite o primeiro Numeron"); scanf("%d",&n1); printf("Digite o Segundo Numeron"); scanf("%d",&n2); p3=n2*n1 ; printf("O Resultado eh: %dn",p3); }
  • 36.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Mas o computador não entende só zeros e uns ... ? Δ Linguagem de alto nível permite uma maior produtividade ao programador e uma maior legibilidade, confiabilidade e portabilidade aos programas desenvolvidos. Δ Linguagem de máquina é a linguagem que o computador entende e consegue executar. Δ Linguagem de montagem usa mnemônicos para facilitar um pouco o trabalho do programador, mas apresentam os mesmos fundamentos da linguagem de máquina. TRADUÇÃO
  • 37.
    I n t r o d u ç ã o a A l g o r i t m o s ALGORITMOS -02/2015 – ÊNIO FILHO Resumindo HARDWARE SISTEMA OPERACIONAL Compilador ou Interpretador Linguagem de máquina Linguagem de alto nível
  • 38.
    DÚVIDAS? Contatos: E-mail: enio.filho@alfa.br Skype: eniopvf Twitter:eniopvf Bibliografia: • MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lógica para desenvolvimento de programação de computadores. 18ª. ed. São Paulo: Érica, 2006. 236 p. ISBN 857194718; • FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de programação: a construção de algoritmos e estruturas de dados. 3ª. ed. São Paulo (SP): Pearson Prentice Hall, 2005. 195 p. ISBN 9788576050247;