Здравствуйте)
Написал код универсального калькулятора на Free pascal,
но он выдаёт ошибку при компелировании, даже указывает строку в которой ошибка, но я там ошибки не нашёл
Если я не правильно задал вопрос, то извините, первый раз на этом форуме.
Ошибка:
new 1.pas(64,3) Fatal: Syntax error, ";" expected but "ELSE" found
new 1.pas(0) Fatal: Compilation aborted
Помогите исправить код)
program Calkulytor;
Uses crt;
var a,b,d,x1,x2,k1,k2,k3:real; i:integer;
function power(x,y:real):real;
begin
repeat
begin
textbackground(7);
clrscr;
textcolor(1);
gotoxy (21,1);
writeln ('Выберете действие:');
writeln ('1.Сложение.');
writeln ('2.Вычитание.');
writeln ('3.Деление.');
writeln ('4.Умножение.');
writeln ('5.Вычисление кв.корня.');
writeln ('6.Возведение в степень.');
writeln ('7.Решение кв.уравнения.');
writeln ('8.Выход.');
readln (i);
if (i=1) then
begin
writeln ('Введите слагаемые:');
readln (a,b);
writeln ('Сумма = ',a + b);
end
else if (i=2) then
begin
writeln ('Введите уменьшаемое и вычитаемой:');
readln (a,b);
writeln ('Разность = ',a - b);
end
else if (i=3) then
begin
writeln ('Введите делимое и делитель:');
readln (a,b);
writeln ('Частное = ',a / b);
end
else if (i=4) then
begin
writeln ('Введите множители:');
readln (a,b);
writeln ('Произведение = ',a * b);
end
else if (i=5) then
begin
writeln ('Введите подкоренное число:');
readln (a);
writeln ('Ответ = ',sqrt(a))
end
else if (i=6) then
begin
if x=0 then Power:=0
else if x>0 then Power:=exp(ln(x)*y)
else Power:=-exp(ln(abs(x))*y);
end;
begin
writeln ('Введите основание и показатель степени:');
readln (x,y);
writeln ('x^y',Power(x,y):0:3)
end
else if (i=7) then // В этой строке ошибка.
begin
writeln ('Введите коэффициенты:');
readln (k1,k2,k3);
d:= k2 * k2 - 4 * k1 * k3; //Вычисление дискриминанта
if (d<0) then writeln ('Нет решения.')
else if (d=0) then
begin
x1:= - k2 / (2 * k1);
writeln ('X = ',x1:8:3);
end
else begin
x1:= (- k2 + sqrt (d)) / (2 * k1);
x2:= (- k2 - sqrt (d)) / (2 * k1);
writeln ('X1 = ',x1:8:3,'X2 = ',x2:8:3);
end;
end
else if (i=8) then i:=0
else i:=0
writeln ('Нажмите "ENTER" для продолжения.');
readln;
end;
until i=0
textcolor(2);
writeln ('До свидания =) Автор Игорь (Лунь)');
writeln ('Версия 1.0');
writeln ('Press ENTER to exit');
readln;
end.