Você está na página 1de 46

Algoritmos

Definição
• O desenvolvimento de um programa é muito
complexo.
• ALGORITMO: é a descrição dos passos
necessários para se resolver um problema.

Problema Algoritmo Programa


Receitas de bolo
• Um algoritmo é semelhante a uma
receita de bolo: são fornecidos os
ingredientes e o modo de fazer.
Seguindo a receita obteremos o
bolo.
Algoritmos & Receitas
• Uma receita apresenta certa
semelhança com algoritmos:
• ENTRADA: São os ingredientes.
• PROCESSAMENTO: Modo de
preparo
• SAÍDA: O alimento pronto.
Exemplo:
• Identifique a entrada, processamento
e saída na receita abaixo:
Sanduíche Solduba
Ingredientes:
•2 fatias de pão de forma integral
•1 tomate
•queijo branco
•peito de peru
•orégano
•azeite
•sal
Modo de preparo:
•Corte o tomate e o queijo branco em fatias finas e coloque sobre o pão. Acrescente
o peito de peru, uma pitada de orégano, azeite e sal a gosto. Feche com a outra fatia.
Você pode levar o sanduíche ao forno se preferir.
Imprecisões das Receitas
• A linguagem utilizada nas receitas é
muito vaga para ser utilizada no
desenvolvimento de programas.
• Por exemplo, na receita anterior não
foi especificada a quantidade de
queijo nem se o peito de peru
deveria ser fatiado ou não!
Linguagens para algoritmos
Para formalizar a construção de
algoritmos, são utilizadas as
seguintes linguagens:
• Formato livre
• Fluxogramas
• Pseudocódigos
Formato livre
• Consiste em se escrever os passos
necessários numerados item a item.
Exemplo:
1- Introduzir o primeiro valor
2- Introduzir o segundo valor
3 - Somar os dois valores
4 - Mostrar o resultado
(O que faz o algoritmo acima?)
Desvantagem do formato livre
• O formato livre pode apresentar
imprecisões em algoritmos mais
complexos.
• O formato livre só é vantajoso em
algoritmos muito simples.
Fluxogramas
• É uma representação gráfica do
formato livre. Exemplo:
Início 1

Introduzir 1º valor Calcular a soma


dos dois valores

Introduzir 2º valor Mostrar o


resultado

1 Fim
Fluxogramas
• Um fluxograma pode se tornar muito
difícil de se ler quando o algoritmo
se torna complexo, além de gastar
muito papel para ser desenhado!
Pseudocódigo
• Os algoritmos atuais são muito
complexos.
• Para facilitar o desenvolvimento, o
algoritmo é dividido em blocos, que
realizam determinadas tarefas que
quando juntos formam a solução
completa.
• Esta forma de desenvolvimento se
chama Programação Estruturada.
Estruturada
Programação estruturada
• A programação estruturada produz
algoritmos complexos mas fáceis de se ler
(e entender!).
• O formato livre e o fluxograma não se
adaptam à programação estruturada. Sua
forma de programação chama-se
PROGRAMAÇÃO LINEAR.
LINEAR
• Para se escrever algoritmos estruturados
são usados os PSEUDOCÓDIGOS.
PSEUDOCÓDIGOS
Algoritmos estruturados
• No desenvolvimento dos algoritmos estruturados
devem ser observados 3 items básicos:
1-FUNCIONABILIDADE: o algoritmo deve funcionar!
2-SIMPLICIDADE: o algoritmo não deve realizar
tarefas inúteis. Ele deve ser feito da forma mais
simples possível.
3-CLAREZA: o algoritmo deve ser claro, isto é, fácil
de se ler e entender.
• Sem estas características, o algoritmo estará
ERRADO!
ERRADO
Pseudocódigo - Português Estruturado
• O Pseudocódigo utilizado no
desenvolvimento de algoritmos
estruturados é chamado de
Português Estruturado.
Estruturado
• Nas próximas telas veremos como
são escritas as estruturas usando o
Português Estruturado.
Estrutura de um algoritmo
• Um algoritmo escrito em pseudocódigo possui a seguinte
estrutura:

Algoritmo Nome
var
Declaração de variáveis
início
Comandos
fim
Obs.: Não utilize espaços
no nome do algoritmo!
Estrutura de um algoritmo - Fluxograma

Início

Comandos

Fim
Pseudocódigo: Variáveis
• As variáveis são utilizadas para guardar valores na
memória.
• São utilizadas no lugar do endereço de memória.
• São identificadas por um nome.
• Os nomes devem obedecer às seguintes regras:
1-Só podem começar por LETRA.
2-Só podem ter LETRAS, NÚMEROS e o caractere _
(sublinhado).
• Exemplos:
– A, B, A2, Contador, X_2, ABC2, Nome_Cliente (válidos)
– 2A, ABC$%, A B C, Nome Cliente 2, Início (inválidos)
• Os comandos do pseudocódigo são palavras reservadas e
não podem ser usados como nome de variáveis. Por isso,
as palavras reservadas devem ser sublinhadas!
Declaração de variáveis
• Equivale à lista de ingredientes da receita. Serve para informar
quais os tipos de variáveis utilizadas no algoritmo.

var
NomeDaVariável : tipo

• Os tipos de variáveis são os seguintes:


– Inteiro: Números sem parte decimal.
– Real: Números com parte decimal.
– Word: Números inteiros positivos.
– Booleano: Valores VERDADEIRO e FALSO.
– Caractere: Um único símbolo gráfico.
– String: Conjunto de caracteres. Armazena um texto.
• Obs.: O fluxograma não utiliza declaração de variáveis.
Exemplos:
var
X : real
i,j : inteiro
Nome_cliente : string
Valor1, Valor2 : real
Flag : booleano
Letra : caractere
Taxa : word
Atribuição de valores
• Indicam o valor que uma variável
deve receber em um algoritmo.
variável := valor
• Exemplos:
x := 2
x := y
x := y + 2
Atribuição de valores - Fluxograma

Variável := Valor
Operadores Aritméticos
• São utilizados os seguintes
operadores:
+ Adição
- Subtração
* Multiplicação
/ Divisão
div Divisão inteira
mod Resto da divisão inteira
Exemplos:
x := a + b
y := 2 * x
z := 5 / 2
i := 5 div 2 (quanto vale i?)
r := 5 mod 2 (quanto vale r?)
Entrada e Saída
• Entrada:
Entrada indica que algum dado deve
ser fornecido ao algoritmo
(programa) pelo USUÁRIO.
• Saída:
Saída indica que algum dado deve
ser fornecido pelo algoritmo
(programa) ao USUÁRIO.
Pseudocódigo: Entrada
Leia(Variável)

• O valor digitado pelo usuário será


armazenado na Variável. Exemplo:
Leia (X)
• O valor digitado será armazenado na
variável X.
Entrada - Fluxograma

Leia (X) Leia (X)


Pseudocódigo: Saída
Escreva(Variável)
Escreva(‘Mensagem’)
• No primeiro caso, o valor da Variável
será exibido ao usuário; no segundo,
será mostrada a mensagem entre
apóstrofos (‘’). Ex.:
Escreva(X)
Escreva(‘Bom dia!’)
Saída: Fluxograma

Escreva (X) Escreva(X)


Pseudocódigo: Condicionais
• É utilizado na tomada de decisões.
1)
Se condição então
início
comandos Bloco de comandos

fim
• Os “comandos” são executados quando a
condição for VERDADEIRA.
Pseudocódigo: Condicionais
2)
Se condição então
Início
Comandos1 Bloco 1
fim
senão
início
Comandos2 Bloco 2
fim

“Comandos1” são executados se a condição for


VERDADEIRA; “Comandos2” são executados quando a
condição for FALSA.
Condicionais - Fluxograma

F Condição
F
Condição

V V

Comandos Comandos1 Comandos2

1 1

Tipo 1 Tipo 2
Operadores Relacionais
• Relacionam DUAS grandezas.
• O resultado da relação pode ser Falso ou Verdadeiro.

= igual a
≠ diferente de
> maior que
< menor que
≥ maior ou igual a
≤ menor ou igual a

• Exemplos:
3>2 V
5<3 F
x ≥ 5 Depende do valor de x
Operadores Lógicos
• Relacionam duas ou mais grandezas
lógicas.
• O resultado de uma operação lógica
é um valor lógico.
• Os valores lógicos são FALSO e
VERDADEIRO.
Operador Lógico E (AND)
• Tabela Verdade
A B Saída
F F F
F V F
V F F
V V V
Operador Lógico OU (OR)
• Tabela Verdade
A B Saída
F F F
F V V
V F V
V V V
Operador Lógico NÃO (NOT)
• Tabela Verdade

A Saída
F V
V F
Obs.:
NÃO (F) = V
NÃO (NÃO (F)) = F
NÃO (NÃO (NÃO (F))) = V
Condições: Exemplo
• Exemplo:
Se (x>2) e (y<4) então
Escreva(x + y)
senão
início
Escreva(x – y)
Escreva(x * y)
fim
Pseudocódigo: Laço Repita
• Laço REPITA...ATÉ QUE
repita
Bloco de comandos
comandos
até que condição

• O laço termina quando a condição


for VERDADEIRA.
• A condição é do mesmo tipo da
usada nos condicionais.
Laço Repita - Fluxograma

Comandos

Condição
F
V
Laço Repita: Exemplo
i := 0
repita
Escreva(i)
i := i + 1
até que i > 5

• O que faz o laço acima?


Pseudocódigo: Laço Enquanto
• Laço ENQUANTO...FAÇA
Enquanto condição faça
início
comandos Bloco de Comandos
fim
• O laço termina quando a condição for
FALSA.
• A condição é a mesma utilizada pelos
condicionais.
Laço Enquanto - Fluxograma
1

Condição F

Comandos

2
Laço Enquanto: Exemplo
i := 0
Enquanto i ≤ 5 faça
início
i := i + 1
Escreva(i)
fim

• O que faz o laço acima?


Pseudocódigo: Laço Para
Para VC := VI até VF faça
início
comandos Bloco de comandos
fim
• VC: Variável Contadora (inteiro)
• VI: Valor Inicial (inteiro)
• VF: Valor Final (inteiro)
VC é inicializada com VI e incrementada de 1 até atingir VF,
quando o laço para.
Laço Para - Fluxograma
• O fluxograma não possui estrutura Para. Ela deve ser feita usando a estrutura
Enquanto...faça.

VC:=VI

VC>VF?
V
F
Comandos

VC:=VC+1

Você também pode gostar