Разработать консольную программу на FreePascal, получающую на вводе строку, значение которой может быть
равным одному из следующих вариантов:
Shortint SmallInt
Longint
Int64
Byte Word Longword
QWord
.
Если введенная строка не соответствует ни одному из приведенных вариантов, вывести на экран слово Error и завершить работу программы.
Для введенного типа данных вывести на экран (1) нижную границу типа; (2) верхнюю границу типа; (3) размер типа в байтах; (4) случайное значение из диапазона от нижней до верхней границы типа включительно; (5) предыдущее значение; (6) последующее значение; (7) значения байтов, хранящих переменную введенного типа, в порядке их расположения в оперативной памяти.
Запрещается использовать константные значения характеристик типа. Значения всех характеристик типа следует вычислять, используя специальные функции для работы с порядковым типом данных (low, high, prev, succ и т.д.).
Пример вывода для типа Longint:
Исследуемый тип: Longint Нижняя граница: -2147483648 Верхняя граница: 2147483647 Байт на переменную: 4 Случайное значение: 818295054 Предыдущее значение: 818295053 Последующее значение: 818295055 Содержимое оперативной памяти: 14 49 198 48
Получение случайных значений с использованием функции Random ограничено неотрицательным диапазоном типа Int64. Поэтому для получения случайных значений из всего диапазона целочисленных типов данных, а также типов, диапазон которых в положительной области превышает диапазон для типа Longint, рекомендуется получать случайное значение для каждого байта целочисленного типа и сохранять полученный результат в соответствующей области памяти.
Разработать консольную программу на FreePascal, получающую на вводе строку, значение которой может быть
равным одному из следующих вариантов:
Real
Single
Double
Extended.
Если введенная строка не соответствует ни одному из приведенных вариантов, вывести на экран слово Error и завершить работу программы.
Для введенного типа данных вывести на экран (1) размер типа в байтах; (2) количество значащих знаков; (3) минимальное положительное значение типа; (4) максимальное положительное значение типа; (5) максимально возможное значение вида XeY (X-десятичная цифра, Y-положительное десятичное число), на которое можно увеличить максимальное положительное значение типа без генерации ошибки времени выполнения; (6) положительное целочисленное значение типа, увеличение которого на 1 не приводит к увеличению значения.
Для получения информации по пунктам (2), (3) и (4) можно использовать документацию https://www.freepascal.org/docs-html/ref/refsu5.html. Пункты (5) и (6) быть готовым доказать отдельной программой.
Пример вывода для типа Single:
Исследуемый тип: Single Байт на переменную: 4 Кол-во значащих знаков: 7-8 Min+: 1.5e-45 Max+: 3.4e38 Max+ no error: 2e35 +1 no result: 16777216