BIENVENIDOS

Aquí encontrarás recursos importantes que te permitirán adquirir o reforzar conocimientos sobre el lenguaje de programación en ANSI C.

Mostrando entradas con la etiqueta srand. Mostrar todas las entradas
Mostrando entradas con la etiqueta srand. Mostrar todas las entradas

miércoles, 17 de abril de 2013

Examen del 17 de abril de 2013

Desarrollar un programa para desordenar un vector de n elementos aleatorios entre p y q no repetidos. El programa ordenará el vector en forma ascendente, los mostrará en pantalla y luego los desordenará y volverá a mostrar en pantalla para poder comprobar que se han escrito los mismos elementos en forma desordenada. Tanto para la generación de números como para el desordenamiento de elementos, se deberán emplear las funciones srand, time y rand. Adicionalmente, el programa deberá comprobar la relación entre n, p y q, porque no podría darse el caso en el que, por ejemplo, n=5, p=12 y q=15, porque la generación de números aleatorios no repetitivos entre 12 y 15 daría como resultado: 12, 13, 14, 15 pero esto se contrapone a n que, para este ejemplo, valdría 5. Es decir se pediría generar 5 números no repetidos, pero sólo se pueden generar 4 no repetidos entre 12 y 15.
Ejemplo: si n=10, p=5, q=25
Vector ordenado:
Vector desordenado:
5, 7, 8, 9, 11, 13, 15, 17, 18, 20
9, 17, 20, 5, 11, 8, 7, 13, 15, 18

Evaluación
Comentarios
10%
Orden
10%
Generación de n números aleatorios entre p y q.
10%
Ordenamiento de elementos
10%
Desordenamiento de elementos y presentación de los mismos
35%
Coherencia entre n, p y q
25%

NOTAS:
El programa deberá compilarse sin errores, de lo contrario será calificado sobre el 80%.
No se permite el uso de Internet, e-mail, usb, teléfonos celulares, ni ningún otro dispositivo que permita la consulta de códigos.
Puede usar qsort para ordenar los elementos del vector. Para ello puede usar el siguiente código:
/* Prototipo de la función de comparar */
int comparar(const void *arg1, const void *arg2)
{
if(*(int *)arg1 < *(int *)arg2)
return -1;
else if(*(int *)arg1 > *(int *)arg2)
return 1;
else
return 0;
}
Un ejemplo del uso de qsort es el siguiente:
qsort(lista, ELEMENTOS, sizeof(lista[0]), comparar);

Leer más...

Examen 16 de abril de 2013

Desarrollar un programa que calcule n números aleatorios entre p y q y los muestre en forma matricial en una matriz de l x k elementos ordenados ascendentemente por columnas. Las variables n, p, q, l y k deberán ser pedidas por teclado. Si el número de filas y columnas de la matriz no es suficiente para mostrar los n elementos, debería aparecer un mensaje de error indicando este error y pidiendo nuevamente los datos de l y k.

Ejemplo: si n=10, p=5, q=15, l=3, k=4, debería mostrarse una matriz:
5   9   12  14
7   9   13 
8  11  14

Evaluación:
Comentarios 10%
Orden 10%
Generación de n números aleatorios entre p y q 10%
Ordenamiento de elementos 10%
Impresión matricial 40%
Aprobación del tamaño de la matriz 10%

NOTAS: 
El programa deberá compilarse sin errores, de lo contrario será calificado sobre el 80%.
No se permite el uso de Internet, e-mail, usb, teléfonos celulares, ni ningún otro dispositivo que permita la consulta de códigos.

Puede usar qsort para ordenar los elementos del vector. Para ello puede usar el siguiente código:

/* Prototipo de la función de comparar */ 
int comparar(const void *arg1, const void *arg2) {  
if(*(int *)arg1 < *(int *)arg2)  
   return -1;  
else if(*(int *)arg1 > *(int *)arg2) 
   return 1;  
else 
   return 0; } 

Un ejemplo del uso de qsort es el siguiente:
qsort(lista, ELEMENTOS, sizeof(lista[0]), comparar);

Código del programa

Leer más...

martes, 10 de abril de 2012

Simulación lanzamiento de dados

Desarrollar un programa que genere n lanzamientos de dos dados y muestre cuántas veces salió 2, 3, 4, etc. hasta 12, en cantidad y en porcentaje.

Código del programa

Leer más...

jueves, 22 de marzo de 2012

Examen 3 - I Bimestre (19 de marzo de 2012)

Desarrollar un programa que muestre el siguiente menú:

1. Aprender a sumar
2. Aprender a multiplicar
3. Salir

Si selecciona la opción 1, mostrará la operación suma entre dos números entre 1 y 5 y pedirá el resultado. Si el resultado es correcto mostrará la frase: "Correcto!", en caso contrario, deberá mostrar el mensaje: "Se equivocó, la respuesta era ..." y a continuación se deberá mostrar la respuesta correcta.
Se deberán mostrar 10 sumas. Al final de la práctica se indicará el porcentaje de acierto.

Si se selecciona la opción 2, se deberá pedir la tabla que se desea practicar. Se mostrará la multiplicación del número introducido multiplicado por otro número entre 1 y 10. Este proceso se realizará 10 veces y así mismo en cada operación se indicará si el resultado fue o no correcto. Si el resultado introducido es correcto, se mostrará el mensaje "Bien hecho!" y en caso contrario deberá escribir “Lo siento, se ha equivocado", "La respuesta correcta era ..." y a continuación se deberá mostrar la respuesta correcta.
Luego de hacer 10 operaciones, se mostrará el mensaje "Ud. ha realizado 10 operaciones de las cuales ha contestado X correctamente". Los números tanto para las sumas como para las multiplicaciones, esto es, 1 a 5 o 1 a 10, respectivamente, deberán aparecer aleatoriamente para lo cual el profesor les indicará cómo hacerlo.

Código del programa

Leer más...

martes, 1 de noviembre de 2011

Ejercicio 2 sobre Arreglos (funciones aleatorias)

Realizar un programa que lea 20 números (entre el 1 y el 10) y muestre aquel o aquellos que hayan aparecido más veces. 

El programa preguntará si se quieren introducir los 20 números y en el caso en que la respuesta sea negativa rellenará el array con números aleatorios. 

Nota: Para la generación de los números aleatorios, se deberán utilizar las funciones rand, srand, time y la constantes definida RAND_MAX. 

int rand (void): retorna un valor pseudoaleatorio entre 0 y el valor de la constante RAND_MAX. 

Leer más...