Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - CobraCY

#1
gracias :) ;-) ahora me pondré a investigar, igual agradezco más respuestas :D...

Saludos.
#2
Hace algún tiempo me dejaron lo mismo como un pequeño ejercicio y esta fue la solución que propuse:

Código (cpp) [Seleccionar]

int busqueda_binaria(int *a, int inicio, int fin, int val)
{
if(inicio==fin && a[inicio] != val)
return -1;
int t= fin/2;
if(a[t] == val)
return t;
if(a[t] > val)
return busqueda_binaria(a,inicio,t-1,val);
else
return busqueda_binaria(a,t+1,fin,val);
}


Como vez esto se puede mejorar para que funcione en menos lineas, pero eso ya te lo dejo de tarea para ti :).

Saludos.
#3
exacto rir3760, es por eso que busco algunos ejemplos acerca de esto, donde pueda ver como aplicarlo y desarrollar software de esta forma, pues como sabemos los ordenadores tienen cada vez más núcleos y haces que tu software trabaje solo en 1 estás desperdiciando potencial de ordenador, así que me gustaría información de como aplicar este método en un lenguaje como C++.

Saludos.
#4
Gracias por la respuesta, pero no es lo que busco.

Si me dejo entender, hay una forma de volver la programación en C++ al paralelo, para que de este modo distribuya la ejecución de distintas tareas en diversos nucleos, por ejemplo:

Tengo un código que aplica 2 for, uno dentro del otro(anidado).

Código (cpp) [Seleccionar]

for(int i=0; i < x; i++)
{
     for(int j=0; j < y; j++)
     {
        if(i == j)
            return x+y;
     }
}


Entonces lo que hace esto es dividir el primer for a un nucleo y el for anidado en otro nucleo, lo cual permite doble ejecución en la mitad del tiempo. Se que para esto hay que usar algunas librerias y declaraciones pero la verdad no he encontrado nada de ejemplos acerca de esto, mucha teoria y poca práctica y/o ejemplos.

Si alguien tuviera conocimientos acerca de este metodo de programación y me brindara su ayuda le estaria eternamente agradecido.

Saludos.


#5
si, pero el está pidieron que utilicemos un flag. Así que hay que cumplir con sus exigencias xD.

Saludos.
#6
te hice un video rápido para ver si te puedo ayudar.
[youtube=425,350]http://www.youtube.com/watch?v=t3zY9IXOxzU[/youtube]
Saludos.
#7
ya mira, cuando haces el FOR, dices: "Declara una variable 'i' que inicie en dos(2) y que se aumente en 1(i++) mientras que sea menor a el valor de 'n'.".

Con esto haces que tu variable 'i' haga el recorrido desde el numero 2 hasta n.
Si vez bien el código que te puse usé la siguiente linea para el FOR:
Código (cpp) [Seleccionar]

for(int i=2; i < n && flag==0;i++)


Con esto digo: "Declara una variable 'i' que inicie en dos(2) y que se aumente en 1(i++) mientras que mi variable 'i' sea menor que 'n' y además que mi variable 'flag' sea sea exactamente igual a cero(0)".

Si te das cuenta en tu código haces un 'if' donde preguntas si el residuo de tu valor entre el valor que lleva la variable 'i' es cero(0), entonces cambie tu flag a 0, ese valor puedes utilizarlo en el for para que si 'flag' es distinto(!=) de cero(0) entonces continúe con la ejecución del for.

Saludos.
#8
Bueno soy nuevo y se me dio echarle una mano.

Puedes hacerlo con un while o con un for, para el caso recomiendo el for, también puedes usar un flag int o bool, me gusta más el bool, pero bueno te dejo un ejemplo con el bool y otro con el int y también.

Código (cpp) [Seleccionar]

#include <iostream>

using namespace std;
int main()
{
int n;
cin >> n;
int flag=0;
for(int i=2; i < n && flag==0;i++)
{
if(n%i==0)
flag++;
}

if(flag==0 || n==1 || n==2)
cout << "Es primo" << endl;
else
cout << "No es primo" << endl;
return 0;
}

Este usa el flag en Int
Ahora uno que usa el Flag en bool
Código (cpp) [Seleccionar]

#include <iostream>

using namespace std;
int main()
{
int n;
cin >> n;
bool flag=true;
for(int i=2; i < n && flag;i++)
{
if(n%i==0)
flag=false;
}

if(flag || n==1 || n==2)
cout << "Es primo" << endl;
else
cout << "No es primo" << endl;
return 0;
}

Este usa el flag en Bool, como ves solo cambian, mmm en realidad no cambia nada xD. :)

Saludos.
#9
Buenas, soy nuevo en la comunidad y me pasé revisando y buscando algo que me ayude a entender un poco mejor la programación paralela o distribuida, de modo que pueda hacer mis programas funcionar en todos los núcleos (procesadores) de un ordenador.

Ya busque mucho en google y sin resultado, muchos papers, proyectos y teoría pero nada práctico.
Me gustaría ver algunos ejemplos de como se aplica esto, que librerías necesito para empezar, como es que funciona y cuales son las ventajas y desventajas que obtengo al usar este tipo de programación.

Si hay algún tema de este tipo, es posible que se me haya pasado por alto, agradecería me brinden el enlace y si en caso yo encuentro algo navegando en la red lo publicaré aquí para ayudar al resto de gente.

Saludos y gracias por su tiempo.