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

Даны натуральные числа N, A1, …, AN. Найти те члены Ai , которые обладают тем свойством, что корни уравнения x2 + Aix – 5 действительны и положительны - C++

Восстановить пароль Регистрация
 
Ramp8
0 / 0 / 0
Регистрация: 19.11.2010
Сообщений: 3
19.11.2010, 21:01     Даны натуральные числа N, A1, …, AN. Найти те члены Ai , которые обладают тем свойством, что корни уравнения x2 + Aix – 5 действительны и положительны #1
Даны натуральные числа N, A1, …, AN. Найти те члены Ai , которые обладают тем свойством, что корни уравнения x2 + Aix – 5 действительны и положительны. Помогите решить задачу плз. Решить надо на С++.

Квадратное уравнение, с применением массива и циклом for вроде так.

Добавлено через 1 час 20 минут
задача в принципе не сложная написать то половину могу только не понятные ошибки с массивом выходят.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2010, 21:01     Даны натуральные числа N, A1, …, AN. Найти те члены Ai , которые обладают тем свойством, что корни уравнения x2 + Aix – 5 действительны и положительны
Посмотрите здесь:

Эти непонятные массивы..Даны натуральные числа x1,y1,r1...xn,yn,rn, которые задают последовательность окружностей... C++
корни уравнения действительны и положительны C++
C++ Даны натуральные числа N, K, L (K<L). Вывести на экран все делители числа N, которые меньше K или больше L
Даны натуральные числа N и M(N > M).Найти сумму М последних цифр числа N. C++
C++ Даны натуральные числа от 1 до 50. Найти сумму тех из них, которые делятся на 5 или на 7
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
19.11.2010, 21:46     Даны натуральные числа N, A1, …, AN. Найти те члены Ai , которые обладают тем свойством, что корни уравнения x2 + Aix – 5 действительны и положительны #2
Пишите, выкладывайте - поможем, исправим.
Ramp8
0 / 0 / 0
Регистрация: 19.11.2010
Сообщений: 3
21.11.2010, 23:44  [ТС]     Даны натуральные числа N, A1, …, AN. Найти те члены Ai , которые обладают тем свойством, что корни уравнения x2 + Aix – 5 действительны и положительны #3
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <conio.h>
#include <iostream>
#include <stdio.h>
#include <math.h>
const int N=10;
main()
{   
    double D, a=1, c=-5, x1, x2;
    float A[N];
    int i;
  /* Вывод подсказки */ 
  printf("kvadratnoe uravnenie\n");
  printf("x^2 + A[N]x - 5 = 0\n");
  for ( i = 0; i < N; i ++ )
  {
  printf("Vvedite A[%d] : ", i);
  scanf("%f", &A[i]);
  }
  /* Расчёт дискриминанта */
  for ( i = 0; i < N; i ++ )
  {
  D = A[i]*A[i] - 4*a*c;
  printf("D[%d] : %f\n", i, D);
  }
  /* Расчёт корней 
     и их вывод на экран */
  if (D > 0)       // Положительный дискриминант
  {
   for ( i = 0; i < N; i ++)
   {
    x1 = -A[i]+sqrt(D) / (2*a); // sqrt(D) - это 
    x2 = -A[i]-sqrt(D) / (2*a); // квадратный корень из D
                             // (функция из math.h)
    if (x1>0 && x2>0)
    {
        printf("2 kornia[%d]: %f i %f\n", i, x1, x2);
    }
}
   
  }
  else 
  if (D == 0) // Нулевой дискриминант
  { 
    for ( i = 0; i < N; i ++ )
    {
    x1 = -A[i] / (2*a);
    printf("1 k[%d]: %f", i, x1);
    }
  }
  else             // Отрицательный дискриминант
  {
    printf("kornei net");
  }
  
  printf("\n");
  getch();
          
}
помогите исправить ошибки
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
22.11.2010, 02:55     Даны натуральные числа N, A1, …, AN. Найти те члены Ai , которые обладают тем свойством, что корни уравнения x2 + Aix – 5 действительны и положительны #4
В коде у вас была пара логических и арифметических ошибок - это я поправил.

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <conio.h>
#include <iostream>
#include <stdio.h>
#include <math.h>
 
const int N = 10;
 
int main()
{
    double D[N], a = 1, c = -5, x1, x2;
    double A[N];
    int i;
  
    /* Вывод подсказки */ 
    printf("kvadratnoe uravnenie\n");
    printf("x^2 + A[N]x - 5 = 0\n");
    
    for (i = 0; i < N; i++)
    {
        printf("Vvedite A[%d] : ", i);
        scanf("%lf", &A[i]);
    }
  
    /* Расчёт дискриминанта */
    for (i = 0; i < N; i++)
    {
        D[i] = A[i] * A[i] - 4 * a * c;
        printf("D[%d] : %f\n", i, D[i]);
    }
    
    for (i = 0; i < N; i++)
    {
        /* Расчёт корней и их вывод на экран */
        if (D[i] > 0) // Положительный дискриминант
        {
            x1 = (-A[i] + sqrt(D[i])) / (2 * a); // sqrt(D) - это 
            x2 = (-A[i] - sqrt(D[i])) / (2 * a); // квадратный корень из D
                                 // (функция из math.h)
            if (x1 > 0 && x2 > 0)
                printf("2 kornia[%d]: %f i %f\n", i, x1, x2);
        }
        else
        {
            if (D[i] == 0) // Нулевой дискриминант
            {
                x1 = -A[i] / (2 * a);
                printf("1 k[%d]: %f", i, x1);
            }
            else // Отрицательный дискриминант
                printf("kornei net");
        }
    }
 
    printf("\n");
 
    getch();
    return 0;
}
Но проблема в другом - в самом задании. А именно в следующем: дискриминант нашего уравнения D = (-b) * (-b) - 4 * a * c = / поскольку a и c нам известны и равны соответственно 1 и -5, то / = b^2 + 20
В таком случае корни нашего уравнения равны x1 = (-b - sqrt(D)) / (2 * a) и x2 = (-b + sqrt(D)) / (2 * a)
По условию они должны быть положительны. Нетрудно догадаться, что второй из них положителен всегда, т.е. при любом b (ведь sqrt(b^2 + 20) заведомо больше b, а, значит, их разность положительна). Осталось доказать, что второй корень тоже может быть положителен. Для этого достаточно, чтобы числитель его был положителен, т.е. чтобы -b - sqrt(b^2 + 20) > 0. Это иррациональное неравенство, и, чтобы его решить, достаточно решить простую систему неравенств:

http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{cases}  & {b}^{2} + 20 \geq 0, \\  & -b > 0, \\   & {b}^{2} + 20 < {b}^{2} \end{cases}

Казалось бы, всё хорошо. Первое неравенство (после преобразования к виду b^2 >= -20), очевидно, имеет бесконечное множество решений. Второе (b < 0) - говорит само за себя - b должно быть меньше нуля. А вот третье... В обеих частях неравенства имеем право уничтожить b^2. Но тогда получим 20 < 0, что бессмысленно, т.е. решений не имеет. А, следовательно, решений не имеет и вся система, т.е. ни при каком b второй корень исходного уравнения положительным быть не может.

Извиняюсь, если что, неравенства (а, тем более, их системы) последний раз решал года три назад, может, какую важную вещь попутал и решения есть... Но пока так.
Trupik
Сообщений: n/a
09.01.2011, 22:15     Даны натуральные числа N, A1, …, AN. Найти те члены Ai , которые обладают тем свойством, что корни уравнения x2 + Aix – 5 действительны и положительны #5
добрый всем вечер извеняюсь если не по теме, просто у меня тоже такая же задача, правда на паскале, но это не имеет значения. Или я уже заучился или никак не могу отойти от новогодних праздников, но буду очень признателен если сможете мне обяснить в чем суть этого задания, как видно из условия первая часть задачи заключаеться в нахождении корней уравнения, но вот я никак не могу понять что значит "найти те члены которые обладают тем свойством что и корни уравнения...", простите ещё раз за вопрос не потеме
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
09.01.2011, 22:23     Даны натуральные числа N, A1, …, AN. Найти те члены Ai , которые обладают тем свойством, что корни уравнения x2 + Aix – 5 действительны и положительны #6
Trupik, нет, из задачи видно, что надо найти те элементы заданного массива, при которых корни уравнения с коэффициентами при первой степени, равными этим элементам, действительны и положительны. Например дан массив [1, -5, 2, -7, 3, -1, 9]. Надо подставлять последовательно эти элементы в уравнения, чтобы получать x^2 + x - 5, x^2 - 5x + 5, x^2 + 2x + 5 и т.д., находить корни этого уравнения и смотреть, положительны ли они. Только вот в своём посте номер 4 я показал, что задание бессмысленно, и пока моё доказательство никто не опроверг)))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2011, 23:46     Даны натуральные числа N, A1, …, AN. Найти те члены Ai , которые обладают тем свойством, что корни уравнения x2 + Aix – 5 действительны и положительны
Еще ссылки по теме:

Найти все натуральные числа, не превосходящие числа n, которые можно представить в виде суммы слагаемых C++

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

Или воспользуйтесь поиском по форуму:
Persk
Модератор
 Аватар для Persk
7312 / 3042 / 176
Регистрация: 25.10.2010
Сообщений: 12,242
11.01.2011, 23:46     Даны натуральные числа N, A1, …, AN. Найти те члены Ai , которые обладают тем свойством, что корни уравнения x2 + Aix – 5 действительны и положительны #7
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
37
38
39
40
41
42
//Программа решения квадратного уравнения
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
float a,b,c,diz,x1,x2;
printf("\nVvedite chisla\n");
scanf ("%f", &a);
scanf ("%f", &b);
scanf ("%f", &c);
diz = pow(b,2)-4*a*c;
if(a==0 && b==0 && c==0)
printf ("x = luboe chislo");
else
if(a==0 && b==0 && c!=0)
printf ("Reshyenij net");
else
if(a==0 && b!=0 && c!=0)
{
x1 = - c/b;
printf ("x=%f",x1);
}
else
if(a!=0 && diz>0)
{
x1 = (-b+sqrt(diz))/(2*a);
x2 = (-b-sqrt(diz))/(2*a);
printf ("x1=%.2f, x2=%.2f", x1,x2);
printf ("\ndiskremenant=%f", diz);
}
else
if(a!=0 && diz==0)
{
x1=-b/2*a;
printf("x=%f", x1);
}
else
printf ("Reshyenij net");
return 0;
getch();
}
Yandex
Объявления
11.01.2011, 23:46     Даны натуральные числа N, A1, …, AN. Найти те члены Ai , которые обладают тем свойством, что корни уравнения x2 + Aix – 5 действительны и положительны
Ответ Создать тему
Опции темы

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