Форум программистов, компьютерный форум CyberForum.ru

Решить уравнение A*x^2+B*y^2=C - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
GHOST12
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 86
10.12.2011, 14:20     Решить уравнение A*x^2+B*y^2=C #1
Помогите написать программу на С.
Написать программу, выводящую все целочисленные решения уравнения A*x^2+B*y^2=C, лежащие в диапазоне от -1000 до 1000. Решения отсортировать по возрастанию сначала по х, а потом - по y. Вариант A=B=C=0 не рассматривается. Если решений нет выводит NO. Входной файл содержит три целых числа A,B,C. По модулю не больше миллиона.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2011, 14:20     Решить уравнение A*x^2+B*y^2=C
Посмотрите здесь:

Решить уравнение C++
C++ решить уравнение
Решить уравнение C++
C++ Решить уравнение на С++
C++ Дано уравнение ax2+bx+c=0. Решить уравнение, результат вывести на экран.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.12.2011, 14:43     Решить уравнение A*x^2+B*y^2=C #2
Cкажи сначала чему равны А, x, B, y
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,390
10.12.2011, 14:46     Решить уравнение A*x^2+B*y^2=C #3
Цитата Сообщение от programina Посмотреть сообщение
Cкажи сначала чему равны А, x, B, y
в исходном сообщении все написано:
Цитата Сообщение от GHOST12 Посмотреть сообщение
Входной файл содержит три целых числа A,B,C. По модулю не больше миллиона.
Решение ищется в целых числах из диапазона [-1000; 1000]. В принципе, можно решить простым перебором.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.12.2011, 14:53     Решить уравнение A*x^2+B*y^2=C #4

Не по теме:

Цитата Сообщение от Nameless One Посмотреть сообщение
в исходном сообщении все написано
Он исправлял свое сообщение


И вообще тут 5 неизвестных параметров, такое решается?О_о
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
10.12.2011, 15:35     Решить уравнение A*x^2+B*y^2=C #5
Вы хотели сказать 2?
Для начала просто формула:
C++
1
x=sqrt( (c - b*y*y)/a )
Теперь сам код функции main:
C++
1
2
3
4
5
6
7
8
9
10
main(){
int A,B,C;
cin>>A>>B>>C;
for(x=-1000;x<1001;i++){
 float y=sqrt( float ((C - B*y*y)/A) );
 if(trunc(y)==y)
 cout<<x<<" "<<y<<endl;
}
system("pause");
}
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,390
10.12.2011, 15:37     Решить уравнение A*x^2+B*y^2=C #6
Цитата Сообщение от programina Посмотреть сообщение
И вообще тут 5 неизвестных параметров, такое решается?
A, B и C известны, они считываются из файла. Неизвестные, подлежащие определению, — это x и y.
programina
10.12.2011, 15:44
  #7

Не по теме:

ghost12, учите русский язык.

Soup_990
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 34
16.12.2011, 01:58     Решить уравнение A*x^2+B*y^2=C #8
Подскажите в чем ошибка.
Если A,B,C равны 1, 1, 64 соответственно, то при x=0, Y должен принимать значение 8 и -8, у меня выводится 0. Как правильно написать программу? срочно нужно

C
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#include <math.h>
int main(){
int A,B,C,i,x,y;
scanf("%d%d%d",&A,&B,&C);
for(x=-1000;x<1001;x++){
    float y=sqrt( float ((C - B*x*x)/A) );
    if(trunc(y)==y)
        printf("%d %d\n",x,y);}
}
-=ЮрА=-
Заблокирован
Автор FAQ
16.12.2011, 03:26     Решить уравнение A*x^2+B*y^2=C #9
Nameless One, задание предполагает что
Цитата Сообщение от Soup_990 Посмотреть сообщение
Подскажите в чем ошибка.
Если A,B,C равны 1, 1, 64 соответственно, то при x=0, Y должен принимать значение 8 и -8, у меня выводится 0. Как правильно написать программу? срочно нужно
- ну раз срочно то вот простенько
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    long xn, xk, x, nCount;
    double A, B, C, sqv, ipart;
    cout<<"Enter A : ";cin>>A;
    cout<<"Enter B : ";cin>>B;
    cout<<"Enter C : ";cin>>C;
    cout<<"Enter diapasone of solving x = [xn;xk]\n";
    cout<<"xn = ";cin>>xn;
    cout<<"xk = ";cin>>xk;
    for(x = xn, nCount = 0; x <= xk; x++)
    {   
        sqv = (C - A*pow(x,2))/B;
        if(0 <= sqv)
        {
            sqv = sqrt(sqv); 
            if(modf(sqv,&ipart) == 0)
            {
                cout<<"x = "<<x<<endl;
                cout<<"y = "<<-sqv<<endl;
                if(0 != sqv)
                    cout<<"y = "<<sqv<<endl;
                nCount++;
            }
        }
    }
    if(nCount == 0)
        cout<<"No integer solving found\n";
    system("pause");
    return 0;
}
Миниатюры
Решить уравнение A*x^2+B*y^2=C  
-=ЮрА=-
Заблокирован
Автор FAQ
16.12.2011, 09:47     Решить уравнение A*x^2+B*y^2=C #10
Цитата Сообщение от Soup_990
Благодарю) А можешь на Си перевести?
- без проблем
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
int main()
{
    long xn, xk, x, nCount;
    double A = 0, B = 0, C = 0, sqv, ipart;
    printf("Enter A : ");scanf("%lf",&A);
    printf("Enter B : ");scanf("%lf",&B);
    printf("Enter C : ");scanf("%lf",&C);
    printf("Enter diapasone of solving x = [xn;xk]\n");
    printf("xn = ");scanf("%u",&xn);
    printf("xk = ");scanf("%u",&xk);
    for(x = xn, nCount = 0; x <= xk; x++)
    {   
        sqv = (C - A*pow(x,2))/B;
        if(0 <= sqv)
        {
            sqv = sqrt(sqv); 
            if(modf(sqv,&ipart) == 0)
            {
                printf("x = %lf\n",x);
                printf("y = %lf\n",-sqv);
                if(0 != sqv)
                    printf("y = %lf\n",sqv);
                nCount++;
            }
        }
    }
    if(nCount == 0)
        printf("No integer solving found\n");
    printf("Press any key to continue\n");
    getch();
    return 0;
}
Всё работает также!
Миниатюры
Решить уравнение A*x^2+B*y^2=C  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2011, 09:54     Решить уравнение A*x^2+B*y^2=C
Еще ссылки по теме:

Решить уравнение C++
C++ Решить уравнение
Решить уравнение C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
16.12.2011, 09:54     Решить уравнение A*x^2+B*y^2=C #11
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
double A = 0, B = 0, C = 0
- очень важно вначале что-нибудь присвоить!Если этого не сделать и записать вот так
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
double A, B, C
при запуске на борльшинстве старых компиляторов
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
scanf("%lf",&A);
- scanf с ключом %lf опрокидывает программу - вот такой вот малоизвестный подводный камень
Yandex
Объявления
16.12.2011, 09:54     Решить уравнение A*x^2+B*y^2=C
Ответ Создать тему
Опции темы

Текущее время: 17:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru