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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: strtok en: 27 Enero 2015, 16:26 pm
aporto un ejemplo  ::)

Código
  1. int main()
  2. {  /* inicializa el arreglo de cadena */
  3.   char cadena[] = "Este es un enunciado con 7 tokens";
  4.   char *ptrToken; /* crea un apuntador char */
  5.   printf("%s\n%s\n%s\n",
  6.           "La cadena a dividir en tokens es:", cadena,
  7.           "Los tokens son:");
  8.   ptrToken = strtok(cadena, " ");/* comienza la divisiónen tokens del enunciado */
  9.   /* continua la división en tokens hasta que ptrToken se hace NULL */
  10.   while (ptrToken != NULL)
  11.   {  printf( "%s\n", ptrToken );
  12.      ptrToken = strtok(NULL, " "); /* obtiene el siguiente token */
  13.   } /* fin de while */
  14.   return 0; /* indica terminación exitosa */
  15. } /* fin de main */
  16.  

saludos
2  Programación / Programación C/C++ / Re: Algoritmo de Dijkstra paso a paso en: 16 Enero 2015, 01:40 am
Código
  1. #define INFINITO 1.0E+30
  2. #define NODOS 5
  3. #define MIEMBRO 1
  4. #define NO_MIEMBRO 0
  5. void short_path(int matriz[][NODOS], int s, int t, int *pd, int precede[]){
  6.  int distancia[NODOS];
  7.  int perm[NODOS];
  8.  int corriente, i, k , dc, menor_dist, nueva_dist;
  9.  
  10.  for(i = 0; i < NODOS; i++){
  11.    perm[i] = NO_MIEMBRO;
  12.    distancia[i] = INFINITO;
  13.  }
  14.  perm[s] = MIEMBRO;
  15.  distancia[s] = 0;
  16.  corriente = s;
  17.  while(corriente != t){
  18.  
  19.    menor_dist = INFINITO;
  20.    dc = distancia[corriente];
  21.  
  22.    for(i = 0; i < NODOS; i++){
  23.      nueva_dist = dc + matriz[corriente][i];
  24.      if(nueva_dist < distancia[i]){
  25.        distancia[i] = nueva_dist;
  26.        precede[i] = corriente;
  27.      }
  28.      if(distancia[i] < menor_dist){
  29.        menor_dist = distancia[i];
  30.        k=i;
  31.      }
  32.    }//fin de for
  33.    corriente = k;
  34.    perm[corriente]= MIEMBRO;
  35.  }//fin de while
  36.  *pd = distancia[i];
  37. }


bueno gente aporto este código, si alguien comenta.
3  Programación / Programación C/C++ / Re: Lista Genérica en c en: 13 Octubre 2014, 05:03 am
ese código esta muy bueno!

pienso que las funciones que implementé tienen cierta ventaja a la hora de exportar el código a otro lenguaje.

validación robusta? no tengo idea que significa.

saludos
4  Programación / Programación C/C++ / Re: Reemplazar conio.h en: 12 Octubre 2014, 02:54 am
PDCurses

http://pdcurses.sourceforge.net/

5  Programación / Programación C/C++ / Lista Genérica en c en: 10 Octubre 2014, 18:25 pm
que les parece mi implementación?

Código:


typedef enum _TIPO
{

  INT = 0,
  FLOAT,
  STRING

} TIPO;

typedef struct _NODO_LISTA
{

  TIPO   tipo;

  int    dato_int;
  float  dato_float;

  char   *dato_s;

  struct NODO_LISTA *sig;

} NODO_LISTA;


typedef NODO_LISTA *ListaGenerica;

ListaGenerica LGListaVacia();

ListaGenerica LGApilarInt(ListaGenerica l, int var);

ListaGenerica LGApilarFloat(ListaGenerica l, float var);

ListaGenerica LGApilarString(ListaGenerica l, char* var);

void LGImprimirEnPantalla(ListaGenerica l);



--

Código:
#include <stdio.h>
#include "ListaGenerica.h"

ListaGenerica LGListaVacia()
{
  return NULL;
}

ListaGenerica LGApilarInt(ListaGenerica l, int var)
{
  ListaGenerica p;
  p = (ListaGenerica)malloc(sizeof(NODO_LISTA));
  p->dato_int = var;
  p->tipo = INT;

  if(l==NULL){
    p->sig = NULL;
  }else{
    p->sig = l;
  }

  return p;
}

ListaGenerica LGApilarFloat(ListaGenerica l, float var)
{
  ListaGenerica p;
  p = (ListaGenerica)malloc(sizeof(NODO_LISTA));
  p->dato_float = var;
  p->tipo = FLOAT;

  if(l==NULL){
    p->sig = NULL;
  }else{
    p->sig = l;
  }

  return p;
}

ListaGenerica LGApilarString(ListaGenerica l, char *var)
{
  ListaGenerica p;
  p = (ListaGenerica)malloc(sizeof(NODO_LISTA));
  p->dato_s = var;
  p->tipo = STRING;

  if(l==NULL){
    p->sig = NULL;
  }else{
    p->sig = l;
  }

  return p;
}

void LGImprimirEnPantalla(ListaGenerica l)
{
  putchar('[');
  while(l != NULL)
  {
    if(l->tipo==INT)
      printf("%d", l->dato_int);

    else if(l->tipo==FLOAT)
      printf("%f", l->dato_float);

    else if (l->tipo==STRING)
      printf("%s", l->dato_s);

    if (l->sig != NULL)
      printf(", ");

    l=l->sig;
  }
  putchar(']');
}



Código:
#include "ListaGenerica.h"

int main()
{
  ListaGenerica l;
  l = LGListaVacia();
  l = LGApilarInt(l, 2);
  l = LGApilarInt(l, 20);
  l = LGApilarInt(l, 21);
  l = LGApilarInt(l, 12);
  l = LGApilarInt(l, 22);
  l = LGApilarFloat(l, 42.41);
  l = LGApilarFloat(l, 242.41);
  l = LGApilarFloat(l, 342.41);
  l = LGApilarString(l, "Pila");
  l = LGApilarString(l, "Generica");
  l = LGApilarString(l, "Anno 2014");

  LGImprimirEnPantalla(l);

  return 0;
}

6  Programación / Programación C/C++ / Re: Consulta argumentos en: 22 Diciembre 2013, 02:24 am
gracias

:o
7  Programación / Programación C/C++ / Re: Consulta argumentos en: 21 Diciembre 2013, 18:39 pm
------------
8  Programación / Programación C/C++ / Re: Consulta argumentos en: 21 Diciembre 2013, 18:36 pm
por eso mismo, mi pregunta es: ¿sí es una función donde siempre se le pasan cadenas de caracteres para que poner punteros genéricos y luego hacer el cast?

preguntaba si hay alguna ventaja o si, en este caso es lo mismo hacer la función así:

static int
compare (const char *a, const char *b);

con punteros a char

saludos
9  Programación / Programación C/C++ / Consulta argumentos en: 20 Diciembre 2013, 21:12 pm
hay ventajas en hacer este tipo de declaraciones ?

Código:
static int
compare (const void *a, const void *b)
{
  return strcmp (*(char **) a, *(char **) b);
}



Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines