elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Programa ayuda
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programa ayuda  (Leído 1,560 veces)
Estudiante000000

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Programa ayuda
« en: 15 Noviembre 2018, 20:55 pm »

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 Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Programa para calcular la raiz de un numero sin librerias c++
« Respuesta #1 en: 15 Noviembre 2018, 21:52 pm »

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:
Código:
  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 Desconectado

Mensajes: 1.603



Ver Perfil
Re: Programa para calcular la raiz de un numero sin librerias c++
« Respuesta #2 en: 15 Noviembre 2018, 22:04 pm »

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 Desconectado

Mensajes: 38


Ver Perfil
Re: Programa para calcular la raiz de un numero sin librerias c++
« Respuesta #3 en: 16 Noviembre 2018, 00:56 am »

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 Desconectado

Mensajes: 38


Ver Perfil
Re: Programa duda(solucionado)
« Respuesta #4 en: 16 Noviembre 2018, 00:58 am »

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 Desconectado

Mensajes: 38


Ver Perfil
Re: Programa para calcular la raiz de un numero sin librerias c++
« Respuesta #5 en: 16 Noviembre 2018, 00:59 am »

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:
Código:
  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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines