Aula 8 - Lógica de Programação - Variáveis, Tipos de dados e Operadores

  • 4,321 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,321
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
49
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Aula 8 – Variáveis e Tipos de Dados Prof. André Constantino da Silva LOGT1 – Lógica Noturno 04 de maio de 2012
  • 2. Na aula anterior...• VisualG• Comando de Decisão - Simples (se-entao) - Dupla (se-entao-senao)
  • 3. Na aula de hoje...• Variáveis• Tipos de Dados• Operadores
  • 4. Variável• Aprendemos a usar variáveis e a declará-las Mas o que é uma variável?
  • 5. Variável• É um objeto ou entidade situado na memória que representa um valor ou expressão
  • 6. Memória• São dispositivos utilizados para guardar dados• A unidade básica da memória é o dígito binário (bit)• Atualmente, cada byte da memória possui um endereço
  • 7. Memória 02 0300 01 06 0704 05
  • 8. MemóriaMas o computador trabalha com bits!Os endereços então são binários: 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 1 1 1 0 0 0 1 0 1
  • 9. Memória0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 01 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 10 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1
  • 10. Memória 0000 0001 0011 00100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0100 0101 0111 01101 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1000 1001 1011 10100 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1100 1101 1111 11100 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1
  • 11. Memória• Imagina manipularmos endereços de memória em nossos algoritmos?Ex (hipotético): algoritmo “teste” var 0x010: inteiro inicio 0x010 <- 50 escreva(0x010) fim• E se o endereço estiver sendo usado por outro programa?
  • 12. Variável• Espaço na memória• Possui um nome (identificador)• Armazena um dado (conteúdo)• Só existe em tempo de execução• Possui um tipo I n t eEx.: var fator: inteiro i r o
  • 13. Tipos de Dados
  • 14. Tipos de Dados• Combinação de valores e de operações que uma variável pode executar - Também conhecido como tipo de variável• Exemplo: inteiro Valores: ... , -2, -1, 0, 1, 2, .... , 100, ... Operações: + , - , *, /
  • 15. Tipo de Dados0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 00 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 10 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 10 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 00 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 1 0 0 0 0 0
  • 16. Tipo de Dados0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 00 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 10 0 0 0 0 1 0 0 1 O que 0esses 0 0e 0 0 0 0 1 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 10 0 0 0 0 0 1 0 0 1 representam? 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 00 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 1 0 0 0 0 0
  • 17. Tipo de Dados - Inteiro0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1• Se o sistema utiliza 32 bits para representar um inteiro, temos: - A primeira sequência de 32 bits é 254 - A segunda sequência de 32 bits é 1.221 - A terceira sequência de 32 bits é 2.147.483.647
  • 18. Tipo de Dados - Real0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1• Se o sistema utiliza 32 bits para representar um real (ponto flutuante), adotando a norma IEEE 754 formato simples: - Primeiro bit: indica o sinal (0 positivo, 1 negativo) - Os próximos 23 bits: mantissa (número em binário) - 8 bits restantes: expoente (variando de -126 a +127)
  • 19. Tipo de Dados - Real0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1• Se o sistema utiliza 32 bits para representar um real, adotando a norma IEEE 754 formato simples: - Primeiro bit: indica o sinal (0 positivo, 1 negativo) - Os próximos 8 bits: expoente (variando de -126 a +127) - 23 bits restantes: mantissa (número em binário)0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 representa 356 x e-43
  • 20. Tipo de Dados - Caractere0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1• Se o sistema utiliza 8 bits para representar um caractere, adotando a tabela ASC II:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 Nulo Nulo Nulo ▀0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 Nulo Nulo EOT †
  • 21. Tabela ASC II• Convenção para representarletras, números, símbolosatravés de código binário.• Exemplos:A 0100 0001B 0100 0010C 0100 0011...a 0110 0001b 0110 0010c 0110 0011
  • 22. Tipo de Dados - Caractere0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 00 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1• Se o sistema utiliza 8 bits para representar um caractere, adotando a tabela ASC II:0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 I F S P
  • 23. Tipo de Dados - Lógico0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 00 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1• Valores possíveis: verdadeiro, falso• Se o sistema utiliza 1 bit para representar um tipo lógico (booleano), adotamos por convenção bit 0 é falso bit 1 é verdadeiro0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 0 Falso Verdadeiro Falso
  • 24. Tipo de Dados - Lógico• Em Portugol, para atribuir verdadeiro ou falso, fazemos:algoritmo “verdadeiro_falso"var ligado: logicoinicio ligado <- verdadeiro ligado <- falso escreva(ligado)FimalgoritmoVálido para o comando leia(), qualquer coisa que ousuário digitar que não for igual a palavra reservadaverdadeiro será considerado como falso
  • 25. Tipo de Dados• Determina o conteúdo de uma variável• Determina a quantidade de memória que será utilizada para armazenar o conteúdo• Escolha o tipo de dados mais adequado ao que deseja representar Para não usar mais memória do que é necessário• As operações que poderá realizar estão relacionadas ao tipo de dados
  • 26. Operadores
  • 27. Operador de Atribuição• Atribui um valor a uma variável• Símbolo: <- (lê-se recebe)• Cuidado: a variável só pode receber valores do seu tipo
  • 28. Operador de Atribuiçãoalgoritmo "erro de atribuicao"var numero1, numero2: inteiro numero3, numero4: real letra: caractere ligado: logicoinicio numero1 <- "teste" numero2 <- falso letra <- 20 ligado <- "sim" escreva(numero1, numero2, letra, ligado)fimalgoritmo
  • 29. Operadores MatemáticosSímbolo Ação Exemplo + Soma Soma <- 5 + 2 - Subtração Sub <- 5 – 2 * Multiplicação M <- 5 * 2 / Divisão Divisao <- 5 / 2 (resultado sempre real) Divisão Inteira Quociente <- 5 2 MOD Resto da divisão inteira Resto <- 5 mod 2 ^ Potenciação Potencia <- 5 ^ 2 (resultando sempre real)
  • 30. Operadores Matemáticos• O resultado pode ser um inteiro ou real• Operados +, - e * o resultado dependerá dos operandos - Se os operandos forem inteiros, resultadoserá inteiro - Se houver algum operando real, resultadoserá real - mesmo se o resultado for um número inteiro.Ex: 1.5 + 1.5 = 3.0 Observação: Se o resultado for inteiro, elepode ser atribuído a uma variável do tipo real
  • 31. Exercícios1. Escreva um algoritmo que leia um número inteirodo usuário e calcule y, sendo que y é calculadopela fórmula y = 2x2. Escrever um algoritmo que leia um númerointeiro digitado pelo usuário e informe ao usuário seele é par ou ímpar3. Escrever um algoritmo que leia o nome de umaluno e as notas das três provas que ele obteve nosemestre. No final informar o nome do aluno e asua média (aritmética) , a sua média (aritmética) ese o aluno passou na disciplina (média maior ouigual a 6.0).