IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Нахождение корней, квадратного уравнения
SlimShady
сообщение 11.05.2005 17:42
Сообщение #1





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Составить программу вычисления корней квадратного уравнения вида a x 2 + b x + c = 0

Последовательность действий:
1. Описать переменные a, b, c, d, x1,x2 как REAL.
2. Задать с клавиатуры коэффициенты a, b, c.
3. Вычислить значение дискриминанта d = b 2 – 4 a c
4. Вывести значение дискриминанта на экран
5. Проверить значение дискриминанта:
• Если дискриминант меньше нуля, то нет решения
• Если дискриминант больше или равен нулю, то вычислить
значения x1 и x2

как вычислить значение x1 и x2????????
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 11.05.2005 17:55
Сообщение #2


Гость






По формулам:
Цитата
X1 = (-b + sqrt(D)) / (2*A)
X2 = (-b - sqrt(D)) / (2*A)
 К началу страницы 
+ Ответить 
SlimShady
сообщение 11.05.2005 19:16
Сообщение #3





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +



Program yravnenie;
uses crt;
var a,b,c,d,X1,X2:integer;
Begin
ClrScr;
WriteLn('Введите первое число');
readLn(a);
WriteLn('Введите второе число');
readLn(В);
WriteLn('Введите третье число');
readLn(С);
d:=(b*2)-(4*a*c);
writeln('Итого ',d,'');
if d<0 then writeln('Нет решений')
Else 
 begin  X1 = (-b + sqrt(D)) / (2*A)
           X2 = (-b - sqrt(D)) / (2*A)
Writeln('Первый корень -',X1,'   Второй корень ',X2,'');
end;
readln;
repeat until keypressed;
end.



Где ошибка???
Пишет:
Error 26: Type mismatch.

Сообщение отредактировано: SlimShady - 11.05.2005 19:18
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 11.05.2005 19:21
Сообщение #4


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


ошибки в синтаксисе.

var
   a,b,c,d{,x1,x2}:extended;

Begin
   write('a=');readln(a);
   write('b=');readln(b);
   write('c=');readln( c );

   d:=sqr(b)-4*a*c;

   if d<0 then
    writeln('Reshenii net')
     else
      if d=0 then
       writeln('x=',-b/(2*a):2 :3)
        else
         begin
            writeln('x1=',(-b+sqrt(d))/(2*a):2 :3);{x1:=(-b+sqrt(d))/(2*a)}
            writeln('x2=',(-b-sqrt(d))/(2*a):2 :3);{x2:=(-b-sqrt(d))/(2*a)}
         end;
    readln;
end.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Romtek
сообщение 11.05.2005 19:22
Сообщение #5


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


X1, X2 - действительные числа! (Real)

Цитата
Последовательность действий:
1. Описать переменные a, b, c, d, x1,x2 как REAL.
smile.gif

Сообщение отредактировано: Romtek - 11.05.2005 19:24


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Romtek
сообщение 11.05.2005 19:33
Сообщение #6


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


Program yravnenie;
uses crt;
var a,b,c,d,X1,X2:integer;
Begin
ClrScr;
WriteLn('Введите первое число');
readLn(a);
WriteLn('Введите второе число');
readLn(В);
WriteLn('Введите третье число');
readLn(С);
d:=(b*2)-(4*a*c);    { <--   b*2 <> b^2 !! }
writeln('Итого ',d,'');
if d<0 then writeln('Нет решений')
Else 
 begin  X1 = (-b + sqrt(D)) / (2*A)   { не соответствует синтаксису Паскаля. Проверь что нужно добавить  }
           X2 = (-b - sqrt(D)) / (2*A) { а где оператор окончания блока ??  Ты думал, что можно просто вставить, и оно заработает ?! }
Writeln('Первый корень -',X1,'   Второй корень ',X2,'');
end;
readln;
repeat until keypressed; { Это не нужно писать, если ты прежде ожидаешь ввода }
end.


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 11.05.2005 20:06
Сообщение #7


Гость






SlimShady, плюс к этому (чтобы избежать неприятностей с "делением на 0") проверяй, не равняется ли A нулю...
 К началу страницы 
+ Ответить 
SlimShady
сообщение 11.05.2005 21:29
Сообщение #8





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +



Program yravnenie;
uses crt;
var a,b,c,d,X1,X2:real;
Begin
ClrScr;
WriteLn('Введите первое число');
readLn(a);
WriteLn('Введите второе число');
readLn(В);
WriteLn('Введите третье число');
readLn(С);
d:=sqr(В)-4*a*c;
 if d<0 then
   writeln('Решения нет')
    else
     if d=0 then
      writeln('Дискриминант равен ',-b/(2*a):2 :3)
       else
        begin
           writeln('Первый корень уравнения равен ',(-b+sqrt(d))/(2*a):2 :3);
           writeln('Второй корень уравнения равен ',(-b-sqrt(d))/(2*a):2 :3);
        end;
   readln;
end.



Сделал так.....вроде работает....
Как сделать так что-бы даже если дискриминант равен нулю, подсчитывался результат.....

Сообщение отредактировано: volvo - 23.11.2010 10:33
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 11.05.2005 21:54
Сообщение #9


Гость






SlimShady, ошибочка у тебя:
if d=0 then
  writeln('Дискриминант равен ',-b/(2*a):2 :3) { <--- Не дискриминант, а уже корень. Дискриминант у тебя равен 0... }
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 29.07.2025 14:17
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"