1+ #include <stdio.h>
2+
3+ void operadores ();
4+ void condicionales ();
5+ void iterativas ();
6+ void desafio ();
7+
8+
9+ /* OPERADORES
10+ Este programa (código) demuestra los operadores más comunes en C, clasificados en:
11+ - Aritméticos: para realizar cálculos matemáticos
12+ - Comparación: para comparar valores y generar resultados booleanos
13+ - Lógicos: para realizar operaciones con condiciones (AND, OR, NOT)
14+ - Asignación: para modificar el valor de una variable
15+ - Bits: para trabajar con operaciones a nivel de bits (AND, OR, desplazamientos) */
16+
17+ void operadores () {
18+
19+ // Operadores Aritméticos
20+ printf ("== Operadores Aritméticos ==\n" );
21+ int a = 5 , b = 10 , c = 5 ; // Variables globales de la función
22+ {
23+ printf ("Suma: %d + %d = %d\n" , a , b , a + b );
24+ printf ("Resta: %d - %d = %d\n" , a , b , a - b );
25+ printf ("Multiplicación: %d * %d = %d\n" , a , b , a * b );
26+ printf ("División: %d / %d = %d\n" , a , b , a / b ); // División por 0 da error
27+ printf ("Módulo: %d %% %d = %d\n\n" , a , b , a % b );
28+
29+ printf ("Signo negativo: %d → %d\n" , c , - c );
30+ c ++ ; // Incremento
31+ printf ("Incremento: %d → %d\n" , c - 1 , c ); // Mostrar el valor antes y después del incremento
32+ c -- ; // Decremento
33+ printf ("Decremento: %d → %d\n\n" , c + 1 , c ); // Mostrar el valor antes y después del decremento
34+ }
35+
36+ //Operadores de Comparación
37+ printf ("== Operadores de Comparación ==\n 0 (false) || 1 (true)\n" );
38+ {
39+ printf ("Igualdad: (%d == %d) = %d\n" , a , b , a == b );
40+ printf ("Diferencia: (%d != %d) = %d\n" , a , b , a != b );
41+ printf ("Mayor que: (%d > %d) = %d\n" , a , b , a > b );
42+ printf ("Menor que: (%d < %d) = %d\n" , a , b , a < b );
43+ printf ("Mayor o igual: (%d >= %d) = %d\n" , a , b , a >= b );
44+ printf ("Menor o igual: (%d <= %d) = %d\n\n" , a , b , a <= b );
45+ }
46+
47+ // Operadores Lógicos
48+ printf ("== Operadores Lógicos ==\n 0 (false) || 1 (true)\n" );
49+ {
50+ // AND (&&) - Solo es true si ambas son verdaderas
51+ printf ("¿Ambas son verdaderas? (%d == %d && %d > %d) = %d\n" , a , c , b , c , a == c && b > c );
52+ // OR (||) - Es true si al menos una es verdadera
53+ printf ("¿Alguna es verdadera? (%d == %d || %d < %d) = %d\n" , b , c , b , a , b == c || b < a );
54+ // NOT (!) - Invierte el valor de una condición
55+ printf ("Inverso (a == c); !(%d == %d) = %d\n\n" , a , c , !(a == c ));
56+ }
57+
58+ // Operadores de Asignación
59+ printf ("== Operadores de Asignación ==\n" );
60+ {
61+ int x = 2 ; // Variable local
62+
63+ x = 2 ; // Valor inicial de x
64+ printf ("(x = 2) = %d\n" , x );
65+ x += 7 ; // Equivalente a: x = x + 7"
66+ printf ("(x += 7) = %d\n" , x );
67+ x -= 3 ; // Equivalente a: x = x - 3
68+ printf ("(x -= 3) = %d\n" , x );
69+ x *= 5 ; // Equivalente a: x = x * 5
70+ printf ("(x *= 5) = %d\n" , x );
71+ x /= 10 ;
72+ printf ("(x /= 10) = %d\n" , x );
73+ x %= 2 ;
74+ printf ("(x %%= 2) = %d\n\n" , x );
75+ }
76+
77+ // Operadores de Bits
78+ printf ("== Operadores de Bits ==\n" );
79+ {
80+ int x = 3 ; // Variable local
81+ // Operaciones de bits con AND, OR, XOR, etc..
82+ printf ("(a & x) = %d\n" , a & x );
83+ printf ("(a | x) = %d\n" , a | x );
84+ printf ("(a ^ x) = %d\n" , a ^ x );
85+ printf ("(~a) = %d\n" , ~a );
86+ printf ("(x << 1) = %d\n" , x << 1 );
87+ printf ("(x >> 1) = %d\n\n" , x >> 1 );
88+ }
89+ }
90+
91+
92+
93+
94+ /* CONDICIONALES
95+ Este segmento explora las estructuras condicionales en C, que toma decisiones
96+ basadas en condiciones, cambiando su flujo según lo que ocurra. */
97+
98+ /* "if - else" Mejor cuando se comparan rangos de valores o condiciones
99+ complejas (>, <, !=). Más flexible para evaluaciones no exactas */
100+
101+ void condicionales () {
102+
103+ printf ("== Condicionales (if, else) ==\n" );
104+ int age = 20 ;
105+
106+ if (age >= 18 )
107+ {
108+ printf ("Tienes %d, eres mayor de edad\n" , age );
109+ }
110+ else
111+ {
112+ printf ("Tienes %d, eres menor de edad\n" , age );
113+ }
114+
115+ if (age >= 1 && age <= 18 ) { // Entre 1 y 17 años
116+ printf ("¿Cuál es tu videojuego favorito?\n\n" );
117+ }
118+ else if (age < 26 ) { // Desde los 18 hasta los 25 años
119+ printf ("¿Cuál es tu lenguaje de programación favorito?\n\n" );
120+ }
121+ else { // Desde los 25 años en adelante..
122+ printf ("¿Cuántos años de experiencia tienes programando?\n\n" );
123+ }
124+
125+
126+ // if-else + switch
127+
128+ printf ("== Condicionales (if-else + switch) ==\n> Sistema de roles\n" );
129+ int rol = 3 ; // Cambia el valor manualmente para probar distintos casos
130+
131+ if (rol >= 1 && rol <= 3 )
132+ {
133+ printf ("> Tu rol asignado: %d\n" , rol );
134+ }
135+ else
136+ {
137+ printf ("> ERROR\n" );
138+ }
139+
140+ /* "switch" Útil cuando se evalúa una variable contra valores específicos,
141+ como enteros o caracteres. Es más legible cuando hay muchas opciones */
142+
143+ switch (rol ) {
144+ case 1 :
145+ printf ("¡Bienvenido jugador! Puedes explorar y disfrutar del mundo, ¿quieres ver el tutorial?\n\n" );
146+ break ;
147+ case 2 :
148+ printf ("Saludos, Moderador. Puedes administrar ciertas funciones y mantener el orden\n\n" );
149+ break ;
150+ case 3 :
151+ printf ("Guild Master. Tienes control total sobre este mundo\n\n" );
152+ break ;
153+ default :
154+ printf ("Error: Rol no reconocido. Verifica el valor asignado\n\n" );
155+ }
156+ }
157+
158+
159+
160+
161+ /* ITERATIVAS (BUCLES)
162+ Estas estructuras permiten repetir bloques de código bajo ciertas condiciones.
163+ Se usan cuando queremos ejecutar algo varias veces sin escribir el código manulamente */
164+
165+ void iterativas () {
166+
167+ printf ("== Estructuras Iterativas ==\n" );
168+
169+
170+ // Bucle while - Se ejecuta mientras la condición sea verdadera
171+ printf ("> Bucle while:\n" );
172+ int i = 1 ;
173+
174+ while ( i <= 5 ) {
175+ printf ("Iteración %d\n" , i );
176+ i ++ ; // Incrementamos i hasta 5 para evitar un bucle infinito
177+ }
178+ printf ("\n" );
179+
180+
181+ // Bucle for: Utiliza una variable de control con inicio, condición y actualización
182+ printf ("> Bucle for:\n" );
183+ int f = 1 ;
184+
185+ for (f = 1 ; f <= 3 ; f ++ ) {
186+ printf ("Iteración %d\n" , f );
187+ }
188+ printf ("\n" );
189+
190+ // Bucle do-while: Garantiza al menos una ejecución antes de comprobar la condición
191+ printf ("> Bucle do-while:\n" );
192+ int d = 10 ; // Se ejecuta sin importar si la condición es falsa o verdadera al principio
193+
194+ do {
195+ printf ("Iteración %d\n" , d );
196+ d ++ ;
197+ }
198+ while (d <= 5 );
199+ printf ("\n" );
200+ }
201+
202+
203+
204+
205+ void desafio () {
206+
207+ //
208+ printf ("== Desafio Extra ==\n" );
209+
210+ for (int x = 10 ; x <= 55 ; x ++ ) {
211+ if (x != 16 && x % 2 == 0 && x % 3 != 0 )
212+ printf ("%d. " , x );
213+ }
214+ printf ("\n" );
215+ }
216+
217+
218+ // FIN. Gracias por ver :p
219+
220+ int main (void ) {
221+ operadores ();
222+ condicionales ();
223+ iterativas ();
224+ desafio ();
225+
226+ return 0 ;
227+ }
0 commit comments