Last active
May 12, 2022 11:09
-
-
Save erseco/bdf57a233dfefc5863ecaabb351b967a to your computer and use it in GitHub Desktop.
Código para realizar el sorteo de bolas de una oposición a Profesor de Enseñanza Secundaria, Especialidad Informática
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Código para realizar el sorteo de bolas de una oposición a Profesor de Enseñanza Secundaria, Especialidad Informática | |
#include <stdio.h> | |
#include <string.h> | |
#include <stdlib.h> | |
#include <time.h> | |
// Colores ansi para la consola | |
#define BLACK "\033[0m" | |
#define RED "\033[31m" | |
#define GREEN "\033[32m" | |
#define YELLOW "\033[33m" | |
#define BLUE "\033[34m" | |
#define MAGENTA "\033[35m" | |
#define CYAN "\033[36m" | |
#define WHITE "\033[37m" | |
#define BOLD "\033[1m" // Negrita | |
const int nBOLAS = 5; | |
const int nTEMAS = 74; | |
// Estructura que almacenará la tupla numero:tema | |
struct tema { | |
int numero; | |
char* descripcion; | |
}; | |
struct tema temas[nTEMAS]; | |
void inicializarTemas(){ | |
// Establecemos los numeros de los temas | |
for(int i=0;i<nTEMAS;i++){ | |
temas[i].numero = i+1; | |
} | |
// Establecemos los temas | |
temas[0].descripcion = "Representación y comunicación de la información."; | |
temas[1].descripcion = "Elementos funcionales de un ordenador digital."; | |
temas[2].descripcion = "Componentes, estructura y funcionamiento de la Unidad Central de Proceso."; | |
temas[3].descripcion = "Memoria interna. Tipos. Direccionamiento. Características y funciones."; | |
temas[4].descripcion = "Microprocesadores. Estructura. Tipos: Comunicación con el exterior:"; | |
temas[5].descripcion = "Sistemas de almacenamiento externo. Tipos. Características y funcionamiento."; | |
temas[6].descripcion = "Dispositivos periféricos de entrada/salida. Características y funcionamiento."; | |
temas[7].descripcion = "Hardware» comercial de un ordenador. Placa base. Tarjetas controladoras de dispositivos y de entrada/salida:"; | |
temas[8].descripcion = "Lógica de circuitos. Circuitos combinacionales y secuenciales."; | |
temas[9].descripcion = "Representación interna de los datos."; | |
temas[10].descripcion = "Organización lógica de los datos. Estructuras estáticas."; | |
temas[11].descripcion = "Organización lógica de los datos. Estructuras dinámicas."; | |
temas[12].descripcion = "Ficheros. Tipos. Características. Organizaciones."; | |
temas[13].descripcion = "Utilización de ficheros según su organización."; | |
temas[14].descripcion = "Sistemas operativos. Componentes. Estructura. Funciones. Tipos."; | |
temas[15].descripcion = "Sistemas operativos: Gestión de procesos."; | |
temas[16].descripcion = "Sistemas operativos: Gestión de memoria."; | |
temas[17].descripcion = "Sistemas operativos: Gestión de entradas/salidas."; | |
temas[18].descripcion = "Sistemas operativos: Gestión de archivos y dispositivos."; | |
temas[19].descripcion = "Explotación y Administración de sistemas operativos monousuario. y. multiusuario."; | |
temas[20].descripcion = "Sistemas informáticos. Estructura física y funcional."; | |
temas[21].descripcion = "Planificación y explotación de sistemas Informáticos. Configuración. Condiciones de instalación. Medidas de seguridad. Procedimientos de uso."; | |
temas[22].descripcion = "Diseño de algoritmos. Técnicas descriptivas."; | |
temas[23].descripcion = "Lenguajes de programación. Tipos. Características."; | |
temas[24].descripcion = "Programación estructurada. Estructuras básicas. Funciones y Procedimientos."; | |
temas[25].descripcion = "Programación modular. Diseño de funciones. Recursividad. Librerías."; | |
temas[26].descripcion = "Programación orientada a objetos. Objetos. Clases. Herencia. Polimorfismo. Lenguajes."; | |
temas[27].descripcion = "Programación en tiempo real. Interrupciones. Sincronización y comunicación entre tareas. Lenguajes."; | |
temas[28].descripcion = "Utilidades para el desarrollo y prueba de programas. Compiladores. Intérpretes. Depuradores:"; | |
temas[29].descripcion = "Prueba y documentación de programas. Técnicas."; | |
temas[30].descripcion = "Lenguaje C: Características generales. Elementos del lenguaje. Estructura de un programa. Funciones de librería y usuario. Entorno de compilación. Herramientas para la elaboración y depuración de programas en lenguaje C."; | |
temas[31].descripcion = "Lenguaje C: Manipulación de estructuras de datos dinámicas y estáticas. Entrada y salida de datos., Gestión de punteros. Punteros a funciones."; | |
temas[32].descripcion = "Programación en lenguaje ensamblador. Instrucciones básicas. Formatos. Direccionamientos."; | |
temas[33].descripcion = "Sistemas gestores de base de datos. Funciones. Componentes. Arquitecturas de referencia y operacionales. Tipos de sistemas."; | |
temas[34].descripcion = "La definición de datos. Niveles de descripción. Lenguajes. Diccionario de datos."; | |
temas[35].descripcion = "La manipulación de datos. Operaciones. Lenguajes. Optimización de consultas."; | |
temas[36].descripcion = "Modelo de datos jerárquico y en red. Estructuras. Operaciones."; | |
temas[37].descripcion = "Modelo de datos relacional. Estructuras. Operaciones. Algebra relacional."; | |
temas[38].descripcion = "Lenguajes para la definición y manipulación de datos en sistemas de base de datos relacionales. Tipos. Características. Lenguaje SQL."; | |
temas[39].descripcion = "Diseño de bases de datos relacionales."; | |
temas[40].descripcion = "Utilidades de los sistemas gestores de base de datos para. el desarrollo de aplicaciones. Tipos. Características."; | |
temas[41].descripcion = "Sistemas de base de datos distribuidos."; | |
temas[42].descripcion = "Administración de sistemas de base de datos."; | |
temas[43].descripcion = "Técnicas y procedimientos para la seguridad de los datos."; | |
temas[44].descripcion = "Sistemas de información. Tipos. Características. Sistemas de Información en la empresa."; | |
temas[45].descripcion = "Aplicaciones informáticas de propósito general y para la gestión empresarial. Tipos. Funciones. Características."; | |
temas[46].descripcion = "Instalación y explotación de aplicaciones informáticas. Compartición de datos."; | |
temas[47].descripcion = "Ingeniería del «software». Ciclo de desarrollo del «software». Tipos de ciclos de desarrollo: Metodologías de desarrollo. Características distintivas de las principales metodologías de desarrollo utilizadas en la Unión Europea."; | |
temas[48].descripcion = "Análisis de sistemas: Modelización de tratamientos. Modelo de flujo de datos y control. Técnicas descriptivas. Documentación."; | |
temas[49].descripcion = "Análisis de sistemas: Modelización conceptual de datos. Técnicas descriptivas. Documentación."; | |
temas[50].descripcion = "Análisis de sistemas: Especificación funcional del sistema. Búsqueda y descripción de requisitos funcionales. Especificación de soluciones técnicas. Análisis de amabilidad técnica y económica."; | |
temas[51].descripcion = "Diseño lógico de funciones. Definición de funciones. Descomposición modular. Técnicas descriptivas. Documentación."; | |
temas[52].descripcion = "Diseño lógico de datos. Transformación del modelo conceptual y modelos lógicos. Análisis relacional de datos. Documentación."; | |
temas[53].descripcion = "Diseño de interfaces de usuario: Criterios de diseño. Descripción de interfaces. Documentación. Herramientas para la construcción de interfaces."; | |
temas[54].descripcion = "Diseño físico de datos y funciones. Criterios de diseño. Documentación."; | |
temas[55].descripcion = "Análisis y diseño orientado a objetos."; | |
temas[56].descripcion = "Calidad del «software». Factores y métricas. Estrategias de prueba."; | |
temas[57].descripcion = "Ayudas automatizadas para el desarrollo de «software» (herramientas CASE). Tipos. Estructura. Prestaciones."; | |
temas[58].descripcion = "Gestión y control de proyectos Informáticos. Estimación de recursos. Planificación temporal y organizativa. Seguimiento."; | |
temas[59].descripcion = "Sistemas basados en el conocimiento. Representación del conocimiento. Componentes y arquitectura."; | |
temas[60].descripcion = "Redes y servicios de comunicaciones."; | |
temas[61].descripcion = "Arquitecturas de sistemas de comunicaciones. Arquitecturas basadas en niveles. Estándares."; | |
temas[62].descripcion = "Funciones y servidos del nivel físico. Tipos y medios de transmisión. Adaptación al medio de transmisión. Limitaciones a la transmisión. Estándares."; | |
temas[63].descripcion = "Funciones y servidos del nivel de enlace. Técnicas. Protocolos."; | |
temas[64].descripcion = "Funciones y servicios del nivel de red y del nivel de transporte. Técnicas. Protocolos."; | |
temas[65].descripcion = "Funciones y servicios en niveles sesión, presentación y aplicación. Protocolos. Estándares."; | |
temas[66].descripcion = "Redes de área local. Componentes. Topologías. Estándares. Protocolos."; | |
temas[67].descripcion = "Software» de sistemas en red. Componentes. Funciones. Estructura."; | |
temas[68].descripcion = "Integración de sistemas. Medios de Interconexión. Estándares. Protocolos de acceso a redes de área extensa."; | |
temas[69].descripcion = "Diseño de sistemas en red local. Parámetros de diseño. Instalación y configuración de sistemas en red local."; | |
temas[70].descripcion = "Explotación y administración de sistemas en red local. Facilidades de gestión."; | |
temas[71].descripcion = "La seguridad en sistemas en red: Servicios de seguridad. Técnicas y sistemas de protección. Estándares."; | |
temas[72].descripcion = "Evaluación y mejora de prestaciones, en un sistema en red. Técnicas y procedimientos de medidas."; | |
temas[73].descripcion = "Sistemas multimedia."; | |
} | |
int main(){ | |
printf("Sorteo:\n"); | |
printf("-------\n"); | |
inicializarTemas(); | |
// Inicializamos el vector de bolas a 0 | |
int bolas[nBOLAS] = {0}; | |
// Establecemos la semilla del random, para que de valores aleatorios | |
srand(time(0)); | |
for (int i=0; i<nBOLAS; i++){ | |
int random = rand() % nTEMAS; | |
// Comprobamos si ya ha salido esta bola | |
for(int h=0; h<i; h++){ | |
if (bolas[h] == random){ | |
// Se podría dar el caso de que el nuevo numero ya estuviera, con lo que no es perfecto | |
random = rand() % nTEMAS; | |
} | |
} | |
bolas[i] = random; | |
} | |
for (int i=0; i<nBOLAS; i++){ | |
printf("Tema %d: %s%s%s\n", temas[bolas[i]].numero, GREEN, temas[bolas[i]].descripcion, BLACK); | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment