Olá Pascal! #4 – Tipos de dados
Na aula anterior, aprendemos o que são as constantes e variáveis. Ademais, foram mostradas algumas regras de como escrever, de forma correta, o nome de uma variável.
Se você prestou atenção na aula anterior, quando eu falei sobre as variáveis, disse que para declará-las devemos associar cada uma delas a um identificador e um tipo de dado. Sabemos que os identificadores correspondem ao nome que é dado à variável, mas, e os tipos de dados, o que são? Eles serão abordados agora.
O que são os tipos de dados?
Tipos de dados são conjuntos ordenados de valores. Analogamente, na matemática temos o conjunto dos números inteiros, reais, etc.
Existem duas categorias de tipos de dados: pré-definidos e definidos pelo usuário.
Tipos pré-definidos
Os tipos de dados pré-definidos são aqueles tipos nativos da linguagem. Eles podem ser: numéricos, lógicos ou literais.
Numéricos
Os tipos numéricos, como o nome já diz, correspondem a conjuntos de números, sejam eles inteiros ou reais.
Os tipos numéricos, em Pascal, mais usados são:
- Integer – números inteiros. Ex.: -1, 4, 240, -1000
- Real – números reais. Ex.: 0.13, -5.34, 1.2E+3
Lógicos
Os tipos lógicos podem assumir dois valores: verdadeiro ou falso. Eles são utilizados para a tomada de decisões dentro do programa.
Em Pascal, existem quatro tipos lógicos: Boolean, WordBool, LongBool, e ByteBool, porém, o primeiro é o mais utilizado. Todos eles assumem apenas dois valores, true (verdadeiro) ou false (falso), o que muda de um para outro é a quantidade bits que eles ocupam na memória.
O tipo lógico que nós iremos utilizar será:
- Boolean – valores lógicos. Ex.: true, false
Literais
Os tipos literais são conjuntos de caracteres. Foi com o tipo literal String que você pôde escrever na tela a frase “Olá Mundo!” em seu primeiro programa.
Todos os caracteres usados em Pascal são tirados da tabela ASCII. Se você tentar usar em seu programa um caractere que não esteja lá, ele será substituido por outro, quando você executar o programa.
Existem dois tipos literais:
- Char – caracteres. Ex.: ‘a’, ‘+’, ‘b’
- String – cadeia de caracteres. Ex.: ‘Luiz Augusto’, ‘Olá Mundo!’
Tabela dos principais tipos de dados em Pascal
| Tipo de dado | Conjunto | Tamanho |
|---|---|---|
| ShortInt | -128 … 127 | 1 byte |
| Integer | -32768 … 32767 | 2 bytes |
| LongInt | -2147483648 … 2147483647 | 4 bytes |
| Byte | 0 … 255 | 1 byte |
| Word | 0 … 65535 | 2 bytes |
| Single | 1.5e-45..3.4e38 | 4 bytes |
| Real | 2.9e-39…1.7e38 | 6 bytes |
| Double | 5.0e-324…1.7e308 | 8 bytes |
| Extended | 3.4e-4932..1.1e4932 | 10 bytes |
| Boolean | true, false | 1 byte |
| WordBool | true, false | 2 bytes |
| LongBool | true, false | 4 bytes |
| Char | 1 caractere (ASCII) | 1 byte |
| String | 1 a 255 caracteres (ASCII) | 1 .. 255 bytes |
Tipos definidos pelo usuário
Além dos tipos pré-definidos, podemos criar nossos próprios tipos de dados através da declaração de tipos. Para isto, usaremos a palavra reservada type.
O usuário pode criar dois tipos de dados: subintervalo e enumerado.
Tipo subintervalo (subrange)
Este tipo define uma faixa de valores de um tipo pré-definido.
Sintaxe:
type
<nome_do_subintervalo> = <valor_menor>..<valor_maior>;
Exemplo:
type
minusculas = 'a'..'z'; //Tipo que contém o alfabeto minúsculo
maiusculas = 'A'..'Z'; //Tipo que contém o alfabeto maiúsculo
digitos = 0..9; //Números de 0 a 9
OBS.: Você não pode declarar um subintervalo de números reais.
Tipo enumerado (enummerated)
Tipos enumerados são como conjuntos de valores. Quando declaramos um tipo enumerado, temos que listar todos os valores que a variável poderá assumir.
Sintaxe:
type <nome_do_tipo> = (<valor1>, <valor2>, ..., <valorN>);
Exemplo:
type
animais = (gato, cachorro, papagaio);
nomes = (Luiz, Pedro, Maria, Bruno);
OBS.:
- Os valores dos tipos enumerados NÃO são Strings, se você prestar atenção, eles não estão entre apóstrofes (‘ ‘). Estes valores são armazenados na memória como inteiros, na sequência em que foram definidos (0, 1, 2, …, N – 1).
- Existem outros tipos de dados em Pascal (array, record, etc.), porém, eles serão abordados no decorrer do curso.
Colocando a mão na massa
Agora que sabemos quais são os tipos de dados e como funcionam as constantes e variáveis, vamos criar um programa mais “sofisticado”.
program mediaEscolar;
const
aluno = 'Luiz Augusto'; //declarando uma constante literal que recebe meu nome
var
nota1, nota2, nota3, media : real; //declarando as variáveis do tipo real
begin
//atribuindo valores às variáveis
nota1 := 9; //variável nota1 recebe 9
nota2 := 8.7; //variável nota2 recebe 8.7
nota3 := 10; //variável nota3 recebe 10
media := (nota1 + nota2 + nota3) / 3; //calcula a média das notas e atribui o resultado à variável media
writeln('A média de ', aluno, ' é: ', media:1:1); //imprime a mensagem na tela
end.
Entendendo o código
O programa acima calcula a média das três notas atribuídas por você.
Nas linhas 10, 11, 12 e 14 nós utilizamos o operador “:=” para atribuirmos os valores às variáveis. Este operador recebe o valor que está em seu lado direito (pode ser o resultado de um cálculo, somente um valor, uma função, etc.) e atribui este valor à variável que está no lado esquerdo.
Exemplo
soma := 2 + 5; //atribuindo o valor da soma de 2 + 5 nome := 'Luiz Augusto'; //atribuindo um valor quadrado := sqr(2); //função que retorna o quadrado de um número
Já na linha 16, usamos a função writeln() para imprimir a mensagem na tela. Porém, foi usado um recurso de formatação na saída. Como assim? Calma, vou explicar.
Existem três tipos de formatação:
- valor
- valor:a
- valor:a:b
- a e b são números inteiros positivos que determinam como será a saída.
No primeiro caso, o valor está sem formatação. Logo, será mostrado em sua forma original.
Ex.: Entrada-> 9.2 | Saída ->9.233333333333333E+000
No segundo caso, o valor está formatado. O a representa a quantidade de espaços que serão reservados para o valor.
Ex.: Entrada -> 5:20 | Saída ->*******************5 (os asteriscos estão representando os espaços em branco)
No terceiro caso, o valor também está formatado. O b representa a quantidade de dígitos que serão escritos após o ponto decimal. Esta formatação só é permitida para tipos decimais (real, double, etc).
Ex.: Entrada -> 9.3333:3:2 | Saída ->**9.33
Bom, por hoje é só, pessoal. Eu aconselho vocês a praticarem muito tudo o que aprenderam nesta aula, pois só assim, conseguirão assimilar o conteúdo. Se pintar alguma dúvida, é só deixar um comentário que eu lhes ajudarei. Até semana que vem!
Acesse o novo endereço do Olá Mundo!: http://ola-mundo.com



Parabéns.
material muito bom para estudo, não perco uma publicação.
abraço
Obrigado, Bruno. Fico feliz por você acompanhar minhas aulas. Se você tiver qualquer dúvida, pode perguntar, que eu farei o possível para ajudá-lo.