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

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

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

> Корни квадратного уравнения
ToM SoIeR
сообщение 8.02.2006 22:00
Сообщение #1





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

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


Всем хай, помогите найти ошибку в проге для решения квадратных уравнений.


Program EX_3;
var
a,b,c:real;
x1,x2:real;
D:real;
Begin
Writeln ('Reshenie kvadratnogo uravnenie');
Writeln ('Vvedite A');
Readln (a);
Writeln ('Vvedite b');
Readln (b);
Writeln ('Vvedite c');
Readln ( c);
D:=(b*b)-4*(a*c);
if D>0 then
x1:=(-b+sqrt(D))/(2*a);
x2:=(-b-sqrt(D))/(2*a);
Writeln ('Pervyi kopenb', x1);
Writeln ('VtopoI kopenb', x2)
end.
If D=0 then
x1:=-b/2*a;
Writeln ('Odin kopenb' , x1);
end;
If D<0 then
Writeln (HET KOPNEU');
Readln
end.


blink.gif blink.gif blink.gif

В следующий раз пользуйся тегами

Сообщение отредактировано: klem4 - 8.02.2006 22:01
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 10)
klem4
сообщение 8.02.2006 22:05
Сообщение #2


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

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

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


Program EX_3;
var
a,b,c:real;
x1,x2:real;
D:real;
Begin
Writeln ('Reshenie kvadratnogo uravnenie');
Writeln ('Vvedite A');
Readln (a);
Writeln ('Vvedite b');
Readln (b);
Writeln ('Vvedite c');
Readln ( c);
D:=(b*b)-4*(a*c);
if D>0 then begin
   x1:=(-b+sqrt(D))/(2*a);
   x2:=(-b-sqrt(D))/(2*a);
   Writeln ('Pervyi kopenb', x1 :2:3);
   Writeln ('VtopoI kopenb', x2 :2:3)
end
 else
  If D=0 then begin
     x1:=-b/2*a;
     Writeln ('Odin kopenb' , x1 :2:3);
  end
   else
Writeln ('HET KOPNEU');
Readln
end.



Ошибки были в синтаксисе .. но есть и логические, что будет если ввести a=0 ? ;)

Сообщение отредактировано: klem4 - 8.02.2006 22:05


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


Ищущий истину
******

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

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


 var
   a,b,c, x1,x2, D :single;
Begin
     writeln ('Reshenie kvadratnogo uravnenie');
     write ('Vvedite A=');  Readln ( a );
     write ('Vvedite b');   Readln ( b );
     write ('Vvedite c');   Readln ( c );
     D:=sqr(b)-4*(a*c);
     if D>0 then begin {BEGIN!}
        x1:=(-b+sqrt(D))/(2*a);
        x2:=(-b-sqrt(D))/(2*a);
        Writeln ('Pervyi kopenb', x1);
        Writeln ('VtopoI kopenb', x2)
     end;
     If D=0 then begin {begin}
        x1:=-b/2*a;
        Writeln ('Odin kopenb' , x1);
     end;
     If D<0 then writeln ('HET KOPNEU');
     Readln
end.


Цитата
что будет если ввести a=0 ? ;)

Цитата
для решения квадратных уравнений.

;)


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 8.02.2006 22:11
Сообщение #4


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

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

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


Цитата
для решения квадратных уравнений.


И что дальше ? А если я случайно введу 0 ? Защиту от дурака всеравно надо делать smile.gif)

Сообщение отредактировано: klem4 - 8.02.2006 22:11


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





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

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


Спасибо. Т.к я только учусь, не могли бы вы мне помочь с учебником. Подкиньте ссылочек.
Сейчас у меня веб-версия В.В. Зелинского за 2000 г. Его легко найти в инете. Помогите найти лучше.. Т.к я работаю с Qbasic и в паскале полный 0 blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 8.02.2006 22:19
Сообщение #6


Ищущий истину
******

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

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


Цитата
Т.к я работаю с Qbasic и в паскале полный 0

А в бейсике что-то понимаешь ? Тогда не вижу проблемм ... синтаксис да и семантика похожи... (ИМХО).
Цитата
Подкиньте ссылочек.

http://pascal.dax.ru/?books
здесь есть все и даже больше.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
ToM SoIeR
сообщение 8.02.2006 22:22
Сообщение #7





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

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


Аначинать с самоучителя Фаронова ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 8.02.2006 22:23
Сообщение #8


Гость






Ребята, ну что же происходит blink.gif Кто же сравнивает НЕ целые числа с нулем? Мало обжигались на этом?

Я бы все-таки поменял структуру программы:

if D>0 then begin
  { действия по положительному D }
end
else
  if D<0 then writeln ('HET KOPNEU')
  else begin
    { действия по D = 0 }
  end;
 К началу страницы 
+ Ответить 
Altair
сообщение 8.02.2006 22:30
Сообщение #9


Ищущий истину
******

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

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


да если на то пошло, в данном случае, не важно будет там 0 или нет, просто 1 одинаковых корня получим.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 8.02.2006 22:44
Сообщение #10


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

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

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


Интересно, вот тест, до 16 знака выдает правильный результат ... а в каком случае может быть сбой ?

uses crt;
var
   e : extended;
   count : byte;

begin

   clrscr;

   e := 0.1;
   count := 0;

   while (count <= 16) do begin
      writeln(e:1:17,'  ',e<0,'  ',e=0,'  ',e>0);
      e := e / 10;
      inc(count)
   end;
   readln;
end.


Эскизы прикрепленных изображений
Прикрепленное изображение

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


Ищущий истину
******

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

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


ну обсуждали ведь это уже!!!
В прошлом году по аське ходила ведь прога, в которой после 6 итераций 0.6 - 0.1 получался НЕ ноль....


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 

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