Saltar para o conteúdo
edumaterial.netMudar idioma

Voltar a Aplicações Informáticas B

Variáveis e tipos de dados

12.º anoPercurso edumaterial

O que vais aprender

  • Usar variáveis e tipos adequados ao problema antes de programar.

Compreender

O tipo de um dado depende do que ele representa e das operações previstas. «08» identifica uma sala e precisa de conservar o zero inicial; 8 lugares é uma quantidade que se pode somar ou subtrair. Se ambos forem tratados como números, perde-se parte do código. Se ambos forem tratados como texto, uma soma de lotações deixa de ter o significado pretendido.

O texto «08» conserva o zero inicial, que pode ser necessário num código de sala; o número 8 representa uma quantidade sobre a qual faz sentido somar ou comparar. Converter sem pensar pode destruir informação. Se o programa apresentar «08» no ecrã, deve guardar um identificador textual; se calcular lugares disponíveis, precisa de inteiro não negativo e validação da entrada. A frase «Tudo o que contém algarismos deve converter-se automaticamente em número.» ultrapassa aquilo que foi demonstrado. Para a corrigir, é necessário definir tipo, valores admissíveis e operação pretendida antes da implementação. A decisão resulta da comparação entre o dado, o conceito e a condição que ficou por testar.

Um código de sala pode conter algarismos sem representar quantidade: o zero inicial em «08» é parte da sua identidade. Se for convertido no inteiro 8, perde-se a forma original e confundem-se duas operações: procurar a sala e somar lugares. Uma implementação declararia código como texto e lotação como inteiro não negativo. O teste útil não é apenas ver se o programa aceita «08», mas confirmar que o devolve sem remover o zero e que só calcula com a lotação.

Exemplo resolvido

No registo de salas da teoria, compara os identificadores de texto «08» e «8» e a lotação numérica 8. Que validação evita confundir nome e quantidade?

  1. Guardo «08» e «8» como sequências de caracteres; a primeira conserva um zero inicial que a distingue da segunda.
  2. Guardo a lotação 8 como inteiro para permitir somas de lugares, não de códigos.
  3. No teste, comparo os dois códigos como texto e somo apenas as lotações numéricas quando necessário.

«08» e «8» são códigos distintos; a quantidade 8 é um inteiro usado em cálculos.

Atenção ao erro

Tudo o que contém algarismos deve converter-se automaticamente em número.

Etiqueta com código de porta iniciado por zero ao lado de um conjunto de oito lugares.
Distinguir um identificador textual de uma quantidade numérica.

Verifica agora

  1. Ver a ilustração

    Por que o código «08» deve permanecer texto enquanto 8 lugares pode ser inteiro?

    Ver solução explicada

    Resposta: «08» é identificador e perderia o zero inicial na conversão; 8 lugares representa quantidade usada em cálculos.

    Relaciona tipo com significado e operação, não com aparência.

  2. Ver a ilustração

    Um colega toma a seguinte conclusão como demonstrada: «Tudo o que contém algarismos deve converter-se automaticamente em número.». Localiza o salto e corrige a frase.

    Ver solução explicada

    Resposta: A conclusão excede o recorte. O código é identificador textual; o número de lugares admite operações aritméticas. Somar dois códigos não produz lugares, enquanto somar lotações tem significado definido.

    Refuta a inferência com uma condição concreta do caso.

  3. Ver a ilustração

    Acrescenta-se a sala «09» com 12 lugares. Que tipo usarias para cada novo campo e qual soma é válida?

    Ver solução explicada

    Resposta: Guardaria «09» como texto e 12 como inteiro; poderia somar 8 + 12 = 20 lugares, mas não somar os códigos «08» e «09» como lotações.

    Preserva zeros de identificação e calcula apenas com quantidades.

  4. Ver a ilustração

    Especifica um teste de entrada e saída que revelaria a conversão indevida de um código de sala.

    Ver solução explicada

    Resposta: Entrada: código «08» e lotação 8. Saída esperada: código mostrado exatamente como «08» e lotação numérica 8; exibir «8» como código denunciaria perda do zero inicial.

    Define valor de entrada e resultado observável para cada tipo.

Alinhamento curricular e fontes