Другие языки программирования и технологии
Ошибка 26 в Турбо Паскале
Итак, полный код программы. Компилятор Turbo Pascal 7.0, с такой противной консолью. Program quadratic_equation; uses Crt; var a, b, c, discr, x1, x2: integer; BEGIN ClrScr; writeln ('Hello world'); writeln ('Quadratic Equation Ariphmometer Very Epic'); writeln (''); writeln ('Please, enter A'); readln (a); writeln ('Please, enter B'); readln (b); writeln ('Please, enter C'); readln (c); if (b mod 2 = 0) then BEGIN discr := sqr (b /2) - (a * c); END. else BEGIN discr := sqr (b) - (4 *a *c); END. if (discr < 0) then writeln ('No equations'); if (discr = 0) then BEGIN x1 = (0 - b) / (2 * a) writeln ('Equation x1 = ',x1); END. if (discr > 0) then BEGIN x1 = ((0 - b) + sqrt(discr)) / (2 * a); x2 = ((0 - b) - sqrt(discr)) / (2 * a); writeln ('Equation x1 = ',x1); writeln ('Equation x2 = ',x2); END. readln(); END. При компиляции выдает двадцать шестую на строчке discr := sqr (b /2) - (a * c); , причем типы тут явно все приведены. Вот скажите, где я налажал???
А ничего, что у тебя после каждого енда стоит точка? Оо+ интежер может быть только а, б, с. А остальные должны быть real
элементарные ошибка. . :)
элементарные ошибка. . :)
А нечего присваивать целой переменной вещественное значение ;)
b/2 дает вещественное значение, его возведение в квадрат - опять же вещественное,
b/2 дает вещественное значение, его возведение в квадрат - опять же вещественное,
у тебя все переменные integer
По моему тип Integer для переменной discr не подойдет.
Используй функцию Trunc, она выделяет целую часть числа
discr := Trunc (sqr (b /2) - (a * c));
Используй функцию Trunc, она выделяет целую часть числа
discr := Trunc (sqr (b /2) - (a * c));
Алмазик -***
Ура, что-то сместилось. Теперь только ошибка, мол, точку с запятой забыл. Прямо на следующей строчке.
Хотя нифига такого.
Хотя нифига такого.
uses Crt;
var
a, b, c, discr, x1, x2: real;
BEGIN
ClrScr;
writeln ('Hello world');
writeln ('Quadratic Equation Ariphmometer Very Epic');
writeln ('');
writeln ('Please, enter A');
readln (a);
writeln ('Please, enter B');
readln (b);
writeln ('Please, enter C');
readln (c);
if (frac(b / 2) = 0) then
BEGIN
discr := sqr (b /2) - (a * c);
END
else
BEGIN
discr := sqr (b) - (4 *a *c);
END;
if (discr < 0) then writeln ('No equations');
if (discr = 0) then
BEGIN
x1 := (0 - b) / (2 * a);
writeln ('Equation x1 = ',x1);
END;
if (discr > 0) then
BEGIN
x1 := ((0 - b) + sqrt(discr)) / (2 * a);
x2 := ((0 - b) - sqrt(discr)) / (2 * a);
writeln ('Equation x1 = ',x1:5:5);
writeln ('Equation x2 = ',x2:5:5);
END;
readln;
END.
var
a, b, c, discr, x1, x2: real;
BEGIN
ClrScr;
writeln ('Hello world');
writeln ('Quadratic Equation Ariphmometer Very Epic');
writeln ('');
writeln ('Please, enter A');
readln (a);
writeln ('Please, enter B');
readln (b);
writeln ('Please, enter C');
readln (c);
if (frac(b / 2) = 0) then
BEGIN
discr := sqr (b /2) - (a * c);
END
else
BEGIN
discr := sqr (b) - (4 *a *c);
END;
if (discr < 0) then writeln ('No equations');
if (discr = 0) then
BEGIN
x1 := (0 - b) / (2 * a);
writeln ('Equation x1 = ',x1);
END;
if (discr > 0) then
BEGIN
x1 := ((0 - b) + sqrt(discr)) / (2 * a);
x2 := ((0 - b) - sqrt(discr)) / (2 * a);
writeln ('Equation x1 = ',x1:5:5);
writeln ('Equation x2 = ',x2:5:5);
END;
readln;
END.
Алмазик -***
Офигеть, все работает. Сейчас проверю на корректность решения, а в целом -- респектище!
Похожие вопросы
- Какую программу (Паскаль) использовать в учебных целях, чтоб была овместима с файлами от "Турбо Паскаль"? В которых
- Турбо паскаль пожалуйста укажите ошибки
- 207 ошибка (Турбо паскаль)
- вопрос по турбо паскалю
- Помогите написать 2 програмки на Турбо Паскале.
- Я в турбо паскале запис-ю текст порусски в текстовик, открываю его вне ТП, а там фигня какая-то. Что мне делать?
- Помогите решить, пожалуста (ТУрбо Паскаль)
- Турбо Паскаль
- Помогите решить задачу на Турбо паскале
- Игра в турбо паскале Киньте программу на любую игру в турбо паскале
Ведь определенного значения-то я не присваивал, так? А для интеджера все написанные операнды должны работать.