INFORMÁTICA APLICADAINFORMÁTICA APLICADAINFORMÁTICA APLICADAINFORMÁTICA APLICADAAULA 02 AULA 02 AULA 02 AULA 02 –––– ALGORITMOSALGORITMOSALGORITMOSALGORITMOS
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO
CURSO: Bacharelado em Ciências e Tecnologia
AULA 02 AULA 02 AULA 02 AULA 02 –––– ALGORITMOSALGORITMOSALGORITMOSALGORITMOS
ProfProfProfProfª Danielle Casilloª Danielle Casilloª Danielle Casilloª Danielle Casillo
ALGORITMOS
� Um algoritmo é uma sequência de instruções
finita e ordenada de forma lógica para a resolução
de uma determinada tarefa ou problema.
Aula 02 - Algoritmos
� Um algoritmo não é a solução do problema, pois,
se assim fosse, cada problema teria um único
algoritmo; um algoritmo é um caminho para a
solução de um problema.
2
ALGORITMOS
� Em geral, existem muitos (senão infinitos)
caminhos que levam a uma solução satisfatória.
Aula 02 - Algoritmos
3
ALGORITMOS NÃO COMPUTACIONAIS
� Um algoritmo não computacional é um algoritmo cuja
sequência de passos, a princípio, não pode ser executada
por um computador.
� Exemplo:
Aula 02 - Algoritmos
4
ALGORITMOS NÃO COMPUTACIONAIS
� Exemplo:
1. Sacar dinheiro do banco 24 horas
1. Ir até um banco 24 horas
2. Colocar o cartão
Aula 02 - Algoritmos
2. Colocar o cartão
3. Digitar a senha
4. Solicitar a quantia desejada
5. Se o saldo for maior ou igual à quantia desejada,
sacar; caso contrário, mostrar mensagem de
impossibilidade de saque.
6. Retirar o cartão
7. Sair do banco 24 horas.5
ALGORITMOS NÃO COMPUTACIONAIS
� Exemplo:
1. Fazer um Sanduíche
1. Pegar o pão
2. Cortar o pão ao meio
Pegar a maionese
Aula 02 - Algoritmos
3. Pegar a maionese
4. Passar a maionese no pão
5. Pegar e cortar alface e tomate
6. Colocar alface e tomate no pão
7. Pegar o Hambúrguer
8. Fritar o Hambúrguer
9. Colocar o Hambúrguer no pão
6
ALGORITMOS NÃO COMPUTACIONAIS
� Você pode estar pensando: “Mas eu realizo essas
atividades de maneira diferente!”
� Esse pensamento é correto, pois às vezes um
problema pode ser resolvido de diversas maneiras,
Aula 02 - Algoritmos
Esse pensamento é correto, pois às vezes um
problema pode ser resolvido de diversas maneiras,
porém, gerando a mesma resposta, ou seja, podem
existir vários algoritmos para solucionar o mesmo
problema.
7
PORTUGUÊS ESTRUTURADO (PORTUGUÊS ESTRUTURADO (PORTUGUÊS ESTRUTURADO (PORTUGUÊS ESTRUTURADO (PORTUGOLPORTUGOLPORTUGOLPORTUGOL))))
Aula 02 - Algoritmos
� Para que o algoritmo possa ser executado por uma
máquina é importante que as instruções sejam
corretas e sem ambiguidades.
Portanto, a forma especial de linguagem que
8
� Portanto, a forma especial de linguagem que
utilizaremos é bem mais restrita que o Português e
com significados bem definidos para todos os
termos utilizados nas instruções.
PORTUGUÊS ESTRUTURADO (PORTUGUÊS ESTRUTURADO (PORTUGUÊS ESTRUTURADO (PORTUGUÊS ESTRUTURADO (PORTUGOLPORTUGOLPORTUGOLPORTUGOL))))
� O português estruturado é, na verdade, uma
simplificação extrema do Português, limitada a umas
poucas palavras e estruturas que têm um significado
muito bem definido.
O objetivo do nosso curso é aprender a resolverresolverresolverresolver
Aula 02 - Algoritmos
� O objetivo do nosso curso é aprender a resolverresolverresolverresolver
problemasproblemasproblemasproblemas utilizando a linguagem, Para isso, há
somente um caminho: resolverresolverresolverresolver muitosmuitosmuitosmuitos problemasproblemasproblemasproblemas.... O
processo é semelhante ao de tornar-se competente
em um jogo qualquer: aprender as regras do jogo (a
sintaxe) é só o primeiro passo, tornar-se um bom
jogador (programador) exige tempo, muito exercício e
dedicação. 9
ALGORITMOS COMPUTACIONAIS
Aula 02 - Algoritmos
� UmUmUmUm programaprogramaprogramaprograma é um conjunto de milhares de
instruções que indicam ao computador, passo a
passo, o que ele tem que fazer.
Logo, um programa nada mais é do que um
10
� Logo, um programa nada mais é do que um
algoritmoalgoritmoalgoritmoalgoritmo computacionalcomputacionalcomputacionalcomputacional descrito em uma
linguagemlinguagemlinguagemlinguagem dededede programaçãoprogramaçãoprogramaçãoprogramação....
ALGORITMOS COMPUTACIONAIS
� Uma linguagemlinguagemlinguagemlinguagem dededede programaçãoprogramaçãoprogramaçãoprogramação contém os
comandos que fazem o computador escrever algo
na tela, realizar cálculos aritméticos, receber uma
entrada de dados via teclado, e milhares de
Aula 02 - Algoritmos
entrada de dados via teclado, e milhares de
outras coisas, mas estes comandos precisam
estar em uma ordem lógica.
11
MÉTODO PARA CONSTRUÇÃO DE ALGORITMOS
� Para construção de qualquer algoritmo, é
necessário seguir estes passos:
� Compreender completamente o problema a ser
Aula 02 - Algoritmos
� Compreender completamente o problema a ser
resolvido, destacando os pontos mais importantes
e os objetos que o compõem.
�Definir os dados de entrada, ou seja, quais dados
serão fornecidos.
12
MÉTODO PARA CONSTRUÇÃO DE ALGORITMOS
�Definir o processamento, ou seja, quais cálculos
serão efetuados. O processamento é responsável
pela transformação dos dados de entrada em
dados de saída.
Aula 02 - Algoritmos
dados de saída.
�Definir os dados de saída.
� Construir o algoritmo.
� Testar o algoritmo realizando simulações.
13
TIPOS DE ALGORITMOS
� Os três tipos mais utilizados de algoritmos são:
�DescriçãoDescriçãoDescriçãoDescrição NarrativaNarrativaNarrativaNarrativa
� FluxogramaFluxogramaFluxogramaFluxograma
� PseudocódigoPseudocódigoPseudocódigoPseudocódigo ouououou PortugolPortugolPortugolPortugol ouououou PortuguêsPortuguêsPortuguêsPortuguês
Aula 02 - Algoritmos
� PseudocódigoPseudocódigoPseudocódigoPseudocódigo ouououou PortugolPortugolPortugolPortugol ouououou PortuguêsPortuguêsPortuguêsPortuguês
EstruturadoEstruturadoEstruturadoEstruturado
14
� Consiste em analisar o enunciado do problema e
escrever, utilizando uma linguagem natural (por
exemplo, a língua portuguesa), os passos a serem
seguidos para sua resolução.
Aula 02 - Algoritmos
DESCRIÇÃO NARRATIVA
seguidos para sua resolução.
� VantagemVantagemVantagemVantagem:::: Não é necessário aprender nenhum
conceito novo, pois é a linguagem natural.
15
DESCRIÇÃO NARRATIVA
� Exemplo:
1.1.1.1. SomarSomarSomarSomar trêstrêstrêstrês númerosnúmerosnúmerosnúmeros
1. Recebe os três números
2. Somar os três números
Aula 02 - Algoritmos
2. Somar os três números
3. Mostrar o resultado obtido
16
FLUXOGRAMA� Utiliza símbolos gráficos predefinidos para a resolução do problema.
Aula 02 - Algoritmos
17
FLUXOGRAMA
� ExemploExemploExemploExemplo:::: SomarSomarSomarSomar trêstrêstrêstrês númerosnúmerosnúmerosnúmeros
Aula 02 - Algoritmos
18
PORTUGUÊS ESTRUTURADO
� Consiste em analisar o enunciado do problema e
escrever, por meio de regras predefinidas, os
passos a serem seguidos para sua resolução.
Aula 02 - Algoritmos
� VantagemVantagemVantagemVantagem:::: A passagem do algoritmo para
qualquer linguagem de programação é quase
imediata, bastando conhecer as palavras
reservadas dessa linguagem que serão
utilizadas.
19
PORTUGUÊS ESTRUTURADO
� A estrutura geral de um algoritmo é:
Aula 02 - Algoritmos
Algoritmo "<nome do algoritmo>"Algoritmo "<nome do algoritmo>"Algoritmo "<nome do algoritmo>"Algoritmo "<nome do algoritmo>"
varvarvarvar
20
varvarvarvar
< declaração de variáveis>
inicioinicioinicioinicio
< lista de comandos>
fimalgoritmofimalgoritmofimalgoritmofimalgoritmo
PORTUGUÊS ESTRUTURADO� ExemploExemploExemploExemplo:::: SomarSomarSomarSomar trêstrêstrêstrês númerosnúmerosnúmerosnúmeros
Aula 02 - Algoritmos
ALGORITMOALGORITMOALGORITMOALGORITMO SomaSomaSomaSoma
varvarvarvar
A,A,A,A, B,B,B,B, C,C,C,C, DDDD:::: inteirointeirointeirointeiro
inicioinicioinicioinicio
escrevaescrevaescrevaescreva (“Digite(“Digite(“Digite(“Digite oooo valorvalorvalorvalor dededede AAAA:::: ”)”)”)”)
21
escrevaescrevaescrevaescreva (“Digite(“Digite(“Digite(“Digite oooo valorvalorvalorvalor dededede AAAA:::: ”)”)”)”)
leialeialeialeia (A)(A)(A)(A)
escrevaescrevaescrevaescreva (“Digite(“Digite(“Digite(“Digite oooo valorvalorvalorvalor dededede BBBB:::: ”)”)”)”)
leialeialeialeia (B)(B)(B)(B)
escrevaescrevaescrevaescreva (“Digite(“Digite(“Digite(“Digite oooo valorvalorvalorvalor dededede CCCC:::: ”)”)”)”)
leialeialeialeia (C)(C)(C)(C)
DDDD <<<<---- AAAA ++++ BBBB ++++ CCCC
escrevaescrevaescrevaescreva (“D=(“D=(“D=(“D= ”,”,”,”, D)D)D)D)
fimalgoritmofimalgoritmofimalgoritmofimalgoritmo
EXERCÍCIOS
Aula 02 - Algoritmos
1. Faça um algoritmo para mostrar o resultado da
multiplicação de dois números (Descrição
Narrativa, Fluxograma e Pseudocódigo):
22
a) Descrição Narrativa:
1. Receber os números que serão multiplicados
2. Multiplicar os números
3. Mostrar o resultado obtido na multiplicação
EXERCÍCIOS
b) Fluxograma:
Aula 02 - Algoritmos
23
EXERCÍCIOS
c) Pseudocódigo
Aula 02 - Algoritmos
ALGORITMOALGORITMOALGORITMOALGORITMO MultiplicacaoMultiplicacaoMultiplicacaoMultiplicacao
varvarvarvar
M,M,M,M, NNNN1111,,,, NNNN2222:::: inteirointeirointeirointeiro
inicioinicioinicioinicio
24
inicioinicioinicioinicio
escrevaescrevaescrevaescreva (“Digite(“Digite(“Digite(“Digite oooo valorvalorvalorvalor dededede NNNN1111:::: ”)”)”)”)
leialeialeialeia (N(N(N(N1111))))
escrevaescrevaescrevaescreva (“Digite(“Digite(“Digite(“Digite oooo valorvalorvalorvalor dededede NNNN2222:::: ”)”)”)”)
leialeialeialeia (N(N(N(N2222))))
MMMM <<<<---- NNNN1111 **** NNNN2222
escrevaescrevaescrevaescreva (“M(“M(“M(“M ==== ”,”,”,”, M)M)M)M)
fimalgoritmofimalgoritmofimalgoritmofimalgoritmo
EXERCÍCIOS
2. Faça um algoritmo para mostrar o resultado da
divisão de dois números (Descrição Narrativa,
Fluxograma e Pseudocódigo)
Aula 02 - Algoritmos
25
EXERCÍCIOS
3. Faça um algoritmo em Descrição Narrativa,
Fluxograma e Pseudocódigo para calcular a
média aritmética de um aluno e mostrar a
situação, que pode ser aprovado ou reprovado.
Aula 02 - Algoritmos
situação, que pode ser aprovado ou reprovado.
a) Descrição Narrativa
1. Receber as duas notas
2. Calcular a média aritmética
3. Mostrar a média aritmética
4. Se a média for maior ou igual a 7, então a situação
do aluno é aprovado; caso contrário, a situação é
reprovado.26
EXERCÍCIOS
b) Fluxograma
Aula 02 - Algoritmos
27
EXERCÍCIOSc) Pseudocódigo
Aula 02 - Algoritmos
ALGORITMOALGORITMOALGORITMOALGORITMO MediaMediaMediaMedia
varvarvarvar
M,M,M,M, NNNN1111,,,, NNNN2222:::: realrealrealreal
inicioinicioinicioinicio
escrevaescrevaescrevaescreva (“Digite(“Digite(“Digite(“Digite oooo valorvalorvalorvalor dededede NNNN1111:::: ”)”)”)”)
leialeialeialeia (N(N(N(N1111))))
28
leialeialeialeia (N(N(N(N1111))))
escrevaescrevaescrevaescreva (“Digite(“Digite(“Digite(“Digite oooo valorvalorvalorvalor dededede NNNN2222:::: ”)”)”)”)
leialeialeialeia (N(N(N(N2222))))
MMMM <<<<---- (N(N(N(N1111 ++++ NNNN2222)))) //// 2222
escrevaescrevaescrevaescreva (“M(“M(“M(“M ==== ”,”,”,”, M)M)M)M)
sesesese (M(M(M(M >=>=>=>= 7777)))) entaoentaoentaoentao
escreva(“escreva(“escreva(“escreva(“ OOOO alunoalunoalunoaluno estaestaestaesta AprovadoAprovadoAprovadoAprovado ")")")")
senaosenaosenaosenao
escreva(“escreva(“escreva(“escreva(“ OOOO alunoalunoalunoaluno estaestaestaesta ReprovadoReprovadoReprovadoReprovado ")")")")
fimsefimsefimsefimse
fimalgoritmofimalgoritmofimalgoritmofimalgoritmo
EXERCÍCIOS
4. Faça um algoritmo (Descrição Narrativa,
Fluxograma e Pseudocódigo) para calcular o novo
salário de um funcionário. Sabe-se que os
funcionários que recebem atualmente salário de
Aula 02 - Algoritmos
funcionários que recebem atualmente salário de
até R$500,00 terão aumento de 20%; os demais
terão aumento de 10%.
29