На строке 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))); "
Переменная b = 48
Переменная a = -2
Переменная с = 9
Переменная с = 1
Объяснение:
C++
#include<iostream>
#include <cmath>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
int a;
int b;
int c;
//1
a = 3;
b = 8;
a = b - a * 2;
b = 24 / a * 4;
cout << "Переменная b = " << b << endl;
//2
b = 3;
a = (-8);
b = 7 - a + b;
b = (a + b) / 5;
a = a / 2 + b;
cout << "Переменная a = " << a << endl;
//3
a = 20;
b = 3;
a = a % b + 5;
c = a / b + a;
cout << "Переменная с = " << c << endl;
//4
a = 24;
b = 5;
b = a % b;
c = a / 4 / (b + 1);
cout << "Переменная с = " << c << endl;
}
На строке 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))); "