Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
GHOST12
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 87
#1

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

10.12.2011, 14:20. Просмотров 1696. Ответов 10
Метки нет (Все метки)

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

Дано уравнение ax2+bx+c=0. Решить уравнение, результат вывести на экран. - C++
Здравствуйте. Завтра зачет, нужно сдать две программы на с++, как их писать у меня весьма смутное представление. Собственно задание: ...

Решить уравнение - C++
помогите решить уравнение

Решить уравнение - C++
(x^2+bx+a)(x^2+bx)=c

Решить уравнение - C++
С++ 2/(x^2+a)+4/(x^2+b)=c

Решить уравнение - C++
ПОМОГИТЕ РЕШИТЬ СРОЧНО!!! программа должна решать уравнение e^(-x^2 )=∑_(n=0)^∞▒(〖(-1)〗^n x^2n)/n! 1-x^2+x^4/2!-x^6/3!+x^8/4!-…|x|<∞

Решить уравнение на С++ - C++
(42*c-d/2+1)/(a*a-ln(b-5) )

10
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.12.2011, 14:43 #2
Cкажи сначала чему равны А, x, B, y
0
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
10.12.2011, 14:46 #3
Цитата Сообщение от programina Посмотреть сообщение
Cкажи сначала чему равны А, x, B, y
в исходном сообщении все написано:
Цитата Сообщение от GHOST12 Посмотреть сообщение
Входной файл содержит три целых числа A,B,C. По модулю не больше миллиона.
Решение ищется в целых числах из диапазона [-1000; 1000]. В принципе, можно решить простым перебором.
0
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.12.2011, 14:53 #4

Не по теме:

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


И вообще тут 5 неизвестных параметров, такое решается?О_о
0
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
10.12.2011, 15:35 #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");
}
0
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
10.12.2011, 15:37 #6
Цитата Сообщение от programina Посмотреть сообщение
И вообще тут 5 неизвестных параметров, такое решается?
A, B и C известны, они считываются из файла. Неизвестные, подлежащие определению, — это x и y.
0
programina
10.12.2011, 15:44
  #7

Не по теме:

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

0
Soup_990
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 34
16.12.2011, 01:58 #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);}
}
0
-=ЮрА=-
Заблокирован
Автор FAQ
16.12.2011, 03:26 #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;
}
1
Миниатюры
Решить уравнение A*x^2+B*y^2=C  
-=ЮрА=-
Заблокирован
Автор FAQ
16.12.2011, 09:47 #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;
}
Всё работает также!
1
Миниатюры
Решить уравнение A*x^2+B*y^2=C  
-=ЮрА=-
Заблокирован
Автор FAQ
16.12.2011, 09:54 #11
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
double A = 0, B = 0, C = 0
- очень важно вначале что-нибудь присвоить!Если этого не сделать и записать вот так
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
double A, B, C
при запуске на борльшинстве старых компиляторов
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
scanf("%lf",&A);
- scanf с ключом %lf опрокидывает программу - вот такой вот малоизвестный подводный камень
0
16.12.2011, 09:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2011, 09:54
Привет! Вот еще темы с ответами:

Решить уравнение - C++
у меня какая- то ошибка ((0.5/M_PI)*exp(x/5))+(0.2+(sin(x)*(sin(x))))/(pow(x,1.0/4)*(log(x)-0,1))-(1/fabs(sin(x))); ...

Решить уравнение - C++
Буду благодарен за помощь))

Решить уравнение - C++
Здраствуйте уважаемые программисты. Не получается решить уравнение. Дело в том что массивы мы еще не проходили, а по другому я не...

Решить нелинейное уравнение - C++
Подкинули в универе такую задачку,решить нелинейное уравнение типа: ctgx-x\4=0. С виду вроде просто,но вот как это запихнуть в...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.