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 - luis456

#511
Sera que uso Dev ya que el programa no se detiene a mostrarme los numeros compila bien y todo,pero no me muestra nada de lo rapido que se sale

luis



Cita de: avesudra en  6 Enero 2013, 20:20 PM
Así lo tengo yo y funciona(he cambiado las funciones por la que decía Blackzero):
Código (cpp) [Seleccionar]
#include <iostream>
#include <cstdlib>
#include <cmath>

using namespace std;

bool esPrimo(unsigned int num);
int int_cmp(const void *a, const void *b);//Función para pasarla a qsort


int main(int argc, char *argv[])
{
    int *arrayDeNumeros= (int*) calloc(1000,sizeof(int*));
    int lenArray = 0;
    cout << "Ingrese una cadena de numeros terminada en 0:" << endl;
    cin >> arrayDeNumeros[0];
    for(register int i = 1; arrayDeNumeros[i-1]!=0 ; ++i)
    {
        cin>>arrayDeNumeros[i];
        lenArray = i;
    }
    /** El algoritmo que viene a continuación lo que hace
     *  es ordenar  el array  arrayDeNumeros de  menor  a
     *  mayor,sinceramente,no sé como funciona solo que he
     *  leído que era rápido y lo he buscado.
     */

    qsort(arrayDeNumeros,lenArray,4,int_cmp);
    /**
     *  El siguiente bucle mira si los enteros que ya están
     *  ordenados son primos o no.
     */
    cout << "Los primos son: ";
    for(register int i = 1; arrayDeNumeros[i]!=0; ++i)
    {
        if(esPrimo(arrayDeNumeros[i]))
            cout<<arrayDeNumeros[i]<<" ";
    }
    cin.sync();// Para ignorar los carácteres no leidos...(limpiar el buffer)
    cout << endl<<endl<<"Presione una tecla para continuar . . .";
    cin.get();// Utiliza esto que es portable.
    return 0;
}
bool esPrimo(unsigned int num)
{
    if(num>2 && (num%2==0))/* Si el número es mayor que 2 y es divisible por el entonces no es primo*/
        return false;
    /**
     * Para comprobar si un número es primo se suele
     * utilizar el siguiente algoritmo, que consiste
     * en llegar hasta la raiz cuadrada del número de
     * dos en dos y empezando en 3, ya que un número
     * que no es par en la vida puede ser dividido por
     * un par.
     */
    unsigned int numSquare = (unsigned int)sqrt(num);
    for(register unsigned int i =3; i<=numSquare ; i+=2)
    {
        if(num%i==0)
        {
            return false;
        }
    }
    return true;
}
int int_cmp(const void *a, const void *b)
{
    const int *ia = (const int *)a; // casting pointer types
    const int *ib = (const int *)b;
    return *ia  - *ib;
    /* integer comparison: returns negative if b > a
    and positive if a > b */
}

#512
Eso es lo extraño ya que según este código tan sencillo :) no hay nada de peligro ,pienso que por haber cambiado la extension al txt sera ?

aa y el icono no funciono mas tarde hare algunas pruebas mas


luis
#513
Cita de: avesudra en  6 Enero 2013, 15:46 PM
Es mejor que utilices:
Código (cpp) [Seleccionar]

cin.sync();// Para ignorar los carácteres no leidos...(limpiar el buffer)
cout << endl<<endl<<"Presione una tecla para continuar . . .";
cin.get();// Utiliza esto que es portable.

Lo siento se me olvidó ponerlo en el código :/


Ya me volvi un ocho jejej se supone que debo eliminar y poner eso donde ? al principio o al final ya que lo he puesto y solo me sale lo de presionar la tecla

luis
#514
Jejeje pues si

apenas los compile me salta el antivirus y me dice que es un troyano ? lo he borrado y ahora no sale nada..sera por la extensión rc ?

luis
#515
Jejeje
bien hice lo que me recomendaste

funciona bien lo de cambiar la extensión

IDI ICON "uno.ico" <----archivo rc

con esto hice la prueba
#include <iostream>

int main(int argc, char *argv[])
{
  std::cout<<"Hello world!";
  return 0;
}




Resultado """    Troyano agent3,borkr """""

a que se debe esto ?

Luis





#516
Gracias a los dos por sus respuestas ahora cambie lo que me has dicho pero no logro parar el programa para ver el resultado ? estoy poniendo esto

pero no va
luis

system("pause");//Damos una pausa antes de finalizar el programa
#517
Hola
no se si el Dev que tengo no funciona bien ya que no hay cojones de hacer este archivo de recursos ya que cuando le pido hacerlo en recursos simpre me lo pone como cpp en ves de rc y me da el error  `IDI' does not name a type ? lo he complilado y no ,pero siempre me lo pasa a cpp. o la cruda realidad es que no se hacer un archivo de rc :)

luis
#518
Cita de: avesudra en  5 Enero 2013, 14:25 PM
Si pero habría que parar de introducir de alguna manera , como pedirle al usuario que el último número sea un 0, o cuantos números piensa introducir que no es lo más común, en este programa que acabo de hacer he utilizado el algoritmo de ordenación Quicksort , y las funciones las he sacado de aquí:

http://blog.e-urrea.com/noticias/2011/03/23/metodo-de-ordenacion-burbuja-y-quicksort-en-c/

Tu código es complicado de entender porque no utilizas nombres de variables descriptivos :S .El código que tienes ahí abajo va introduciendo numeros a la variable arrayDeNumeros hasta que se introduce un 0, después ordena el array y mira si cada numero es primo. Es sencillo. Te dejo el que he hecho así rápido para que te hagas una idea:
Código (cpp) [Seleccionar]
#include <iostream>
#include <cstdlib>
#include <cmath>

using namespace std;

bool esPrimo(unsigned int num);
void Quicksort(int *unarray, int izq, int der);
int pivot(int *unarray, int izq, int der);

int main(int argc, char *argv[])
{
    int *arrayDeNumeros= (int*) calloc(1000,sizeof(int*));
    int lenArray = 0;
    cout << "Ingrese una cadena de numeros terminada en 0:" << endl;
    cin>>arrayDeNumeros[0];
    for(register int i = 1; arrayDeNumeros[i-1]!=0 ; ++i)
    {
        cin>>arrayDeNumeros[i];
        lenArray = i;
    }
    /** El algoritmo que viene a continuación lo que hace
     *  es ordenar  el array  arrayDeNumeros de  menor  a
     *  mayor,sinceramente,no sé como funciona solo que he
     *  leído que era rápido y lo he buscado.
     */

    Quicksort(arrayDeNumeros,0,lenArray);
    /**
     *  El siguiente bucle mira si los enteros que ya están
     *  ordenados son primos o no.
     */
    for(register int i = 1; arrayDeNumeros[i]!=0; ++i)
    {
        if(esPrimo(arrayDeNumeros[i]))
            cout<<"El numero "<<arrayDeNumeros[i]<<" es primo."<<endl;
        else
            cout<<"El numero "<<arrayDeNumeros[i]<<" no es primo."<<endl;
    }
    return 0;
}

void Quicksort(int *unarray, int izq, int der)
{
    int pivote;
    if(izq < der)
    {
        pivote=pivot(unarray, izq, der);
        Quicksort(unarray, izq, pivote-1);
        Quicksort(unarray, pivote+1, der);
    }
}
int pivot(int *unarray, int izq, int der)
{
    int i;
    int pivote, valor_pivote;
    int aux;

    pivote = izq;
    valor_pivote = unarray[pivote];
    for (i=izq+1; i<=der; i++)
    {
        if (unarray[i] < valor_pivote)
        {
            pivote++;
            aux=unarray[i];
            unarray[i]=unarray[pivote];
            unarray[pivote]=aux;

        }
    }
    aux=unarray[izq];
    unarray[izq]=unarray[pivote];
    unarray[pivote]=aux;
    return pivote;
}
bool esPrimo(unsigned int num)
{
    if(num>2 && (num%2==0))/* Si el número es mayor que 2 y es divisible por el entonces no es primo*/
        return false;
    /**
     * Para comprobar si un número es primo se suele
     * utilizar el siguiente algoritmo, que consiste
     * en llegar hasta la raiz cuadrada del número de
     * dos en dos y empezando en 3, ya que un número
     * que no es par en la vida puede ser dividido por
     * un par.
     */
    unsigned int numSquare = (unsigned int)sqrt(num);
    for(register unsigned int i =3; i<=numSquare ; i+=2)
    {
        if(num%i==0)
        {
            return false;
        }
    }
    return true;
}



Gracias por el codigo y la respuesta pero lo que nesecito es que me muestre cuales son los numeros primos ordenados y este lo que me dice si son o nos son primos

Luis




#519
En este codigo que saca los numeros primos ,se podria hacerlo pero que el usuario ponga la cantidad de numeros y sin importar el orden de los mismos ?

que se ponga ejemplo 1 3 5 48 99 75 65 88  77  a lo bestia por decir algo y que el programa diga cuales son los primos y los muestre ahora si en orden ?


[code#include<iostream>
using namespace std;

int main()
{
  int n=0,c=0,c2=0,res=0,nc=0;
  cout<<"Introduce el limite de numeros: "; cin>>n;
  for(c=1;c<=n;c++)
  {
    for(c2=1;c2<=c;c2++)
    {
      res=c%c2;
      if(res==0)
      {
        nc=nc+1;
      }
    }
    if(nc==2)
    {
      cout<<" "<<c;
    }
    nc=0;
  }
  system("pause");//Damos una pausa antes de finalizar el programa
return 0;
}]



Luis
#520
Bien cuando trato de hacer este archivo rc me sale este error ????

ic.cpp `IDI' does not name a type


#include "resource.h"

IDI ICON "uno.ico"



Npi :) estando buscando por el señor sabelotodo G... lo que hago es mas enredarme


Luis