Управление памятью – одна из главных задач ОС. Она критична как для программирования, так и для системного администрирования.
Объяснение:
Каждый процесс в многозадачной ОС работает в своей «песочнице» в памяти. Это виртуальное адресное пространство, которое в 32-битном режиме представляет собою 4Гб блок адресов. Эти виртуальные адреса ставятся в соответствие (mapping) физической памяти таблицами страниц, которые поддерживает ядро ОС. У каждого процесса есть свой набор таблиц. Но если мы начинаем использовать виртуальную адресацию, приходится использовать её для всех программ, работающих на компьютере – включая и само ядро.
На строке 9 "if x>=-7.5 and x<2 then y:=(a*sqrt(abs(x+6))); " в том месте, где выделено жирным, компилятор думает, что необходимо произвести побитовое умножение числа с плавающей точкой типа real -7.5 и целого числа x. Т.к. побитовое умножение применимо только к целым числам, компилятор пытается преобразовать -7.5 к целому числу, т.е. к integer, и у него это не получается, о чем он Вам и говорит.
Чтобы он не думал, что Вы собираетесь производить побитовое умножение (ведь Вы хотите произвести логическую операцию между результатами двух сравнений), нужно занести в скобки выражения x>=-7.5 и x<2, чтобы получилась такая строка: "if (x>=-7.5) and (x<2) then y:=(a*sqrt(abs(x+6))); "