Var a,b,c,D,x1,x2: longint; begin read (a, b, c); D:=sqr(b)-4*a*c; x1:= (-b + sqrt(D)) div 2 * a; x2:=(-b - sqrt(D)) div 2 * a; write(x1,' ', x2); end. Почему выдает ошибку?
Дискриминант равен квадрату коэффициента при переменной первой степени. При чем здесь "div"? В принципе поиск корней выполнен неправильно
Это только начальный курс и от меня хотят что бы использовали только "longint"
В таком случае нужно, чтобы числитель делился целочисленно на знаменатель. Для этого нужно добавлять "if", но по-моему проще x1 и x2 записать как вещественные
Циклы тоже запрещены. Прошу прощения, а вещественные-это real?
if - это не цикл. Да, real - вещественные
При написании простой функции извлечения корня программа выдает ошибку var a,b: longint; begin read (a); b:= sqrt(a); write(b); end. Program9.pas(6) : Нельзя преобразовать тип real к integer В самоучителях при введении чисел 16, 25 программа нормально считает корень. У меня же выдает ошибку сразу. Что я делаю не так? Опять же real использовать нельзя.
Все просто, при извлечении корня из целого числа, в случае с 16 и 25, получается целое число, следовательно можно использовать integer, но если при извлечении корня появляется вещественное число (1.265; 26.4 ;4.51), то перед паскалем задача преобразовать тип числа integer
в real, чего делать нельзя
Я даже ввести числа не могу. Программа не запускается и выдает ошибку.
Не ломай себе мозги =) Вычисление корней квадратного уравнения совершаются с помощью извлечения корня и деления, а эти операции присущи типу переменных rea;
Спасибо