Лови решение на с++ с do while
Объяснение:
1 задача, ну тут все элементарно, думаю пояснения не нужны:
#include <iostream>
using namespace std;
int main() {
int a = 1, num;
cin >> num;
do {
cout << a << " ";
a += 2;
} while (a < num * 2);
}
2 задача (num++ делаю только для удобства, но можно везде использовать num + 1, при этом в условии надо написать a <= num):
#include <iostream>
using namespace std;
int main() {
int a = 1, num;
cin >> num;
num++;
do {
cout << a << " + " << num - a << " = " << num << endl;
a++;
} while (a < num);
}
На строке 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))); "