Introdução Ao Conceito de Algoritmos

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 30

IFPA

Tecnologia em Análise e Desenvolvimento de Sistemas (TADS)

ALGORITMOS E PROGRAMAÇÃO
DE COMPUTADORES

01 – Introdução ao conceito de
algoritmos

PROFESSOR: Claudio Roberto de Lima Martins


[email protected], [email protected]
1
Evolução da computação

▶ HISTORIA : A EVOLUÇÃO DOS COMPUTADORES


o https://www.youtube.com/watch?v=mFdUqqwzbVs
▶ Evolução da Informática - Dos primeiros computadores à
internet (Matérias da Globo)
o https://www.youtube.com/watch?v=Sx1Z_MGwDS8

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

▶ Um programa de computador é composto por uma sequência


de instruções, que é interpretada e executada por
um processador ou por uma máquina virtual.
▶O termo "software" foi criado na década de 1940, e é um
trocadilho com o termo hardware. "Hardware", em inglês,
significa "ferramenta física“ ou equipamento.
o Software seria tudo o que faz o computador funcionar excetuando-
se a parte física dele.

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ó

Modo de preparo (PROCESSAMENTO):


▶ Bata no liquidificador, o milho, o leite condensado, a manteiga, o coco e os ovos.
▶ Despeje a mistura acima em uma tigela.
▶ Peneire o fermento e adicione-o à mistura.
▶ Mexa delicadamente a mistura.
▶ Em uma fôrma média de bolo, untada e polvilhada com fubá, despeje a massa.
▶ leve ao forno médio pré-aquecido, por 35 min.

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

▶ Pega os dados do teclado, de um arquivo ou outro dispositivo (mouse, toque na


tela, etc).
▶ Processamento

▶ Realiza os processos de transformar as entradas em saídas, operando com


comandos de aritmética e lógica matemática, além de instruções condicionais
e de repetição.
▶ Saída

▶ Mostra os dados na tela ou envia os dados para um arquivo ou outro dispositivo


(uma impressora, por exemplo).

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.

▶ Passo-a-passo, significa que cada passo é completado antes que o


próximo comece. Exemplo: é impossível “ver novela” antes de executar
por inteiro o passo anterior de “ligar a TV”
Características dos Algoritmos
Um algoritmo tem cinco características importantes:
▶ Finitude: deve sempre terminar após um número finito de passos.
▶ Definição:cada passo de um algoritmo deve ser precisamente definido.
As ações devem ser definidas rigorosamente e sem ambiguidades.
▶ Entradas: deve ter zero ou mais entradas, isto é informações que lhe
são fornecidas antes do algoritmo iniciar.
▶ Saídas:deve ter uma ou mais saídas, isto é, informações que tem uma
relação específica com as entradas.
▶ Efetividade:deve ser efetivo. Isto significa que todas as operações
devem ser suficientemente básicas de modo que possam ser em
princípio executadas com precisão em um tempo finito por um
humano, usando papel e lápis.
Dicas para a criação de algoritmos

1. Procure conhecer e compreender, ao máximo, o problema a ser resolvido;


2. Identifique e defina os dados que, essencialmente, deverão ser informados
para que o processamento seja realizado com sucesso (dados de entrada);
3. Descreva, detalhadamente, o processamento ou a transformação a ser
executada sobre os dados de entrada, em busca dos resultados desejados
(como chegar no objetivo);
4. Identifique e defina quais serão os dados resultantes do processamento ou
transformação (dados de saída);
5. Construa o algoritmo que represente a solução encontrada com o
detalhamento necessário para o seu entendimento;
6. Teste o algoritmo por meio de simulações e efetue as devidas correções que
possam vir a ser necessárias na lógica proposta.
Como representar um algoritmo
▶A descrição narrativa
▶Ex: usando uma linguagem natural (português, inglês)
▶O fluxograma
▶Utiliza
figuras geométricas para ilustrar passos a serem
seguidos para a resolução de problemas
▶Ex.: diagrama de blocos, diagrama de Chapin
▶Pseudocódigo (Linguagem algorítmica)
▶Intermediária entre linguagem natural e linguagem de
programação
▶Ex.: Português/Inglês Estruturado
Como representar um algoritmo
▶ Fluxograma

▶ Linear

▶ Estruturada

▶ Modular

▶ Diagrama de Chapin
▶ Português Estruturado

▶ Paraos exemplos a seguir, será usado o problema da média das 4 notas,


com o resultado (aprovado ou reprovado): 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. Caso a média seja
maior ou igual a 7 (sete), o algoritmo exibe “Aprovado”, senão,
“Reprovado”.
Descrição Narrativa

Problema: Calcular a média de quatro notas da


disciplina e exibir o resultado (Aprovado ou
Reprovado)

Media =

Exibir o valor da Media


Se a media >= 7 : Exibir “Aprovado”
Senão: Exibir “Reprovado

22
Fluxograma
▶ Representação gráfica padronizada dos passos de um
algoritmo
Terminação: Início e Fim do algoritmo
▶ Principais símbolos:

Processamento (ação, operação)

Entrada manual de dados (teclado)

Exibição (saída exibida no vídeo)

Decisão (teste com desvio condicional


Sim ou Não)

Conector de instrução

Fluxo de dados ou de controle

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

Você também pode gostar