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

 



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