Upload
paulo-faustini-jr
View
3.319
Download
3
Embed Size (px)
Citation preview
AlgoritmosAlgoritmos
Definição
• O desenvolvimento de um programa é muito complexo.
• ALGORITMO: é a descrição dos passos necessários para se resolver um problema.
ProblemaProblema AlgoritmoAlgoritmo ProgramaPrograma
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 SoldubaSanduí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 valor1- Introduzir o primeiro valor
2- Introduzir o segundo valor2- Introduzir o segundo valor
3 - Somar os dois valores3 - Somar os dois valores
4 - Mostrar o resultado4 - 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:
1 Fim
Início
Introduzir 1º valor
Introduzir 2º valor
1
Calcular a somados dois valores
Mostrar oresultado
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 EstruturadaProgramação 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 LINEARPROGRAMAÇÃO LINEAR.
• Para se escrever algoritmos estruturados são usados os PSEUDOCÓDIGOSPSEUDOCÓ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á ERRADOERRADO!
Pseudocódigo - Português Estruturado
• O Pseudocódigo utilizado no desenvolvimento de algoritmos estruturados é chamado de Português EstruturadoPortuguês 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çosno nome do algoritmo!
Estrutura de um algoritmo - Fluxograma
Fim
Início
Comandos
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
• EntradaEntrada: indica que algum dado deve ser fornecido ao algoritmo (programa) pelo USUÁRIO.
• SaídaSaí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
fim• Os “comandos” são executados quando a
condição for VERDADEIRA.
Bloco de comandos
Pseudocódigo: Condicionais2)
Se condição então Início
Comandos1 fimsenão início
Comandos2 fim
“Comandos1” são executados se a condição for VERDADEIRA; “Comandos2” são executados quando a condição for FALSA.
Bloco 1
Bloco 2
Condicionais - Fluxograma
Comandos
1
Condição
V
F
Tipo 1Tipo 1
Condição
V
F
Comandos1
1
Comandos2
Tipo 2Tipo 2
• 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:
Operadores Relacionais
3 > 25 < 3 Fx 5
V
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É QUErepita
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.
Bloco de comandos
Laço Repita - Fluxograma
1
Comandos
Condição
V
F
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ÇAEnquanto condição faça
início
comandos
fim
• O laço termina quando a condição for FALSA.
• A condição é a mesma utilizada pelos condicionais.
Bloco de Comandos
Laço Enquanto - Fluxograma
1
Comandos
2
Condição
V
F
Laço Enquanto: Exemplo
i := 0Enquanto 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çainício comandosfim
• 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.
Bloco de comandos
Laço Para - Fluxograma• O fluxograma não possui estrutura Para. Ela deve ser feita usando a estrutura Enquanto...faça.
VC:=VI
Comandos
VC:=VC+1
1
VC>VF?V
F