Разработать консольную программу, получающую на вводе строку, значение которой может быть
равным одному из следующих вариантов:
Shortint SmallInt
Longint Longword
Int64 Byte Word
Cardinal
QWord.
Если введенная строка не соответствует ни одному из приведенных вариантов, вывести на экран слово Error и завершить работу программы.
Для введенного типа данных вывести на экран (1) нижную границу типа, (2) верхнюю границу типа, (3) размер типа в байтах. Заполнить переменную введенного типа случайным значением из диапазона от нижней до верхней границы типа. Вывести на экран (4) полученное значение, (5) предыдущее и (6) последующее значение. Вывести на экран (7) значения байтов, хранящих переменную введенного типа, в порядке их расположения в оперативной памяти.
Запрещается использовать константные значения характеристик типа. Значения всех характеристик типа следует вычислять, используя специальные функции для работы с порядковым типом данных (low, high и т.д.).
Пример вывода для типа Longint:
Исследуемый тип: Longint Нижняя граница: -2147483648 Верхняя граница: 2147483647 Байт на переменную: 4 Случайное значение: 818295054 Предыдущее значение: 818295053 Последующее значение: 818295055 Содержимое оперативной памяти: 14 49 198 48Для получения случайных значений из всего диапазона конкретного типа данных следует вывести корректную формулу, которую можно статистически проверить следующим образом:
// программа для статистической проверки вероятности появления случайных значений по конкретной формуле // в данном случае формула содержит ошибку, благодаря которой не учитываются 3 возможных значения // вариант решения представлен для типа shortint, однако полученные результаты будут реальны // для любого целочисленного типа (integer, longint, smallint, int64) {$R+} // обязательная проверка на выход из диапазона var i:longint; x:array[shortint]of longint; b:shortint; begin randomize; for i:=1 to 1000000 do begin //проверка формулы b:=(random(high(shortint))+1)+low(shortint)+(random(high(shortint))+1); inc(x[b]); end; for i:=low(shortint) to high(shortint) do begin if x[i]=0 then begin writeln(i,' not found'); end; end; readln; end.