• Domingo 28 de Abril de 2024, 13:02

Mostrar Mensajes

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


Temas - Arsys

Páginas: [1]
1
MySQL / Tipo De Dato Autoincrementable Para Id
« en: Jueves 22 de Septiembre de 2005, 00:20 »
Quisiera saber si existe algún tipo de dato incrementable.

La idea es que cuando inserte los datos a través de un formulario que también me fuese registrando en ese tipo de dato el ID.

Por ejemplo, si tengo una tabla con nombres de personas y sus teléfonos, que con el primer registro el ID valga 1, el segundo valga 2, el tercero valga 3, etc,etc.

Saludos

2
C/C++ / Cadenas En Tablas
« en: Viernes 4 de Junio de 2004, 17:55 »
Pues eso, me gustaría saber si se pueden meter las cadenas de letras en tablas.

Por ejemplo, pedir una palabra y almacenarla en una tabla.

3
C/C++ / 4 En Raya
« en: Viernes 23 de Abril de 2004, 20:25 »
Estoy haciendo un programa que funcione como el típico 4 en raya de toda la vida.
Pero una de las funciones  (en concreto la de mirarDiagD), no me funciona correctamente, y por mucho que miro y remiro no encuentro donde puede estar el error, ya que es similar a la de mirarDiagI pero esta si que funciona bien. Me falla solo al ejecutarse, se compila perfectamente.



A ver si alguien me puede echar una mano y se le ocurre donde puede estar el fallo.

Código: Text
  1.  
  2. #include <stdio.h>
  3.  
  4. int enraya(int tab[][7], int j);
  5. int mirarhoriz(int tab[][7], int f, int c, int j);
  6. int mirarvert(int tab[][7], int f, int c, int j);
  7. int mirardiagI(int tab[][7], int f, int c, int j);
  8. int mirardiagD(int tab[][7], int f, int c, int j);
  9. int esta_lleno(int tab[][7]);
  10. void vaciar_tablero(int tab[][7]);
  11. int pintar_tablero(int tab[][7]);
  12. void poner_ficha(int tab[][7], int j);
  13.  
  14. void main(void)
  15. {
  16.     int tablero[6][7];
  17.     int jugar;
  18.     int x;
  19.     int jugador;
  20.     
  21.     jugar=1;
  22.     
  23.     while(jugar==1)
  24.     {
  25.         //vaciamos el tablero
  26.         vaciar_tablero(tablero);
  27.         jugador=1;
  28.         //pintamos el tablero
  29.         pintar_tablero(tablero);
  30.         
  31.         //si el tablero no está lleno ni hay 4 en raya se continúa la partida
  32.         while((!enraya(tablero,jugador)) && (!esta_lleno(tablero)))
  33.         {
  34.             poner_ficha(tablero,jugador);
  35.             if(jugador==1)jugador=2;
  36.             else jugador=1;
  37.             pintar_tablero(tablero);
  38.         }
  39.         
  40.         //si hay 4 en raya se dice quien ganó y se pregunta si se quiere continuar jugando
  41.         if(enraya(tablero,jugador))
  42.         {
  43.             if(jugador==1)printf("gano 2");
  44.             else printf("gano 1");
  45.         }
  46.         else printf("\nempate");
  47.         printf("\notra?(s/n)");
  48.         scanf("%c", &x);
  49.         if(x=='n')jugar=0;
  50.     }
  51. }
  52.  
  53. //función para comprobar si hay 4 en raya
  54. int enraya(int tab[][7], int j)
  55. {
  56.     int f;
  57.     int c;
  58.     int atopado;
  59.     atopado=0;
  60.     f=0;
  61.     
  62.     while((atopado==0) || (f<=5))
  63.     {
  64.         c=0;
  65.         while((atopado==0) && (c<=6))
  66.         {
  67.                 atopado=(mirarhoriz(tab,f,c,j) ||
  68.                 mirarvert(tab,f,c,j) || mirardiagI(tab,f,c,j)
  69.                 || mirardiagD(tab,f,c,j));
  70.                 c++;
  71.         }
  72.         f++;
  73.     }
  74.     return atopado;
  75. }
  76.  
  77. //función para comprobar si hay 4 en raya en horizontal
  78. int mirarhoriz(int tab[][7], int f, int c, int j)
  79. {
  80.     int atopado=0;
  81.     if(c<4)
  82.     {
  83.         if((tab[f][c]==j) && (tab[f][c+1]==j) && (tab[f][c+2]==j) &&
  84.         (tab[f][c+3]==j))atopado=1;
  85.         else atopado=0;
  86.     }
  87.     else atopado=0;
  88.     return atopado;
  89. }
  90.  
  91. //función para comprobar si hay 4 en raya en vertical
  92. int mirarvert(int tab[][7], int f, int c, int j)
  93. {
  94.     int atopado=0;
  95.     if(f<3)
  96.     {
  97.         if((tab[f][c]==j) && (tab[f+1][c]==j) && (tab[f+2][c]==j) &&
  98.         (tab[f+3][c]==j))atopado=1;
  99.         else atopado=0;
  100.         return atopado;
  101.     }
  102. }
  103.  
  104.  
  105. //función para comprobar si hay 4 en raya en diagonal izquierda
  106. int mirardiagI(int tab[][7], int f, int c, int j)
  107. {
  108.     int atopado=0;
  109.     if((c>2) && (f<3))
  110.     {
  111.         if((tab[f][c]==j) && (tab[f+1][c-1]==j) && (tab[f+2][c-2]==j) &&
  112.         (tab[f+3][c-3]==j))atopado=1;
  113.         else atopado=0;
  114.     }
  115.     else atopado=0;
  116.     return atopado;
  117. }
  118.  
  119. //función para comprobar si hay 4 en raya en diagonal derecha (esta es la que falla)
  120. int mirardiagD(int tab[][7], int f, int c, int j)
  121. {
  122.     int atopado=0;
  123.     if((c>4) && (f<3))
  124.     {
  125.         if((tab[f][c]==j) && (tab[f+1][c+1]==j) && (tab[f+2][c+2]==j) &&
  126.         (tab[f+3][c+3]==j))atopado=1;
  127.         else atopado=0;
  128.     }
  129.     else atopado=0;
  130.     printf("%d", atopado);
  131.     return atopado;
  132. }
  133.  
  134. //función para vaciar el tablero al principio de la partida
  135. void vaciar_tablero(int tab[][7])
  136. {
  137.     int c;
  138.     int f=0;
  139.     
  140.     while(f<=5)
  141.     {
  142.         c=0;
  143.         while(c<=6)
  144.         {
  145.              tab[f][c]=0;  
  146.              c++;
  147.         }
  148.         f++;
  149.     }
  150. }
  151.  
  152. //función para pintar el tablero en pantalla
  153. int pintar_tablero(int tab[][7])
  154. {
  155.     int f;
  156.     int c;
  157.     f=0;
  158.     
  159.     printf("\n");
  160.     while(f<=5)
  161.     {
  162.         c=0;
  163.         while(c<=6)
  164.         {
  165.                 if(tab[f][c]!=0)
  166.                 {
  167.                     if(tab[f][c]==1)printf("A");
  168.                     else printf("B");
  169.                 }
  170.                 else printf("O");
  171.                 c++;
  172.         }
  173.         f++;
  174.         printf("\n");
  175.     }
  176. }
  177.  
  178. //función para comprobar si el tablero está lleno
  179. int esta_lleno(int tab[][7])
  180. {
  181.     int lleno=1;
  182.     int f=0;
  183.     int c;
  184.     
  185.     while((f<=5) && (lleno))
  186.     {
  187.         c=0;
  188.         while((c<=6) && (lleno))
  189.         {
  190.             if(tab[f][c]==0)lleno=0;
  191.             c++;
  192.         }
  193.         f++;
  194.     }
  195.     return lleno;
  196. }          
  197.  
  198. //función para poner fichas
  199. void poner_ficha(int tab[][7], int j)
  200. {
  201.     int c, f=5, jugada, turno=0;
  202.     
  203.     printf("\nJugador %d, introduzca columna: ", j);
  204.     scanf("%d", &jugada);
  205.     
  206.     while(turno==0)
  207.     {
  208.         if(f>=0)
  209.         {
  210.             if(tab[f][jugada-1]==0)
  211.             {
  212.                 tab[f][jugada-1]=j;
  213.                 turno=1;
  214.             }
  215.         }
  216.         f--;
  217.     }
  218. }        
  219.  
  220.  

4
C/C++ / Ejercicio De Arrays
« en: Miércoles 11 de Febrero de 2004, 22:37 »
Estoy intentado hacer un ejercicio que dice así:

Citar
Escriba un programa que lea diez números introducidos por el usuario y que informe sobre si alguno coincide

Pues bien, este es el código que he escrito:

#include <stdio.h>

void main(void)
{
    int i, c, count[10];
    //Relleno el array con 10 números
    for(i=0; i<10; i++){
        printf("Introduzca el numero %d: ", i+1);
        scanf("%d", &count);
    }
        //Función para posiciones count
    for(i=0; i<10; i++){
        //función para posiciones count[c]
        for(c=0; c<10; c++){
        /*comparo count y count[c], si coinciden los números que contienen
        y están en posiciones diferentes, lo muestro por pantalla*/
                if((count=count[c]) && (i!=c))
                        printf("el numero %d y el numero %d coinciden \n", i+1, i+1);
        }
    }
    system("pause");
}

Pero no funciona correctamente, y no logro comprender porqué por muchas vueltas que le doy, a ver si alguien se anima a echarle un vistazo y me indica donde puede estar el fallo (no da problemas de sintaxis).

5
C/C++ / Re: Programa para calcular el tiempo que se tarda en recorre
« en: Viernes 29 de Agosto de 2003, 20:06 »
Esto es lo que tengo hecho:

 
Citar
#include <stdio.h>

unsigned long int distancia, resultado;

int main(int argv, char **argc)

{
  printf("Introduzca la distancia: ");
  scanf("%lu", &distancia);
 
  printf("La velocidad del sonido tarda %lu s en recorrer esa distancia", soundspeed());
 
  /*esta función dada la distancia, calcula el tiempo que se tarda a la velocidad
  del sonido*/
  soundspeed()
  {
    resultado=distancia/344;
    return resultado;
  }
  printf("nn");
  system("pause");
}


Pero al compilarlo me da error, a ver si alguien me puede indicar que es lo que he escrito mal.

Saludos :hippi:

6
C/C++ / Re: Distinguir numeros positivos de numeros negativos
« en: Jueves 28 de Agosto de 2003, 19:00 »
Pues eso, tengo que crear un programa con un if anidado que al introducir un número diga si es 0, negativo, o positivo y he escrito lo siguiente:


 
Citar
#include <stdio.h>

int main(int argv, char **argc)

{
  int num;
  printf("Introduzca un numero: ");
  scanf("%d", &num);
 
  if(num!=0)
    {
      /*pongo como condición del if el "-" para indicar que el numero es negativo"*/
      if(num='-')printf("nEl numero es negativo.");
      else printf("nEl numero es positivo.");
    }
  else printf("nEl numero es 0.");
  printf("nn");
  system("pause");
}


Lo he revisado varias veces y en principio me parece que está bien escrito, sin embargo al introducir un numero positivo siempre dice que es negativo.

A ver si alguien sabe decirme donde está el error.

Saludos :hippi:

7
C/C++ / Re: Ordenar letras por orden alfabético
« en: Lunes 25 de Agosto de 2003, 18:13 »
Pues eso, estoy escribiendo un programa que lea 10 letras y que muestre la que va en primer lugar en el alfabeto.

He hecho esto hasta ahora:


 
Citar
#include <stdio.h>

int main(int argv, char **argc)

{
  int num, ch;
 
  for(num=1; num<11; num++)
  {
    printf("Introduzca la letra %d: ", num);
 
    ch=getche();
    printf("n");
  }
  printf("n");
  system("pause");
}


Pero no se me ocurre como hacer para ordenar las letras.

A ver si alguien me da alguna idea.

Saludos :hippi:

8
C/C++ / Re: Problemas con un for
« en: Lunes 25 de Agosto de 2003, 16:17 »
Este es el programa en cuestión:

 
Citar
/* Este programa pide el numero de habitaciones de una casa y posteriormente
pide las dimensiones (en metros cuadrados) de cada habitación, para calcular
después los metros cuadrados totales de la casa */

#include <stdio.h>

int main(int argv, char **argc)

{  
  int habitaciones, m2, i;
 
  printf("Introduzca el numero de habitaciones: ");
  scanf("%d", &habitaciones);
 
  for(i=1; i<=habitaciones; i++);
  {
    printf("nIntroduzca las dimensiones de la habitacion %d en metros cuadrados: ", i);
    scanf("%d", &m2);
  }
 
  printf("Los metros cuadrados totales son %dnn", m2);
 
  system("pause");
}
   


Pues bien, al ejecutar el programa en lugar de sustituir el especificador de formato %d por el número i del for, me lo sustituye por el numero que se introduce de habitaciones + 1.

Es decir, que si io le digo que el numero de habitaciones es 5, después cuando pide los metros cuadrados me los pide de la habitación 6.

A ver si a alguien se le ocurre por que puede ser, porque io he estado dándole vueltas y no ha habido manera de entender porque hace eso . . .  :ayuda:

Saludos

9
C/C++ / Re: Funcion para limpiar pantalla
« en: Miércoles 20 de Agosto de 2003, 16:08 »
Pues eso, que me gustaría saber que función he de utilizar para limpiar la pantalla.

En programas de MS-DOS me refiero.

Saludos

Páginas: [1]