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

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

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

> Решалка кубических уравнений, Задача-то детская, но я не понимаю что не так. Помогите, вразумите.
lizhen
сообщение 30.03.2012 22:09
Сообщение #1





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

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


Программа для вычисления корней кубического уравнения:
reshalka kubicheskyh uravneniy;
var n,y,z,f:integer;
x,k:longint;
begin
clrscr;
writeln('Vvedite koeffichyenty uravneniya chiala:n,y,z,f');
readln(n,y,z,f);
k:=0;
for x:=-1000000 to 1000000 do
if n*x*x*x+y*x*x+z*x+f=0 then
begin
k:=k+1;
writeln('x',k,'=',x);
end;
if k=0 then write('Chelyh korney net');
readln;
end.

Заранее спасибо, за потраченное на мой вопрос время.

Сообщение отредактировано: Lapp - 31.03.2012 3:34
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Krjuger
сообщение 30.03.2012 22:43
Сообщение #2


Профи
****

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

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


Ну полный перебор это конешно мощно.А теперь подумаем, что же делает ваша программа....Во первых,если она и найдет ,то она найдет только целые корни,это связано с тем что у вас цикл по х,и х принимает только целочисленные значения, даже для квадратного уравнения это ооочень малый процент от всех возможных решений,но дело ваше.
Теперь почему ваша программа не работает.
reshalka kubicheskyh uravneniy;

писать нельзя, кампилятор не поймет,но можно
program reshalka_kubicheskyh_uravneniy;
Пробелы тут тоже оставлять нельзя,а вот подчеркивания нормально.
Затем,вы делаете clrscr;, но ведь надо подключить библиотеку crt где собственно реализована эта функция. затем, у вас цикл 1000000,но простите,а вы подумали что вам в условии придется миллион умножить на миллион и еще раз на миллион, да еще и на коэффициент, это число ни в какой тип данных не влезет.... вот и получаеться,что ваше условие срабатывает всегда.
В итоге что мы имеем.

program reshalka_kubicheskyh_uravneniy;
uses crt;
var n,y,z,f:integer;
x,k:longint;
begin
clrscr;
writeln('Vvedite koeffichyenty uravneniya chiala:n,y,z,f');
readln(n,y,z,f);
k:=0;
for x:=-100 to 100 do
begin
if n*x*x*x+y*x*x+z*x+f=0 then
begin
k:=k+1;
writeln('x',k,'=',x);
end;
end;
if k=0 then write('Chelyh korney net');
readln;
end.


Что же способна сделать эта программа, из всех корней она выведет нам только целые,причем если корни одинаковые ,например уравнения вида (x-a)^3,где х=а будут все три корня, то она вывелет лишь 1 корень.Подобрать числа когда будут все 3 целых корня я не смог.
Мой вам совет,хотите сделать нормальную программу,возьмите один из методов и тут вам помогут его реализовать,если вы действительно хотите решить эту задачу.

Сообщение отредактировано: Krjuger - 30.03.2012 22:44
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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