
Ayuda con un programa de identificación de raíces de polinomios
Publicado por Juan (3 intervenciones) el 14/01/2017 08:44:02
Hola a todos:
Este es mi primer post en esta página, y si lo escribo en el lugar equivocado o algo así, agradecería que me lo dijeseis para que lo pueda corregir. El caso: he decidido escribir un pequeño programa para que me ayude con unos deberes de matemáticas que son muy repetitivos y mecánicos (la factorización de polinomios). Como la parte mas pesada de estos ejercicios es encontrar una raíz del polinomio (un número que sustitituido por x el resultado de la operación de 0. Como ese número siempre es un divisor del término independiente, el primer paso sería encontrar los divisores y luego probar con todos hasta que uno de 0). Con ese objetivo escribí este programa:
}
Por desgracia, no funciona como esperaba. Introduzco un número y solo sale una pared de 1. Seguro que alguien con mas experiencia en programación encontraría el error fácilmente, pero yo todavía soy un novato.
Por eso espero vuestras sugerencias de mejora para este programa.
Muchas gracias por adelantado.
Este es mi primer post en esta página, y si lo escribo en el lugar equivocado o algo así, agradecería que me lo dijeseis para que lo pueda corregir. El caso: he decidido escribir un pequeño programa para que me ayude con unos deberes de matemáticas que son muy repetitivos y mecánicos (la factorización de polinomios). Como la parte mas pesada de estos ejercicios es encontrar una raíz del polinomio (un número que sustitituido por x el resultado de la operación de 0. Como ese número siempre es un divisor del término independiente, el primer paso sería encontrar los divisores y luego probar con todos hasta que uno de 0). Con ese objetivo escribí este programa:
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
#include<iostream>
int Num;
int Divisores[50];
int a;
int x;
int i;
int main(){
std::cin >> Num;
for(i++; i <=Num;){
if(Num % i == 0 ){
std::cout<<(i);
Divisores[a++] = i;
Divisores[a++] = -i;
}
}
for(int b; b++; b <= i*2){
Divisores[b] = x;
if(2+x == 0){
std::cout<<("La raíz del polinomio es \n");
std::cout<<(x);
}
}
}
Por desgracia, no funciona como esperaba. Introduzco un número y solo sale una pared de 1. Seguro que alguien con mas experiencia en programación encontraría el error fácilmente, pero yo todavía soy un novato.
Por eso espero vuestras sugerencias de mejora para este programa.
Muchas gracias por adelantado.
Valora esta pregunta


0