Aula 02 – Introdução aos tipos de
algoritmos
Jarbas Vidal · Fundamentos de Programação
Curso · Análise e Desenvolvimento de Sistemas
Conteúdo
● Introdução aos Algoritmos
● Representação de Algoritmos
● Exemplos
● Resolução de problemas
Introdução
● O que é um computador?
○ Qual a diferença de software e hardware?
● O que é um programa?
● Como fazer e onde executar um programa?
Introdução
● Como um programa diz ao computador o que fazer?
○ Como fazemos uma atividade no dia a dia?
■ que tal um bolo?
■ Alguma ideia?
Introdução
● Seguimos uma receita
○ Adicione 4 ovos
○ Adicione uma xícara de gasolina
○ Adicione 300g de farinha de trigo
○ Misture tudo e coloque em um recipiente
○ Leve ao forno
○ Ligue o forno e pré-aqueça em 300 graus
Tem algo errado com esse “programa”?
Introdução
● Mas como dizer ao computador para executar esses passos?
○ Ele entende português?
■ Inglês?
■ Espanhol?
■ ...
Introdução
● Os programas têm que ser escritos em uma linguagem de programação:
○ uma linguagem que pode ser entendida pelo computador
○ uma linguagem que entendemos e que possa ser traduzida para uma linguagem
entendida pelo computador
Introdução
Figura 1. Arquitetura de John Von Neumann
Introdução
Figura 2. Analogia com o homem
Introdução
● Principais elementos das linguagens
○ Instruções de Entrada/Saída
○ Instruções de cálculo
○ Instruções lógicas e de comparação
○ Instruções de armazenamento/pesquisa de dados.
Lógica de programação
Como conversamos em aulas anteriores, utilizamos a lógica para
encadear nosso pensamento e propor uma solução para determinado
problema.
Algoritmos
● Um algoritmo pode ser definido como um conjunto de regras
(instruções), bem definidas, para solução de um determinado
problema. Algoritmos são comuns em nosso cotidiano, como,
por exemplo, uma receita de bolo.
● Uma sequência detalhada e bem definida de ações a serem
executadas para realizar alguma tarefa
Algoritmos
● Um dos mais famosos algoritmos foi criado por Euclides,
matemático grego, por volta do ano de 300 A.C:
MDC: Máximo Divisor Comum entre dois números inteiros
diferentes de zero.
Algoritmos
● MDC (12, 30): a partir do número 2 tentamos realizar divisões
até o resulta final ser 1
Representação de Algoritmos
● Dentre as formas de representação de algoritmos mais
conhecidas, podemos destacar:
○ Descrição Narrativa;
○ Fluxograma Convencional;
○ Pseudocódigo, também conhecido como Linguagem
Estruturada ou Portugol
Representação de Algoritmos
DESCRIÇÃO NARRATIVA
● Utilização da Linguagem Humana Natural;
● Representa a solução do problema em passos
descritivos;
● Pouco utilizado na computação.
● As ações especificadas devem ser claras e precisas;
● Pouco usada na prática: Muitas vezes dá oportunidade a
más interpretações, ambiguidades e imprecisões.
Representação de Algoritmos
● Exemplo: sacar dinheiro em caixa eletrônico
[Link] até um caixa eletrônico
[Link] o cartão
[Link] a senha
[Link] a quantia desejada
[Link] o saldo for maior ou igual a quantia desejada, sacar dinheiro; caso contrário, mostrar
mensagem de impossibilidade de saque
[Link] cartão
[Link] da agência
Representação de Algoritmos
Algoritmo: trocar pneu de carro
Início
afrouxar ligeiramente as porcas;
suspender o carro;
retirar as porcas e o pneu;
colocar o pneu reserva e as porcas;
abaixar o carro;
dar o aperto final nas porcas.
Fim
Representação de Algoritmos
Algoritmo: multiplicação de dois números:
Início
[Link] os dois números que serão multiplicados
[Link] os dois números
[Link] o resultado obtido na multiplicação.
Fim
Representação de Algoritmos
● Uma sequência de passos para comprar um determinado produto em uma loja.
● Imagine se seria possível comprar o produto seguindo os passos dessa
sequência:
1. sair da loja;
2. pagar pelo produto;
3. entrar na loja;
4. retirar o dinheiro da carteira;
5. dirigir-se ao caixa;
6. escolher o produto na prateleira.
Representação de Algoritmos
FLUXOGRAMA
● Apresentam os Algoritmos de Forma Gráfica;
● Formado de figuras geométricas para descrever as
instruções e ações a serem executadas no algoritmo.
● Deve possuir:
○ Um estado inicial;
○ Ter um período de tempo finito;
○ Produzir um estado final previsível e bem definido
Representação de Algoritmos
● Vantagem:
o Após memorizar os símbolos, é mais fácil entender um
fluxograma que uma descrição narrativa
● Desvantagem:
o É preciso aprender a simbologia dos fluxogramas
Representação de Algoritmos
FLUXOGRAMA: Símbolos gráficos
Representação de Algoritmos
FLUXOGRAMA: Símbolos gráficos
Representação de Algoritmos
FLUXOGRAMA: exemplos
Representação de Algoritmos
FLUXOGRAMA: exemplos
Representação de Algoritmos
FLUXOGRAMA: exemplos
○ Conversão de descritiva para fluxograma
1) Elabore um algoritmo para calcular a soma de dois
números inteiros
2) Elabore um algoritmo para calcular a velocidade média
de um veículo.
3) Elabore um algoritmo para calcular a área do quadrado.
4) Elabore um algoritmo para calcular média aritmética.
5) Elabore um algoritmo para calcular a área de um círculo.
6) Elabore um algoritmo para saber se um número é par ou
ímpar.
Representação de Algoritmos
FLUXOGRAMA: exemplos
○ Conversão de descritiva para fluxograma
1) Crie um algoritmo que leia dois valores (x e y) e informe se eles são
iguais.
2) Crie um algoritmo que leia dois valores (x e y) e informe qual o maior
valor.
3) Escreva um algoritmo que leia uma letra que represente o sexo de uma
pessoa (M para Masculino e F para feminino). Se for masculino, mostra a
mensagem “Seja bem-vindo, Senhor!”, se for feminino, mostra a
mensagem “Seja bem-vinda, Senhora!”.
4) Crie um algoritmo que leia dois valores (x e y) representando um
intervalo. Em seguida, leia um novo valor (z) e verifique se z pertence ao
intervalo [x, y].
Representação de Algoritmos
FLUXOGRAMA: exemplos
○ Conversão de descritiva para fluxograma
1) Faça um algoritmo que calcule a ÁREA DO CILINDRO E O VOLUME DO
CILINDRO, em seguida exiba os resultados na saída de tela. Fórmulas:
Ac = 2*PI*RAIO * (ALTURA + RAIO) e Vc = PI*RAIO2*ALTURA
2) Faça um algoritmo que leia o peso e a altura de uma pessoa, em seguida calcule e
mostre o valor do IMC referente aos dados digitados pelo usuário. Se o IMC for maior
que 20 mostre uma mensagem “Cuidado com o peso”, caso contrário mostre a
mensagem “Peso legal”.
3) Um comerciante comprou um produto e quer vendê-lo com um lucro de 45% se o
valor da compra for menor que R$ 20,00; caso contrário, o lucro será de 30%. Elabore
um algoritmo que leia o valor do produto e imprima o valor de venda para o produto.
Representação de Algoritmos
FLUXOGRAMA: repetições
● Problema com repetição contável
○ Comer um cacho de banana
○ Contar de 1 até 10
○ Escrever a frase “Adoro algoritmo em Fluxograma” 10 vezes
○ Liste todos os números ímpares de 1 a 100
Representação de Algoritmos
● Problema com repetição contável
○ Escrever os números ímpares de 1 até 100
Representação de Algoritmos
● Problema com repetição contável
○ Faça o fluxograma dos exemplos abaixo
■ Liste todos os números ímpares de 1 a 100
■ Contar de 1 até 10
■ Escrever a frase “Adoro algoritmo em Fluxograma” 10 vezes
■ Contar de 10 até 1
Representação de Algoritmos
● Características
○ Só é possível utilizar repetição contável se conseguirmos
determinar de antemão quantas repetições são necessárias
○ O computador controlará as repetições
○ Normalmente se deseja acessar o valor da variável que controla a
repetição, a cada iteração
Representação de Algoritmos
FLUXOGRAMA: repetição condicional
● Elementos básicos para representar repetição condicional em
fluxogramas:
Representação de Algoritmos
● Características
○ A condição de controle do loop deve alternar para falso em algum
momento
■ Sem isso, o programa entrará em loop infinito
○ Antes de dar como terminado o algoritmo, é importante testar!
■ Faça uso do Método Chinês
■ Atenção especial para os extremos (início e término do loop)
Representação de Algoritmos
● Método chinês
○ Ler o algoritmo do início ao fim, obedecendo cada uma das
instruções
○ Anotar os valores de cada variável para cada passo do algoritmo
○ Ao final, será possível identificar se alguma instrução está se
comportando de forma inapropriada
Representação de Algoritmos
FLUXOGRAMA: exemplo
● Some todos os números
informados até que o número
zero seja informado
Representação de Algoritmos
FLUXOGRAMA: exemplo
● Faça um algoritmo em fluxograma que some todos os números
digitados pelo usuário, somente, enquanto os números
digitados forem maiores que 5 e menores que 20.
Representação de Algoritmos
FLUXOGRAMA: exercício
● Construa um algoritmo (fluxograma) para dizer se um número
inteiro informado pelo usuário é maior ou menor que zero.
● Utilize o Método Chinês para verificar se o algoritmo está correto
Representação de Algoritmos
PSEUDOCÓDIGO
● Uso de linguagem própria, aproximando-se mais das linguagens de
alto nível, chamado também de PSEUDOLINGUAGEM ou ainda
PORTUGOL. Portugol
Studio
● Forma Geral:
Formato do arquivo: nome_programa.por
Representação de Algoritmos
PSEUDOCÓDIGO (PORTUGOL)
● Etapas:
○ Análise do enunciado do problema
○ Escrita, por meio de regras pré-definidas, os passos a serem seguidos para
sua resolução
● Vantagem:
○ A passagem do algoritmo para qualquer linguagem de programação é quase
imediata, basta conhecer os códigos da linguagem
● Desvantagem:
○ É necessário aprender as regras do pseudocódigo
Representação de Algoritmos //Algoritmo “media”
programa {
funcao inicio () {
real nota1, nota2, media
Qual a finalidade escreva (“Digite a nota 1”)
leia (nota1)
desse algoritmo? escreva (“Digite a nota 2”)
leia (nota2)
media = (nota1 + nota2) / 2
escreva (“Sua média é: ”, media)
}
}
//Algoritmo “multiplicação”
Representação de Algoritmos
programa {
funcao inicio(){
real N1, N2, M // case sensitive
Qual a finalidade escreva (“Digite dois números”)
leia (N1)
desse algoritmo?
leia (N2)
M = N1 * N2
escreva (“Multiplicação = ”, M)
}
}
//Algoritmo “areacirculo”
Representação de Algoritmos
programa {
inclua biblioteca Matematica --> mat
funcao inicio (){
real Area, Raio, potencia
Qual a finalidade escreva ("Entre com o raio: ")
leia (Raio)
desse algoritmo? potencia = [Link](Raio, 2)
Area = Pi*potencia
escreva ("A área do circulo com o raio ",
Raio, " é ", Area)
}
}
Representação de Algoritmos
PSEUDOCÓDIGO : EXEMPLOS
• Algoritmo “Hello World”
• Algoritmo “informações pessoais”
• Algoritmo “operações aritméticas”
• Algoritmo “maior ou menor de idade”
• Algoritmo “cálculo média IFCE”
• Algoritmo “conta de 1 até 100”
Dúvidas?