Algoritmos

Post on 06-Jun-2015

3.324 views 3 download

Transcript of Algoritmos

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