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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2010, 20:59   #11
L_M
Форумчанин Подтвердите свой е-майл
 
Регистрация: 25.02.2008
Сообщений: 289
По умолчанию

Код:
Program Sq2;
Var A, B, C, D, X, X1, X2 : Real;
Begin
Writeln ('Введите коэффициенты уравнения (A, B, C, D) ');
readln(a,b,c,d);
c:=c-d;
If A=0 Then
writeLn('x=',-c/b)
else
If (B=0)and(C=0) Then Writeln('X - любое число')
Else Writeln('Корней нет! ')
Else 
Begin 
X:=-C/B; 
Writeln('X=',X:8:3); 
End
Else
Begin
D:=B*B-4*A*C;
If D<0 Then Writeln ('Корней нет! ')
Else
Begin
X1:=(-B+SQRT(D))/2/A;
X2:=(-B-SQRT(D))/2/A;
Writeln ('X1=', X1:8:3, ' X2=',X2:8:3);
End;
End;
End.
Вот так?
Упс...
L_M вне форума Ответить с цитированием
Старый 16.02.2010, 21:11   #12
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

вот код под требования твоего преподавателя
Код:
Program zad1;
Var a,b,c,d,x,x1,x2:real;
Begin
Writeln('Введите A,B,C');
readln(a,b,c);
If a=0 Then
begin
x:=-c/b;
writeln('x=',x:8:3);
Halt;
end
else
d:=sqr(b)-(4*a*c);
if d<0 then
writeln('нет решения')
else
begin
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
writeln('x1=',x1:8:3);
writeln('x2=',x2:8:3);
end;
End.
L_M
Код:
X1:=(-B+SQRT(D))/2/A;
X2:=(-B-SQRT(D))/2/A;
?
Базиля вне форума Ответить с цитированием
Старый 16.02.2010, 22:58   #13
kykyseno4ek
Пользователь
 
Регистрация: 14.02.2010
Сообщений: 11
По умолчанию

L_M, Базиля
Спасибо большое))Выручили блондинку я тут голову ломала как изменить прогу)))
kykyseno4ek вне форума Ответить с цитированием
Старый 26.09.2010, 15:36   #14
Max</C/>im
 
Регистрация: 26.09.2010
Сообщений: 3
По умолчанию

Помогите с задачей:нахождение корней квадратного уравнения с помощью case и без if и goto.Заранее благодарен.
Max</C/>im вне форума Ответить с цитированием
Старый 26.09.2010, 17:11   #15
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Вообще-то насколько я помню одна тема - один вопрос, да и от одного пользователя. Ну да ладно. Решение моё я бы назвал некрасивым, но держи что придумал.

Код:
uses crt;
var a,b,c,d,x1,x2: real;
         ch: char;
         i:integer;
      s1,s2: string;
begin
clrscr;
writeln('vvedite a,b,c');
read(a,b,c);
d:=sqr(b)-(4*a*c);
str(d,s1);
s2:=copy(s1,1,1);
ch:=s2[1];
i:=round(d);
case i of
0: begin
     x1:=-b/(2*a);
     writeln('x1= ',x1:0:4);
     readln;
   end;
else begin
        case ch of
        '-': begin writeln('kornei net'); readln; end;
        else begin
	        x1:=(-b+sqrt(d))/(2*a);
	        x2:=(-b-sqrt(d))/(2*a);
	        writeln('x1= ',x1:0:4);
	        writeln('x2= ',x2:0:4);
                readln;
             end;
        end;
     end;
end;

readln;
end.
Идея такая, если не понятно; сначала проверяем дескриминант на ноль - равен считаем. Если нет то проверяем не равен ли первый символ дескриминанта минусу - если равен корней нет, иначе получаем что дискр. больше нуля и считаем.

А я пошёл спать поздно уже у нас...
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Старый 26.09.2010, 17:46   #16
Max</C/>im
 
Регистрация: 26.09.2010
Сообщений: 3
По умолчанию

Niro спс а без строк никак нельзя проще?
Max</C/>im вне форума Ответить с цитированием
Старый 26.09.2010, 18:05   #17
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Бред, но вот:
Код:
var
   a, b, c, d: real;
begin
   readln(a,b,c);
   d := sqr(b)-4*a*c;
   case d>0 of
     true:
     begin
        writeln((-b+sqrt(d))/(2*a));
        writeln((-b-sqrt(d))/(2*a));
     end;
     false:
       case d<0 of
          true: writeln('корней нет');
          false: writeln(-b/(2*a));
       end;
   end;
end.
pushl $0x18E3DF6B
call ICQ

Последний раз редактировалось russian-stalker; 27.09.2010 в 07:22.
russian-stalker вне форума Ответить с цитированием
Старый 28.10.2010, 14:42   #18
TaH9l
Новичок
Джуниор
 
Регистрация: 28.10.2010
Сообщений: 1
По умолчанию

Помогите пожалуйста сделать задачу я уже не могу мозг кипит.

Написать и выполнить отладку программы, решающую квадратное уравнение вида . Пользователь должен получить на экране найденные программой корни уравнения, введя коэффициент a, b, c. Ели корень уравнения один, или же уравнение не имеет корней, то должны быть выведены соответствующие сообщения
TaH9l вне форума Ответить с цитированием
Старый 25.08.2011, 20:19   #19
KichNak
Новичок
Джуниор
 
Регистрация: 25.08.2011
Сообщений: 2
По умолчанию нашел ошибочку

нашел ошибку входе забыл добавить переменную result, а так все работает
Код:
program Untitled;
uses crt;
var
   a,b,c,d:integer;
   x,xx:real;
   result:real;
function lin(b,c:integer):real;
begin
     result:=((-1)*c)/b;
end;
function des(a,b,c:integer):integer;
begin
     result:=(b*b)-(4*a*c);
end;
procedure resh(a,b,c,d:integer;var x,xx:real);
begin
  x:=(((-1)*b)+sqrt(d))/2*a;
  xx:=(((-1)*b)-sqrt(d))/2*a;
end;
begin
  writeln('Enter coeffisents');
  readln (a, b, c);
  if a<>0 then
     begin
       d:=des(a,b,c);
       if d<0 then
          begin
               writeln('No operations');
          end
          else
          begin
               resh(a,b,c,d,x,xx);
               writeln('X1= ',x, ' X2= ',xx);
          end;
     end
     else
     begin
         x:=lin(b,c);
         writeln('X= ',x);
     end;
    readkey;
end.
KichNak вне форума Ответить с цитированием
Старый 25.08.2011, 20:36   #20
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
нашел ошибку входе забыл добавить переменную result, а так все работает
Вы КАТЕГОРИЧЕСКИ не правы.
Ошибка в коде действительно есть.

Только устранили Вы её криво!

Приведённый Вами код написан (явно ошибочно!)
под старшие версии Паскаля (например, ObjectPascal (так же известный как Delphi))
Там переменная result означает значение функции.

Если тот же код переписать для старого классического TurboPascal, то это будет выглядеть так:
Код:
program Untitled;
uses crt;
var
   a,b,c,d:integer;
   x,xx:real;
function lin(b,c:integer):real;
begin
     lin:=((-1)*c)/b;
end;
function des(a,b,c:integer):integer;
begin
     des:=(b*b)-(4*a*c);
end;
procedure resh(a,b,c,d:integer;var x,xx:real);
begin
  x:=(((-1)*b)+sqrt(d))/2*a;
  xx:=(((-1)*b)-sqrt(d))/2*a;
end;
begin
  writeln('Enter coeffisents');
  readln (a, b, c);
  if a<>0 then
     begin
       d:=des(a,b,c);
       if d<0 then
          begin
               writeln('No operations');
          end
          else
          begin
               resh(a,b,c,d,x,xx);
               writeln('X1= ',x, ' X2= ',xx);
          end;
     end
     else
     begin
         x:=lin(b,c);
         writeln('X= ',x);
     end;
    readkey;
end.

p.s. с самим алгоритмом, который воплощён в данном коде, я не разбирался - лень..

p.s. зачем поднимать некротемы, я тоже не понимаю...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
корни квадратного уравнения, пример Alexxx92 Помощь студентам 5 18.02.2009 23:37
Вычисления корней квадратного уравнения Наталья111 Общие вопросы Delphi 4 25.12.2008 11:06
решение Квадратного уравнения методом Виета Claster Помощь студентам 3 16.09.2008 20:18
Решение квадратного уравнения Stiv Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 30.11.2007 15:15
корни квадратного уравнения InseR Общие вопросы Delphi 12 01.06.2007 17:30