Aula 8 – Variáveis e Tipos de
           Dados
  Prof. André Constantino da Silva
          LOGT1 – Lógica
              Noturno


            04 de maio de 2012
Na aula anterior...

• VisualG


• Comando de Decisão
    - Simples (se-entao)
    - Dupla (se-entao-senao)
Na aula de hoje...

• Variáveis

• Tipos de Dados

• Operadores
Variável

• Aprendemos a usar variáveis e a declará-las




          Mas o que é uma variável?
Variável

• É um objeto ou entidade situado na
  memória que representa um valor ou
  expressão
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
Memória




          02   03
00   01




          06   07
04   05
Memória
Mas 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
Memória

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

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 1

0 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

0 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
Memória
    0000            0001                             0011
                                    0010

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

   0100             0101                             0111
                                    0110

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 1

   1000             1001                             1011
                                    1010

0 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
                                    1110

0 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
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?
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
                                   e


Ex.: var fator: inteiro
                                   i
                                   r
                                   o
Tipos de Dados
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: + , - , *, /
Tipo de Dados
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

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

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 1

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

0 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

0 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

0 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

0 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 0

0 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 1

0 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
Tipo de Dados
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

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

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 1

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

0 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

0 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

0 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 1

0 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 0

0 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 1

0 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
Tipo de Dados - Inteiro
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

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

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 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
Tipo de Dados - Real
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

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

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 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)
Tipo de Dados - Real
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

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

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 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
Tipo de Dados - Caractere
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

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

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 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              †
Tabela ASC II

• Convenção para representar
letras, números, símbolos
através de código binário.

•     Exemplos:

A       0100 0001
B       0100 0010
C       0100 0011
...
a       0110 0001
b       0110 0010
c       0110 0011
Tipo de Dados - Caractere
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

0 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

0 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
Tipo de Dados - Lógico
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

0 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

0 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 é verdadeiro
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
          Falso
          Verdadeiro
          Falso
Tipo de Dados - Lógico
•   Em Portugol, para atribuir verdadeiro ou falso,
    fazemos:
algoritmo “verdadeiro_falso"
var
       ligado: logico
inicio
       ligado <- verdadeiro
       ligado <- falso
       escreva(ligado)
Fimalgoritmo
Válido para o comando leia(), qualquer coisa que o
usuário digitar que não for igual a palavra reservada
verdadeiro será considerado como falso
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
Operadores
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
Operador de Atribuição
algoritmo "erro de atribuicao"
var numero1, numero2: inteiro
     numero3, numero4: real
     letra: caractere
     ligado: logico
inicio
       numero1 <- "teste"
       numero2 <- falso
       letra <- 20
       ligado <- "sim"
       escreva(numero1, numero2, letra, ligado)
fimalgoritmo
Operadores Matemáticos
Sí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)
Operadores Matemáticos

• O resultado pode ser um inteiro ou real
• Operados +, - e * o resultado dependerá dos
   operandos
      - Se os operandos forem inteiros, resultado
será inteiro
      - Se houver algum operando real, resultado
será real
              - mesmo se o resultado for um número inteiro.
Ex: 1.5 + 1.5 = 3.0

     Observação: Se o resultado for inteiro, ele
pode ser atribuído a uma variável do tipo real
Exercícios
1. Escreva um algoritmo que leia um número inteiro
do usuário e calcule y, sendo que y é calculado
pela fórmula
                        y = 2x
2. Escrever um algoritmo que leia um número
inteiro digitado pelo usuário e informe ao usuário se
ele é par ou ímpar
3. Escrever um algoritmo que leia o nome de um
aluno e as notas das três provas que ele obteve no
semestre. No final informar o nome do aluno e a
sua média (aritmética) , a sua média (aritmética) e
se o aluno passou na disciplina (média maior ou
igual a 6.0).

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

  • 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 dehoje... • Variáveis • Tipos de Dados • Operadores
  • 4.
    Variável • Aprendemos ausar variáveis e a declará-las Mas o que é uma variável?
  • 5.
    Variável • É umobjeto 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 03 00 01 06 07 04 05
  • 8.
    Memória Mas o computadortrabalha 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ória 0 0 00 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 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 1 0 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 0 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 0010 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 0100 0101 0111 0110 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 1 1000 1001 1011 1010 0 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 1110 0 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 manipularmosendereç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 namemória • Possui um nome (identificador) • Armazena um dado (conteúdo) • Só existe em tempo de execução • Possui um tipo I n t e Ex.: var fator: inteiro i r o
  • 13.
  • 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 Dados 00 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 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 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 1 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 0 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 0 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 0 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 0 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 0 0 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 1 0 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 Dados 00 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 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 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 1 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 0 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 0 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 0 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 1 0 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 0 0 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 1 0 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- Inteiro 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 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 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 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- Real 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 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 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 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- Real 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 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 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 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- Caractere 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 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 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 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 representar letras, números, símbolos através de código binário. • Exemplos: A 0100 0001 B 0100 0010 C 0100 0011 ... a 0110 0001 b 0110 0010 c 0110 0011
  • 22.
    Tipo de Dados- Caractere 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 0 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 0 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ógico 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 0 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 0 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 é verdadeiro 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 Falso Verdadeiro Falso
  • 24.
    Tipo de Dados- Lógico • Em Portugol, para atribuir verdadeiro ou falso, fazemos: algoritmo “verdadeiro_falso" var ligado: logico inicio ligado <- verdadeiro ligado <- falso escreva(ligado) Fimalgoritmo Válido para o comando leia(), qualquer coisa que o usuário digitar que não for igual a palavra reservada verdadeiro 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.
  • 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ção algoritmo"erro de atribuicao" var numero1, numero2: inteiro numero3, numero4: real letra: caractere ligado: logico inicio numero1 <- "teste" numero2 <- falso letra <- 20 ligado <- "sim" escreva(numero1, numero2, letra, ligado) fimalgoritmo
  • 29.
    Operadores Matemáticos Sí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 • Oresultado pode ser um inteiro ou real • Operados +, - e * o resultado dependerá dos operandos - Se os operandos forem inteiros, resultado será inteiro - Se houver algum operando real, resultado será real - mesmo se o resultado for um número inteiro. Ex: 1.5 + 1.5 = 3.0 Observação: Se o resultado for inteiro, ele pode ser atribuído a uma variável do tipo real
  • 31.
    Exercícios 1. Escreva umalgoritmo que leia um número inteiro do usuário e calcule y, sendo que y é calculado pela fórmula y = 2x 2. Escrever um algoritmo que leia um número inteiro digitado pelo usuário e informe ao usuário se ele é par ou ímpar 3. Escrever um algoritmo que leia o nome de um aluno e as notas das três provas que ele obteve no semestre. No final informar o nome do aluno e a sua média (aritmética) , a sua média (aritmética) e se o aluno passou na disciplina (média maior ou igual a 6.0).