Top Banner
Lógica de Programação
120

Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

Apr 07, 2016

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

Lógica de Programação

Page 2: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

2

Sumário• Briefing• Representação de Algoritmos• Dados• Variáveis• Expressões• Tabelas Verdade• Representação de Algoritmos

– Pseudocódigo e VisuAlg• Instruções Primitivas• Estrutura de Decisão• Estrutura de Repetição• Vetores• Procedimentos e Funções

Page 3: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

Lógica de Programação

Briefing

Page 4: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

4

Briefing

• Lógica– Do grego “Logos”– Estudo do raciocínio válido• Aquilo que pode ocorrer

– Áreas da ciência• Filosofia• Matemática• Semântica• Informática

Page 5: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

5

Briefing

• Filosofia

» Você é prisioneiro de uma tribo indígena que conhece todos os segredos do Universo e portanto sabem de tudo. Você está para receber sua sentença de morte. O cacique o desafia: - Faça uma afirmação qualquer. Se o que você falar for mentira você morrerá na fogueira, se falar uma verdade você será afogado. Se não pudermos definir sua afirmação como verdade ou mentira, nós te libertaremos. O que você diria?

Page 6: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

6

Briefing

• Filosofia

» Solução: Afirme que você morrerá na fogueira!

» Explicação:• Se você realmente morrer na fogueira, isto é uma verdade,

portanto deveria morrer afogado• Mas se você morrer afogado a informação seria uma mentira e,

portanto, deveria morrer na fogueira

» Mesmo prevendo o futuro, haveria um impasse• Você seria libertado

Page 7: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

7

Briefing

• Matemática

» Você deve colocar os números nas intersecções destes três aros, de modo que nas três linhas a soma seja dois.

Page 8: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

8

Briefing

• Matemática

» Solução:

+3 -2 +1

+2

-1

0

Page 9: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

9

Briefing

• Semântica

» Qual afirmação está correta?• A afirmação abaixo é verdadeira• A afirmação acima é falsa

Page 10: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

10

Briefing

• Semântica

» Solução: ?

» Resultado• Eu, Robô• Blade Runner• Wall-E• ...

Page 11: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

11

Briefing

• Informática– Lógica de programação• Técnica de encadear pensamentos para atingir um

determinado objetivo

– Algoritmo• Uma sequência finita de passos, logicamente

colocados, que levam a execução de uma determinada tarefa

Page 12: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

12

Briefing

• Informática– Algoritmo• “Receita de bolo”• Deve ter passos claros e precisos• Softwares são algoritmos construídos com alguma

linguagem de programação

Page 13: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

13

Atividade (classwork)

• Escreva um parágrafo que conceitue a palavra “Lógica”, na sua opinião sem a consulta de quaisquer recursos literários ou bibliográficos

• Pesquise e escreva sobre o Paradoxo de Epiménides e busque exemplos deste tipo de problema

Page 14: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

Lógica de Programação

Representação de AlgoritmosLinguagem Natural

Page 15: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

15

Representação de Algoritmos

• Linguagem Natural– Narrativa– Sequência de passos– Trilha evolutiva

– Podem conter decisões que modificam o curso e os passos a serem seguidos

Page 16: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

16

Representação de Algoritmos

• Linguagem Natural– Ex: Preparar um bolo

• Início: Coloque no liquidificador a laranja picada (sem casca e sem o pavio central), os ovos, o óleo e o açúcar

• Ligue o liquidificador e bata por 3 minutos• Despeje o conteúdo em uma vasilha e adicione a farinha e o fermento• Misture bem• Asse em forno médio e pré-aquecido por 35 minutos• Faça a cobertura, despejando o suco de laranja com açúcar e o leite sobre o bolo

ainda quente• Fim: Deixe esfriar e sirva

Page 17: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

17

Representação de Algoritmos

• Linguagem Natural– Ex1: Preparar um churrasco

Page 18: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

18

Representação de Algoritmos

• Linguagem Natural– Ex2: Projetar e construir um novo carro

Page 19: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

19

Atividade (classwork)

• Cite 5 exemplos de problemas que possam ser resolvidos com algoritmos

• Elabore um algoritmo em linguagem natural para cada problema citado

Page 20: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

Lógica de Programação

Representação de AlgoritmosFluxograma

Page 21: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

21

Representação de Algoritmos

• Fluxograma– Representação gráfica– Figuras geométricas representam ações distintas– Muito popular– Fácil entendimento das ideias contidas no

algoritmo

Page 22: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

22

Representação de Algoritmos

• Fluxograma– Figuras

Page 23: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

23

Representação de Algoritmos

• Fluxograma– Ex: Preparar um bolo

INÍCIO Ligue o liquidificador e bata por 3 minutos

FIM

Despeje em uma vasilha e adicione farinha e fermento

Misture bemAsse em forno médio por 35min

Deixe esfriar e sirva

Despeje o suco de laranja, açúcar e leite sobre o bolo para

cobertura

Junte a laranja picada, ovos, óleo e açúcar

Page 24: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

24

Representação de Algoritmos

• Fluxograma– Ex1: Preparar um churrasco

Page 25: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

25

Representação de Algoritmos

• Fluxograma– Ex2: Projetar e construir um novo carro

Page 26: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

26

Atividade (classwork)

• Cite 5 exemplos de problemas que possam ser resolvidos com algoritmos

• Elabore um algoritmo com fluxogramas para cada problema citado

Page 27: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

Lógica de Programação

Dados

Page 28: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

28

Dados

• O que são dados?

• Dados são...

Page 29: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

29

Dados

Não neste contexto!!!

• O que são dados na informática?

Page 30: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

30

Dados

• O que é dado?

• O que é informação?

• O que é conhecimento?

Page 31: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

31

Dados

Page 32: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

32

Dados

• Os dados possuem tipos diferentes, dependendo da forma que possuem e o que proporcionam ao sistema

• A memória do computador trabalha de forma diferente com cada tipo de dado

• Os tipos de dados são:– Numéricos– Lógicos– Literais

Page 33: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

33

Dados

• Numéricos– Inteiros• São valores numéricos (positivos ou negativos) que não

possuem casas decimais– Idade (28,5 anos?)– Dia (dia 15,2?)– Unidades (2,1 maçãs?)

Page 34: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

34

Dados

• Numéricos– Reais• São valores numéricos (positivos ou negativos) que

podem possuir casas decimais– Peso (78,6 kg)– Largura de um terreno (12,5 m)

– Número real positivo (23.4)– Número real negativo (-12.9)– Uma casa decimal (0.0)– Duas casas decimais (-0.32)

Page 35: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

35

Dados

• Numéricos– Os números devem ser tratados da seguinte

maneira:• 2 = Inteiro• 2.0 = Real• 2.1 = Real

Page 36: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

36

Dados

• Lógicos– São também conhecidos como booleanos– Sua ideologia de uso reflete a maneira de

funcionamento dos computadores– São usados para representar dois tipos de valores

possíveis:• V (valor lógico verdadeiro)• F (valor lógico falso)

Page 37: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

37

Dados

• Lógicos– Verdadeiro pode ser simbolizado por:

• V• TRUE• 1• SIM

– Falso por:• F• FALSE• 0• NÃO

Page 38: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

38

• Lógicos– O colaborador é professor?

• V– Portanto, o colaborador não é técnico administrativo, diretor,

atendente ou qualquer outra função

– O colaborador é professor?• F

– O colaborador é técnico administrativo?• F

– O colaborador é atendente?• F

– Portanto, o colaborador exerce outra função

Dados

Page 39: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

39

Dados

• Literais– Letras, números e caracteres especiais podem ser

dados de tipo literal– Uma sequência de dados deste tipo é

caracterizada por estar entre aspas duplas (“”)– É também conhecido por tipo de dado

alfanumérico (alfa = letras; numérico = números) ou string

Page 40: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

40

Dados

• Literais– Exemplos de dados literais:• “25”• “Fulano”• “24 de Fevereiro”• “30.2”• “20/02/2002”• “-32a9ff34”• “$#@”

Page 41: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

41

Atividade (homework)

• Cite 10 exemplos de dados para cada tipo de dado:– Numérico inteiro– Numérico real– Literal

Page 42: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

Lógica de Programação

Variáveis

Page 43: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

43

Variáveis

• As variáveis são espaços criados na memória do computador para guardar informações

• Estas informações são armazenadas por período temporário pela aplicação a ser executada (software)

• Seus valores, diferente das constantes podem variar

Page 44: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

44

Variáveis

• Imagine um armário:

Idade

Cidade

Estado

Nome

Salário

Nº filhos

38

1200.00

Ijuí

RS

Fulano Ciclano

3

Page 45: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

45

Variáveis

• Cada “gaveta” armazena um tipo de dado• Se o valor na gaveta identificada for

substituído, o dado anterior se perderá• Cada gaveta pode possuir somente UM dado

(valor)

Page 46: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

46

Variáveis

• Existem algumas regras a serem seguidas ao nomearmos uma variável:– Começar com uma letra– Os demais caracteres podem ser letras, números

ou ‘_’ (underline, underscore)– Não podem ser utilizados nomes reservados,

como: escreva, leia, var, etc.– Procure utilizar nomes sugestivos para suas

variáveis

Page 47: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

Lógica de Programação

Expressões Aritméticas

Page 48: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

48

Expressões

• Aritméticas– São expressões cujo resultado é um valor

numérico (inteiro ou real)– São utilizados somente operadores aritméticos e

variáveis numéricas para este tipo de expressão

Page 49: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

49

Expressões

• Aritméticas– São utilizados os seguintes operadores

Operador Operação

+ Adição

- Subtração

* Multiplicação

/ Divisão

+ Manutenção de sinal

- Inversão de sinal

DIV Parte inteira da divisão

MOD Resto da divisão

Page 50: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

50

Expressões

• Aritméticas– Os tipos de dados do resultado das expressões

são:Inteiro +, -, * Inteiro = Inteiro

Inteiro +, -, * Real = Real

Real +, -, * Inteiro = Real

Real +, -, * Real = Real

Qualquer / Qualquer = Real

Inteiro DIV Inteiro = Inteiro

Inteiro MOD Inteiro = Inteiro

Page 51: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

51

Expressões

• Aritméticas– Os elementos obedecem uma hierarquia de

execução• Parênteses• Multiplicação ou Divisão (o que vier primeiro)• Soma e Subtração (o que vier primeiro)

– Media = Nota1 + Nota2 + Nota3 / 3– Media = (Nota1 + Nota2 + Nota3) / 3

Page 52: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

52

Atividades (classwork)• Verifique o tipo de dado numérico resultante das seguintes expressões

aritméticas:a) 7 * 2b) 0.6 + 3.2c) - 5 + 9.0d) 4 DIV 1e) 4.5 * 2f) 1 + 1 + (2 MOD 4)g) (10 + 2) * 2h) - 0.8 / - 2i) 1 - 0.5 + 9j) 7 * (- 2 + 3.4)k) (10 DIV 2) + 0.2l) (90 MOD 33) - 0.2

Page 53: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

Lógica de Programação

ExpressõesLógicas

Page 54: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

54

Expressões

• Lógicas– As expressões lógicas são aquelas cujo o resultado

da sua avaliação tem um resultado lógico (V ou F)

Operador

OU OR v

E AND ^

NÃO NOT ¬

Comparador

== Igual

<> Diferente

< Menor

< = Menor ou Igual

> Maior

> = Maior ou Igual

Page 55: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

55

Expressões

• Lógicas– Comparadores• A = 5, B = 3

– A = B Falso– A <> B Verdadeiro– A > B Verdadeiro– A < B Falso– A > = B Verdadeiro– A < = B Falso

Page 56: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

56

Expressões

• Lógicas– Operadores• OU

– O resultado será verdadeiro se pelo menos UM resultado de uma expressão lógica for verdadeiro

• E– O resultado será verdadeiro somente se TODOS os resultados

das expressões lógicas forem verdadeiros• NÃO

– O resultado final é o inverso do resultado da expressão lógica

Page 57: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

57

Expressões

• Lógicas1º Valor Operador 2º Valor Resultado

V E V V

V E F F

F E V F

F E F F

V OU V V

V OU F V

F OU V V

F OU F F

V NÃO F

F NÃO V

Page 58: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

58

Expressões

• Lógicas– Exemplos• Se eu usar casaco OU blusão, me manterei aquecido

OU =

Page 59: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

59

Expressões

• Lógicas– Exemplos• Se não houver placas de proibida a ultrapassagem E

não houver faixa contínua, posso ultrapassar o veículo

E =nãonão

Page 60: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

60

Expressões

• Lógicas– Exemplos• Se não for homem, é mulher

não =

Page 61: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

61

Expressões

• Lógicas– A = 2, B = 3– C = 2, D = 3

A == B A <> B A < B A < = B A > B A > = B

F V V V F F

A == B ^ C == D A == B v C == D ¬ (A == B) C == A v B <> D C == A ^ B <> D

F F V V F

Page 62: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

62

Atividades (mix)

• Lista de exercícios (1-2)– ½ Classwork– ½ Homework

Page 63: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

Lógica de Programação

ExpressõesLiterais

Page 64: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

64

Expressões

• Literais– Seu resultado proporciona um valor literal– Ocorre com menos frequência nos sistemas do

que as expressões aritméticas e lógicas– O operador varia de uma linguagem de

programação para outra (+)(,)(.)...• A operação para unir dois valores literais (strings) é

chamado de concatenação

Page 65: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

65

Expressões

• Literais– Exemplo• Suponha que esteja sendo utilizada uma linguagem que

o operador de concatenação seja “+”• Imagine que queremos construir a expressão

“REFRIGERANTE”, havendo a string “REFRI” e “GERANTE”• “REFRI” + “GERANTE” = “REFRIGERANTE”

Page 66: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

Lógica de Programação

Expressões LógicasTabelas Verdade

Page 67: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

67

Expressões

• Lógicas (Tabelas Verdade)– Considere as variáveis A e B. Como não sabemos

seus valores, se faz necessário desenvolver todas as combinações lógicas possíveis (Tabela Verdade)

A B NÃO A NÃO B A OU B A E B

V V F F V V

V F F V V F

F V V F V F

F F V V F F

Page 68: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

68

Expressões

• Lógicas (Tabelas Verdade)– As tabelas verdade são utilizadas para verificar se

uma fórmula é verdadeira ou falsa, e quando que ela é verdadeira ou falsa

– São utilizadas em interrogatórios, para verificar se um indivíduo está mentindo ou não

– São utilizadas para quando não se sabe o valor verdadeiro de cada variável da fórmula

– Todas as probabilidades

Page 69: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

69

Expressões

• Lógicas (Tabelas Verdade)– Verifique quando a seguinte expressão é falsa:

A v ¬B

• Falso quando A for falso e B for verdadeiro

A B ¬B A v ¬B

V V F V

V F V V

F V F F

F F V V

Page 70: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

70

Atividades (classwork)• Informe a tabela verdade das seguintes expressões lógicas,

informando em cada questão quando que o resultado é falso ou verdadeiro:a) A ^ Bb) A v Bc) A v ¬Bd) ¬Ae) ¬A ^ Bf) A ^ ¬Bg) ¬A ^ ¬Bh) A v ¬Ai) B ^ ¬B v A

Page 71: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

Lógica de Programação

Representação de AlgoritmosPseudocódigo e VisuAlg

Page 72: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

72

Representação de Algoritmos

• Pseudocódigo, algoritmo ou português estruturado– Utilizado para elaborar a sequência lógica pela

linguagem natural, antes de utilizar uma linguagem de programação

– Permite a tradução de um algoritmo para uma linguagem de programação específica, diretamente

– VisuAlg

Page 73: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

73

Representação de Algoritmos

• Pseudocódigo, algoritmo ou português estruturado– Ex: Alô Mundo! (Hello World!)

Page 74: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

Lógica de Programação

Instruções Primitivas

Page 75: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

75

Instruções Primitivas

• As instruções primitivas exercem funções básicas e essenciais para a operação dos computadores sendo:– Entrada de dados– Saída de dados

• Servem para que o sistema se comunique com:– Usuário– Periféricos

Page 76: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

76

Instruções Primitivas

• Aplicativos, softwares e programas que não utilizam instruções primitivas é incapaz de se comunicar com o mundo exterior

• Programas sem comunicação com o mundo externo não tem qualquer utilidade

Page 77: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

77

Instruções Primitivas

• De atribuição– Principal maneira de se armazenar informação em uma

variável• <nome_da_variável> <- <expressão>

– O tipo da variável deve estar conciso com o valor a ser atribuído (inteiro, real, literal, ...)

– No fluxograma é ilustrado pelo bloco PROCESSAMENTOvar = 1+1

Page 78: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

78

Instruções Primitivas

• De saída de dados– Somente a instrução de atribuição não é suficiente

para haver comunicação, pois o valor fica armazenado na memória

– As instruções de saída são os meios pelos quais as informações são exibidas ao usuário e/ou periféricos• escreva(“Alô Mundo!”)• escreva(<variável>)

– No fluxograma é representado pelo bloco IMPRESSÃO DE RESULTADOSEscreva “Alô Mundo”

Page 79: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

79

Instruções Primitivas

• De entrada de dados– Somente a instrução e saída não é suficiente, pois

não há dinamicidade no sistema– Cada vez que o programa é executado, novos

valores podem ser atribuídos às variáveis• leia(<variável>)

– No fluxograma é ilustrado pelo bloco ENTRADA DE DADOS NATURAL

leia Nome

Page 80: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

Lógica de Programação

Estrutura de DecisãoTipo SE

Page 81: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

81

Estrutura de Decisão

• As estruturas de decisão englobam os princípios da condição

• O fluxo de instruções a ser seguido é escolhido em função do resultado da condição

• Podem existir várias condições a serem avaliadas para a definição do fluxo a ser seguido

• Condição = Expressão lógica• As decisões podem ser tomadas por SE e

ESCOLHA

Page 82: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

82

Estrutura de Decisão

• Tipo Se– Nesta estrutura uma única condição é avaliada– Se o resultado for verdadeiro (V, T, 1), então um

determinado conjunto de instruções será executado. Caso contrário, ou seja, o resultado for falso (F, F, 0) outro conjunto de instruções será executado

– É obrigatório que o algoritmo prossiga por alguma das condições (verdadeiro ou falso)

Page 83: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

83

Estrutura de Decisão

• Tipo Se– Condições• idade < 18• genero = ‘Masculino’• altura >= 1.60

Page 84: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

84

Estrutura de Decisão

• Tipo Se– Sintaxes

<condição>

<comando composto 1>

<comando composto 2>

V F

...

Page 85: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

85

Estrutura de Decisão

• Tipo Se– Sintaxes

<condição>

<comando composto>

V

...

F

Page 86: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

Lógica de Programação

Estrutura de DecisãoTipo ESCOLHA

Page 87: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

87

Estrutura de Decisão

• Tipo Escolha– Generalização do SE– Pode haver uma ou mais condições a serem

testadas e um comando composto diferente associado a cada uma das condições

Page 88: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

88

Estrutura de Decisão

• Tipo Escolha– Sintaxes

<Condição_1> <Comando_composto_1>

...

<Condição_2> <Comando_composto_2>

V

VF

<Condição_n>

F…

<Comando_composto_n>

V

<Comando_composto_s>

F

Page 89: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

89

Atividades (classwork)

• Transcreva os exercícios da aula passada utilizando o tipo ESCOLHA no VisuAlg– a) b) c)

• Elabore o fluxograma para cada exercício– a) b) c)

Page 90: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

Lógica de Programação

Estrutura de RepetiçãoLaços Contados

Page 91: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

91

Estrutura de Repetição

• São comuns os trechos de código que devem ser repetidos em um algoritmo

• Este trecho de código pode conter valores diferentes, seja pela entrada ou pela saída de dados

• As estruturas de repetição também são conhecidas por laços de repetição ou loops

• Existem dois tipos de estruturas de repetição: laços contados e laços condicionais

Lógica de Programação (Leonardo Minelli)

Page 92: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

92

Estrutura de Repetição

• Laços Contados– São utilizados para quando sabe-se ao certo

quantas vezes o comando composto no interior do bloco deverá ser executado

– Instrução dotada de mecanismos para contar quantas vezes o laço é executado

Lógica de Programação (Leonardo Minelli)

5x

Page 93: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

93

Estrutura de Repetição

• Laços Contados– Semântica• O valor <inicio> é atribuído a variável <variavel>• O valor <variavel> é comparado com o valor <final>

– Se <variavel> for menor ou igual que <final>» Comando composto é executado» Ao final do comando é atribuído +1 para <variavel>

– Se <variavel> for maior que <final>» Comando composto não é executado

• Finaliza-se o laço

Page 94: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

94

Estrutura de Repetição

• Laços Contados– Semântica• <variavel> é uma variável do tipo inteiro• <inicio>, <final>, <passo> podem ser constantes ou

variáveis• <passo> se não atribuído terá o valor de 1. Significa de

quanto em quanto será acrescido o valor a cada execução do laço de repetição, podendo ser positivo ou negativo

Page 95: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

95

Estrutura de Repetição

• Laços Contados– Fluxograma

<condição>

<comando composto>

V

...

F...

Page 96: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

Lógica de Programação

Estrutura de RepetiçãoLaços Condicionais

Page 97: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

97

Estrutura de Repetição

• Laços Condicionais– Diferente dos laços contados, com os laços

condicionais não se sabe ao certo quantas vezes a repetição será executada

– Existem dois tipos de instruções que expressam este tipo de laço• Enquanto• Repita

Page 98: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

98

Estrutura de Repetição

• Laços Condicionais– Enquanto

• No início da instrução a condição é testada– Se for falsa, os comandos compostos não serão executados, nem por

uma vez– Se for verdadeira, os comandos compostos serão executados

• Se repetirá até que a condição proposta seja falsa.

• Atenção:– O controle para saída do laço é de responsabilidade do criador do código!

Em um momento a condição deve ser falsa para que o laço pare de ser executado. Quando isto ocorre, é chamado de laço infinito ou looping

Page 99: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

99

Estrutura de Repetição

• Laços Condicionais– Enquanto• Semântica

– <condição> é qualquer expressão lógica

Page 100: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

100

Estrutura de Repetição

• Laços Condicionais– Repita• Semelhante ao enquanto• A condição é testada ao final do laço

– Diferente do enquanto, que é no início• Sempre será executado pelo menos uma vez

Page 101: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

101

Estrutura de Repetição

• Laços Condicionais– Repita• Semântica

– <condição> é qualquer expressão lógica

Page 102: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

Lógica de Programação

VetoresUnidimensionais

Page 103: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

103

Vetores

• Todas as variáveis, até agora, possuem somente um valor, correto?– Lembram do armário e das gavetas?

Page 104: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

104

... Variáveis

• Imagine um armário:

Idade

Cidade

Estado

Nome

Salário

Nº filhos

38

1200.00

Ijuí

RS

Fulano Ciclano

3

Page 105: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

105

Vetores

• Só podíamos armazenar um valor por vez em cada variável

• Se precisássemos armazenar 10 nomes, necessitaríamos de 10 variáveis de tipo literal!– nome1, nome2, nome3, ... nome10

• O vetor veio para acabar com estes problemas!

Page 106: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

106

Vetores

• O que é um vetor?– Segundo a matemática...• Segmento de reta orientado que possuem a mesma

intensidade, mesma direção e mesmo sentido!• SANTOS, Reginaldo J.

Page 107: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

107

Vetores

• O que é um vetor?

Page 108: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

108

Vetores

• O que é um vetor?– Segundo a informática...• Vetor é uma variável que, a partir de posições

diferentes, consegue armazenar várias informações do mesmo tipo• Sua posição inicial será SEMPRE 0 (zero)

• Existem basicamente dois tipos de vetores– Unidimensionais– Bidimensionais

Page 109: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

109

Vetores

• Unidimensionais– Vetores unidimensionais são semelhantes a uma

“trilha” de informações– Pensando em um vetor com países que falam

português, por exemplo, um vetor unidimensional seria o seguinte:

pt[0,1,2,3,4,5,6,7]pt[0..7]

Brasil São Tomé e Príncipe

Cabo Verde

Timor Leste

Moçambique Portugal Guiné-Bissau Angola

Page 110: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

110

Vetores

• Unidimensionais– VisuAlg• <variavel> : vetor[<inicio>..<final>] de <tipo de dado>

• Este comando criará um vetor unidimensional com o nome <variavel>, que iniciará em <inicio> e irá até <final>, possuindo o tipo de dado <tipo de dado>– Literal– Inteiro– Real

Page 111: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

Lógica de Programação

VetoresBidimensionais

Page 112: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

112

Vetores

• Bidimensionais– O que é um vetor?• Vetores Bidimensionais = Matrizes• Matriz

– É uma tabela de “m” linhas e “n” colunas sobre um conjunto, normalmente um corpo “F”, representada sobre a forma de um quadro “s”

Page 113: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

113

Vetores

• Bidimensionais– Veja o quadro dos países que falam português...

Page 114: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

114

Vetores

• Bidimensionais

[ ]pt pt[1,1] pt[1,2] pt[1,3] pt[1,4]

pt[2,1] pt[2,2] pt[2,3] pt[2,4]

Page 115: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

115

Vetores

• Bidimensionais– Ex: pt[1,1] = Brasil

pt[1,2] = São Tomé e Príncipept[1,3] = Cabo Verdept[1,4] = Timor Lestept[2,1] = Moçambiquept[2,2] = Portugalpt[2,3] = Guiné-Bissaupt[2,4] = Angola

Page 116: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

Lógica de Programação

Procedimentos e Funções

Page 117: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

117

Procedimentos e Funções

• Subalgoritmos e subprogramas são blocos independentes de comandos que visam dividir as operações do programa

• Os subalgoritmos podem ser de dois tipos– Procedimentos– Funções

Page 118: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

118

Procedimentos e Funções

• Procedimentos– Os procedimentos não possuem valores de

retorno– Os valores são processados e manipulados dentro

do bloco

Page 119: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

119

Procedimentos e Funções

• Procedimentos

Page 120: Lógica de Programação. Sumário Briefing Representação de Algoritmos Dados Variáveis Expressões Tabelas Verdade Representação de Algoritmos – Pseudocódigo.

120

Procedimentos e Funções

• Funções– Assim como na matemática, as funções recebem

valores que são passados por parâmetros