Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2013, 18:34   #1
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию процедуры

помогите найти ошибку....
даны вещественные a1,a2,b1,b2,c1,c2.Если все корни одного из уравнений a1x^2+b1x+c1=0,a2x^2+b2x+c2=0 больше корней другого уравнения,то выдать на экран 1,во всех остальных случаях выдать 0.
Код:
program prog108;
uses Crt;
 
{процедура вычисления квадратных уравнений y=a*x*x+b*x+c}
procedure QE(a,b,c:integer; var r1, r2:real; k:integer);
var
   d:real;
 begin
   d:=sqr(b)-4*a*c;
   if d>0 then
   begin
     k:=2;
     r1:=(-b-sqrt(d))/(2*a);
     r2:=(-b+sqrt(d))/(2*a);
     writeln(r1:4:2,' ', r2:4:2);
   end
   else
   begin
     if d=0 then
     begin
       k:=1;
       r1:=(-b)/(2*a);
       writeln(r1:4:2);
     end
     else begin
       k:=0;
       writeln('*корней нет!')
   end;
end;
writeln('количество корней:',k);
end;
 
 
 var
    a1,b1,c1,a2,b2,c2:integer;
    n11, n21,n12,n22:real;
    n1,n2:integer;
 begin
 ClrScr;
    writeln('квадратное уравнение  N1: a1*x*x+b1*x+c1=0');
    writeln('введите числа* (a1,b1,c1)<>0');
    readln(a1,b1,c1);
    writeln('корни 1-го ур.:');
    QE(a1,b1,c1,n11,n21,n1);
    writeln;
    writeln('квадратное уравнение N2: a2*x*x+b2*x+c2=0');
    writeln;
    writeln('введите числа* (a2,b2,c2)<>0');
    readln(a2,b2,c2);
    writeln('корни 2-го ур.:');
    QE(a2,b2,c2,n12,n22,n2);
    writeln;
    if (n1>0) and (n2>0) then
    begin
     if ((n11>n12) and (n11>n22) and (n21>n12) and (n21>n22)) or
     ((n12>n11) and (n12>n21) and (n22>n11) and (n22>n21)) then begin
      writeln('получаем:',1); end
     else
      writeln('получаем:',0);
    end
    else begin
    if (n1=0) or (n2=0) then begin
 
        writeln('получаем:',0)
    end;
   end;
 
    readkey; end.
fkty вне форума Ответить с цитированием
Старый 20.06.2013, 18:36   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,308
По умолчанию

Предположу procedure QE(a,b,c:integer; var r1, r2:real;var k:integer);
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 20.06.2013, 18:48   #3
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

Тоже предположу:
QE(a2,b2,c2,n12,n22,n2) возвращает совсем ничего, n2 передается по значению и поэтому n2 как было первоначально инициализировано нулем, так до конца программы нигде и не изминилось.
Smogg вне форума Ответить с цитированием
Старый 20.06.2013, 21:12   #4
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

спасибо =)

Последний раз редактировалось fkty; 20.06.2013 в 22:11.
fkty вне форума Ответить с цитированием
Старый 20.06.2013, 22:11   #5
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

но программа все равно работает не правильно,если ввести данные (1,12,36) корень (-6) и (1,-2,-3) корни (-1,3),то должно вывести 1,но выводит 0
fkty вне форума Ответить с цитированием
Старый 20.06.2013, 23:04   #6
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

Цитата:
Сообщение от Smogg Посмотреть сообщение
QE(a2,b2,c2,n12,n22,n2) возвращает совсем ничего, n2 как было первоначально инициализировано нулем, так до конца программы нигде и не измeнилось.
i.e. либо передавайте n2 по ссылке,
либо объявляйте как function и возвращайте кол-во корней, каковое присваиваете n2: n2 = QE(a2,b2,c2,n12,n22,n2);
Smogg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение имени процедуры из нутри самой процедуры RISagitov Microsoft Office Excel 8 28.09.2012 17:15
Использование имени процедуры в качестве параметра другой процедуры Alexey355 Помощь студентам 1 23.04.2011 13:59
закончить выполнение процедуры из тела другой процедуры Alaysor Общие вопросы Delphi 14 23.01.2011 05:26
Управляющие структуры, процедуры Function и процедуры Sub Natalo4ka Помощь студентам 0 17.05.2010 22:00
Запуск процедуры из процедуры с дополнением 1sal1 Общие вопросы Delphi 3 06.10.2008 21:54