33
Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

Embed Size (px)

Citation preview

Page 1: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

Prof. Alex Fernandes da Veiga Machado

ALGORÍTMOS E ESTRUTURA DE DADOSSLIDE - 2

Bacharelado em Ciência da Computação

Page 2: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

2

• LÓGICA DE PROGRAMAÇÃO:– Técnica de encadear pensamentos para atingir

determinado objetivo– Necessária para desenvolver programas e

sistemas, pois permite definir a seqüência lógica para a solução de um problema

• SEQÜÊNCIA LÓGICA: 1. 2. 3. – Passos executados até se atingir o objetivo ou

solução de um problema– Podem ser descritos como uma seqüência de

instruções, que devem ser seguidas para se cumprir uma determinada tarefa

Lógica de programação

Page 3: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

3

• INSTRUÇÃO:– Cada um dos passos, cada uma das ações a

tomar (obedecendo a seqüência lógica) para ir resolvendo o problema, ou para ir executando a tarefa

– Em informática, é a informação que indica a um computador uma operação elementar a executar

• Ex.: “somar”, “subtrair”, “comparar se é maior”, etc

– Uma só instrução não resolve problemas reais

– Executar um conjunto de instruções– Executar em uma seqüência lógica

Lógica de programação

Page 4: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

4

• EXEMPLO: para “fazer omelete”– Instruções: “quebrar ovos”, “bater ovos”, “pôr

sal”, “ligar fogão”, “pôr óleo na frigideira”, “pôr frigideira no fogo”, “fritar ovos batidos”, etc...

• Quanto às instruções isoladas:– Só “quebrar ovos”, ou só “pôr óleo na frigideira”,

não é suficiente para cumprir a tarefa “fazer omelete”

• Quanto à seqüência lógica:– Se executarmos “fritar ovos batidos” antes de

“bater ovos”, ou pior, antes de “quebrar ovos”, não iremos cumprir a tarefa “fazer omelete”

Lógica de programação

Page 5: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

5

Exemplo de algoritmo

Quando uma dona de casa prepara um bolo, segue uma receita, que nada mais é do que um algoritmo em que cada instrução é um passo a ser seguido para que o prato fique pronto com sucesso:

1. Bata 4 claras em neve2. Adicione 2 xícaras de açúcar3. Adicione 2 colheres de farinha de trigo, 4

gemas, uma colher de fermento e duas colheres de chocolate

4. Bata por 3 minutos5. Unte uma assadeira com margarina 6. Coloque o bolo para assar por 20minutos a

200 graus C

Page 6: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

6

Exemplo de algoritmo

Um motorista que necessita efetuar a troca de um pneu furado segue uma rotina para realizar essa tarefa:

1. Verifica qual pneu está furado2. Posiciona o macaco e levanta o carro3. Solta os parafusos4. Pega o estepe5. Substitui o pneu furado6. Recoloca os parafusos7. Desce o carro8. Guarda o macaco e o pneu furado

Page 7: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

7

• PSEUDOCÓDIGO: – Facilita descrever o algoritmo antes de passá-lo

para uma linguagem de programação

– Intermediária: linguagem natural – linguagem de programação

• FLUXOGRAMA:

– É uma forma universal de representação, que se utiliza de figuras geométricas para ilustrar passos a serem seguidos para a resolução de problemas

Lógica de programaçãoTipos de algoritmos

Page 8: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

8

• Tipos de Dados: – Lógico (Booleano): true e false

– Inteiro: … -2, -1, 0, 1, 2, 3...

– Real: … 0.25 , 35 , 20.6666 , ...

– Literal (Texto): “a”, “maria tereza”, “135”...

Lógica de programaçãoTipos de algoritmos

Page 9: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

ESTRUTURA DE UM ALGORITMO

9

Algoritmo < nome do algoritmo >

Var

< declaração de variáveis >

Const

< declaração de constante >

Inicio

escrever

ler

testar

calcular

Fim.

Comandos

Page 10: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

PSEUDOCÓDIGO OU LINGUAGEM ESTRUTURADA

10

Algoritmo Média

Var N1, N2, Média : real

Início

Leia N1, N2Média (N1 + N2) / 2Se Média < 7 Então

Escreva “Reprovado”Senão

Escreva “Aprovado” Fim_se

Fim.

Page 11: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

11

Início

Média > 7 “Reprovado”

Fim

.S.

“Aprovado”

Média(N1+N2)/2

Ler N1, N2

.N.

Fluxograma Convencional

Page 12: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

12

• FASES para desenvolver o algoritmo:– Determinar o problema, definí-lo (entendê-lo)

bem– Dividir a solução nas três fases:

• Exemplo:– Problema: calcular a média de quatro números– Dados de entrada: os números N1, N2, N3 e N4– Processamento: somar os quatro números e

dividir a soma por 4

– Dado de saída: a média final

Lógica de programação

ENTRADA PROCESSAMENTO SAÍDA

N1 + N2 + N3 + N44

Page 13: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

13

• Algoritmo:– Início– Ler o primeiro número– Ler o segundo número– Ler o terceiro número– Ler o quarto número– Somar todos os números – Dividir a soma por 4– Mostrar o resultado da divisão– Fim

Lógica de programação

Page 14: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

14

Exercício

1) Identifique os dados de entrada, processamento e saída no algoritmo abaixo

· Início· Ler código da peça· Ler valor da peça· Ler Quantidade de peças· Calcule o valor total da peça (Quantidade * Valor da

peça)· Mostre o código da peça e seu valor total· Fim

Page 15: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

15

Lógica de programaçãoVariável

– Representa uma posição na memória, onde pode ser armazenado um dado

– Possui um nome e um valor– Durante a execução do algoritmo, pode ter

seu valor alterado (seu valor pode variar)– Mudanças no valor das variáveis:

• Por entrada de dados (“Ler N1”)• Por atribuição (“N2 14”)

Page 16: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

16

Operadores Aritméticos

Exemplos:

MEDIA = (N1+N2+N3+N4) / 4

X 1 + 7 * 2 ** 2 - 1

Total preço * quantidade

Y 3*(1-2)+4*2

Page 17: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

17

Lógica de programaçãoTESTE DE MESA (Rastreio)

• Todo algoritmo deve ser testado

• Usar dados e resultados previamente calculados, seguir precisamente as instruções do algoritmo e verificar se o procedimento está correto ou não

Page 18: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

18

Exercícios

– Faca um algoritmo que receba como entrada uma determinada temperatura em graus Celsius e mostre a temperatura em graus Fahrenheit

• OBS: Fahrenheit = (9/5)*(Celsius) + 32

– Tendo como entrada o total vendido por um funcionário no mês de abril, faça um algoritmo que mostre a sua comissão e salário bruto neste mês, sabendo que o seu salário base é R$1.200,00 e sua comissão é de 10% sobre o total vendido.

- Entre com a base e a altura de um retângulo e mostre os resultados:• Perímetro (Perímetro é igual à soma dos 4 lados)• Área (Área é igual à lado vezes lado)

Page 19: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

Exercício

• Leia dois valores A e B e depois coloque em A o valor lido em B e em B o valor lido em A e mostre os novos valores de A e B

19

Page 20: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

20

– Usados para incrementar, decrementar, comparar e avaliar dados, que são operações básicas em processamento de dados.

– Tipos:• Aritméticos (+, -, *, /, ** ou ^)

– Resultados numéricos

• Relacionais (>, <, >=, <=, =, <> ou #)– Resultados lógicos (V ou F)

• Lógicos (e, ou, não)– Combinam resultados lógicos

Lógica de programaçãoOperadores

Precedência dos operadores

Page 21: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

21

• Operadores relacionais são muito usados quando temos que tomar decisões nos algoritmos. Com eles fazemos testes, comparações, que resultam em valores lógicos (verdadeiro ou falso):

Lógica de programação

Exemplo: tendo duas variáveis, A = 5 e B = 3:

Page 22: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

22

Exercícios

6) Tendo as variáveis SALARIO, IR e SALLIQ, e considerando os valores abaixo, informe se as expressões são verdadeiras ou falsas.

7) Sabendo que A=3, B=7 e C=4, informe se as expressões abaixo são verdadeiras ou falsas.

a) (A+C) > B ( )

b) B >= (A + 2) ( )

c) C = (B –A) ( )

d) (B + A) <= C ( )

e) (C+A) > B ( )

Page 23: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

23

Exercícios

9) Sabendo que A=5, B=4 e C=3 e D=6, informe se as expressões abaixo são verdadeiras ou falsas.

a) (A > C) AND (C <= D) ( )

b) (A+B) > 10 OR ((A+B) = (C+D)) ( )

c) (A>=C) AND (D >= C) ( )

Page 24: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

24

Decisão em algoritmos

• Os algoritmos vistos até agora eram sequenciais, isto é, todas as operações eram realizadas em sequência.

• Muitos problemas reais exigem a tomada de decisão no algoritmo, com mais de um caminho sendo possível de ser seguido.

Page 25: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

25

• ESTRUTURAS DE DECISÃO– Comandos de decisão ou desvio fazem parte

das técnicas de programação, para construir estruturas de algoritmos que não são totalmente seqüenciais.

– Com as instruções de desvio pode-se fazer com que o algoritmo proceda de uma ou outra maneira, de acordo com as decisões lógicas tomadas em função dos dados ou resultados anteriores.

– As principais estruturas de decisão são:• SE...ENTÃO• SE...ENTÃO...SENÃO

Lógica de programação

Page 26: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

26

- Formato:•Se <condição> então <ações>• Significado: Se a <condição> resultar em

verdadeiro, então executar as <ações>. Senão, simplesmente ignorar as <ações> e seguir para a próxima instrução no algoritmo.

• Usada para decidir se um conjunto de ações opcionais deve ser executado ou não, dependendo do valor de algum dado ou de algum resultado que já tenha sido calculado no algoritmo.

Lógica de programaçãoSE ... ENTÃO ...

Page 27: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

27

- Formato:Se <condição> então <ações 1>

senão <ações 2>•Significado: Se a <condição> resultar em

verdadeiro, então executar <ações 1>. Senão, ignorar <ações 1> e executar <ações 2>.

•Usada para decidir entre duas alternativas de ações.

•Um dos dois conjuntos de ações será executado e o outro não, dependendo do valor de algum dado ou de algum resultado que já tenha sido calculado no algoritmo.

•O valor do dado ou do resultado anterior será testado na condição, determinando qual conjunto de ações será executado.

Lógica de programaçãoSE ... ENTÃO ...SENÃO...

Page 28: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

28

• Exemplo da estrutura SE...ENTÃO...SENÃO:“Mostrar a diferença entre 2 números quaisquer.”– PSEUDOCÓDIGO:

Ler N1Ler N2Se (N1 > N2) então DIF = N1 - N2

senão DIF = N2 - N1Mostrar DIF

– O que acontece se os dois números forem iguais?

– O que acontece se um ou os dois números forem negativos?

Lógica de programação

Page 29: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

29

– FLUXOGRAMA:

Lógica de programação

INÍCIO

DIF

FIM

N1 > N2

N1

N2

DIF = N1 - N2DIF = N2 - N1

Page 30: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

30

Exemplo

Ler salário de funcionários da empresa XYZ e conceder reajuste salarial conforme os cargos. Aos Técnicos o reajuste será de 50 %, os Gerentes 30 % e aos demais 10 %.

Page 31: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

FLUXOGRAMA SEGUIDO DE ALGORITMO

31

V

V

Sal_Reaj.

1.5 * Salário

Sal_Reaj.

1.3 * Salário

Ler Salário

Prof..

Prof =

“Técnico”.

Prof =

“Gerente”.

Sal_reaj.

1.1 * Salário

“Salário Reajustado”,

Sal_reaj

Fim

Início Algoritmo

Program reaj_salario;

var Salario, Sal_reaj : real;

Prof : literal[20];

Início;

Leia salário, prof;

Escolha

Caso prof = “Técnico”

Sal_reaj 1.5 * salário;

Caso prof = “Gerente”

Sal_reaj 1.3 * salário;

Senão

Sal_reaj 1.1 * salário;

Fim escolha

Escrever “Salário Reajustado”, Sal_reaj;

Fim.

F

Page 32: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

Exercícios

• Faça um algoritmo que leia um número e mostre o número lido e uma mensagem indicando se este número é par ou ímpar e se é positivo ou negativo.

32

Page 33: Prof. Alex Fernandes da Veiga Machado ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2 Bacharelado em Ciência da Computação

• Desenvolva um algoritmo que efetue a leitura de três valores correspondentes ao tamanho dos lados de um triângulo, considerando lados como: A, B e C. O algoritmo deverá verificar se os lados fornecidos formam realmente um triângulo. Se for esta condição verdadeira, deverá ser indicado qual tipo de triângulo foi formado: isósceles (dois lados iguais e um diferente), escaleno (todos os lados diferentes) ou eqüilátero (todos os lados são iguais).

33