Autor
|
Tema: Programa ayuda (Leído 1,583 veces)
|
Estudiante000000
Desconectado
Mensajes: 38
|
Buenas tardes a todos , tengo una gran duda que seria de mucha ayuda que si me la aclararan seria genial.
El siguiente programa es un programa que sin el uso de librerias calcula la raiz cuadrada de un numero , mi duda es la siguiente ¿ Cual es el funcionamiento ? , me refiero a que si me ponen el programa como yo se que se trata de calcular la raiz cuadrada del numero , alguien me explica que hace cada paso porfavor gracias.
#include<iostream> #include<stdlib.h>
using namespace std; int main() { int numero=0; double i=0, calculo=0;
while (numero <= 1 || numero >= 100000) { cout << "ingrese numero = "; cin >> numero; } while (calculo <= numero) { i = i + 0.000001; calculo = i*i; }
cout << "La solucion es = "<<i<<endl; system("pause"); return i;
}
MUCHAS GRACIAS AL QUE PUEDA AYUDARME .
|
|
« Última modificación: 16 Noviembre 2018, 00:58 am por Estudiante000000 »
|
En línea
|
|
|
|
AlbertoBSD
Programador y
Moderador Global
Desconectado
Mensajes: 3.696
🏴 Libertad!!!!!
|
Una pregunta muy burda, realmente sabes algo de C o de C++, por que tu codito tiene tanto iostream como stdio y realmente no estas usando nada de stdio. La parte interesante de tu codigo es: i = i + 0.000001; calculo = i*i;
Donde itera sucesivamente cada 0.000001. hasta que encuentra un producto tal que i*i sea igual o un poco mayor al numero buscado. Basicamente el programa realiza fuerza bruta probando "todas" las posibilidades, lo cual es INEFICIENTE Saludos!
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Básicamente empiezas con i que vale 0,000001 Y mientras el cuadrado de i no supere el número buscado se sumará 0,000001. De hecho tu el programa tiene una falla. Lo verás en el ejemplo:
Por pasos y en vez de 0,000001 supongamos 1 para la suma. Y que 9 es el número al que se busca la raíz cuadrada.
i = 1 i * i < 9 : 1 * 1 = 1; 1 < 9? Sí, recalcula
i = i + 1: i = 1+1; i = 2 i * i < 9 : 2 * 2 = 4; 4 < 9? Sí, recalcula
i = i + 1: i = 2+1; i = 3 i * i < 9 : 3 * 3 = 4; 9 < 9? No, fin
Cómo ves, la condición para continuar el bucle es i * i < num. Si hubiera sido i * i <= num habría habido un recalculado e i hubiera valido 4. Y 4 es la raíz cuadrada de 16.
|
|
|
En línea
|
|
|
|
Estudiante000000
Desconectado
Mensajes: 38
|
Básicamente empiezas con i que vale 0,000001 Y mientras el cuadrado de i no supere el número buscado se sumará 0,000001. De hecho tu el programa tiene una falla. Lo verás en el ejemplo:
Por pasos y en vez de 0,000001 supongamos 1 para la suma. Y que 9 es el número al que se busca la raíz cuadrada.
i = 1 i * i < 9 : 1 * 1 = 1; 1 < 9? Sí, recalcula
i = i + 1: i = 1+1; i = 2 i * i < 9 : 2 * 2 = 4; 4 < 9? Sí, recalcula
i = i + 1: i = 2+1; i = 3 i * i < 9 : 3 * 3 = 4; 9 < 9? No, fin
Cómo ves, la condición para continuar el bucle es i * i < num. Si hubiera sido i * i <= num habría habido un recalculado e i hubiera valido 4. Y 4 es la raíz cuadrada de 16.
Excelente muchisimas gracias por tu ayuda bien explicado.
|
|
|
En línea
|
|
|
|
Estudiante000000
Desconectado
Mensajes: 38
|
Buenas tardes a todos , tengo una gran duda que seria de mucha ayuda que si me la aclararan seria genial.
El siguiente programa es un programa que sin el uso de librerias calcula la raiz cuadrada de un numero , mi duda es la siguiente ¿ Cual es el funcionamiento ? , me refiero a que si me ponen el programa como yo se que se trata de calcular la raiz cuadrada del numero , alguien me explica que hace cada paso porfavor gracias.
#include<iostream> #include<stdlib.h>
using namespace std; int main() { int numero=0; double i=0, calculo=0;
while (numero <= 1 || numero >= 100000) { cout << "ingrese numero = "; cin >> numero; } while (calculo <= numero) { i = i + 0.000001; calculo = i*i; }
cout << "La solucion es = "<<i<<endl; system("pause"); return i;
}
MUCHAS GRACIAS AL QUE PUEDA AYUDARME .
|
|
|
En línea
|
|
|
|
Estudiante000000
Desconectado
Mensajes: 38
|
Una pregunta muy burda, realmente sabes algo de C o de C++, por que tu codito tiene tanto iostream como stdio y realmente no estas usando nada de stdio. La parte interesante de tu codigo es: i = i + 0.000001; calculo = i*i;
Donde itera sucesivamente cada 0.000001. hasta que encuentra un producto tal que i*i sea igual o un poco mayor al numero buscado. Basicamente el programa realiza fuerza bruta probando "todas" las posibilidades, lo cual es INEFICIENTE Saludos! Muchisimas gracias saludos crack!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
AYUDA CON PROGRAMA
Diseño Gráfico
|
Luisango
|
1
|
2,467
|
17 Abril 2005, 13:25 pm
por Sub_Cero
|
|
|
[Ayuda] ¿Cómo ejecutar otro programa desde mi programa de C#?
.NET (C#, VB.NET, ASP)
|
Zodiak98
|
1
|
6,194
|
8 Diciembre 2013, 01:51 am
por Eleкtro
|
|
|
[AYUDA] Ayuda con NETCAT o cualquier otro programa similar
Dudas Generales
|
Noxware
|
0
|
2,188
|
16 Junio 2014, 18:13 pm
por Noxware
|
|
|
AYUDA! ---- Programa en lenguaje C en programa Dev-C ++ ---- AYUDA!
Programación C/C++
|
EduardoSaenz
|
4
|
3,888
|
7 Mayo 2016, 23:38 pm
por MAFUS
|
|
|
necesito ayuda para hecer este programa, por favor ayuda
Programación C/C++
|
LARANARENElol
|
2
|
4,189
|
16 Noviembre 2018, 03:00 am
por LARANARENElol
|
|