dmyutro
а. Форматуйте код.
б. Звичайно компілятор показує в якому рядку проблема
б.1. мені каже що в цьому: Sign:(y); а конкретно "Calculator.pas(3) : Встречено ';', а ожидалось '..'"
0.0. Що малось на увазі, я чесно кажучи не збагну
Спробую розібрати Ваші думки:
так як отут:
Ви робите операцію яка порівнює два рядки, причому різні, причому при будь яких обставинах повертає false, я роблю висновок, що Ви хотіли змінну sign порівняти з знаком, а треба це робити отак
...
var Sign : Char; //або String, PChar, PAnsiChar і т.д.
...
if sign='-' then
//Something
...
Sign : Char;//Один символ, Sign є змінна, Char - тип змінної, спитайте у гугловського, про типи в паскалі, або можете зразу почитати вікікнигу від одного нашого форумчанина
program Calculator;
var a,b,x:real;
Sign : Char;
begin
writeln('Ця програма розв''язує вирази а+b=х а-b=х');
write('a=');
readln(a);
writeln('Виберіть знак додавання чи віднімання');
write('');
readln(Sign); //Отут ми в Sign читаєм наш знак від користувача, пам_ятайте що він може ввести будь-що
writeln('Виберіть значення b');
write('b=');
readln(b);
if sign='-' then //змінну sign порівнюємо з рядком '-' (рядок, тому що в лапках одинарних)
writeln ('x=',a-b)
else
if sign='+' then
writeln ('x=',a+b)
else
writeln('You input error, please try again'); //А тут треба написати якшо нічого не допомогло
end.
П.С. Для досліджень використовувався PascalABC.NET, в турбо паскалі, щоб відкомпілювалось коментарі тре писати от в таких лапках {comment}