65
Lógica de Programação 2º Fase Germano

Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Embed Size (px)

Citation preview

Page 1: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Lógica de Programação

2º FaseGermano

Page 2: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Curiosidades

Lógica não é matemática, mas a lógica utiliza da matemática.

Cálculos Binários.

Page 3: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Direcionando nosso algoritmo

Vamos começar a produzir algoritmos que venham a se encaixar numa pseudo-linguagem...

Interpretador

Compilador

Linguagens de alto ou baixo nível

AssemblyDelphi

Page 4: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Direcionando nosso algoritmo

Para representarmos textualmente um algoritmo usamos a nossa língua, no caso, o português.

Contudo, não podemos usar toda a riqueza do nosso idioma. Por que?

R: a ambiguidade!

Page 5: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Direcionando nosso algoritmo

“O pregador foi grampeado durante o conserto.”

Pode possuir vários significados, principalmente se for verbalizado Podemos até tentar supor o real significado da frase, por exemplo, analisando o contexto em que tenha sido dita.

Mas o computador não tem o raciocínio necessário para interpretar! E agora?!

Page 6: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Direcionando nosso algoritmo

De agora em diante, para evitar o problema da ambigüidade, assim como outros, vamos usar regras com o intuito de restringir e estruturar o uso do português na representação de algoritmos. Regras essas que são bem parecidas com as usadas em algumas linguagens de programação (C e Pascal, por exemplo), facilitando assim, o nosso aprendizado.

Page 7: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

• A Informação

- Matéria-prima para os computadores- Computadores manipulam e armazenam

dados massivamente, e com ótimo desempenho (melhor do que nós!)

- Nós ficamos, assim, liberados para tarefas intelectuais.

Algoritmo – Tipos de dados

Informação

Dados

Page 8: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

• Qual a diferença entre Dado e Informação?

• Quando citamos uma data, como 8 de março, estamos apresentando um dado.

• Ao dizermos que 8 de março é o dia Internacional da Mulher, estamos agregando valor ao dado data, uma informação.

Algoritmo – Tipos de dados

Page 9: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

• Vamos agora conhecer os tipos de dados básicos sobre os quais vamos trabalhar

- Constantes- Variáveis

Algoritmo – Tipos de dados

Page 10: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Constante

- Como o nome mesmo diz, é o dado que não varia no decorrer do tempo;

- Tem valor fixo e inalterável.

Algoritmo – Tipos de dados

Page 11: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Variáveis

- Fundamentais para a criação de programas através de linguagens de programação;

- Uma variável é um espaço reservado na memória do computador para armazenar um certo tipo de dado;

- Cada variável deve ter um nome para referenciar o seu conteúdo, um identificador;

- O nome variável vem da ideia que esta pode conter, a cada tempo, valores distintos, respeitando o tipo associado.

Page 12: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

O Tipos de variáveis e constantes

- Restringe o tipo (valor) de dado que a variável (gaveta) pode conter a cada tempo;

- Também informa o espaço (em bytes) que a variável pode ocupar na memória (armário) do computador

Page 13: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

int - Inteiro

- Informação numérica pertencente ao conjunto Z;- Exs.: - A aluno tem 19 anos; - A mão do homem possui 5 dedos; - O concurso oferece 3 carros novos. Dado Vs Informação???

Page 14: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

float - Ponto Flutuante (Real) - Informação numérica pertencente ao conjunto R;- Exs.: - A aluna tem 1.65 m de altura; - O prêmio acumulado foi de 3.233.123 reais; - A área do hexágono é 12.753 m2; - A molécula tem 0,0000129 m2 Dado Vs Informação???

Page 15: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

double - Ponto Flutuante (Real)

- Similar ao tipo float, porém, possui dupla precisão em relação a este;

Page 16: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Caracter - char- Informação composta de um conjunto de caracteres

alfanuméricos: (0 … 9), (a...z, A...Z) e (#$%ˆ&, por exemplo)

- Exs.: - Os nadadores usavam roupas especiais; - O aviso é claro: “é proibido fumar!”; - A aluna premiada foi Maria das Graças;

Dado Vs Informação???

Algoritmo – Tipos de dados

Page 17: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Tipos Primitivos – Lógico- Informação que pode assumir uma de duas possibilidades

(biestável);- Exs.: - O interruptor pode estar ligado ou desligado; - O uniforme deve ser azul ou vermelho; - A lâmpada pode estar acesa ou apagada.

Dado Vs Informação???

Algoritmo – Tipos de dados

Page 18: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Exercício de Fixação

Determine qual é o tipo primitivo presente nas sentenças a seguir:

a) A placa “Pare!” tinha dois furos de bala.b) Josefina subiu 5 degraus para pegar uma maça madurac) Alberta levou 3,5 horas para chegar à maternidaded) Astrogilda pintou em sua camisa: “Preserve o meio

ambiente”, e ficou devendo R$ 30,00 ao vendedor de tintas.e) Felisberto recebeu sua 18ª medalha por ter alcançado a

marca de 57,3 segundos nos 100 metros rasos.

Algoritmo – Tipos de dados

Page 19: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Variável

- É o dado que tem a possibilidade de ser alterado em algum instante durante a execução do algoritmo em que é utilizado;

- O valor do dado sofre alteração;- O dado é dependente da execução em um

determinado momento.

Page 20: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Variável

Exemplos:

- A cotação de uma moeda;- O peso de uma pessoa;- O valor de um imposto.

Algoritmo – Tipos de dados

Page 21: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Pensemos na construção de um algoritmo para calcular o valor da área de uma circunferência, que

usa a fórmula Plr2.

Qual o tipo de dado para PI?

O PI pode variar?

Page 22: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Identificadores

Vamos pensar sobre um contrato de locação de imóvel:

- Não podemos usar um valor fixo em moeda corrente como base para o reajuste, pois, como o tempo essa valor estaria defasado. Para resolver esse problema poderíamos usar um parâmetro que fornecesse valores atualizados: um dado variável.

Page 23: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Identificadores

Como pensamos em criar esse novo parâmetro, então surge a necessidade de que seja nomeado, como, por exemplo, IRT (índice de reajustes totais)

Page 24: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Identificadores

São os nomes das informações que variam no decorrer do tempo.

Page 25: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Identificadores

Para nomearmos as variáveis, devemos respeitar algumas regras, de modo a formarmos identificadores válidos. São elas:

1) Devem começar por um caractere alfabético2) Podem ser seguidos por mais caracteres alfabéticos ou

numéricos3) Não devem ser usados caracteres especiais.

Page 26: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Identificadores

Diagrama com as regras de formação:

letraletraletra

dígito

identificador

Page 27: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Declaração de Variáveis

As variáveis são armazenadas dentro do computador no dispositivo eletrônico denominado MEMÓRIA (principal)

Analogamente a MEMÓRIA pode ser comparado a um armário com várias gavetas

Page 28: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Declaração de Variáveis

Essas “gavetas” equivalem aos locais físicos onde os dados são armazenados na MEMÓRIA

Esses dados são os objetos que podem ser armazenados nas “gavetas” da MEMÓRIA.

Algoritmo – Tipos de dados

Page 29: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Declaração de Variáveis

Como na MEMÓRIA existem várias “gavetas”, devemos nomear cada gaveta, de forma a diferenciar uma “gaveta” das outras.

Fazemos isso criando os INDENTIFICADORES.E cada “gaveta” só pode conter um dado por vez, e de um

tipo previamente determinado.

Page 30: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Declaração de Variáveis

Os IDENTIFICADORES são usados para a nomeação e a DECLARAÇÃO DE VARIÁVEIS, que só é completa se, além do rótulo, for determinado o tipo da variável.

Page 31: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Declaração de VariáveisDiagrama com as regras de formação:

tipo identificadorDeclaração de variáveis : ;

inteiro

real

caracter

lógico

tipo

,

Page 32: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Declaração de Variáveis

Vamos praticar um pouco!!

Page 33: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Expressões Aritméticas

São aquelas em que usamos os operadores aritméticos e os operandos são CONSTANTES ou VARIÁVEIS do tipo numérico (??)

Page 34: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Expressões Aritméticas

Operadores (básicos e não-convencionais)

+ - * /

pot(x, y) → x elevado a yrad(x) → raiz quadrada de xx mod y → resto da divisão inteira de x por yx div y → quociente da divisão inteira de x por y

Page 35: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Expressões Aritméticas

Regras de Precedência

1ª ( ) → parênteses aninhados2ª pot rad3ª * / div mod 4ª + -

Page 36: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Expressões Aritméticas

Obs.:

1 º. Empatando, resolvemos a expressão da esquerda para a direita.

2 º. Os “( )” podem ser usados para alterar a precedência.

Page 37: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Expressões AritméticasDiagrama com as regras de formação:

operando operador aritméticoExpressão aritmética

constante numéricaoperando

operando

constante numérica

Page 38: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

1. Supondo que as variáveis NOME, QUANTIDADE, FABRICANTE e PRECO, serão utilizadas respectivamente para: nome do produto, quantidade do produto, fabricante do produto e preço do produto;declare-as corretamente associando o tipo primitivo adequado ao dado que será armazenado.

Algoritmo – Tipos de dadosExercício

Page 39: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

2. Encontre os erros das seguintes declarações de variáveis:

a) Inteiro : Endereço, Nfilhos;b) Caractere : idade, 1endereço, endereco;c) Real : peso, nota_do_aluno, R$;d) Logico : falso, ApaGaDa.

Algoritmo – Tipos de dadosExercício

Page 40: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Lógica de Programação

2º FaseGermano

Page 41: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Qual a diferença entre Bill Gates e o Batman ??????

O Batman consegue vencer o Pinguin

Algoritmo – Tipos de dados

Page 42: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

3. Supondo que A, B e C são constantes do tipo inteiro igual a 5, 10 e -8 respectivamente, e uma constante real D com valor de 1,5 ; calcule as seguintes expressões aritméticas:

a) 2 * A mod 3 – C

b) rad (-2 * C) div 4

c) ((20 div 3) div 3) + pot(8,2) / 2

d) (30 mod 4 * pot(3,3)) * -1

Algoritmo – Tipos de dadosExercício

Page 43: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Operadores Relacionais

Servem para realizar comparações entre dois valores de mesmo tipo. Esses valores podem ser tanto constantes e variáveis, quanto expressões aritméticas.

Na Matemática usamos os operadores relacionais para construirmos equações e inequações.

Page 44: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Operadores Relacionais

= → igual a> → maior que< → menor que>= → maior ou igual a<= → menor ou igual a<> → diferente de

Page 45: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Operadores Relacionais

O avaliação de uma relação dá como resultado um valor LÓGICO.Ex.: m + n = pA avaliação dessa expressão será verdadeira ou falsa à medida que

o membro esquerdo da equação foi igual ou diferente da variável que representa o membro direito.

Page 46: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Operadores Lógicos

Para construirmos proposições lógicas usamos três operadores básicos a partir de outras proposições lógicas mais simples.

Page 47: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Operadores Lógicos

NÃO → negaçãoE → conjunçãoOU → disjunção não exclusiva

Algoritmo – Tipos de dados

Page 48: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Operadores Lógicos - Tabelas Verdade

É o conjunto de todas as possibilidades entre os valores de variáveis lógicas, que podem assumir uma de duas alternativas, V ou F, bem como variáveis lógicas em conjunto com operadores lógicos

Page 49: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmo – Tipos de dados

Operadores Lógicos - Tabelas

Page 50: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Tabela Lógica

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

1 0        

0 0        

0 1        

1 1        

0 1        

1 0        

1 1        

Page 51: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Atribuição

Dado que agora já sabemos declarar uma variável, o comando de ATRIBUIÇÃO é o modo com que fornecemos um valor a uma variável, de acordo com o seu tipo.

Algoritmo – Tipos de dados

Page 52: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Atribuição Exemplos:

caractere: A, B;real: X;

A ← B;X ← 8 + 13 div 5;B ← 5 = 3X ← 2;

Algoritmo – Tipos de dados

Page 53: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Atribuição Exemplos:

Qual a falha no slide anterior?

B ← 5 = 3 (o “;” para terminar a ação!)

B ← 5 = 3;

Algoritmo – Tipos de dados

Page 54: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Atribuição

Notemos que os comandos atribuem os valores fornecidos a direita de cada variável

É importante lembrar que a esquerda do símbolo de atribuição deve haver apenas um identificador.

Algoritmo – Tipos de dados

Page 55: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Atribuição

Nos comandos onde o valor a ser atribuído à variável é uma expressão aritmética ou lógica, estas devem ser resolvidas antes, para que o resultado possa ser armazenado na variável.

B ← 5 = 3 (qual a avaliação dessa igualdade?)

B ← F

Algoritmo – Tipos de dados

Page 56: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Comandos de Entrada e Saída (in/out)

A maneira que temos para “alimentar” o computador.Analogamente podemos pensar no processo de respiração

do homem:

Dados de entrada: o arO ar é processadoDados de saída: CO2 N2 e etc.

Algoritmo – Tipos de dados

Page 57: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Comandos de Entrada e Saída (in/out)

Mais uma analogia: fazer um bolo!

Dados de entrada: ingredientes“Mão na massa”Dados de saída: o bolo

Algoritmo – Tipos de dados

Page 58: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Entrada de Dados – IN

Vamos adicionar um novo comando aos que já aprendemos, de modo que o algoritmo possa receber dados.

Faremos isso através do comando LEIA, o qual atribui o dado a ser fornecido à variável indicada.

Algoritmo – Tipos de dados

Page 59: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Saída de Dados – OUT

E agora vamos adicionar um comando que de modo que o algoritmo possa mostrar os dados que calculou.

Faremos isso através do comando ESCREVA, o qual apresenta o conteúdo da variável indicada.

Algoritmo – Tipos de dados

Page 60: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Blocos

São ações em conjunto para uma função definida.

Um algoritmo, na sua totalidade, pode ser considerado um bloco.

Delimitam o espaço onde as variáveis declaradas podem atuar.

Algoritmo – Tipos de dados

Page 61: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Comentários

São observações importantes a respeito de trechos do algoritmo.

Aumentam a clareza do algoritmo.

Algoritmo – Tipos de dados

Page 62: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Comentários

Ex.:

inteiro: nAluno, mAluno; // variáveis para armazenar o nome e a matrícula do aluno

Algoritmo – Tipos de dados

Page 63: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

BlocosDiagrama com as regras de formação:

início açãoblocos fim

;

;

Algoritmo – Tipos de dados

Page 64: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmos

O Pato Donald vai trazer o teclado,e o Mickey?

Mickey Mouse

Page 65: Lógica de Programação 2º Fase Germano. Curiosidades Lógica não é matemática, mas a lógica utiliza da matemática. Cálculos Binários

Algoritmos

Para começarmos a praticar Utilizaremos

Cláudio Morgado de Souza