Целочисленные типы позволяют переменной принимать значения целых чисел согласно следующей таблице:
Тип | Диапазон значений | Сколько байтов занимает одно значение |
Byte | 0..255 | |
ShortInt | -128..127 | |
Word | 0..65535 | |
Integer | -32768..32767 | |
LongInt | -2147483648..2147483647 |
Зачем нужны Byte и ShortInt, если есть Integer? Они занимают меньше места в памяти. Если, например, ваша переменная по смыслу задачи обозначает минуты (то есть целое число в диапазоне от 0 до 60), то полный смысл придать ей тип Byte.
Вещественные типы позволяют переменной принимать значения вещественных чисел согласно следующей таблице:
Тип | Примерный диапазон значений | Точность (значащих цифр) | Сколько байтов занимает одно значение |
Real | 2.9´10-39 - 1.7´1038 | 11-12 | |
Single | 1.5´10-45 - 3.4´1038 | 7-8 | |
Double | 5´10-324 - 1.7´10308 | 15-16 | |
Extended | 3.4´10-4932 - 1.1´104932 | 19-20 | |
Comp [9] | примерно от -1019 до 1019 |
Типы Single, Double, Extended и Comp могут потребовать для своей работы некоторой настройки Паскаля.
Следует помнить, что дробные числа (например, 1/3) компьютер хранит примерно в таком виде: 0,3333333333333. Вы знаете, что такое представление дробных чисел приблизительно. Чтобы точно представить 1/3, компьютеру понадобилось бы бесконечное количество троек, но память компьютера ограничена. Ячейка под переменную типа Real позволяет хранить всего 11-12 таких троек. Эту приблизительностьнужно иметь в виду, когда вы многократно выполняете арифметические действия над переменными вещественных типов. При определенном сочетании чисел и действий вы можете немедленно получить совершенно неправильный результат. Попробуйте, например, выполнить такую программу:
VAR a,b,y: Real;
BEGIN
a:=55555555555.1; b:=55555555555.0;
y:=a-b;
WriteLn (y:30:3)
END.
Вы обнаружите, что вместо результата 0.100 компьютер выдает результат 0.125.
Массивы
Для того, чтобы понять массивы, нужно обладать некоторой культурой математического мышления. Если этот материал покажется вам трудным, не поддавайтесь искушению пропустить его. Настоящего программирования без массивов не бывает, да и большая часть дальнейшего материала без массивов не будет понятна.