Autor
|
Tema: no tiene sentido este simple código. (Leído 8,030 veces)
|
AprendiendoAProgramar
Desconectado
Mensajes: 9
|
Esto no tiene sentido, se supone que debería dar el cuadrado de el numero pero siempre bota el numero -1. Ejemplo: 5^2 = 24. .____. .-. Por favor, ¿qué pasó? D: Soy nuub en esto. no sé si será mi pc o que pasará. #include <iostream> #include <windows.h> #include <cmath> using namespace std; int Cuadrado(int); int main(){ int Numero; cout<<" Ingrese Numero "<<endl; cin>>Numero; cout<<"El cuadrado del numero es: "<<Cuadrado(Numero)<<endl; system("pause"); return 0; } int Cuadrado(int a){ a = pow(a,2); return a; }
· No se debe escribir en mayúsculas >aquí las reglas del foro -Engel Lex
|
|
« Última modificación: 27 Enero 2017, 03:50 am por AprendiendoAProgramar »
|
En línea
|
APENAS EMPIEZO CON ESTO DE LA PROGRAMACIÓN Y CUANDO APARECEN ERRORES ES ALGO COMO........ (ES SOLO HUMOR)
|
|
|
engel lex
|
el código está bueno, a mi (quetandole windows.h y system porque ando en linux) me funciona perfecto
como lo estás ejecutando?
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
AprendiendoAProgramar
Desconectado
Mensajes: 9
|
|
|
|
En línea
|
APENAS EMPIEZO CON ESTO DE LA PROGRAMACIÓN Y CUANDO APARECEN ERRORES ES ALGO COMO........ (ES SOLO HUMOR)
|
|
|
engel lex
|
ya... es un lio de precisión de coma flotante... https://es.wikipedia.org/wiki/Coma_flotantelos nuevos no se deberían dar con estos problemas pero eres desafortunado qué pasa? pow retorna un valor tipo double, pero por el asunto de la precisión en números de coma flotante, cuando haces pow(5,2) retorna 24.999999999 que a efectos de incluso otras cuentas matemáticas es 25.... pero cuando lo conviertes a int, el solo toma la parte entera y descarta los decimales, quedando en 24 http://www.cplusplus.com/reference/cmath/pow/
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
lgamerm
Desconectado
Mensajes: 4
|
Esto no tiene sentido, se supone que debería dar el cuadrado de el numero pero siempre bota el numero -1. Ejemplo: 5^2 = 24. .____. .-. Por favor, ¿qué pasó? D: Soy nuub en esto. no sé si será mi pc o que pasará. #include <iostream> #include <windows.h> #include <cmath> using namespace std; int Cuadrado(int); int main(){ int Numero; cout<<" INGRESE NUMERO "<<endl; cin>>Numero; cout<<"El cuadrado del numero es: "<<Cuadrado(Numero)<<endl; system("pause"); return 0; } int Cuadrado(int a){ a = pow(a,2); return a; }
· No se debe escribir en mayúsculas >aquí las reglas del foro -Engel Lex cambia esto: a = pow(a,2); por esto: a *= a;
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Es muy raro. Tanto 5 como 25 tiene una cantidad muy baja de bits como para que se pierda información.
|
|
|
En línea
|
|
|
|
do-while
Desconectado
Mensajes: 1.276
¿Habra que sacarla de paseo?
|
Es muy raro. Tanto 5 como 25 tiene una cantidad muy baja de bits como para que se pierda información.
Nunca me he preocupado de los temas técnicos de los compiladores, pero puede que sea alguna particularidad del compilador que esté usando. Me acuerdo que cuando empecé a programar descubrí que distintos compiladores alineaban de forma distinta los campos de los structs (Borland y Mingw). Puede ser eso.
|
|
|
En línea
|
- Doctor, confundo los números y los colores. - Vaya marrón. - ¿Marrón? ¡Por el culo te la hinco!
|
|
|
engel lex
|
Es muy raro. Tanto 5 como 25 tiene una cantidad muy baja de bits como para que se pierda información.
ellos la tendran... pero los float no... aquí un visualizador https://float-visualizer.surge.sh/5 = 01000000101000000000000000000000 25 = 01000001110010000000000000000000 mira la perdida de precisión tu mismo cuanto da 25? en hecho, es más preciso 510423550381407695195061911147652317184 que 25 XD (por la mantissa)
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Prueba el siguiente programa: #include <stdio.h> void bits(double n) { for(int b = sizeof(double) * 8 - 1; b >= 0 ; --b) { printf("%lu", *(long unsigned*)&n >> b & 1); } } int main() { bits(0.1); bits(5); bits(25); }
Como puedes ver no hay pérdida de precisión. En cambio si la hay en 0.1, que pasado a binario IEEE754: 0011111110111001100110011001100110011001100110011001100110011010 Como se puede ver hay una periodicidad que tiende a infinito.
|
|
|
En línea
|
|
|
|
AprendiendoAProgramar
Desconectado
Mensajes: 9
|
Primero que todo muchas gracias por la ayuda. ¿ Pero entonces el problema es mi compilador ? Y si es así. ¿ que tengo que hacer para que no suceda eso? recién aprendo a programar y no quiero meterme en problemas tan técnicos como estos pero que al fin y al cabo influyen de manera importante al compilar un programa, si fuera un trabajo y me salieran estos errores no sabría corregirlos de manera correcta. Y no, no se vale sumarle la cantidad que le falte. GRACIAS.
|
|
|
En línea
|
APENAS EMPIEZO CON ESTO DE LA PROGRAMACIÓN Y CUANDO APARECEN ERRORES ES ALGO COMO........ (ES SOLO HUMOR)
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
ayundeme con este simple codigo
Programación Visual Basic
|
fraktal
|
3
|
1,967
|
13 Octubre 2006, 16:35 pm
por fraktal
|
|
|
Este codigo en C# no funciona (es simple)
.NET (C#, VB.NET, ASP)
|
& eDu &
|
1
|
2,768
|
22 Junio 2008, 23:08 pm
por MANULOMM
|
|
|
Ayuda con este simple codigo !!
PHP
|
TrashAmbishion
|
7
|
3,650
|
7 Mayo 2013, 02:42 am
por #!drvy
|
|
|
No funciona este simple codigo
Programación Visual Basic
|
luis456
|
6
|
5,480
|
21 Septiembre 2013, 08:50 am
por luis456
|
|
|
Ayuda nuevamente con este simple codigo
Programación C/C++
|
spiderboot
|
9
|
4,088
|
13 Mayo 2014, 15:39 pm
por spiderboot
|
|