Algoritmos
-
Upload
paulo-faustini-jr -
Category
Documents
-
view
3.327 -
download
3
Transcript of Algoritmos
![Page 1: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/1.jpg)
AlgoritmosAlgoritmos
![Page 2: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/2.jpg)
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
![Page 3: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/3.jpg)
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.
![Page 4: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/4.jpg)
Algoritmos & Receitas
• Uma receita apresenta certa semelhança com algoritmos:
• ENTRADA: São os ingredientes.
• PROCESSAMENTO: Modo de preparo
• SAÍDA: O alimento pronto.
![Page 5: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/5.jpg)
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.
![Page 6: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/6.jpg)
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!
![Page 7: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/7.jpg)
Linguagens para algoritmos
Para formalizar a construção de algoritmos, são utilizadas as seguintes linguagens:
• Formato livre
• Fluxogramas
• Pseudocódigos
![Page 8: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/8.jpg)
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?)
![Page 9: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/9.jpg)
Desvantagem do formato livre
• O formato livre pode apresentar imprecisões em algoritmos mais complexos.
• O formato livre só é vantajoso em algoritmos muito simples.
![Page 10: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/10.jpg)
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
![Page 11: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/11.jpg)
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!
![Page 12: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/12.jpg)
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.
![Page 13: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/13.jpg)
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.
![Page 14: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/14.jpg)
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!
![Page 15: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/15.jpg)
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.
![Page 16: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/16.jpg)
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!
![Page 17: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/17.jpg)
Estrutura de um algoritmo - Fluxograma
Fim
Início
Comandos
![Page 18: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/18.jpg)
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!
![Page 19: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/19.jpg)
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.
![Page 20: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/20.jpg)
Exemplos:var
X : real
i,j : inteiro
Nome_cliente : string
Valor1, Valor2 : real
Flag : booleano
Letra : caractere
Taxa : word
![Page 21: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/21.jpg)
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
![Page 22: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/22.jpg)
Atribuição de valores - Fluxograma
Variável := Valor
![Page 23: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/23.jpg)
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
![Page 24: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/24.jpg)
Exemplos:
x := a + b
y := 2 * x
z := 5 / 2
i := 5 div 2 (quanto vale i?)
r := 5 mod 2 (quanto vale r?)
![Page 25: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/25.jpg)
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.
![Page 26: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/26.jpg)
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.
![Page 27: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/27.jpg)
Entrada - Fluxograma
Leia (X) Leia (X)
![Page 28: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/28.jpg)
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!’)
![Page 29: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/29.jpg)
Saída: Fluxograma
Escreva (X) Escreva(X)
![Page 30: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/30.jpg)
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
![Page 31: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/31.jpg)
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
![Page 32: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/32.jpg)
Condicionais - Fluxograma
Comandos
1
Condição
V
F
Tipo 1Tipo 1
Condição
V
F
Comandos1
1
Comandos2
Tipo 2Tipo 2
![Page 33: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/33.jpg)
• 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
![Page 34: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/34.jpg)
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.
![Page 35: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/35.jpg)
Operador Lógico E (AND)
• Tabela Verdade
A B Saída
F F F
F V F
V F F
V V V
![Page 36: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/36.jpg)
Operador Lógico OU (OR)
• Tabela Verdade
A B Saída
F F F
F V V
V F V
V V V
![Page 37: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/37.jpg)
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
![Page 38: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/38.jpg)
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
![Page 39: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/39.jpg)
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
![Page 40: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/40.jpg)
Laço Repita - Fluxograma
1
Comandos
Condição
V
F
![Page 41: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/41.jpg)
Laço Repita: Exemplo
i := 0
repita
Escreva(i)
i := i + 1
até que i > 5
• O que faz o laço acima?
![Page 42: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/42.jpg)
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
![Page 43: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/43.jpg)
Laço Enquanto - Fluxograma
1
Comandos
2
Condição
V
F
![Page 44: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/44.jpg)
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?
![Page 45: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/45.jpg)
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
![Page 46: Algoritmos](https://reader031.fdocuments.net/reader031/viewer/2022013011/5571f1ba49795947648b98dd/html5/thumbnails/46.jpg)
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