42
Introdução à Lógica Regis Pires Magalhães [email protected] Última atualização em 24/05/2007

Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Introdução à Lógica

Regis Pires Magalhã[email protected]

Última atualização em 24/05/2007

Page 2: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Tipos de Dados• Todo o trabalho realizado por um computador é baseado

na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos:– As instruções, que comandam o funcionamento da máquina e

determinam a maneira como devem ser tratados os dados.– Os dados propriamente ditos, que correspondem à porção das

informações a serem processadas pelo computador.

• A classificação a seguir sintetiza os padrões utilizados na maioria das linguagens.– Tipos Inteiros– Tipos Reais– Tipos Caracteres– Tipos Lógicos

Page 3: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Literais• Alguns autores citam o tipo caracter como sinônimo de

tipo literal.

• No entanto, discordamos dessa definição. Achamos mais apropriado dizer que literais são as representações de quaisquer tipos de dados dentro do código fonte.

• Literal é, assim, uma notação para representar um valor no código fonte de uma linguagem de programação.

• Assim, podemos subdividir os literais em: – Literais Booleanos ou Lógicos: correspondem ao valores

verdadeiro e falso. – Literais inteiros– Literais reais ou fracionários (de Ponto Flutuante):

correspondem aos números racionais (fracionários). – Literais caracteres ou strings: correspondem às cadeias de

caracteres. Para representá-los, escreva-os entre aspas.

Page 4: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Tipos de Dados• Uma determinada informação armazenada na memória precisa fazer

sentido.

• Mas o que realmente significa um conjunto específico de bits?– Depende:

• 1000001 – pode ser a letra ‘A’

• 1000001 – também pode ser o número 65.

– O significado vai depender do tipo. Caso 1000001 seja do tipo caractere, o seu significado é a letra ‘A’.

– No entando se 1000001 for do tipo for inteiro, seu valor representa 65.

• Assim um mesmo valor pode assumir representações diferentes dependendo do tipo escolhido.

• Computadores trabalham internamente com dígitos binários.

Page 5: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Tipos de Dados• Tipos Inteiros

– Números inteiros positivos ou negativos.

– Um bit pode representar dois números inteiros 0 e 1.

– Dois bits podem representar quatro números inteiros diferentes: 00, 01, 10 e 11.

– Com n bits podemos representar 2n números inteiros.

– 1 bit é reservado para guardar o sinal.

– Ex.: 35, 0, -56, 1024.

BitsBits

DadosDadosSinalSinal

SS

3131 00

Bit menos Bit menos significativosignificativo

Bit mais significativoBit mais significativo

Page 6: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Tipos de Dados• Tipos Reais

– Números fracionários positivos e negativos.

– Ex.: 35, 0, -56, 1.2, -45.987.

– Palavra de 32 bits:• 1 bit para sinal

• 8 bits para expoente

• 23 bits para o número real (mantissa)

BitsBits

SinalSinal MantissaMantissa

SS

3131 00222223233030

ExpoenteExpoente

Page 7: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Tipos de Dados• Tipos Caracteres

– Seqüências contendo letras, números e símbolos especiais.

– Caracteres são representados por códigos binários.

– O código mais disseminado de todos é o ASCII (American Standard Code for Information Interchange).

– ASCII usa 8 bits para representar os caracteres.

– ASCII pode representar portanto até 28=256 caracteres.

– Uma seqüência de caracteres deve ser indicada entre aspas ('').

– Este tipo de dado também é conhecido como alfanumérico, string ou cadeia.

– Ex.: 'Programação', 'Rua Alfa, 52 Apto 1', 'Fone 574-9988', '04387- 030', ' ', '7'.

Page 8: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

TABELA ASCII(American Standard Code for Information Interchange)

0 .... ...

10 LF... ...

13 CR... ...

48 ‘049 ‘1’50 ‘2’

... ...56 ‘8’57 ‘9’

... ...65 ‘A’66 ‘B’

67 ‘C’... ...

89 ‘Y’90 ‘Z’

... ...97 ‘a’98 ‘b’

... ...121 ‘y’122 ‘z’

... ...133 ‘à’

... ...160 ‘á’

... ...

Page 9: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Tipos de Dados

• Tipos Lógicos– Os dados deste tipo somente podem assumir dois

valores: verdadeiro e falso.– Dado booleano, devido a George Boole, matemático

inglês, que deu ao nome à álgebra (álgebra booleana) que manipula este tipo de dados.

– Computadores tomam decisões, durante o processamento de um algoritmo, baseados nestes dois valores.

– Normalmente se usa um byte inteiro para armazenar valores lógicos devido a dificuldade de endereçar bits.

Page 10: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Tipos de Dados

Page 11: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Expressões• Expressões combinam variáveis, operadores e

constantes para produzir um resultado.• Variáveis representam posições na memória

onde estão dados que serão processados.• Constantes são símbolos usados para

representar dados.• Operadores são usados para combinar as

variáveis e constantes fornecendo um valor como resposta.

Page 12: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Exemplos de Expressões

• 0.5 * base * altura

• (nota1 + nota2) / 2.0

• (temperatura > 0) e (quantidade < limite)

• 4 % 3 + 5

• A > B

Page 13: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Expressões• Observar os símbolos usados para multiplicação (*) e

divisão (/).

• Avaliar primeiro as operações de maior prioridade, por exemplo (multiplicação e divisão).

• Se temos de escolher entre operadores de mesma prioridade então escolher o que está mais à esquerda.

– Ex. 4/2*3 -- primeiro divide-se 4 por 2 e em seguida multiplica-se o resultado por 3, dando como resultado 6

• Caso queira trocar a prioridade use parênteses.

– Não são permitidos outros símbolos para esta função tais como { } e [ ].

Page 14: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Variáveis• O computador possui uma área de armazenamento

conhecida como memória.

• A memória do computador pode ser entendida como uma seqüência finita de caixas, que num dado momento, guardam algum tipo de informação, como número, uma letra, uma palavra, uma frase, etc.

Page 15: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Variáveis• Cada posição de memória possui um endereço, ou seja,

um número, que indica onde cada informação está localizada.

• As linguagens de computador facilitaram o manuseio das posições de memória, permitindo que, ao invés de trabalhar diretamente com os endereços de memória, fosse possível dar nomes diferentes a cada um deles.

• Tais nomes seriam de livre escolha do usuário. Com este recurso, os usuários ficaram livres dos endereços físicos e passaram a trabalhar com endereços lógicos.

Endereço Físico Informação3000: B712 ‘João’2000: 12EC 123453000: 0004 ‘H’

Page 16: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Variáveis• Para acessar informações seria necessário saber

o tipo de dado desta informação (ou seja, o número de bytes de memória por ela ocupados) e a posição inicial deste conjunto de bytes na memória.

• Basicamente, uma variável possui três atributos:– nome

– tipo de dado associado à mesma

– informação por ela guardada.

• Toda variável possui um nome que tem a função de diferenciá-la das demais.

Page 17: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Variáveis• Nos algoritmos, todas as variáveis utilizadas

serão definidas no início do mesmo, por meio de um comando de uma das seguintes formas:VAR <nome_da_variavel> : <tipo_da_variavel>ouVAR <lista_de_variaveis> : <tipo_das_variaveis>

Page 18: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Variáveis• Escolher nomes significativos para as variáveis

– Ex: salario, total, nota, pagamento

• Nomes significativos ajudam a tornar os algoritmos e os programas auto-explicativos

• Nomes de variáveis com mais de uma palavra podem ajudar também– Ex: total_pagamentos, prova_final, totalPagamentos,

provaFinal.

Page 19: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

VariáveisExemplos:

VAR nome, sobrenome: caracteridade: inteirosalario: realtem_filhos: logico

Page 20: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Operadores• Operadores são símbolos que indicam a operação que

deve ser realizada entre os operandos (constantes e/ou variáveis), produzindo um determinado resultado.

– Ex: + e -

• De acordo com o número de operandos sobre os quais os operadores atuam, os últimos podem ser classificados em:

– binários, quando atuam sobre dois operandos.

• Ex.: os operadores das operações aritméticas básicas (soma, subtração, multiplicação e divisão).

– unários, quando atuam sobre um único operando.

• Ex.: o sinal de (-) na frente de um número, cuja função é inverter seu sinal.

Page 21: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Operadores• Outra classificação dos operadores é feita

considerando-se o tipo de dado de seus operandos e do valor resultante de sua avaliação.

• Segundo esta classificação, os operandos dividem-se em aritméticos, lógicos e caracteres.

– Um caso especial é o dos operadores relacionais, que permitem comparar pares de operandos de tipos de dados iguais, resultando sempre num valor lógico.

Page 22: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Operador de Atribuição• Um operador de atribuição serve para atribuir um

valor a uma variável.

• Em Algoritmo usamos o operador de atribuição:

• A sintaxe de uma atribuição é:NomedaVariavel expressao

• A expressão localizada no lado direito do sinal de igual é avaliada e armazenado o valor resultante na variável à esquerda.

• O nome da variável aparece sempre sozinho, no lado esquerdo do sinal de igual deste comando.

Page 23: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Operador de Atribuição• Todo comando de atribuição pode ser dividido em

duas etapas:– Avaliação da expressão;– Armazenamento do resultado da avaliação na posição

de memória representada pela variável.

• Exemplo:– a 35 * 6 + 2– O comando acima faz com que o resultado da

expressão (=212) seja armazenado na variável a.

Page 24: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Atribuição e Memória• Considere x=10, y=5 e z=8.• As figuras abaixo mostram a memória antes e

depois do comando de atribuição x y + z

EndEnd

00

11

22

33

44

55

xx

yy

zz

1313

55

88

EndEnd

00

11

22

33

44

55

xx

yy

zz

1010

55

88

modificadomodificado

antesantes depoisdepois

Page 25: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Operadores Aritméticos• Os operadores aritméticos se relacionam às

operações aritméticas básicas:

Page 26: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Expressões Aritméticas• Resultado é um valor numérico.

Page 27: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Expressões Aritméticas

• 1 / 4 – resultado 0.25

• 1 / 4 + 7.1 – resultado 7.35– 1a. Operação: 1 / 4 = 0.25– 2a. Operacão: 0.25 + 7.1 = 7.35

• (2 + 4)/(3 – 1) – resultado 3– 1a. Operação: 2 + 4 = 6– 2a. Operação: 3 – 1 = 2– 3a. Operação: 6 / 2 = 3

• 10 % 3 – resultado 1– O resto da divisão de 10 por 3 é igual a 1.

Page 28: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Exercícios• Qual é o resultado das expressões abaixo?

• 1 / 3 * 3

• 1.0 / 3 * 3

• 3 + 6 / 3 - 1

• 12 / 2 % 4

Page 29: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Exercícios• Escreva as expressões a seguir em pseudo-

código:• • 2(lado1+lado2)

by+x 22

x+

11

1

Page 30: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Operadores Relacionais• Os operadores relacionais são operadores binários que devolvem os

valores lógicos verdadeiro e falso.• Estes valores são somente usados quando se deseja efetuar

comparações.• Comparações só podem ser feitas entre objetos de mesma natureza,

isto é variáveis do mesmo tipo de dado.

Page 31: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Operadores Relacionais• Com valores string, os operadores relacionais comparam

os valores ASCII dos caracteres correspondentes em cada string.

• Uma string é dita "menor que" outra se os caracteres correspondentes tiverem os números de códigos ASCII menores.

• Exemplos de expressões verdadeiras no Visualg:

– "algoritmo" = "ALGORITMO"

– "ABC" < "EFG"

– "Pascal" < "Pascal compiler"

Page 32: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Operadores Relacionais• Considere a=3, b=7, total=200.0, média=8.1 e

ano=2000

• a > b -- resultado falso

• total = 100.0 -- resultado falso

• média >= 7.0 -- resultado verdadeiro

• ano <> 2001 -- resultado verdadeiro

Page 33: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Exercícios• Considerando a=3, b=7, t=20.0 e m=8.1 qual o

resultado das expressões?

• t <> 100.0

• (m + b) <= 7.0

• (t/(b+a)) = 2.0

Page 34: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Operadores Lógicos• Operadores lógicos ou booleanos são usados para

combinar expressões relacionais e resultam nos valores lógicos verdadeiro ou falso.

• Existem outros operadores lógicos, como por exemplo, os operadores ou-exclusivo, ne (não e), nou (não ou).

• Estes outros operadores podem ser obtidos a partir dos três já definidos (e, ou e não).

Page 35: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Operador Lógico - E• A e B tem como resultado verdadeiro somente se

A e B forem iguais a verdadeiro.

aa bb aa bb

Page 36: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Operador Lógico - OU• A ou B tem como resultado verdadeiro se A ou B

for igual a verdadeiro.

aa

bb

aa

bb

Page 37: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Operador Lógico - NÃO

Page 38: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Exercícios• Considerando a=falso, b=verdadeiro e c=falso,

qual é o resultado das expressões?

– a ou b e c

– (a ou b) e c

– a e (b ou c)

– não (a e b)

– a ou b ou c

Page 39: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Operadores Caracteres• Um exemplo de operação comum em várias

linguagens é a concatenação de duas cadeias de caracteres.

• Símbolo + é usado em algumas linguagens para representar esta operação.

• Considere as cadeias 'dia', ' ', 'de' e 'semana'• A operação

– 'dia' + ' ' + 'de' + ' ' + 'semana'

• Cria a cadeia– 'dia de semana'

Page 40: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Expressões mistas

• É muito comum em algoritmos juntar operadores relacionais e lógicos em expressões.

• Estas expressões são geralmente do tipo:– (nota1 > 7.0) ou (nota2 > 7.0)– (salario > valor) e (ano > 2001)

• O resultado destas expressões é do tipo lógico (verdadeiro ou falso).

Page 41: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Prioridade dos Operadores• Em expressões podemos misturar vários tipos de

operadores.• A tabela mostra a prioridade relativa dos

operadores estudados.

BinárioBinário

BinárioUnárioTipo

3+ - ou4= <> >= <= > <

2* / % \ e 1não - +

PrioridadeOperador

Page 42: Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores

Exercícios• Considerando l1=5.0, l2=3.0, l3=4.0 e l4=7.1:

– (l1 > l3) e (l2 > l4)

– ((l1+2) = l3) ou (l2 <= l4)

• Considerando presente=verdadeiro, n1=7.5 e n2=6.5, qual é o resultado da expressão?

– (((n1+n2)/2.0) >= 7.0) e presente