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

 

 


Tema destacado:


  Mostrar Temas
Páginas: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20 21 22
101  Programación / Programación C/C++ / fgetc() en: 25 Diciembre 2013, 08:54 am
Saludos

Yo sé que la función fgetc funciona con un argumento que es un stream de tipo FILE, pero tengo la duda de si fgetc puede aceptar argumentos de otros tipos como char*??

gracias
102  Programación / Programación C/C++ / uso de strcat en: 21 Diciembre 2013, 03:13 am
Saludos, tengo una duda sobre el uso de la función strcat.

si yo tengo una cadena inicializada en NULL, *cadena = NULL, y con un ciclo while quiero ir agregadole caracter por caracter podria hacer esto con el strcat que me vaya concatenando al final de la cadena caracter por caracter??

algo como asi:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main()
  6. {
  7.    int i = 0;
  8.    char *cadena = NULL,c[5],car;
  9.    while(i < 5)
  10.    {
  11.        printf("Dame car\n");
  12.        fgets(c,5,stdin);
  13.        sscanf(c,"%c",&car);
  14.        strcat(cadena,car);
  15.        i++;
  16.    }
  17.    return 0;
  18. }

es que el codigo no funciona y creo que es por el strcat

gracias
103  Programación / Programación General / Singleton variables prolog en: 15 Diciembre 2013, 19:34 pm
Saludos, estoy haciendo mi primer programa en Prolog, es un simple árbol genealógico pero me aparece un warning que dice singleton variables[C,D] y no se que significa esto

los hechos del programa son del tipo padre(-,-) y madre(-,-).
hermanos(A,B):-padre(C,A),padre(C,B);madre(D,A),madre(D,B).
abuelo(E,A):-padre(E,padre(C,A)),padre(E,madre(D,A)).

?-abuelo(daniel,maria).

de antemano gracias
104  Programación / Programación C/C++ / Diseño de Ensamblador en: 9 Diciembre 2013, 16:56 pm
Saludos

tengo que crear un programa que identifique las partes de una línea en lenguaje ensamblador, y para esto me dicen que necesito tener un archivo de texto creado previamente y

Leer línea a línea el archivo, pudiendo:
a. Leer cada línea directamente del archivo, de una por una y procesar cada línea que se va leyendo.
b. Leer todo el archivo con un ciclo y conforme se lee el archivo almacenarlo en una estructura de datos temporal, posteriormente leer de esta estructura de datos

Me dice que en ambos casos hay ventajas y desventajas. Deberás elegir la que sea más conveniente, recuerda que el  programa debe de irse completando con las siguientes practicas.

¿cuales son estas ventajas y desventajas?,¿Cuál de estas opciones es la mejor y la más fácil de implementar?, No quiero que me hagan la tarea solo que me den una ligera idea de como seria

gracias
105  Informática / Hardware / Arquitectura de Von Newmann vs. Arquitectura Harvard en: 6 Diciembre 2013, 01:46 am
Saludos

Tengo una duda, si en la Arquitectura de Harvard la CPU esta conectada a dos memorias independientes(una para datos, otra para instrucciones), la CPU puede acceder a ambas memorias simultaneamente, por tener dos buses diferentes y a mayor velocidad, entonces por que la Arquitectura de Von Neumman es más utilizada, si parece que la otra tiene mas ventajas??

gracias
106  Programación / Programación C/C++ / basura en mi programa en: 6 Diciembre 2013, 00:47 am
Saludos estoy haciendo un programa que contiene un menu para elegir diferentes operaciones aritmeticas, ya se que no se puede usar fflush(stdin) para limpiar el buffer, pero ya le puse el fgets + sscanf en las partes donde crei que me daba problemas pero aun asi sigue con basura, tengo que cambiar cada uno de los scanf() que tengo en mi codigo por un fgets + sscanf???? lo que pasa es que son muchisimos y crei que con solo ponerle 2 seria mas que suficiente

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define TAM 5
  4. #define ARITMETICA_SIMPLE 1
  5. #define ARITMETICA_BINARIA 2
  6. #define FACTORIAL 3
  7. #define TABLA_MULTIPLICAR 4
  8. #define SALIR 5
  9. int main()
  10. {
  11.    //Variables de uso interno del programa
  12.    int continuar = 1,i,factorial = 1;
  13.    //Variables para entrada de datos
  14.    int opcion,numero1,numero2,numero_factorial,multiplicando,multiplicador;
  15.    char operador,buffer[TAM];
  16.    do
  17.    {
  18.        //Menu principal
  19.        printf("CALCULADORA v1.0\n\n");
  20.        printf("Elige una de las siguientes opciones:\n");
  21.        printf("1. Aritmetica simple con suma de enteros a+b\n");
  22.        printf("2. Aritmetica extendida binaria\n");
  23.        printf("3. Factorial de n (n!)\n");
  24.        printf("4. Detallar una tabla de multiplicar\n");
  25.        printf("5. Salir\n");
  26.        printf("Opcion a elegir? ");
  27.        fgets(buffer,sizeof(buffer),stdin);
  28.        sscanf(buffer,"%d",&opcion);
  29.        switch(opcion)
  30.        {
  31.            //Aritmetica simple con suma de enteros a+b
  32.            case ARITMETICA_SIMPLE:
  33.               printf("Dame el valor de a = ");
  34.               scanf("%d",&numero1);
  35.               printf("Dame el valor de b = ");
  36.               scanf("%d",&numero2);
  37.               printf("%d + %d = %d",numero1,numero2,numero1+numero2);
  38.               break;
  39.            //Aritmetica extendida binaria (+,-,*,/,%modulo)
  40.            case ARITMETICA_BINARIA:
  41.               printf("Escribe el operador (+,-,*,/,%%): ");
  42.               fgets(buffer,sizeof(buffer),stdin);
  43.               sscanf(buffer,"%c",&operador);
  44.               printf("\nDame el valor de a = ");
  45.               scanf("%d",&numero1);
  46.               printf("Dame el valor de b = ");
  47.               scanf("%d",&numero2);
  48.               switch(operador)
  49.               {
  50.                   case '+':
  51.                      printf("%d %c %d = %d\n",numero1,operador,numero2,numero1+numero2);
  52.                      break;
  53.                   case '-':
  54.                      printf("%d %c %d = %d\n",numero1,operador,numero2,numero1-numero2);
  55.                      break;
  56.                   case '*':
  57.                      printf("%d %c %d = %d\n",numero1,operador,numero2,numero1*numero2);
  58.                      break;
  59.                   case '/':
  60.                      printf("%d %c %d = %d\n",numero1,operador,numero2,numero1/numero2);
  61.                      break;
  62.                   case '%':
  63.                      printf("%d %c %d = %d\n",numero1,operador,numero2,numero1%numero2);
  64.                      break;
  65.                   default:
  66.                      printf("No hay un resultado calculable\n");
  67.                      printf("%d %c %d = 0\n",numero1,operador,numero2);
  68.               }
  69.               break;
  70.            //Factorial de n (n!)
  71.            case FACTORIAL:
  72.               printf("Dame el valor de n = ");
  73.               scanf("%d",&numero_factorial);
  74.               if(numero_factorial < 0)
  75.                  printf("El factorial de %d no esta definido\n",numero_factorial);
  76.               else if(numero_factorial == 0)
  77.                  printf("El factorial de 0 es 1\n");
  78.               else
  79.               {
  80.                   for(i = numero_factorial;i > 0;i--)
  81.                      factorial*=i;
  82.                   printf("El factorial de %d es %d\n",numero_factorial,factorial);
  83.               }
  84.               break;
  85.            //Detallar una tabla de multiplicar
  86.            case TABLA_MULTIPLICAR:
  87.               printf("Dame el multiplicando i = ");
  88.               scanf("%d",&multiplicando);
  89.               printf("Dame hasta cual multiplicador n= ");
  90.               scanf("%d",&multiplicador);
  91.               printf("Tabla de multiplicar del %d\n",multiplicador);
  92.               i = 1;
  93.               while(i <= multiplicador)
  94.               {
  95.                   printf("%d\tX\t%d\t=\t%d\n",multiplicando,i,multiplicando*i);
  96.                   i++;
  97.               }
  98.               break;
  99.            //Salida del programa
  100.            case SALIR:
  101.               continuar = 0;
  102.               break;
  103.            default:
  104.               printf("Opcion no valida!\n");
  105.        }
  106.        if(continuar)
  107.           system("pause");
  108.    }while(continuar);
  109.    return 0;
  110. }
  111.  

de antemano gracias
107  Programación / Programación C/C++ / problema al abrir archivo en: 4 Diciembre 2013, 22:13 pm
Saludos, tengo un archivo.txt guardado en x ruta, y quiero abrirlo en modo de solo lectura, pero tengo la duda si debo ingresarle en la funcion fopen la ruta completa donde se encuentra el archivo, o si puedo hacerlo de esta manera, el archivo se encuentra en el escritorio pero si lo hago de esta manera me imprime que no se pudo abrir archivo

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.    FILE *fd;
  7.    if((fd = fopen("P1ASM.txt","r"))!= NULL)
  8.    {
  9.        printf("Si se pudo abrir archivo");
  10.    }
  11.    else
  12.       printf("No se pudo abrir el archivo");
  13.    return 0;
  14. }

de antemano gracias
108  Programación / Programación C/C++ / varias listas ligadas en: 4 Diciembre 2013, 00:20 am
Saludos

Si tengo un codigo en el que tengo que crear diferentes listas simplemente ligadas, tendria que hacerlo como un arreglo de punteros?? para que cada uno de esos punteros apunte al primer nodo de la lista??

109  Foros Generales / Dudas Generales / Duda de matematicas en: 1 Diciembre 2013, 03:32 am
Saludos

Tengo una duda respecto a unos ejercicios de matematicas, se que este es un foro de informatica y no de mate, pero espero que me pudieran ayudar con esto:

el ejercicio dice:  encuentra el orden de las siguientes expresiones:

a ) 3n! + 100 n^100
b) 3^(n+1) + 10^ n/2

tengo entendido que el orden de la suma de unas expresiones algebraicas es el el orden del mayor elemento o algo asi, como por ejemplo si tengo:

3n^2 + 5n + 2, el orden va a ser el mayor o sea n^2, pero de las expresiones anteriores no se como calcularlos porque tienen factoriales y n/2

gracias
110  Programación / Programación C/C++ / Caballos en: 27 Noviembre 2013, 21:02 pm
Saludos, tengo un programa que dado un tamaño n de un tablero, me diga cual es el numero maximo de caballos que se pueden colocar en ese tablero sin atacarse? y de cuantas formas, el programa me tiene que dar maximo 10 soluciones solamente.

e hice un codigo que me pida una (x,y) aleatoria para poner en esa casilla al caballo y despues calcular los 8 movimientos posibles y asegurarme que no haya otra pieza en ninguna de esas 8 casillas que marque, para que no se ataquen,en caso de que si haya otro caballo que pueda atacar pedir otra (x,y) aleatoria, y asi sucesivamente hasta que tengo el total de caballos en el tablero, como son 10 tableros maximo, a cada uno le saco el numero total de caballos y esos totales los almaceno en un arreglo para despues buscar con una funcion el mayor de ellos. y ese seria mi maximo. Pero el problema es que ese no es el maximo, porque solo son 10 tableros, pero por ejemplo si fueran 20 tableros a los que les calculo su total de caballos puede ser que en alguno de esos haya un numero de caballos mayor que al mayor que calcule de los 10 tableros que tenia

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <time.h>
  5. #define NO_CASILLAS_DISPONIBLES 0
  6. #define MAX_SOLUCIONES 10
  7.  
  8. void inicializarTablero(char **tablero,int n);
  9. int insertarCaballos(char **tablero,int fila,int columna,int casillasDisponibles,int numCaballos,int n);
  10. int verificarMovimientos(char **tablero,int fila,int columna,int casillasDisponibles,int n);
  11. void imprimirTablero(char **tablero,int n);
  12. int maximoCaballos(int totalCaballos[]);
  13.  
  14. int main()
  15. {
  16.    FILE *fd;
  17.    int n,i,j = 0,fila,columna,numCaballos,totalCaballos[MAX_SOLUCIONES],casillasDisponibles,MaxCaballos;
  18.    char **tablero;
  19.    do
  20.    {
  21.        printf("Dame tamanio de tablero: ");
  22.        scanf("%d",&n);
  23.    }while(n < 2 || n > 20);/*
  24.     if((fd = fopen("caballos_xx.txt","w"))!=NULL)
  25.     {*/
  26.        srand(time(NULL));
  27.        tablero = malloc(n*sizeof(char*));
  28.        for(i = 0;i < n;i++)
  29.           tablero[i] = malloc(n);
  30.        while(j < MAX_SOLUCIONES)
  31.        {
  32.            numCaballos = 0;
  33.            casillasDisponibles = n*n;
  34.            fila = rand() % n;
  35.            columna = rand() % n;
  36.            printf("(%d,%d)\n",fila,columna);
  37.            inicializarTablero(tablero,n);
  38.            totalCaballos[j] = insertarCaballos(tablero,fila,columna,casillasDisponibles,numCaballos,n);
  39.            imprimirTablero(tablero,n);
  40.            printf("\n\nEl numero maximo de caballos en esta solucion es de %d\n",totalCaballos[j]);
  41.            j++;
  42.        }
  43.        MaxCaballos = maximoCaballos(totalCaballos);
  44.        printf("\nEl numero maximo de caballos en un tablero de %d x %d sin atacarse es %d\n",n,n,MaxCaballos);/*
  45.     }
  46.     else
  47.        printf("No se pudo crear archivo");*/
  48.    return 0;
  49. }
  50.  
  51. void inicializarTablero(char **tablero,int n)
  52. {
  53.    int i,j;
  54.    for(i = 0;i < n;i++)
  55.    {
  56.        for(j = 0;j < n;j++)
  57.           tablero[i][j] = '0';
  58.    }
  59. }
  60.  
  61. int insertarCaballos(char **tablero,int fila,int columna,int casillasDisponibles,int numCaballos,int n)
  62. {
  63.    if(casillasDisponibles > NO_CASILLAS_DISPONIBLES)
  64.    {
  65.        if(tablero[fila][columna] == '0')
  66.        {
  67.            tablero[fila][columna] = 'C';
  68.            casillasDisponibles = verificarMovimientos(tablero,fila,columna,casillasDisponibles,n);
  69.            numCaballos++;
  70.            fila = rand() % n;
  71.            columna = rand() %n;
  72.            insertarCaballos(tablero,fila,columna,casillasDisponibles,numCaballos,n);
  73.        }
  74.        else
  75.        {
  76.            fila = rand() % n;
  77.            columna = rand() %n;
  78.            insertarCaballos(tablero,fila,columna,casillasDisponibles,numCaballos,n);
  79.        }
  80.    }
  81.    else
  82.       return numCaballos;
  83. }
  84.  
  85. int verificarMovimientos(char **tablero,int fila,int columna,int casillasDisponibles,int n)
  86. {
  87.    int i,j,nuevaFila,nuevaColumna,eliminadas;
  88.    eliminadas = casillasDisponibles-1;
  89.    nuevaFila = fila + 2;
  90.    nuevaColumna = columna -1;
  91.    if((nuevaFila>=0&&nuevaFila<n)&&(nuevaColumna>=0&&nuevaColumna<n)&&(tablero[nuevaFila][nuevaColumna]=='0'))
  92.    {
  93.        tablero[nuevaFila][nuevaColumna] = 'x';
  94.        eliminadas--;
  95.    }
  96.    nuevaFila = fila + 2;
  97.    nuevaColumna = columna + 1;
  98.    if((nuevaFila>=0&&nuevaFila<n)&&(nuevaColumna>=0&&nuevaColumna<n)&&(tablero[nuevaFila][nuevaColumna]=='0'))
  99.    {
  100.        tablero[nuevaFila][nuevaColumna] = 'x';
  101.        eliminadas--;
  102.    }
  103.    nuevaFila = fila + 1;
  104.    nuevaColumna = columna - 2;
  105.    if((nuevaFila>=0&&nuevaFila<n)&&(nuevaColumna>=0&&nuevaColumna<n)&&(tablero[nuevaFila][nuevaColumna]=='0'))
  106.    {
  107.        tablero[nuevaFila][nuevaColumna] = 'x';
  108.        eliminadas--;
  109.    }
  110.    nuevaFila = fila + 1;
  111.    nuevaColumna = columna + 2;
  112.    if((nuevaFila>=0&&nuevaFila<n)&&(nuevaColumna>=0&&nuevaColumna<n)&&(tablero[nuevaFila][nuevaColumna]=='0'))
  113.    {
  114.        tablero[nuevaFila][nuevaColumna] = 'x';
  115.        eliminadas--;
  116.    }
  117.    nuevaFila = fila - 2;
  118.    nuevaColumna = columna - 1;
  119.    if((nuevaFila>=0&&nuevaFila<n)&&(nuevaColumna>=0&&nuevaColumna<n)&&(tablero[nuevaFila][nuevaColumna]=='0'))
  120.    {
  121.        tablero[nuevaFila][nuevaColumna] = 'x';
  122.        eliminadas--;
  123.    }
  124.    nuevaFila = fila - 2;
  125.    nuevaColumna = columna + 1;
  126.    if((nuevaFila>=0&&nuevaFila<n)&&(nuevaColumna>=0&&nuevaColumna<n)&&(tablero[nuevaFila][nuevaColumna]=='0'))
  127.    {
  128.        tablero[nuevaFila][nuevaColumna] = 'x';
  129.        eliminadas--;
  130.    }
  131.    nuevaFila = fila - 1;
  132.    nuevaColumna = columna - 2;
  133.    if((nuevaFila>=0&&nuevaFila<n)&&(nuevaColumna>=0&&nuevaColumna<n)&&(tablero[nuevaFila][nuevaColumna]=='0'))
  134.    {
  135.        tablero[nuevaFila][nuevaColumna] = 'x';
  136.        eliminadas--;
  137.    }
  138.    nuevaFila = fila - 1;
  139.    nuevaColumna = columna + 2;
  140.    if((nuevaFila>=0&&nuevaFila<n)&&(nuevaColumna>=0&&nuevaColumna<n)&&(tablero[nuevaFila][nuevaColumna]=='0'))
  141.    {
  142.        tablero[nuevaFila][nuevaColumna] = 'x';
  143.        eliminadas--;
  144.    }
  145.    return eliminadas;
  146. }
  147.  
  148. void imprimirTablero(char **tablero,int n)
  149. {
  150.     int i,j;
  151.     for(i = 0;i < n;i++)
  152.     {
  153.         printf("\n");
  154.         for(j = 0;j < n;j++)
  155.            printf("[%c]",tablero[i][j]);
  156.     }
  157.     printf("\n");
  158. }
  159.  
  160. int maximoCaballos(int totalCaballos[])
  161. {
  162.     int Maximo,i;
  163.     Maximo = totalCaballos[0];
  164.     for(i = 1;i < MAX_SOLUCIONES;i++)
  165.     {
  166.         if(totalCaballos[i] > Maximo)
  167.            Maximo = totalCaballos[i];
  168.     }
  169.     return Maximo;
  170. }
  171.  
  172.  

este es el codigo, pero no entiendo como puedo hacer que me saque el maximo posible sin necesidad de cambiar todo el codigo, me costo un poco de trabajo hacerlo y entender como iba a ser el algoritmo y todo, por eso no  quiero empezar desde 0, si pudieran ayudarme se los agradeceria muchisimo

de antemano gracias
Páginas: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20 21 22
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines