Algoritmos

46
Algoritm Algoritm os os

Transcript of Algoritmos

Page 1: Algoritmos

AlgoritmosAlgoritmos

Page 2: Algoritmos

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

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

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

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

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

Linguagens para algoritmos

Para formalizar a construção de algoritmos, são utilizadas as seguintes linguagens:

• Formato livre

• Fluxogramas

• Pseudocódigos

Page 8: Algoritmos

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

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

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

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

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

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

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

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

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

Estrutura de um algoritmo - Fluxograma

Fim

Início

Comandos

Page 18: Algoritmos

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

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

Exemplos:var

X : real

i,j : inteiro

Nome_cliente : string

Valor1, Valor2 : real

Flag : booleano

Letra : caractere

Taxa : word

Page 21: Algoritmos

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

Atribuição de valores - Fluxograma

Variável := Valor

Page 23: Algoritmos

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

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

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

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

Entrada - Fluxograma

Leia (X) Leia (X)

Page 28: Algoritmos

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

Saída: Fluxograma

Escreva (X) Escreva(X)

Page 30: Algoritmos

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

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

Condicionais - Fluxograma

Comandos

1

Condição

V

F

Tipo 1Tipo 1

Condição

V

F

Comandos1

1

Comandos2

Tipo 2Tipo 2

Page 33: Algoritmos

• 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

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

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

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

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

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

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

Laço Repita - Fluxograma

1

Comandos

Condição

V

F

Page 41: Algoritmos

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

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

Laço Enquanto - Fluxograma

1

Comandos

2

Condição

V

F

Page 44: Algoritmos

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

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

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