67
1 CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007 CONSTRUÇÃO DE ALGORITMOS CEULS/ULBRA CENTRO UNIVERSITÁRIO LUTERANO DE SANTARÉM CURSO DE SISTEMAS DE INFORMAÇÃO Tarcísio Bentes [email protected]

Construção de Algoritmos

Embed Size (px)

Citation preview

Page 1: Construção de Algoritmos

1

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOS

CEULS/ULBRACENTRO UNIVERSITÁRIO LUTERANO DE SANTARÉM

CURSO DE SISTEMAS DE INFORMAÇÃO

Tarcísio [email protected]

Page 2: Construção de Algoritmos

2

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

ENTRADA

ENTRADA: os dados de entrada do algoritmo.

Ex.: Notas de um aluno

PROCESSAMENTO: procedimentos, ações ou cálculos utilizados para chegar ao resultado final.

Ex.: Cálculo da Média Final

SAÍDA: os dados processados. Ex.: Impressão de valores

A MÁQUINA QUE OBEDECE ORDENS

CONSTRUÇÃO DE ALGORITMOS

PROCESSAMENTO SAÍDA

Page 3: Construção de Algoritmos

3

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOS

ENTRADA

UNIDADE CENTRAL DE PROCESSAMENTO(U.C.P. ou C.P.U.)

UNIDADE DE

CONTROLE UNIDADE LÓGICA E

ARITMÉTICA

MEMÓRIA PRINCIPAL

SAÍDA

MODELO COMPUTACIONAL DE JOHN VON NEUMANN

A MÁQUINA QUE OBEDECE ORDENS

Page 4: Construção de Algoritmos

4

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

ORIENTADA A OBJETOS (E EVENTOS):1. Programas simulam o Mundo Real (incontáveis objetos);2. Os objetos devem enviar, receber e reagir a mensagens.

CONSTRUÇÃO DE ALGORITMOS

“Programar nos diferentes paradigmas significa, portanto, representar, segundo modelos diferentes, a solução do problema a ser resolvido na máquina” (BARANAUSKAS, ____)

As formas que temos para resolver problemas através de uma LP:

SEQUENCIAL (PARADIGMA PROCEDURAL):1. Comandos ordenados em linhas;2. Execução top-down (de cima para baixo);3. Estruturas básicas de controle: Seleção e Repetição.

ESTRUTURADA (PARADIGMA FUNCIONAL):1. Funções e Procedimentos;2. Fragmentação do Programa (em Bibliotecas).

1. TÉCNICAS DE PROGRAMAÇÃO

Page 5: Construção de Algoritmos

5

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

Algoritmos podem ser representados, dentre outras maneiras, por:

1. PSEUDO-CÓDIGO (PORTUGOL)

2. DIAGRAMA DE BLOCOS

“[...] são duas técnicas importantes para a documentação da solução de um problema computacional [...]” (MANZANO & OLIVEIRA, 1999).

CONSTRUÇÃO DE ALGORITMOS2. FORMAS DE REPRESENTAÇÃO

Page 6: Construção de Algoritmos

6

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

Referência indireta à uma linguagem de programação!

Por isso, o algoritmo é independente da linguagem que for utilizada para programar.

PSEUDO-CÓDIGO (PORTUGOL)

Português

(PSEUDO-CÓDIGO)ALGORITMOS

Linguagem de Programação

CONSTRUÇÃO DE ALGORITMOS2. FORMAS DE REPRESENTAÇÃO

Page 7: Construção de Algoritmos

7

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

PSEUDO-CÓDIGO (PORTUGOL)

CONSTRUÇÃO DE ALGORITMOS2. FORMAS DE REPRESENTAÇÃO

Page 8: Construção de Algoritmos

8

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

VANTAGENS:1. Independência física da solução (solução lógica apenas);2. Usa o português como linguagem base; 3. Pode-se definir quais e como os dados vão estar estruturados; 4. Passagem quase imediata do algoritmo para uma linguagem de programação qualquer.

DESVANTAGENS:1. Exige a definição de uma linguagem não real para trabalho;2. Não padronizado.

PSEUDO-CÓDIGO (PORTUGOL)

CONSTRUÇÃO DE ALGORITMOS2. FORMAS DE REPRESENTAÇÃO

Page 9: Construção de Algoritmos

9

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

Utilização de símbolos gráficos para representar algoritmos.

Existem símbolos padronizados para início, entrada de dados,

cálculos, saída de dados, fim, etc...

DIAGRAMA DE BLOCOS

Início/Fim Entrada Saída Cálculo Seleção(Decisão)

Conectores

pelo teclado

cartão perfurado na impressora

no vídeo

particionar

de página

CONSTRUÇÃO DE ALGORITMOS2. FORMAS DE REPRESENTAÇÃO

Page 10: Construção de Algoritmos

10

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

EXEMPLO DESCRIÇÃO DA INSTRUÇÃO

Início do algoritmo

Entrada do número Cálculo do dobro do número Apresentação do resultado Fim do algoritmo

início

leia NUM

DOBRO <- NUM * 2

escreva DOBRO

fim

DIAGRAMA DE BLOCOS

CONSTRUÇÃO DE ALGORITMOS2. FORMAS DE REPRESENTAÇÃO

Page 11: Construção de Algoritmos

11

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

VANTAGENS:1. Uma das ferramentas mais conhecidas;2. Figuras dizem muito mais que palavras;3. Padrão Mundial.

DESVANTAGENS:1. Faz com que a solução do problema já esteja

amarrada a dispositivos físicos;2. Pouca atenção aos dados, não oferecendo recursos

para descrevê-los ou representá-los;3. Complica-se à medida que o algoritmo cresce.

DIAGRAMA DE BLOCOS

CONSTRUÇÃO DE ALGORITMOS2. FORMAS DE REPRESENTAÇÃO

Page 12: Construção de Algoritmos

12

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

P1 – PORTUGOL e DB

CONSTRUÇÃO DE ALGORITMOS

Page 13: Construção de Algoritmos

13

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOS

OPERADORES

ARITMÉTICOS ESPECIAIS

* : Multiplicação/ : Divisão+ : Adição– : Subtração

MOD : Resto de uma divisão entre dois números

DIV : Valor Inteiro de uma divisão entre dois números

3. OPERAÇÕES ARITMÉTICAS (SOBRE DADOS NUMÉRICOS)

Realizadas com dados numéricos (inteiro ou real), retornam valores numéricos que podem ou não serem armazenados em variáveis.

Page 14: Construção de Algoritmos

14

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOS

OPERADORES MOD e DIV

3. OPERAÇÕES ARITMÉTICAS (SOBRE DADOS NUMÉRICOS)

Page 15: Construção de Algoritmos

15

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOSLINEARIZAÇÃO DE EXPRESSÕES

Para a construção de Algoritmos todas as expressões aritméticas devem ser linearizadas, ou seja, colocadas em linhas.

Page 16: Construção de Algoritmos

16

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOSMODULARIZAÇÃO DE EXPRESSÕES

A modularização é a divisão da expressão em partes, proporcionando maior compreensão e definindo prioridades para resolução da mesma.

EXEMPLOS:

(2+2)/2 = 2 2+(2/2) = 3 2+2/2 = 3

(2/3+(5-3)) = (2/3+5)-3 = 2/(3+5)-3 =

OBSERVAÇÃO:

1. Usamos parênteses “( )” para modularização, substituindo os “[ ]” e as

“{ }” das operações matemáticas do mundo real;

2. Podemos ter parênteses dentro de parênteses. Ex.: (..(..)..);

3. Operações entre parênteses precedem outras operações.

Page 17: Construção de Algoritmos

17

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

Lista 4 – Linearização de Op. Numéricas

CONSTRUÇÃO DE ALGORITMOS

Page 18: Construção de Algoritmos

18

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOSFORMA GERAL DE UM ALGORITMO EM “PORTUGOL”

CABEÇA

CORPO

Nomeação

Declaração

Comandos

Comentários

Page 19: Construção de Algoritmos

19

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOSPALAVRAS RESERVADAS

São nomes utilizados pelo algoritmo para executaruma determinada ação. Para evitar conflitos com estes nomes evita-se a sua utilização como identificadores.

EXEMPLOS:

1. ALGORITMO: nomea o algoritmo;

2. VAR e CONST: define o espaço para declaração de variáveis e constantes;

3. INÍCIO e FIM: define o corpo do algoritmo. Onde inicia e termina a execução

de comandos;

4. LEIA, ESCREVA, SE , REPITA, etc.: são comandos.

Page 20: Construção de Algoritmos

20

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOSIDENTIFICADORES

São os nomes dados aos programas, às variáveis e às constantes.

REGRAS PARA CONSTRUÇÃO DE IDENTIFICADORES:

1. NÃO podem ter nomes de palavras reservadas (comandos da linguagem) ;

2. Devem possuir como 1º caractere uma letra ou underscore (_) ;

3. Ter como demais caracteres letras, números ou underscore;

4. Ter no máximo 127 caracteres;

5. NÃO possuir espaços em branco;

6. A escolha de letras maiúsculas ou minúsculas é indiferente.Ex.: NOME é igual a Nome ou NoMe

Page 21: Construção de Algoritmos

21

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOSIDENTIFICADORES

São os nomes dados aos programas, às variáveis e às constantes.

Exemplos de Identificadores válidos:

Page 22: Construção de Algoritmos

22

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOS

CONSTANTESConstantes são endereços de memória destinados a armazenar

informações (VALORES) fixas.Estes VALORES são inalteráveis durante a execução do programa.

CONSTANTES E VARIÁVEIS

Constantes são eternamente iguais a determinados valores,

portanto utilizamos o sinal = (leia-se “igual”).

Ex.:PI = 3,1416gravidade = 9,8Empresa = “Tapajós Informática S/A”V = Verdadeiro

Page 23: Construção de Algoritmos

23

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOSVARIÁVEIS

Variáveis são endereços de memória destinados a armazenar informações (VALORES) temporariamente.

Estes VALORES podem variar durante a execução do programa.

VARIÁVEIS DE ENTRADAVariáveis de Entrada armazenam informações fornecidas por um meio

externo, normalmente usuários ou discos.

VARIÁVEIS DE SAÍDAVariáveis de Saída armazenam dados processados como resultados.

Exemplo:

A B C <- A+BMEMÓRIA

VÍDEO 5 3 7

DENTRODO COMPUTADOR

FORADO COMPUTADOR

Page 24: Construção de Algoritmos

24

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOS

SINAL DE ATRIBUIÇÃO (<-)

Uma variável nunca é eternamente igual a apenas um valor, seu conteúdo pode ser alterado a qualquer momento. Portanto, para

atribuir valores à variáveis utilizamos o sinal <- (leia-se “recebe”).

Ex.: A <- 2B <- 3SOMA <- A + BNome <- “Antônio”deuCerto <- Falso

Page 25: Construção de Algoritmos

25

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOSTIPOS DE DADOS

O tipo de informação que uma determinadavariável ou constante pode assumir.

OS TIPOS DE DADOS PODEM SER:

> PRIMITIVO: Pré-definido pela linguagem (numérico, literal ou lógico);

> SUB-FAIXA: Parte de um Tipo Primitivo já existente (vetor e matriz);

> ESCALAR: Definidos pelo programador.

Page 26: Construção de Algoritmos

26

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOSTIPOS DE DADOS

TIPOS PRIMITIVOS

O tipo de informação que uma determinadavariável ou constante pode assumir.

1. NUMÉRICO: valores que representam números

> INTEIRO: conjunto de número inteiros.

Ex.: 1 -3 0 234

> REAL (ou Ponto Flutuante): conjunto dos números reais.

Ex.: 1 -1,45 -0,56 23e-2

Page 27: Construção de Algoritmos

27

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOSTIPOS DE DADOS

TIPOS PRIMITIVOS

O tipo de informação que uma determinadavariável ou constante pode assumir.

2. LITERAL: cadeia de caracteres, também chamados STRINGs.

> Sequência de alfanuméricos (letras, números e caracteres especiais);

> São representados entre aspas “ ”.

Ex.: “a” “ave” “Antônio” “7,89” “65%”

Page 28: Construção de Algoritmos

28

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOSTIPOS DE DADOS

TIPOS PRIMITIVOS

O tipo de informação que uma determinadavariável ou constante pode assumir.

3. LÓGICO: representam os valores lógicos de verdade e falsidade, ou ainda de 1 bit (0 ou 1).

> Também chamados valores BOOLEANOS:

VERDADEIRO ou FALSO

> São os resultados de expressões lógicas.

Ex.: 3 > 1 = VERDADEIRO 1 > 3 = FALSO 5 + 2 < 9 = ??

Page 29: Construção de Algoritmos

29

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOS

COMANDOS DE ENTRADA/SAÍDA (I/O – INPUT/OUTPUT)

leia: comando de entrada que permite a leitura de valores para variáveis de entrada.

escreva: comando de saída que escreve uma informação (valor de uma variável de saída, uma literal, etc.) na tela do monitor.

Page 30: Construção de Algoritmos

30

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOS

LINHAS DE COMENTÁRIO {} ou //

Podemos inserir em um Algoritmo comentários para aumentar a compreensão do mesmo, para isso basta que o texto fique entre

Chaves “{}”

Ex.:leia (RAIO) // ENTRADA

{ Cálculo da somade dois números }

SOMA <- A + B

Page 31: Construção de Algoritmos

31

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

Construído o Algoritmo temos que testá-lo!

Através do TESTE DE MESA iremos seguir os passos de execução do algoritmo (linha por linha) para verificarmos se ele está correto, ou com erro.

Nota 1 Nota 2 MEDIAAlgoritmo Cálculo da Média

Teste de Mesa

início

leia Nota1

leia Nota2

MEDIA <- (Nota1 + Nota2) / 2

fim.

início

leia Nota1leia Nota1

3

leia Nota2leia Nota2

6

MEDIA <- (Nota1 + Nota2) / 2MEDIA <- (Nota1 + Nota2) / 2

4,5

fim.

TESTE DE MESA

CONSTRUÇÃO DE ALGORITMOS

Page 32: Construção de Algoritmos

32

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

Construído o Algoritmo temos que testá-lo!

Através do TESTE DE MESA iremos seguir os passos de execução do algoritmo (linha por linha) para verificarmos se ele está correto, ou com erro.

Nota 1 Nota 2 MEDIAAlgoritmo Cálculo da Média

Teste de Mesa

início

leia Nota1

leia Nota2

MEDIA <- (Nota1 + Nota2) / 2

fim.

início

leia Nota1leia Nota1

3

leia Nota2leia Nota2

6

MEDIA <- (Nota1 + Nota2) / 2MEDIA <- (Nota1 + Nota2) / 2

4,5

fim.

TESTE DE MESA

CONSTRUÇÃO DE ALGORITMOS

15 365 190

Page 33: Construção de Algoritmos

33

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOSIDENTAÇÃO

Embora não seja mandatória, uma vez que não influencia na execução, é de boa prática de programação utilizar a identação para melhor organização e visualização do código do algoritmo.Ex.:

Quando um comando ou bloco de comandos ficam subordinados a outros comandos.

algoritmo CALCULA_DOBROvar

{linhas subordinadas ao comando var}NUM, DOBRO: inteiro

início{bloco de comandos subordinados a início e fim.} leia NUMDOBRO 2 * NUMescreva DOBRO

fim.

Page 34: Construção de Algoritmos

34

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOSCONCATENAÇÃO

É utilizada apenas no comando escreva.

O operador de concatenação é o sinal “,”.

Justaposição de valores.

inícioescreva “alô mundo”escreva “Olá tudo bem ”, “João”escreva 1escreva 1, 2valor1 <- 12valor2 <- 34escreva valor1, valor2deuCerto <- falsoescreva deuCerto

fim.

Page 35: Construção de Algoritmos

35

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

REFINAMENTOS

O Algoritmo é completo quando é entendido pelo usuário!

“Calcula Média”Início

Receba dois números

Exiba o resultadoFim

Calcule a média dos dois númerosCalcule a média dos dois números

Calcule a média dos dois númerosé equivalente a

Some os dois númerosDivida o resultado por 2

CONSTRUÇÃO DE ALGORITMOS

Ex.:

Page 36: Construção de Algoritmos

36

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

REFINAMENTOS

O Algoritmo é completo quando é entendido pelo usuário!

“Calcula Média”Início

Receba dois númerosSome os dois númerosDivida o resultado por 2 Exiba o resultado

FimCalcule a média dos dois números

é equivalente aSome os dois númerosDivida o resultado por 2

CONSTRUÇÃO DE ALGORITMOS

Ex.:

Page 37: Construção de Algoritmos

37

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

REFINAMENTOS

O Algoritmo é completo quando é entendido pelo usuário!

início

media <- (val1 + val2) / 2 escreva media

fim.

leia val1, val2

Intruir o usuário sobre o quê fazer..dessa forma:

escreva “Digite dois valores: ”

leia val1, val2

CONSTRUÇÃO DE ALGORITMOS

leia val1, val2

Ex.:

Page 38: Construção de Algoritmos

38

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

REFINAMENTOS

O Algoritmo é completo quando é entendido pelo usuário!

inícioescreva “Digite dois valores: ”leia val1, val2media <- (val1 + val2) / 2 escreva media

fim.Intruir o usuário sobre o quê fazer..

dessa forma:escreva “Digite dois valores: ”

leia val1, val2

CONSTRUÇÃO DE ALGORITMOS

Ex.:

Page 39: Construção de Algoritmos

39

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

REFINAMENTOS

O Algoritmo é completo quando é entendido pelo usuário!

inícioleia val1, val2

escreva mediafim.

media <- (val1 + val2) / 2

Em dois passos com duas váriáveis..dessa forma:

soma <- val1 + val2media <- soma / 2

CONSTRUÇÃO DE ALGORITMOS

media <- (val1 + val2) / 2

Ex.:

Page 40: Construção de Algoritmos

40

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

REFINAMENTOS

O Algoritmo é completo quando é entendido pelo usuário!

inícioleia val1, val2soma <- val1 + val2media <- soma / 2escreva media

fim.Em dois passos com duas váriáveis..

dessa forma:soma <- val1 + val2media <- soma / 2

CONSTRUÇÃO DE ALGORITMOS

Ex.:

Page 41: Construção de Algoritmos

41

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

DIAGRAMA DE BLOCOS

Início

“Chupar uma bala”• Pegar a bala• Retirar o papel• Chupar a bala• Jogar o papel no lixo

Pegar a bala

Retirar o papel

Chupar a bala

Jogar o papel no lixo

Fim

CONSTRUÇÃO DE ALGORITMOS

Page 42: Construção de Algoritmos

42

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

inícioleia NUM_1leia NUM_2MEDIA <- (NUM_1 + NUM_2) / 2escreva MEDIA

fim.

DIAGRAMA DE BLOCOS

início

leia NUM_1

MEDIA <- (NUM_1+NUM_2)/2

escreva MEDIA

fim

leia NUM_2

CONSTRUÇÃO DE ALGORITMOS

OBS.: o nome do comando não é necessário, o símbolo deve falar por si só.

Page 43: Construção de Algoritmos

43

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

inícioleia NUM_1leia NUM_2MEDIA <- (NUM_1 + NUM_2) / 2escreva MEDIA

fim.

DIAGRAMA DE BLOCOS

início

NUM_1

MEDIA <- (NUM_1+NUM_2)/2

MEDIA

fim

NUM_2

CONSTRUÇÃO DE ALGORITMOS

OBS.: o nome do comando não é necessário, o símbolo deve falar por si só.

Page 44: Construção de Algoritmos

44

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

Lista 4 – Variáveis, Constantes e Tipos de Dados

CONSTRUÇÃO DE ALGORITMOS

Page 45: Construção de Algoritmos

45

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOS

OPERADORES

RELACIONAIS

> : Maior que< : Menor que>= : Maior ou Igual que<= : Menor ou Igual que= : Igual<> : Diferente

3. EXPRESSÕES RELACIONAISRelacionam dados literais e numéricos. Retornam valores lógicos

(verdadeiro ou falso) que podem ou não ser armazenados em variáveis.

inícioA <- 5B <- 3{resultados esperados}C <- A > BC <- B > AD <- A = BD <- A <> BE <- A >= BE <- A <= B

fim.

Page 46: Construção de Algoritmos

46

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOS

inícioA1 <- “A”B <- “B”A2 <- “A”deuCerto <- “sim”C <- A1 = BC <- A1 = A2D <- A1 <> BD <- A2 <> A1E <- deuCerto = “sim”deuCerto <- “não”E <- deuCerto = “sim”

fim.

3. EXPRESSÕES RELACIONAIS

Page 47: Construção de Algoritmos

47

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOS

4. OPERAÇÕES LÓGICAS (SOBRE DADOS LÓGICOS)

Combinam expressões relacionais. Também retornam valores lógicos (verdadeiro ou falso) que podem ou não ser armazenados em variáveis.

LÓGICOS

.e. : é VERDADEIRO se ambas as expressões forem VERDADEIRAS.

.ou.: é VERDADEIRO se pelo menos uma das expressões forem VERDADEIRAS.

.não. : inverte o resultado da expressão.FALSO passa a ser VERDADEIRO, e vice-versa.

OPERADORES

Page 48: Construção de Algoritmos

48

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOS

4. OPERAÇÕES LÓGICAS (SOBRE DADOS LÓGICOS)

Combinam variáveis do tipo lógico ou expressões relacionais. Também retornam valores lógicos (verdadeiro ou falso) que

podem ou não ser armazenados em variáveis.

TABELA VERDADE

A B A .e. B A .ou. B .não. A .não. B

V V V V F F

V F F V F V

F V F V V F

F F F F V V

Page 49: Construção de Algoritmos

49

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOS

4. OPERAÇÕES LÓGICAS (SOBRE DADOS LÓGICOS)

inícioA <- 5B <- 8C <- A = BD <- A < BE <- .not. DG <- C .e. DE <- A + B {atenção aqui!}F <- (A <> B).ou. (B < A)H <- (A < B) .e. (B = A)J <- .not. (A <= B)

fim.

Page 50: Construção de Algoritmos

50

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

CONSTRUÇÃO DE ALGORITMOS

4. OPERAÇÕES LÓGICAS (SOBRE DADOS LÓGICOS)

inícioA <- 5B <- 8C <- 1X <- A + 3{resultados esperados}D <- .not. (X > B)D <- (A = B).e. (B > C)E <- D .ou. (B < C)F <- (A < X) .e. FG <- (A >= B) .ou. (X = B)G <- .not. (A <= B)

fim.

Page 51: Construção de Algoritmos

51

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

Lista 5 – Expressões Relacionais e Operações Lógicas

CONSTRUÇÃO DE ALGORITMOS

Page 52: Construção de Algoritmos

52

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

ESTRUTURAS

DE

CONTROLE

Page 53: Construção de Algoritmos

53

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

ESTRUTURAS DE CONTROLE

Os comandos no algoritmo ficam em seqüência, e são executados na ordem em que eles se encontram, estritamente, um de cada vez. Assim:

comando1comando2comando3

comandoN

.

.

.

(TOP – DOWN)

1. SEQUÊNCIAÇÃO

Page 54: Construção de Algoritmos

54

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

ESTRUTURAS DE CONSTRUÇÃO

2. DECISÃO (ou CONDICIONAL)Quando a execução de dois comandos, ou de duas seqüências de comandos, ficam subordinados a uma condição.

Se <cond>

então

fimSe

comando

Se <cond>

então

fimSe

comando1

comandoX

SE simples

Expressão Relacional = Operação Lógica

Variável Lógica

<cond> { Portanto o resultado de uma condição sempre será um valor lógico.

Page 55: Construção de Algoritmos

55

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

2. DECISÃO (ou CONDICIONAL)Quando a execução de dois comandos, ou de duas seqüências de comandos, ficam subordinados a uma condição.

Se <cond>

então

fimSe

comando1senão

comando2

Se <cond>

então

fimSe

comando1

senãocomandoX

comando2

comandoY

SE completo

ESTRUTURAS DE CONTROLE

Page 56: Construção de Algoritmos

56

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

iníciocomando1comando2Se <cond>

entãocomando3

senãocomando4

fimSefim.

início

<cond>V F

2. DECISÃO (ou CONDICIONAL)

comando2

comando1

comando3 comando4

fim

ESTRUTURAS DE CONTROLE

Page 57: Construção de Algoritmos

57

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

iníciocomando1comando2Se <cond>

entãocomando3

senãocomando4

fimSefim.

iníciocomando1comando2Se <cond>

entãocomando3

senãocomando4

fimSefim.

2. DECISÃO (ou CONDICIONAL)

início

<cond>V

comando2

comando1

comando3

fim

ESTRUTURAS DE CONTROLE

Page 58: Construção de Algoritmos

58

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

iníciocomando1comando2Se <cond>

entãocomando3

senãocomando4

fimSefim.

iníciocomando1comando2Se <cond>

entãocomando3

senãocomando4

fimSefim.

2. DECISÃO (ou CONDICIONAL)

início

<cond>F

comando2

comando1

comando4

fim

ESTRUTURAS DE CONTROLE

Page 59: Construção de Algoritmos

59

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

2. DECISÃO (ou CONDICIONAL)Na condicional SE, podemos tratar apenas 2 (duas) opções. Para tratarmos mais opções precisamos fazer o aninhamento de SE.

Se <cond1> então

comando1senão

Se <cond2>então

comando2senão

comando3fimSe

fimSe

Ninhos de SE

comando1

<cond1>

V

F

<cond2>

V

F

comando3comando2

ESTRUTURAS DE CONTROLE

Page 60: Construção de Algoritmos

60

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

2. DECISÃO de MÚLTIPLA ESCOLHAComo alternativa para o aninhamentos de SE, podemos utilizar o comando ESCOLHA.

Escolha <cond1> caso <valor1>

comando1 caso <valor2>

comando2...senão

comando3fimEscolha

ESCOLHA

<valor1>

F

V

comando3

comando2

ESTRUTURAS DE CONTROLE

<valor2>V

F

comando1

Page 61: Construção de Algoritmos

61

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

2. DECISÃO de MÚLTIPLA ESCOLHAComo alternativa para os aninhamentos de SE, podemos utilizar o comando ESCOLHA.

ESCOLHA

ESTRUTURAS DE CONTROLE

Qualquer Expressão

ou

Qualquer Variável

<cond> {

Portanto o resultado de uma condição será qualquer valor.

Escolha <cond1> caso <valor1>

comando1 caso <valor2>

comando2...senão

comando3fimEscolha

Page 62: Construção de Algoritmos

62

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

Para: utilizada quando precisamos que determinada tarefa seja executada em um número determinado de vezes. Assim:

Para <var> <- <valinicial> até <valfinal> faça

comando1

fimPara

comandoX

Ex.: Bata cinco pênaltis;Escreva de 1 até 10.

3. REPETIÇÃO (ou LOOPING)

<var>

comando

<var> <- <var> + <passo>

<var> <- <var> + <passo>

valinicial .. valfinal

ESTRUTURAS DE CONTROLE

Page 63: Construção de Algoritmos

63

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

3. REPETIÇÃO (ou LOOPING)

Algoritmo repeticao_paravar

i : inteiroinício

comando1comando2Para i <- 1 até 3 faça

comando3i <- i + 1

fimParacomando4

fim.

início

i1 .. 3

comando2

comando1

comando4comando3

fim

i <- i + 1

ESTRUTURAS DE CONTROLE

Page 64: Construção de Algoritmos

64

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

Ex.: Enquanto a janela não quebrar atirar pedras;Executar enquanto o usuário não pedir para sair.

Enquanto e Repita: utilizada quando precisamos que determinada tarefa seja executada tantas vezes quanto uma determinada condição permitir. Assim:

Enquanto <cond>comando1

comandoXfimEnquanto

<cond>

comando1

V F

comandoX

ESTRUTURAS DE CONTROLE

3. REPETIÇÃO (ou LOOPING)

Page 65: Construção de Algoritmos

65

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

Algoritmo repeticao_enquantoinício

comando1comando2Enquanto <cond>

comando3comando4

fimEnquantocomando5

fim.

início

<cond>

comando2

comando1

comando5comando3

fim

comando4

V F

ESTRUTURAS DE CONTROLE

3. REPETIÇÃO (ou LOOPING)

Page 66: Construção de Algoritmos

66

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

Ex.: Atire pedras numa janela até quebrar;Executar até o usuário pedir para sair.

Repitacomando1

comandoXAté <cond>

<cond>

comando1

V

F

comandoX

ESTRUTURAS DE CONTROLE

Enquanto e Repita: utilizada quando precisamos que determinada tarefa seja executada tantas vezes quanto uma determinada condição permitir. Assim:

3. REPETIÇÃO (ou LOOPING)

Page 67: Construção de Algoritmos

67

CEULS/ULBRA – CURSO DE SISTEMAS DA INFORMAÇÃO JAN - 2007

Algoritmo repeticao_repitainício

comando1comando2Repita

comando3comando4

Até <cond>fim.

início

<cond>

comando2

comando1

comando3

fim

comando4

V

F

ESTRUTURAS DE CONTROLE

3. REPETIÇÃO (ou LOOPING)