Buscar

Apostila Programação - 4

Prévia do material em texto

Lógica de Programação e 
Algoritmos
Aêda Sousa
aedasousa@gmail.com
25/08/2017
1
Agenda
O que veremos nesta aula ?
➢ Representações de Algoritmos
➢ Fluxograma Convencional
➢ Pseudocódigo
➢ Linguagens de Programação
➢ Compilador 
➢ Interpretador
25/08/2017
Aula Anterior
• Lógica
• Lógica de Programação
• Algoritmos – Descrição Narrativa
25/08/2017
Para programar você precisa aprender a pensar de uma forma 
“burra”. E se expressar também...
Ou seja, precisamos aprender a pensar de uma forma lógica, em 
forma de instruções. Como se falássemos com um robô.
25/08/2017
Este é o primeiro passo para se dominar a arte de 
programar!
Primeiro precisamos entender o problema, depois 
resolvê-lo.
25/08/2017
Algoritmos
Soma de dois números...
• Escreva o primeiro número no retângulo A
• Escreva o segundo número no retângulo B
• Some o número do retângulo A com o número do retângulo B e coloque o resultado em C.
25/08/2017
3 5 8
Algoritmos
Passos de um Algoritmo
• Entrada de dados – dados de entradas do algoritmo
• Processamento de dados – procedimentos para chegar ao resultado final
• Saída de dados – os dados já processados
25/08/2017
3 5 8
Entrada de Dados
Processamento 
de Dados
Saída de Dados
Algoritmos
• Todo o algoritmo possui pelo menos um resultado.
• Os passos devem ser precisos, não dando margem a ambiguidades. 
• Um algoritmo útil deve terminar em um tempo finito.
25/08/2017
Algoritmos
Características Importantes
➢ Finitude: Um algoritmo tem que terminar com um número finito de passos.
➢ Definição: Cada passo do algoritmo deve ser definido com precisão.
➢ Entrada: Um algoritmo pode ter zero ou mais entradas.
➢ Saída: Um algoritmo tem uma ou mais saídas.
25/08/2017
Algoritmos
Representação
➢ Descrição Narrativa: uso de
português
➢ Fluxograma: símbolos gráficos
para representar fases e
componentes dos algoritmos;
➢ Pseudocódigo: Definição de
uma pseudo-linguagem de
programação, cujos comandos
são em português.
25/08/2017
Fluxograma
Diagrama de Blocos...
➢Representação gráfica de algoritmos onde formas 
geométricas diferentes implicam ações (instruções, 
comandos) distintos;
➢Fácil visualização;
➢Facilita o entendimento do algoritmo.
25/08/2017
Fluxograma
25/08/2017
Fluxograma
25/08/2017
25/08/2017
INÍCIO
N1, N2
MEDIA = 
(N1+N2)/2
MEDIA
FIM
25/08/2017
Fluxograma
➢Vantagem
➢Representação gráfica é mais concisa que a 
representação textual.
➢Desvantagem
➢Necessário aprender a simbologia dos fluxogramas.
25/08/2017
Pseudocódigo
➢Pseudolinguagem de programação
➢Comandos em português
➢Informações ricas em detalhes;
➢Assemelha-se com à forma em que os programas 
serão escritos
25/08/2017
Pseudocódigo
Algoritmo <Nome do Algoritmo>
<declaração_de_variáveis>
Início
<corpo_do_algoritmo>
Fim
25/08/2017
Pseudocódigo
Algoritmo Calcula_Dobro
Var Num, Dobro: Inteiro;
Inicio
Leia Num;
Dobro  Num*2;
Escreva Dobro;
Fim
25/08/2017
Pseudocódigo
Principais Comandos
➢Atribuição (= ou := ou ) : Utilizado para guardar 
um valor em uma variável
➢total = 0
➢SOMA  SOMA + 1
➢mensagem := ''Erro de Digitação !''
25/08/2017
Pseudocódigo
Principais Comandos
➢ Entrada de Dados: Utilizado para ler dados do usuário de dispositivos 
externos
➢ leia(Idade)
➢ leia(número)
➢ Saída de Dados: Utilizado para exibir dados
➢ escreva(Idade)
➢ escreva(“Melhor disciplina do período!)
➢ escreva(‘’Olá Mundo!'')
25/08/2017
Pseudocódigo
➢Vantagem
➢ Usa o português como base.
➢ Pode-se definir quais e como os dados vão estar estruturados.
➢ Passagem quase imediata de um algoritmo para uma linguagem 
qualquer.
➢Desvantagem
➢ Necessário aprender as regras do pseudocódigo.
➢ Não é padronizado
25/08/2017
Pseudocódigo
25/08/2017
Pseudocódigo
25/08/2017
Pseudocódigo
25/08/2017
Algoritmos
• DICAS IMPORTANTES
25/08/2017
Algoritmos NÃO se aprende Algoritmos SE aprende
Copiando algoritmos Construindo algoritmos
Estudando algoritmos prontos Testando algoritmos 
Algoritmos
DICAS IMPORTANTES
➢De forma genérica, a construção de um algoritmo se 
resume às seguintes etapas:
➢ 1. Entendimento do problema
➢ 2. Elaboração da solução algorítmica
➢ 3. Codificação da solução em pseudocódigo ou linguagem de 
programação
➢Geralmente a etapa 2 é a mais complexa
25/08/2017
Algoritmos
➢O fluxo de controle segue a mesma sequência 
linear da nossa escrita, ou seja:
➢De cima para baixo;
➢Da esquerda para direita
25/08/2017
Linguagens de Programação
25/08/2017
Linguagens de Programação
➢Uma linguagem de programação é um vocabulário e 
um conjunto de regras usadas para escrever 
programas de computador;
➢Divididas em três tipos, com relação à similaridade 
com a linguagem humana:
➢Linguagem de Máquina
➢Linguagem Simbólica
➢Linguagem de Alto Nível
25/08/2017
Linguagens de Programação
Linguagem de Máquina
➢ É linguagem de mais baixo nível de entendimento pelo ser humano e a única 
entendida pelo Unidade Central de Processamento (UCP);
➢ Constituída inteiramente de números (0’s e 1’s) – Sistema Binário
➢ Uma instrução típica em linguagem de máquina seria algo como: 0100 1111 
10102
25/08/2017
Linguagens de Programação
Sistema Binário
➢ O sistema binário ou de base 2 é um sistema de numeração posicional em 
que todas as quantidades se representam com base em dois números, ou 
seja, zero e um (0 e 1);
25/08/2017
• Sistema Decimal para 
Sistema Binário
25/08/2017
Linguagens de Programação
Sistema Decimal para Sistema Binário
➢ Atividade: Calcule 20 em binário.
25/08/2017
Linguagens de Programação
25/08/2017
Linguagens de Programação
Sistema Binário para Sistema Decimal
➢ Atividade: Qual o valor em sistema decimal para o valor 101002
25/08/2017
Linguagem Simbólica: Assembly
➢ linguagem de nível imediatamente acima da linguagem de máquina;
➢ Possui a mesma estrutura e conjunto de instruções que a linguagem de 
máquina, porém permite que o programador utilize nomes (mnemônicos) e 
símbolos em lugar de números;
➢ A conversão da linguagem simbólica para a linguagem de máquina se chama 
montagem, e é feita por um programa chamado montador (assembler).
25/08/2017
Linguagens de Programação
Linguagem Simbólica: Assembly
➢ Exemplo de instrução:
➢ ADD A, B (Adição de valores)
➢ MOV AX, 61h (Mover o valor 61h para o registrador AX)
➢ Classificada como linguagem de segunda geração;
➢ Assim como a linguagem de máquina, é considerada uma 
linguagem de baixo nível.
25/08/2017
Linguagens de Programação
Linguagem de Alto Nível
➢ linguagens de programação que possuem uma estrutura e 
palavras-chave que são mais próximas da linguagem 
humana
➢ C, C++, Java, Python, etc ...
➢Programas escritos nessas linguagens são convertidos para 
a linguagem de baixo nível através de um programa 
denominado compilador ou de um interpretador.
25/08/2017
Linguagem de Alto Nível
➢ Exemplo de instrução de uma linguagem de alto nível: if (A>10) then A=A-7;
25/08/2017Hardware
Linguagem de Máquina
Linguagem 
Assembly
Linguagem Alto 
Nível
Similaridade 
com a 
Linguagem 
humana.
Linguagens de Programação
Compilador
➢Transformação de um programa em código fonte para 
linguagem de máquina 
➢Programa em código fonte = programa escrito pelo 
programador.
➢Programa em linguagem de máquina = programa 
executável.
➢Linguagem C
25/08/2017
Linguagens de Programação
Interpretador
➢Executa instruções emuma determinada 
linguagem:
➢Traduz o código fonte em uma representação 
intermediária e o executa imediatamente.
➢Python, Matlab, Java, etc.
➢Principal desvantagem: Eficiência
25/08/2017
Dúvidas
25/08/2017
43
Lembre-se sempre:
Entenda primeiro o problema antes de executar 
qualquer coisa.
25/08/2017
Atividade
• Um algoritmo para calcular sua idade em 2030
• Fluxograma
• Pseudocódigo
• Um algoritmo para calcular a média (levando em consideração que são 3 
notas).
• Fluxograma
• Pseudocódigo
25/08/2017
Obrigada!
“Não importa o quão devagar você vá, desde que você não pare”
-Confúcio
25/08/2017
46
Lógica de Programação e 
Algoritmos
Aêda Sousa
aedasousa@gmail.com
25/08/2017
47

Continue navegando