|
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
« 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
« 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
« 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. #include <stdio.h> int enraya(int tab[][7], int j); int mirarhoriz(int tab[][7], int f, int c, int j); int mirarvert(int tab[][7], int f, int c, int j); int mirardiagI(int tab[][7], int f, int c, int j); int mirardiagD(int tab[][7], int f, int c, int j); int esta_lleno(int tab[][7]); void vaciar_tablero(int tab[][7]); int pintar_tablero(int tab[][7]); void poner_ficha(int tab[][7], int j); void main(void) { int tablero[6][7]; int jugar; int x; int jugador; jugar=1; while(jugar==1) { //vaciamos el tablero vaciar_tablero(tablero); jugador=1; //pintamos el tablero pintar_tablero(tablero); //si el tablero no está lleno ni hay 4 en raya se continúa la partida while((!enraya(tablero,jugador)) && (!esta_lleno(tablero))) { poner_ficha(tablero,jugador); if(jugador==1)jugador=2; else jugador=1; pintar_tablero(tablero); } //si hay 4 en raya se dice quien ganó y se pregunta si se quiere continuar jugando if(enraya(tablero,jugador)) { if(jugador==1)printf("gano 2"); else printf("gano 1"); } else printf("\nempate"); printf("\notra?(s/n)"); scanf("%c", &x); if(x=='n')jugar=0; } } //función para comprobar si hay 4 en raya int enraya(int tab[][7], int j) { int f; int c; int atopado; atopado=0; f=0; while((atopado==0) || (f<=5)) { c=0; while((atopado==0) && (c<=6)) { atopado=(mirarhoriz(tab,f,c,j) || mirarvert(tab,f,c,j) || mirardiagI(tab,f,c,j) || mirardiagD(tab,f,c,j)); c++; } f++; } return atopado; } //función para comprobar si hay 4 en raya en horizontal int mirarhoriz(int tab[][7], int f, int c, int j) { int atopado=0; if(c<4) { if((tab[f][c]==j) && (tab[f][c+1]==j) && (tab[f][c+2]==j) && (tab[f][c+3]==j))atopado=1; else atopado=0; } else atopado=0; return atopado; } //función para comprobar si hay 4 en raya en vertical int mirarvert(int tab[][7], int f, int c, int j) { int atopado=0; if(f<3) { if((tab[f][c]==j) && (tab[f+1][c]==j) && (tab[f+2][c]==j) && (tab[f+3][c]==j))atopado=1; else atopado=0; return atopado; } } //función para comprobar si hay 4 en raya en diagonal izquierda int mirardiagI(int tab[][7], int f, int c, int j) { int atopado=0; if((c>2) && (f<3)) { if((tab[f][c]==j) && (tab[f+1][c-1]==j) && (tab[f+2][c-2]==j) && (tab[f+3][c-3]==j))atopado=1; else atopado=0; } else atopado=0; return atopado; } //función para comprobar si hay 4 en raya en diagonal derecha (esta es la que falla) int mirardiagD(int tab[][7], int f, int c, int j) { int atopado=0; if((c>4) && (f<3)) { if((tab[f][c]==j) && (tab[f+1][c+1]==j) && (tab[f+2][c+2]==j) && (tab[f+3][c+3]==j))atopado=1; else atopado=0; } else atopado=0; printf("%d", atopado); return atopado; } //función para vaciar el tablero al principio de la partida void vaciar_tablero(int tab[][7]) { int c; int f=0; while(f<=5) { c=0; while(c<=6) { tab[f][c]=0; c++; } f++; } } //función para pintar el tablero en pantalla int pintar_tablero(int tab[][7]) { int f; int c; f=0; printf("\n"); while(f<=5) { c=0; while(c<=6) { if(tab[f][c]!=0) { if(tab[f][c]==1)printf("A"); else printf("B"); } else printf("O"); c++; } f++; printf("\n"); } } //función para comprobar si el tablero está lleno int esta_lleno(int tab[][7]) { int lleno=1; int f=0; int c; while((f<=5) && (lleno)) { c=0; while((c<=6) && (lleno)) { if(tab[f][c]==0)lleno=0; c++; } f++; } return lleno; } //función para poner fichas void poner_ficha(int tab[][7], int j) { int c, f=5, jugada, turno=0; printf("\nJugador %d, introduzca columna: ", j); scanf("%d", &jugada); while(turno==0) { if(f>=0) { if(tab[f][jugada-1]==0) { tab[f][jugada-1]=j; turno=1; } } f--; } }
4
« en: Miércoles 11 de Febrero de 2004, 22:37 »
Estoy intentado hacer un ejercicio que dice así: 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
« en: Viernes 29 de Agosto de 2003, 20:06 »
Esto es lo que tengo hecho: #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
6
« 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: #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
7
« 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: #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
8
« en: Lunes 25 de Agosto de 2003, 16:17 »
Este es el programa en cuestión: /* 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 . . . Saludos
9
« 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]
|
|
|