Introdução Ao Conceito de Algoritmos
Introdução Ao Conceito de Algoritmos
Introdução Ao Conceito de Algoritmos
ALGORITMOS E PROGRAMAÇÃO
DE COMPUTADORES
01 – Introdução ao conceito de
algoritmos
2
O computador
▶ Computador é um dispositivo eletrônico (um processador) capaz de
receber um conjunto de instruções (o software) e executá-las realizando
cálculos sobre dados numéricos ou processando informações em geral.
▶O dispositivo com processador mais conhecido é o computador pessoal.
Atualmente, com o barateamento dos microprocessadores, existem outras
máquinas programáveis, como telefone celular, máquinas de automação
industrial, calculadoras, relógios, câmeras, TVs, micro-ondas, geladeira,
etc.
3
Execução de uma tarefa no computador
▶O computador executa passos em forma de instruções para
executar uma determinada tarefa.
▶ Para a tarefa deve estar bem claro os seguintes passos:
o 1 - Determinar qual deve ser a saída.
o 2 - Identificar os dados de entrada necessários para
obter a saída.
o 3 - Determinar como processar a entrada para obter a
saída desejada (executar as instruções)
4
O computador (descrição da arquitetura)
▶É formado por uma unidade central de processamento (CPU), dispositivos
de entrada, dispositivos de armazenamento e dispositivos de saída.
▶A CPU inclui uma unidade de aritmética e lógica (ALU), registros, seção de
controle e barramento lógico.
oA unidade aritmético-lógica efetua as operações aritméticas e lógicas.
oOs registros armazenam os dados e os resultados das operações.
oA unidade de controle regula e controla diversas operações.
oO barramento interno conecta as unidades da CPU entre si e com os
componentes externos do sistema.
▶ Namaioria dos computadores, o principal dispositivo de entrada é o
teclado. Outros exemplos: mouse, tela touch, sensores, canetas ópticas,
etc.
▶ Dispositivosde armazenamento. Exemplos: discos rígidos, disco externo
USB, cartão de memória SD, USB flash, e os antigos disquetes, compactos
disk (CD) e DVD. Dispositivos de saída que permitem “ver” os dados são os
monitores de vídeo e impressoras.
5
A arquitetura do computador
6
Software como programa de computador
7
Software e linguagem de máquina
▶ Quando um software está representado como instruções que podem ser
executadas diretamente por um processador, assim dizemos que está
escrito em linguagem de máquina (linguagem de “baixo nível”).
▶ Cadalinguagem de máquina é específica para uma arquitetura de
computador (Ex: O “assembler” do processador Intel é diferente do
processador ARM usado em modelos de smartphones e tablets).
▶A execução de um software também pode ser intermediada por um
programa interpretador, responsável por interpretar e executar cada uma
de suas instruções em linguagem de máquina.
▶ Uma máquina virtual simula um computador inteiro, real ou imaginado,
independente da arquitetura do processador, tornando o software portável
(roda em qualquer computador).
oExemplos: a máquina virtual Java (JVM) e a máquina virtual da
linguagem Java Script que roda nos browsers (navegadores web).
8
Software inicia com um Algoritmo
▶ Paraescrever um software (programa de computador) você
deve elaborar um solução na forma de algoritmo.
▶ Um algoritmo é um código escrito em uma linguagem que os
humanos podem interpretar e entender. É uma lista passo-a-
passo de instruções que, caso seguidas exatamente, resolvem
um problema em questão.
▶O objetivo é considerar um problema e desenvolver um
algoritmo que possa servir como uma solução genérica. Uma
vez obtida tal solução, um computador pode ser utilizado para
automatizar a execução.
▶ Dessa forma, programação é uma habilidade que permite ao
cientista da computação pegar um algoritmo e representá-lo
em uma notação (um programa) que possa ser executado por
um computador. Esses programas são escritos
utilizando linguagens de programação.
9
Algoritmos são receitas...
▶O conceito de “Algoritmo” nos é bastante familiar.
▶ Você
encontra algoritmos escritos em receitas de comidas, em uma bula
de medicamentos, em manuais de utilização de equipamentos, etc.
A receita do bolo de milho
Ingredientes (ENTRADAS):
▶ 1 Lata de leite condensado
▶ 1 Lata de milho sem a água
▶ 1 colher (de sopa) de manteiga
▶ 1 pacote de coco ralado
▶ 3 ovos
▶ 1 colher (de sopa) de fermento em pó
Resultado (SAÍDA):
▶ Um bolo de milho pronto para ser degustado!
Receita do Omelete
Problema: Fazer um omelete
▶ 1. Quebrar os ovos
▶ 2. Bater os ovos
▶ 3. Adicionar sal
▶ 4. Ligar fogão
▶ 5. Adicionar óleo na frigideira
▶ 6. Colocar frigideira no fogo
▶ 7. Por os ovos batidos na frigideira
▶ 8. Verificar se está pronto
▶ 9. Se sim, desligar o fogão
▶ 10. Se não, voltar para passo 8
Quais são as entradas do
algoritmo?
12
Exercício
▶ Elabore um algoritmo para realizar a troca de um pneu furado.
▶ Para facilitar, organize os passos baseados na lista a seguir.
• Descer o carro
• Soltar os parafusos
• Pegar o estepe
• Verifica qual pneu está furado
• Guardar o macaco e o pneu furado
• Recolocar os parafusos
• Posicionar o macaco para levantar o carro
• Substituir o pneu furado
13
O que é um Programa de Computador?
▶ Umprograma é uma sequência de instruções que especificam como
executar uma computação. Para escrever um programa de computador é
necessário usar uma linguagem de programação.
▶ Independente
das diferentes linguagens, algumas instruções básicas
aparecem em praticamente todas as linguagens, em 3 componentes:
▶ Entrada
14
Exemplo: O problema da média
▶O problema: exibir a média das notas de um aluno de matemática do
ensino médio, sabendo que o aluno recebe uma nota em cada unidade e o
ano letivo possui 4 unidades.
▶ Entradas
▶ Processamento
▶ Saída
Como escrever um Algoritmo?
▶ Compreender o problema
▶ Identificar os dados de entrada
▶ Identificar os dados de saída
▶ Determinar o que é preciso para transformar dados de entrada em
dados de saída:
▶ usar a estratégia do dividir-para-conquistar
▶ observar regras e limitações
▶ identificar todas as ações a realizar
▶ eliminar ambiguidades
▶ Construir o algoritmo
▶ Testar o algoritmo
▶ Executar o algoritmo
Dividir-para-conquistar
▶ É conhecido por método descendente (top-down method) ou método de
refinamento passo-a-passo
▶ Consiste em dividir um problema em partes menores (ou subproblemas)
de modo a que seja mais fácil a sua resolução.
▶ Exemplo: Fazer suco de laranja?
▶ Lavar laranja;
▶ Partir laranja ao meio;
▶ Espremer laranja;
▶ Filtrar o suco;
▶ Servir o suco.
▶ Linear
▶ Estruturada
▶ Modular
▶ Diagrama de Chapin
▶ Português Estruturado
Media =
22
Fluxograma
▶ Representação gráfica padronizada dos passos de um
algoritmo
Terminação: Início e Fim do algoritmo
▶ Principais símbolos:
Conector de instrução
23
Algoritmo em Fluxograma Linear e Estruturado
Linear Estruturado
Algoritmo em Fluxograma Modular
▶ Usado em
Modular
Diagrama de Chapin
▶O Diagrama de Chapin também conhecido como Diagrama de Nassi-
Shneiderman tal como o fluxograma, permite a visualização do fluxo lógico
do algoritmo e é voltado para a programação estruturada.
Português Estruturado
algoritmo "media"
var
n1, n2, n3, n4, soma, media: real
inicio
leia(n1)
leia(n2)
leia(n3)
leia(n4)
soma <- n1 + n2 + n3 + n4
media <- soma / 4
escreva("Media: ", media)
se (media >= 7)
escreva(“Aprovado”)
senão
escreva(“Reprovado”)
fimalgoritmo
Linguagem de Programação Python 3
n1 = float(input("Entre com a Nota 1: "))
n2 = float(input("Entre com a Nota 2: "))
n3 = float(input("Entre com a Nota 3: "))
n4 = float(input("Entre com a Nota 4: "))
soma = n1 + n2 + n3 + n4
media = soma / 4
print("Media: ", media)
if (media>=7):
print("Aprovado")
else:
print("Reprovado")
Linguagem de Programação C
#include <stdio.h>
#include <stdlib.h>
int main(void) {
float n1,n2,n3,n4,soma,media;
scanf("%f",&n1);
scanf("%f",&n2);
scanf("%f",&n3);
scanf("%f",&n4);
soma=n1+n2+n3+n4;
media=soma/4;
printf("A media final eh: %f \n", media);
if (media>=7) {
printf("Aprovado");
} else {
printf("Reprovado") ;
};
}
Exercício
▶ Refaçao fluxograma ao lado para que
fique mais preciso e parecido com os
códigos escritos em uma linguagem de
programação.
30