disciplina algoritmos e programação · definição de algoritmo um algoritmo é formalmente uma...

54
Disciplina Algoritmos e Programação (Conceitos Práticos de Lógica de Programação) Prof. Wagner Santos C. de Jesus [email protected] Curso: Análise e Desenvolvimento de Sistemas

Upload: doanxuyen

Post on 11-Nov-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Disciplina Algoritmos e Programação

(Conceitos Práticos de Lógica de Programação)

Prof. Wagner Santos C. de [email protected]

Curso: Análise e Desenvolvimento de Sistemas

Page 2: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Conceito de Algoritmo

2

Page 3: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Definição de Algoritmo

Um algoritmo é formalmente uma seqüência finita depassos que levam a execução de uma tarefa. Podemospensar em algoritmo como uma receita, umaseqüência de instruções que dão cabo de uma metaespecífica. Estas tarefas não podem ser redundantesnem subjetivas na sua definição, devem ser claras eprecisas.

3

Page 4: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Formas de descrever um Algoritmos

• Pseudo código• Escrita formal em uma Linguagem

de Programação• Expressões Matemáticas• Simbologias

4

Page 5: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Aplicações de Algoritmos

• Engenharia • Biologia• Línguas• Psicologia• Física• Matemática• Artes

5

Page 6: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Tipos de Algoritmos

• Português Estruturado (Pseudocódigo)• Descrição Narrativa• Fluxograma (Diagrama de Blocos)

6

Page 7: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Exemplo de Português Estruturado

AlgortimoInicio

Declare n1,n2, m NumericoEscreva “Digite dois números”Leia n1, n2M � n1 * n2 Escreva “Multiplicação = “, M

fim

7

Page 8: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Descrição Narrativa

1. Obter as duas notas2. Calcular a média3. Se media for maior ou igual 7 4. O aluno foi Aprovado5. Senão o aluno não foi aprovado

8

Page 9: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Conceito de Fluxograma (Diagrama de Blocos)

9

Page 10: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Conceito de Fluxograma

Fluxograma é umarepresentação de um processoque utiliza símbolos gráficos paradescrever passo a passo anatureza das idéias e o fluxo.

10

Page 11: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Desenvolvendo um Algoritmo

11

Page 12: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Procedimento para montagem

O algoritmo deve ser fácil de seinterpretar e fácil de codificar. Ou seja,ele deve ser o intermediário entre alinguagem falada e a linguagem deprogramação.

12

Page 13: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Conceito de pseudocódigo

Os algoritmos são descritos em umalinguagem chamada pseudocódigo.Este nome é uma alusão à posteriorimplementação em uma linguagem deprogramação.

Exemplo:

Inicioleia(n)escreva(n)

fim13

Page 14: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Regras para construção de algoritmos

1. Usar somente um verbo por frase2. Imaginar que você está

desenvolvendo um algoritmo que será compartilhado com outras pessoas.

3. Usar frases curtas e simples4. Ser objetivo5. Procurar usar palavras que não

tenham sentido dúbio 14

Page 15: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

15

Page 16: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Teste de Mesa (Simulação)

Após desenvolver um algoritmo eledeverá sempre ser testado. Esteteste é chamado de TESTE DE MESA(Simulação), que significa, seguir asinstruções do algoritmo de maneiraprecisa para verificar se o procedimentoutilizado está correto ou não.

16

Page 17: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Teste de Mesa (Descrição Narrativa)

1. Receber código da peça2. Receber valor peça3. Receber quantidade de peça4. Calcular o valor total de peça (Quantidade *

Valor de peças)5. Mostrar Código da peça e o Valor Total

Código Valor Quantidade Total

540.00 * 30

AF3289 540.00 30 16,200.00

17

Page 18: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Problema Exemplo

Duas pessoas desconhecidas A e Bforneceram suas idades para realizaçãode uma pesquisa. Determinar quantosanos de diferença de idade existe entreA e B.

18

Page 19: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Solução Problema

1. Entrar com a idade de A2. Entrar com a idade de B3. Subtrair a idade A da Idade de B4. Mostra resultado da subtração

19

Page 20: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Construção de Algoritmos

20

Page 21: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Conceitos Básicos para Construção de um algoritmo

•Atribuição •Condição •Repetição

21

Page 22: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Atribuição

Vem a ser quando uma variávelou espaço reservado na memóriasão ocupados por valores ouresultados de expressões lógicas,aritméticas e de símbolosalfanuméricos.

Exemplo: X = 1

22

Page 23: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Exemplo de raciocínio algorítmico atribuição

23

Page 24: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

5=A B

B= 55

5

Atribuição de valores usando variáveis

Page 25: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

CondiçãoVem a ser uma verificação de quando umprerrogativa acontece ou não devendo serexecutada uma tarefa em caso de afirmação detal prerrogativa.

Exemplo: Se (saldo < 0) “Saldo Negativo”caso contrário “Saldo Positivo”

25

Page 26: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Repetição

Ocorre quando uma determinada tarefa precisa serexecutada dentro de um intervalo de iterações definidopelo problema e ou necessidade do processo.

Exemplo: Tempo 1 SegundoTempo 2 SegundoTempo 3 Segundo

:

26

Page 27: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Exemplo de repetição

a = 0a <= 10

Tempo (a) Segundosa = a + 1

27

Page 28: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Elementos básico de um Fluxograma

28

Page 29: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Algoritmo(Diferença de Idade)

29

Page 30: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Operadores Matemáticos para Construção de

Algoritmos

30

Page 31: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Operadores Matemáticos

•Aritméticos•Relacionais•Lógicos

31

Page 32: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Operadores Aritméticos

(+) - soma(-) - Subtração(*) - Multiplicação(/) - Divisão(%) - Módulo (Resto da Divisão)

32

Page 33: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Operadores Aritméticos

33

Page 34: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Exemplo de operações aritméticas

bac +=

bac −=

bac .=

k

x

b

ac −=

)(3 bac −=

bac +=

bac *=

Convencional Computacional

)/()/( kxbac −=

)(*3 bac −=34

Page 35: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Operadores Relacionais

>- Maior que< - Menor que= = - Igual a ( somente para números)!= - Diferente de>= - Maior ou Igual<= - Menor ou Igual

35

Page 36: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Exemplo de operador relacionala = 3b = 4

c = a < b true c = a != b truec = a == B false

36

Page 37: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Operadores Lógicos.

And (E) - &&Or (ou) - ||Not (não) - !

37

Page 38: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Operador OR (Ou)

A B Saída

0 0 0

0 1 1

1 0 1

1 1 1

38

Page 39: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Operador AND (E)

A B Saída

0 0 0

0 1 0

1 0 0

1 1 1

39

Page 40: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Operador Not (Não)

A Saída

1 0

0 1

40

Page 41: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Exemplo de operador lógicoa = 3b = 4

c = ((a+b) > b) && (a < b ) true c = (a != b) || (a > b) truec = !(a != b) false

41

Page 42: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Exemplo de Operações Relacionais

42

Page 43: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

B = 9 e C = 9

43

A = B > C

A = Falso

Page 44: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

B = 9 e C = 9

44

A = B >= C

A = Verdadeiro

Page 45: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

B = 9 e C = 9

45

A = B < C

A = FALSO

Page 46: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

B = 9 e C = 9

46

A = B < C

A = FALSO

Page 47: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

B = 8 e C = 8

47

A = B != C

A = FALSO

Page 48: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Exemplo de Operações Booleanas

48

Page 49: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

B = 7 ; C = 8 e D = 3

49

A = (B > C) e (B < D)

A = FALSO

Page 50: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

B = 7 ; C = 8 e D = 3

50

A = (B > C) ou (D < B)

A = Verdadeiro

Page 51: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

B = 7 ; C = 8

51

A = not(B > C)

A = Verdadeiro

Page 52: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

B = 7 ; C = 8; D = 5; E=9

52

A =(B>E) e ((B!=C) ou (E>C))

A = FALSO

Page 53: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Exercício Proposto

Paulinho tinha n balas e Pedrinho tinhatrês vezes as balas de Paulinho e aindaganhou mais cinco balas de sua avó. ComQuantas bala ficou Pedrinho.

53

Page 54: Disciplina Algoritmos e Programação · Definição de Algoritmo Um algoritmo é formalmente uma seqüência finita de ... resultados de expressões lógicas, aritméticas e de símbolos

Formalização de um Algoritmo

• Atribuição: a <- n (a = n)

• Condição: se() [então, Senão]

• Repetição: Para()Enquanto()

54