Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.12.2010, 21:55
razh2009 razh2009 вне форума
Прохожий
 
Регистрация: 04.12.2010
Сообщения: 20
Репутация: 10
Вопрос Биквадратные уравнения

Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var
  a,b,c,x1,x2,x3,x4,t1,d,t2: real;
  m:array[1..4]of Real;
  i,j,kol:Integer;
Begin
  Reset(Input,'bisqr.in');
  Rewrite(Output,'bisqr.out');
   read(a);
   read(b);
   read(c);
   for i:=1 to 4 do m[i]:=999999;

  d:=b*b-4*a*c;
  if d >= 0 then
    begin
      t1:=(-b+sqrt(d))/(2*a);
      t2:=(-b-sqrt(d))/(2*a);
      if t1 >= 0 then
        begin
          x1:=sqrt(t1); x2:=-x1;
          m[1]:=x1;m[2]:=x2;
        end
      else begin m[1]:=999999; m[2]:=999999 end;
      if t2 >= 0 then
        begin
          x3:=sqrt(t2); x4:=-x3;
          m[3]:=x3; m[4]:=x4;
        end
      else begin m[3]:=999999;m[4]:=999999;end;
    end
  else m[1]:=999999;
  kol:=0;
  for i:=1 to 4 do begin
    if m[i]<>999999 then kol:=kol+1;
  end;
  Writeln(kol);
  for i:=1 to 4 do begin
    if m[i]<>999999 then Writeln(m[i]:0:6);
  end;
  closefile(output);
End.
помогите пожалуйста почему программа не правильная?
Ответить с цитированием
  #2  
Старый 04.12.2010, 22:13
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Не знаю что там дальше, смотреть как-то перехотелось после просмотра первых 2 строчек...
Код:
// так нельзя!
//  Reset(Input,'bisqr.in');
//  Rewrite(Output,'bisqr.out');
  AssignFile(Input, 'bisqr.in');
{$I-}
  Reset(Input);
  if(if IOResult <> 0) then
    ReWrite(Input);
{$I+}
...
__________________
Помогаю за Спасибо
Ответить с цитированием
  #3  
Старый 04.12.2010, 22:45
razh2009 razh2009 вне форума
Прохожий
 
Регистрация: 04.12.2010
Сообщения: 20
Репутация: 10
По умолчанию

ну это нам не слишком важно.....это уже мелочи.....тут дальше гдето есть ошибка=(
Ответить с цитированием
  #4  
Старый 05.12.2010, 01:05
Аватар для SerginhoLD
SerginhoLD SerginhoLD вне форума
Новичок
 
Регистрация: 19.11.2009
Сообщения: 73
Репутация: 12
По умолчанию

че такое m[]:=999999 и зачем это надо? о_О
__________________
знаете почему внизу эскалатора бабка в будке сидит?
она там педальки крутит и лесенка едет!
Ответить с цитированием
  #5  
Старый 05.12.2010, 01:11
razh2009 razh2009 вне форума
Прохожий
 
Регистрация: 04.12.2010
Сообщения: 20
Репутация: 10
По умолчанию

у нас не всегда есть все 4 корня....ну и так как мы предположили что корня 999999 нет, то будем пользоваться этим числом для проверки наличия корня....
да,это глупо, но я подругому не умею=(
Ответить с цитированием
  #6  
Старый 05.12.2010, 01:18
Аватар для SerginhoLD
SerginhoLD SerginhoLD вне форума
Новичок
 
Регистрация: 19.11.2009
Сообщения: 73
Репутация: 12
По умолчанию

а почему нельзя просто найти корни квадратного уравнения, и после проверить, если корни больше нуля, то еще раз корни и вывести их на экран, если меньше, вывести "ах он гад какой, не решается"
зачем столько лишнего кода?
__________________
знаете почему внизу эскалатора бабка в будке сидит?
она там педальки крутит и лесенка едет!

Последний раз редактировалось SerginhoLD, 05.12.2010 в 01:20.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:45.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter