Mostrando entradas con la etiqueta Documentación clase. Mostrar todas las entradas
Mostrando entradas con la etiqueta Documentación clase. Mostrar todas las entradas

miércoles, 17 de diciembre de 2008

Ejercicio para llenar un vector con números al azar

/*Primero, el cuerpo principal*/
#include
#include "funciones_vector.h"

main(){
       int vector[10];
       inicializar_aleatorios();
       inicializar_vector(vector);
       mostrar(vector);
       rellena_azar(vector);
       getchar();
       mostrar(vector);
       getchar();
       getchar();
}
/*En el fichero llamado "funciones_vector.h" incluimos las funciones necesarias*/
/*Incializamos el generador de números aleatorios*/
/*Incializamos el generador de números aleatorios*/
#include
#include

void inicializar_aleatorios(){
     int semilla;
     semilla=time(0);
     srand(semilla);
     return;
}


/*Esta función genera un número al azar
entre 0 y 9, ambos incluidos*/
int tirada_dado(int n_caras){
    int respuesta;
    respuesta=rand()%10;
    return(respuesta);     
}

/*Esta función toma un vector de numeros
enteros y graba en cada una de las posiciones
un cero*/ 
void inicializar_vector(int vector[]){
     int cont;
     for(cont=0;cont<10;cont++)
       vector[cont]=0;
     return;
}
/*Esta función muestra por pantalla el contenido
del vector*/
void mostrar(int vector[]){
     int cont;
     printf("\n*********************");
     printf("\n*");
     for(cont=0;cont<10;cont++){
       printf("%d",vector[cont]);
       printf("*");
     }
     printf("\n*********************");
     return;
}
/*Esta función rellena el vector con números al azar*/

void rellena_azar(int vector[]){
     int cont,cont2,aux,repetir;
     //Rellenamos el vector
     for(cont=0;cont<10;cont++){
       do{
         /*Para cada posición, generamos
         un número al azar*/                         
         aux=tirada_dado(9);
         printf("\nHa salido un %d",aux);
         getchar();
         /**Vamos a comparar el número
         que nos ha salido con los números
         que ya tenemos guardados en las 
         casillas anteriores del vector*/
         for(cont2=0;cont2 <>
                                         
           if(aux==vector[cont2]){
              printf("\n %d coincide con lo que hay en la casilla %d",aux,cont2);
              repetir=1;
              break;
              }
           else{
              repetir=0;
           }
         }
       }while(repetir==1);
       vector[cont]=aux;
     }   
     return;
}

martes, 16 de diciembre de 2008

Ejercicio del juego de dados

#include
#include
#include
#include
int explica_juego(){
  char jugar;
  int respuesta=0;
  printf("\n****************************");
  printf("\n**** GRAN JUEGO DE DADOS ***");
  printf("\n****************************");
  printf("\n\n Este juego consiste en tirar el dado en tres turnos");
  printf("\nGana el jugador cuya suma de puntos sea mayor");
  printf("\nDesea usted jugar (s/n)");
  scanf("%c",&jugar);
  if(jugar=='s') respuesta=1;
  return(respuesta);
}
int tirar_dado(int n_caras){
    int respuesta;
    respuesta=rand()%6+1;
    return(respuesta);
}
int muestre_resultados(int puntuaciones[]){
    int respuesta=0;
    int mayor_puntuacion=puntuaciones[0];
    int jugador;
    printf("\n*************************");
    printf("\n******  RESULTADOS   ****");
    printf("\n*************************");
    for(jugador=0;jugador<3;jugador++){
     printf("\nJUGADOR %d = %d puntos",jugador+1,puntuaciones[jugador]);
     if(puntuaciones[jugador]>mayor_puntuacion){
       mayor_puntuacion=puntuaciones[jugador];
       respuesta=jugador;
     }
    }
    return(respuesta);  
    
    }
main(){
   int opcion=0,turno,valor_dado,jugador,ganador;  
   int puntuaciones[3];  
   int semilla;
   //Inicializamos el generador de números
   //aleatorios
   semilla=time(NULL);
   srand(semilla);
   //Ponemos el casillero de puntos a 0
   for(jugador=0;jugador<3;jugador++)
     puntuaciones[jugador]=0; 
  //Explicación del juego
  opcion=explica_juego();
  while(opcion==1){
  //Juego
  printf("\nCOMIENZA EL JUEGO");
  for(turno=0;turno<3;turno++){
    system("cls");
    printf("\nTURNO numero %d",turno+1);
    fflush(stdin);
    getchar();
    for(jugador=0;jugador<3;jugador++){
       printf("\nTira el jugador %d",jugador+1);
       fflush(stdin);
       getchar();
       valor_dado=tirar_dado(6); 
       printf("\nHa salido %d",valor_dado);
       puntuaciones[jugador]+=valor_dado;
       printf("\nAcumula %d puntos", puntuaciones[jugador]); 
    }                      
  }
  //Resultados 
  ganador=muestre_resultados(puntuaciones);
  printf("\nHa ganado el jugador %d",ganador+1);
  
  opcion=explica_juego();      
  }   
       
       
       
       
       
}

miércoles, 10 de diciembre de 2008

Ejercicios básicos sobre funciones

  • Algunos ejercicios básicos de funciones. No olvidéis las tres preguntas que es necesario formularse para escribir una función: 
  • ->¿Qué datos recibe la función?, 
  • <-¿Qué tipo de dato devuelve? 
  • ¿Cómo consigue obtener el dato que devuelve a partir de los datos que recibe?
  1. Una función que reciba un número y devuelva 1 si el número es mayor o igual que cero y -1 si el número es menor que cero. Solución.
  2. Una función que reciba dos números enteros y devuelva su diferencia siempre y cuando el primero sea mayor que el segundo. En caso contrario devuelve -1. Solución.
  3. Una función que reciba la longitud de los lados de un rectángulo y devuelva el valor del área. Solución.
  4. Una función que reciba el valor del radio de un círculo y devuelva el área. Solución.
  5. Una función que reciba la longitud de los lados de un triángulo y  devuelva 1 si formar un triángulo rectángulo y 0 en caso contrario (recuerde el teorema de Pitágoras). Solucion.
  6. Una función que reciba una palabra y devuelva el número de letras que tiene.
  7. Una función que reciba 2 palabras y devuelva 1 si han sido enviadas en orden alfabético y -1 en caso contrario. Devolverá cero si ambas palabras son idénticas. Compruebe que funciona correctamente con las palabras “casa” y “casero”.
  8. Una función que reciba una cadena del tipo antonio.lopez@saleszar.org y verifique si puede ser una dirección de correo correcta (es decir, contenga @ nombre de dominio seguido de un punto y terminación formada por 3 letras). Solución.
  9. Una función que reciba el nombre de usuario y una contraseña y verifique si cumple con las siguientes condiciones:
    • Tenga al menos ocho caracteres.
    • Contiene mayúsculas, minúsculas y números.
    • Es distinta total o parcialmente del nombre del usuario.
    • Solución.

lunes, 1 de diciembre de 2008

Bibliografía sobre funciones




Con los alumnos del Grado Superior estamos comenzando a tratar el apasionante y siempre emocionante mundo de las funciones. Como lo que da tiempo de ver en clase no sacia la sed inagotable de conocimientos de nuestros alumnos, os propongo documentación adicional (y adictiva) sobre el tema:









viernes, 31 de octubre de 2008

¿Dudas?:

Se ha decidido colocar esta entrada de blog como medio para solucionar aquellas dudas relacionadas con cualquier tema informático, no solo para los alumnos ya de "Saleszar" sino para cualquiera que se encuentre con algún problema que desee resolver.
Para resolver estas dudas contamos con la colaboración de muchos aficionados a la informatica ,amateurs y un maestro especializado en programación.

Si tienes alguna tan solo has de añadirla a los comentarios de esta entrada y te será resuelta lo más rapidamente posible. Gracias por el interes.

jueves, 23 de octubre de 2008

Propuesta de trabajo: Revisíón de software específico para crear diagramas de flujo

Un diagrama de flujo es un estandar que permite representar gráficamente los detalles algorítmicos de un proceso antes de traducirlo a un lenguaje concreto de programación. Aunque su uso principal es en informática, tambien podemos encontrar diagramas de flujo en economía, psicología o incluso en la descripción de los procesos organizativos en las certificaciones de calidad. 
Existen muchas herramientas para la elaboración de estos diagramas. El trabajo consistiría en revisar las más utilizadas de entre las que son gratuitas, poniendo especial énfasis en la búsqueda de aplicaciones que sean capaces de extraer estos diagramas directamente a partir del código C. 
Bibliografía básica (para empezar a buscar):

domingo, 19 de octubre de 2008

Origen y significado del código ASCII (1ª Parte)




El código ASCII (acrónimo inglés de American Standard Code for Information Interchange) es un código de caracteres basado en el alfabeto latino tal como se usa en inglés moderno y en otras lenguas occidentales. Fue creado en 1963 por el Comité Estadounidense de Estándares (ASA, conocido desde 1969 como el Instituto Estadounidense de Estándares Nacionales, o ANSI) como una evolución de los conjuntos de códigos utilizados entonces en telegrafía. Más tarde, en 1967, se incluyeron las minúsculas, y se redefinieron algunos códigos de control para formar el código conocido como US-ASCII.



ASCII es, en sentido estricto, un código de siete bits, lo que significa que usa cadenas de siete dígitos binarios (que van de 0 a 127 en base decimal) para representar caracteres. En el momento en el que se introdujo el código ASCII muchas computadoras trabajaban con grupos de ocho bits (bytes u octetos), como la unidad mínima de información; donde el octavo bit se usaba habitualmente como bit de paridad con funciones de control de errores en líneas de comunicación u otras funciones específicas del dispositivo. Las máquinas que no usaban la comprobación de paridad asignaban al octavo bit el valor cero en la mayoría de los casos.


lunes, 29 de septiembre de 2008

Referencias sobre aritmética computacional

Para saber más sobre el por qué de los diferentes modos que utilizan las máquinas para representar los números.