├── 00_Introduccion └── readme.md ├── 01_Fundamentos_de_Programacion └── readme.md ├── 02_Operadores ├── 00_Operadores_de_Asignacion │ └── readme.md ├── 01_Operadores_de_Comparacion │ └── readme.md ├── 02_Operadores_Logicos │ └── readme.md ├── 03_Operadores_Aritmeticos │ └── readme.md └── readme.md ├── 03_Instrucciones_de_Decision ├── 00_Instruccion_IF_ELSE │ └── readme.md ├── 01_Instruccion_SWITCH │ └── readme.md └── readme.md ├── 04_Instrucciones_Ciclicas ├── 00_Instruccion_FOR │ └── readme.md ├── 01_Instruccion_WHILE │ └── readme.md ├── 02_Instruccion_DO_WHILE │ └── readme.md └── readme.md ├── 05_CSHARP_{C#} └── readme.md ├── README.md └── imagenes ├── ifelse2.png ├── precedencia.png └── readme.md /00_Introduccion/readme.md: -------------------------------------------------------------------------------- 1 | # Introducción 2 | 3 | ## Instalación de Visual Studio 2022 4 | 5 | 1. Descarga el SW en la siguiente liga: 6 | 7 | [Liga de instalación](https://visualstudio.microsoft.com/es/downloads/) 8 | 9 | 10 | ![image](https://github.com/user-attachments/assets/26b7fc2e-416c-4fb5-8df0-35c8f4bdc030) 11 | 12 | 13 | 14 | 2. Una vez descargado verás la siguiente imagen en tu Web Browser 15 | 16 | ![image](https://github.com/user-attachments/assets/20fa6e92-fa02-4b5b-b88d-6c5e5844d167) 17 | 18 | 19 | 3. Al abrir la aplicación verás diferentes opciones asegurate instalar la opción "Desktop Development in C++" o su equivalente en español, se muestra abajo: 20 | 21 | ![image](https://github.com/user-attachments/assets/d8623733-4936-4635-bf1e-864c18e8aee4) 22 | 23 | 4. Una vez que seleccionamos e instalamos aparecerá la siguiente pantalla de progreso. 24 | 25 | ![image](https://github.com/user-attachments/assets/b6d3ba71-065e-4cc6-a7f6-723b459db149) 26 | 27 | 5. Una vez instalado, encontrarás dos íconos de instalación, el programa y el instalador en tu ventana de aplicaciónes. 28 | 29 | ___ 30 | 31 | ## Puedo instalar este SW en MacBooks o cualquier HW de apple. 32 | 33 | > Desgraciamente este SW no es soportado por apple. 34 | 35 | ___ 36 | 37 | 38 | ### Como crear un programa en Visual Studio. 39 | 40 | 1. Una vez instalado, buscar el ícono que se muestra en la esquina inferior, y hacer click o doble click. 41 | 42 | ![image](https://github.com/user-attachments/assets/4eddaa43-6da8-41cc-b1e2-e0b68c88129f) 43 | 44 | 2. Aparecerá un cuadro de dialogo para crear un proyecto, como el que se muestra en la parte superior, oprimir el botón para crear un proyecto. 45 | 46 | ![image](https://github.com/user-attachments/assets/1d1a1653-f43c-4854-b934-57eca7c6ff65) 47 | 48 | 49 | 3. En la siguiente pantalla aparecerá que plantilla a usar, la que debes seleccionar en la parte superior, que dice **"Aplicación de consola"** y dice **C++**. Y oprimir el botón. Siguiente donde se úbica la flecha blanca. 50 | 51 | ![image](https://github.com/user-attachments/assets/49024eac-73ba-4d4b-a6df-f5a86baa25e8) 52 | 53 | 54 | 4. Selecciona el nombre del proyecto, puedes poner FP01, FP02, ... etc para llevar un control o un nombre que tu desees, este nombre no debe de llevar espacios. Los demás parámetros, dejalos como estan y oprime **Crear**. 55 | 56 | ![image](https://github.com/user-attachments/assets/5e068998-f1f6-4b0a-adeb-c2c808544ba8) 57 | 58 | 59 | 5. Te saldrá un mensaje, creando el proyecto, espera a la siguiente pantalla. 60 | 61 | ![image](https://github.com/user-attachments/assets/61086a96-f32c-486c-a732-b7fa519c2c9d) 62 | 63 | 6. Finalmente aparecerá el editor para poder programar en C++. 64 | 65 | ![image](https://github.com/user-attachments/assets/f56ffc34-11f1-41d2-8334-941187dd8767) 66 | 67 | ___ 68 | 69 | ## Porque usar C++ 70 | 71 | 1. Es un idioma artificial diseñado para ejecutar procesos que pueden ser llevados a cabo por máquinas como las computadoras. Ejemplo de un lenguaje de programación: **C++, C#, Java, Python** 72 | 73 | 2. Es un lenguaje formal para aprender, muy parecido a Java/Python para los ingenieros en Sistemas, o C#/Python para los Animadores Digitales o carreras afines, que continúen su formación en ese lenguaje, no hay cambios significativos. 74 | 75 | 3. Se conecta con los cursos subsecuentes para sistemas, ciencia de datos, ingeniería de videojuegos además de animación y arte digital. 76 | 77 | 4. Aunque Python es más popular para muchas aplicaciones de Inteligencia Artificial y Máquinas de aprendizaje, aprendiendo C++ correctamente, no implica dificultad en moverse a C#, Python o Java posteriormente, ya que Python simplifica la programación de lo aprendido en C++. 78 | 79 | 5. Para robótica o mecatrónica se usan primordialmente dos lenguajes, C++ y Phyton. 80 | 81 | 6. Es un lenguaje de alto nivel, de fácil uso, es un lenguaje formal orientado a objetos desarrollado por Microsoft. 82 | 83 | 7. C++ esta basado en el lenguaje de programación C. 84 | 85 | > Teorema Fundamental de la programación. 86 | > “Todo programa propio se puede escribir utilizando únicamente las estructuras de control secuencial, condicional e iterativa” 87 | 88 | Características de un programa propio. 89 | 90 | * Tiene un único o varios punto(s) de entrada y salida. 91 | * Existen caminos desde la entrada hasta la salida que pasan por parcial o totalmente por las partes del programa. 92 | * Todas las instrucciones son ejecutables y no deben existir ciclos infinitos. 93 | ___ 94 | 95 | ## Flujos de control de un programa 96 | 97 | Introducción. El principio fundamental de la programación estructurada es mantener el programa con controles adecuados, también conocidos como flujo de control y se basa en 3 estructuras: 98 | 99 | 1. **Estructura Secuencial.** Ejecuta una sentencia/instrucción una y después la siguiente ("una tras otra") hasta finalizar todas las instrucciones. 100 | 101 | ![image](https://github.com/user-attachments/assets/24a27954-23d5-4e1b-a352-c38334f789e4) 102 | 103 | 104 | 2. **Estructura codicional.** Se evalúa una expresión y, dependiendo del resultado, se decide la siguiente sentencia a ejecutar 105 | 106 | ![image](https://github.com/user-attachments/assets/50389508-a24a-4a75-8b9b-da5c9453e79b) 107 | 108 | 3. **Estructura iterativa.** Repetimos in bloque de sentencias hasta que sea verdadera una determinada condición. 109 | 110 | ![image](https://github.com/user-attachments/assets/fd6c53b0-b406-4a76-9e17-eca7c58de2f1) 111 | 112 | -------------------------------------------------------------------------------- /01_Fundamentos_de_Programacion/readme.md: -------------------------------------------------------------------------------- 1 | # Funciones principales de un lenguaje de programación. 2 | 3 | * 1\. **Comunicación con una computadora.** Usando instrucciones permite crear programas, funciones que cumplen un propósito específico. 4 | * 2\. **Creación de Software.** El software cumple objetivos de solucionar problemas o satisfacer necesidades específicas en una área especpifica de aplicación. 5 | * 3\. **Automatización.** Se usan en procesos repetitivos optimizando o substituyendo interacción humana, desde procesos sencillos, hasta muy complejos. 6 | * 4\. **Resolución de problemas.** Usando algoritmos y estructuras de datos. 7 | * 5\. **Interacción usuario-máquina.** Usando interfaces que permiten satisfacer necesidades de aquellos que lo usan. 8 | 9 | [Información adicional Unidad de Apoyo de Aprendizaje UNAM](https://programas.cuaed.unam.mx/repositorio/moodle/pluginfile.php/1023/mod_resource/content/1/contenido/index.html) 10 | 11 | ___ 12 | 13 | # Palabra Reservada. 14 | 15 | Son palabras usadas para escribir una gramática correcta que puede ser interpretada o compilada por la computadora para producir un resultado. 16 | 17 | ## Variables y Nombres de Variables 18 | 19 | Los nombres de variables deben de reflejar el uso para el que es usado la variable, y para que posteriores programadores puedan comprender el código. 20 | 21 | 22 | 1. Los nombres de variables pueden ser de cualquier longitud 23 | 3. Los nombres son diferenciables en mayúsculas o minúsculas. 24 | 4. Se pueden separar las asignaciones en la misma línea mediante una coma. 25 | 5. Puedes usar guión bajo "_" como separador o iniciador de un nombre de una variable. 26 | 6. Todas las variables deben llevar un tipo de variable. 27 | 28 | ## No debes... 29 | 30 | 1. No iniciar el nombre con un número. 31 | 2. No usar caracteres especiales como #,!,%,$ etc... 32 | 3. No existen espacios en ningun punto del nombre de una variable. 33 | 4. No uses mayúsculas y minúsculas, asumiendo que es la misma variable. 34 | 5. No declares más de una vez la variable en un programa. 35 | 36 | ___ 37 | 38 | # Estructuras de Salida 39 | 40 | ## Instrucción de salida cout 41 | 42 | **cout:** Se utiliza para imprimir texto o valores de consola. Pertenece a la biblioteca "Estandar" (std) de entrada y salida (iostream) se usa en combinación con el operador de inserción (<<). 43 | 44 | Ejemplo: 45 | 46 | ```cplusplus 47 | 48 | // Como se imprime? 49 | 50 | cout << "Mi nombre es : " << "Alumno" << endl; 51 | 52 | ``` 53 | 54 | Las comillas ("") se usan para definir rotúlos o letreros fijos que no cambian a lo largo de la ejecución de un programa. 55 | 56 | > Los valores que contiene una variable también pueden ser impresos mediante esta instrucción, abajo se muestran los ejemplos de cada tipo de variable. 57 | ___ 58 | 59 | # Estructuras de Entrada 60 | 61 | ## Instrucción de entrada cin 62 | 63 | **cin:** La instrucción cin se utiliza para recibir entradas desde la consola, normalmente utilizando el teclado, pero no esta reducido a este dispositivo, pueden ser escaners, joysticks, control de videojuegos etc. Pertenece a la biblioteca "Estandar" (std) de entrada y salida (iostream) 64 | 65 | ### Impresión de valores básicos 66 | 67 | Ejemplo: 68 | 69 | ```cplusplus 70 | 71 | // Como se imprime? 72 | 73 | int a; 74 | cout << "Ingresa un número entero: "; 75 | cin >> a; 76 | cout << "El número ingresado es: " << a << endl; 77 | 78 | ``` 79 | 80 | ____ 81 | 82 | # Manipulador endl 83 | 84 | **endl:** Se utiliza en cojunto con la instrucción cout, que corresponde a un comando que mueve el "cursor" a una nueva linea y funciona igual que la tecla retorno que normalmente usas en una computadora através de un teclado. 85 | 86 | > El uso de endl no solo mueve el cursor a una nueva línea, sino que también garantiza que cualquier contenido pendiente en el búfer se envíe a la salida. Esto puede ser útil para asegurarse de que los datos se impriman inmediatamente, 87 | > especialmente en situaciones de depuración o cuando se trabaja con dispositivos de salida que requieren una actualización inmediata. 88 | 89 | Ejemplo: 90 | 91 | ```cplusplus 92 | 93 | // Como se usa:? 94 | 95 | 96 | cout << "Línea 1: " << endl; 97 | cout << "Línea 2: " << endl; 98 | 99 | ``` 100 | 101 | > En este caso, endl asegura que cada mensaje se imprima en una nueva línea y que el búfer de salida se vacíe después de cada inserción. 102 | ___ 103 | 104 | # Errores comunes cuando aprendes programacion 105 | 106 | 107 | 1. **Olvidar el punto y coma (`;`)** al final de una instrucción. 108 | 2. **No inicializar variables**, lo que lleva a valores impredecibles. 109 | 3. **Confundir `=` con `==`**, asignando valores en lugar de comparar. 110 | 4. **Usar `cin` sin validar la entrada**, lo que puede generar errores inesperados. 111 | 5. **Escribir fuera de los limites de la funcion main()** Fuera de las llaves {} 112 | 6. **Errores de ortograficos**, usign en lugar de using. 113 | 7. **Ignorar los mensajes de error del compilador**, lo que dificulta la depuración. 114 | 115 | 116 | 117 | > [Fuente> ](https://luiselectronic.com/lenguaje-cpp/errores-comunes-en-cpp/) o [Fuente>](https://www.dlsi.ua.es/~slujan/files/errores.pdf). 118 | 119 | __ 120 | 121 | # Tipos de Variable 122 | 123 | Los tipos de variable se asocian a la identidad del valor de dicha variable a lo largo del problema estas identidades se dividen en cuatro tipos básicos: numérico, texto o alfabético, lógico, carácter 124 | ___ 125 | 126 | ## Enteros. Representa un número entero, son valores simples, que representan un valor numérico. 127 | 128 | --- 129 | 130 | ### short. Variable entera corta. 131 | 132 | > Limite: Rango -32,768 a 32,767. 133 | 134 | Ejemplo: 135 | 136 | ```cplusplus 137 | short a = 100; 138 | // Como se asignan valores desde consola? 139 | cout << "Ingresa un número short: "; 140 | cin >> a; 141 | // Como se imprime en consola? 142 | cout << "El número ingresado es: " << a << endl; 143 | 144 | ``` 145 | --- 146 | 147 | ### int. Variable entera normal. 148 | 149 | > Limite: Rango -2,147,483,648 a 2,147,483,647. 150 | 151 | Ejemplo: 152 | 153 | ```cplusplus 154 | int b = 1000; 155 | cout << "Ingresa un número entero: "; 156 | cin >> b; 157 | cout << "El número ingresado es: " << b << endl; 158 | ``` 159 | --- 160 | 161 | ### long. Variable entera larga. 162 | 163 | > Limite: Rango -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807. 164 | 165 | Ejemplo: 166 | 167 | ```cplusplus 168 | long long c = 555688722; 169 | cout << "Ingresa un número entero: "; 170 | cin >> c; 171 | cout << "El número ingresado es: " << c << endl; 172 | ``` 173 | 174 | #### Como se imprime una variable long long separado por comas 175 | ```cplusplus 176 | long long d = 123456789012345; 177 | // Crear un objeto de configuración regional para los números separados por comas 178 | locale loc(""); 179 | cout.imbue(loc); 180 | // Imprimir el número usando la configuración regional establecida 181 | cout << d << endl; 182 | ``` 183 | --- 184 | 185 | ### unsigned. Variable que solo registra números positivos. 186 | 187 | > Limite: Rango de una variable int 0 a 4,294,967,295 188 | 189 | Ejemplo: 190 | 191 | ```cplusplus 192 | unsigned int e = 2000; 193 | cout << "Ingresa un número entero: "; 194 | cin >> e; 195 | cout << "El número ingresado es: " << e << endl; 196 | ``` 197 | 198 | > Que pasa si asigno un número negativo a una variable declarada unsigned? Si asignas un número negativo a una variable declarada como unsigned en C++, el comportamiento que observarás es debido a cómo se representa y se trata la información en binario. Esto puede ser un tanto confuso porque C++ no arroja un error inmediato, sino que realiza una conversión de los bits del valor negativo al rango no negativo representable por el tipo unsigned. 199 | 200 | > Qué sucede exactamente? Cuando asignas un número negativo a una variable unsigned, el valor se convierte a su equivalente en el rango positivo utilizando aritmética de módulo. En términos simples, el valor binario del número negativo se interpreta como un número positivo en el espacio de los enteros sin signo. 201 | --- 202 | ## Números fraccionarios/con decimales 203 | 204 | ### float. Variable decimal con precisión simple. 205 | 206 | > Limite: Rango de una variable float Aproximadamente 1.2E-38 a 3.4E+38 207 | > Precisión: 6-7 digitos 208 | 209 | Ejemplo: 210 | 211 | ```cplusplus 212 | float f = 3.14f; 213 | cout << "Ingresa un número entero: "; 214 | cin >> f; 215 | cout << "El número ingresado es: " << f << endl; 216 | ``` 217 | --- 218 | 219 | ### double. Variable decimal con precisión doble. 220 | 221 | > Limite: Rango de una variable float Aproximadamente 2.3E-308 a 1.7E+308 222 | > Precisión 15-16 digitos 223 | 224 | Ejemplo: 225 | 226 | ```cplusplus 227 | double g = 3.1415926535; 228 | cout << "Ingresa un número entero: "; 229 | cin >> g; 230 | cout << "El número ingresado es: " << g << endl; 231 | ``` 232 | --- 233 | 234 | ### long double. Variable decimal con precisión extendida. 235 | 236 | > Limite: Varía según el compilador, pero generalmente más grande que double. 237 | > Precisión: 19-21 digitos 238 | 239 | Ejemplo: 240 | 241 | ```cplusplus 242 | long double h = 3.141592653589793238L; 243 | cout << "Ingresa un número entero: "; 244 | cin >> h; 245 | cout << "El número ingresado es: " << h << endl; 246 | ``` 247 | > NOTA: Usa al final del número f o L para especificar el número que quieres manejar. 248 | 249 | --- 250 | 251 | ### Como imprimir decimales la precisión correcta de decimales. 252 | 253 | La librería iomanip en C++ (abreviatura de input-output manipulation) proporciona funciones y manipuladores para formatear la salida de datos en std::cout. Es útil para ajustar la precisión decimal, definir la alineación del texto, controlar el relleno de espacios y modificar la representación numérica. 254 | 255 | Algunas funciones clave de iomanip: 256 | - std::setw(n): Define el ancho mínimo de un campo de salida. 257 | - std::setprecision(n): Controla el número de decimales en valores de punto flotante. 258 | - std::fixed: Fuerza la salida de números en formato decimal fijo. 259 | - std::scientific: Muestra números en notación científica. 260 | - std::setfill('x'): Rellena los espacios vacíos con un carácter específico. 261 | - std::left y std::right: Ajustan la alineación del texto. 262 | 263 | 264 | Se necesita añadir la librería y usar la función **fixed** y **setprecision(# de precision de decimales)** 265 | 266 | Ejemplo: 267 | 268 | ```cplusplus 269 | #include 270 | #include 271 | using namespace std; 272 | 273 | 274 | 275 | int main() { 276 | float f = 3.1415926f; 277 | double g = 3.141592653589793238; 278 | 279 | cout << fixed << setprecision(7); // Configuración para mostrar más decimales 280 | cout << "El número float es: " << f << endl; 281 | cout << fixed << setprecision(15); 282 | cout << "El número double es: " << g << endl; 283 | } 284 | ``` 285 | 286 | ___ 287 | 288 | ## bool. Variable booleana que puede tener solo dos valores {0,1} o {falso,verdadero}. 289 | 290 | > Por que solo usa 1 o 0? 291 | 292 | * Las variables booleanas en C++ solo usan 1 y 0 porque representan los dos estados posibles de un valor booleano: verdadero (true) y falso (false). En los sistemas de computación, estos valores se representan internamente como 1 para true y 0 para false debido a la simplicidad y eficiencia en la operación binaria. 293 | 294 | * El uso de 1 y 0 tiene varias ventajas: 295 | 296 | 1. Simplicidad: Es fácil trabajar con valores binarios en el nivel más bajo de hardware. 297 | 298 | 2. Eficiencia: Las operaciones lógicas y de control se pueden realizar rápidamente utilizando estos dos valores. 299 | 300 | 3. Compatibilidad: La representación binaria es estándar en casi todos los sistemas de programación y hardware. 301 | 302 | Ejemplo: 303 | 304 | ```cplusplus 305 | bool llueve = true; // Esto internamente es 1 306 | bool tiene_sombrilla = false; // Esto internamente es 0 307 | ``` 308 | 309 | ### La función boolalpha en C++ 310 | 311 | Se utiliza para imprimir valores booleanos como true o false en lugar de 1 o 0. Esto puede ser útil para hacer que la salida de tu programa sea más legible y comprensible. 312 | 313 | Ejemplo: 314 | 315 | ```cplusplus 316 | bool soleado = true; 317 | bool lloviendo = false; 318 | // Imprimir sin boolalpha 319 | cout << "Sin boolalpha:" << endl; 320 | cout << "es soleado? : " << soleado << endl; 321 | cout << "esta lloviendo? : " << lloviendo << endl; 322 | // Imprimir con boolalpha 323 | cout << boolalpha; 324 | // Activa boolalpha 325 | cout << "Con boolalpha:" << endl; 326 | cout << "es soleado? : " << soleado << endl; 327 | cout << "esta lloviendo?: " << lloviendo << endl; 328 | 329 | // Ejemplo de inferencia 330 | bool hayCalor = true; // 1 es verdad 331 | bool hayHumedad = true; // 1 es verdad 332 | cout << boolalpha; 333 | cout << "Calor ? " << hayCalor << endl; 334 | cout << "Humedad ? " << hayHumedad 335 | << endl; 336 | bool llueve = hayCalor and hayHumedad; 337 | cout << "Llueve ? " << llueve << endl; 338 | ``` 339 | 340 | --- 341 | 342 | ## Textos y Caracteres 343 | 344 | ### string. Es una representación de cadenas de caracteres que proporciona muchas funcionalidades útiles para manipular cadenas. 345 | 346 | En C++, puedes trabajar con cadenas de caracteres (strings) utilizando la clase std::string de la biblioteca estándar (Standard Template Library, STL) 347 | 348 | > Limite: El límite máximo de una std::string depende de la memoria disponible en el sistema. 349 | 350 | Ejemplo: 351 | 352 | ```cplusplus 353 | string saludo = "Hola, mundo!"; 354 | cout << saludo << endl; 355 | 356 | // Otro ejemplo 357 | // añade la libreria para usar la funcion getline() 358 | #include 359 | string nombre; 360 | cout << "¿Cómo te llamas? "; 361 | getline(cin, nombre); 362 | cout << "Encantado de conocerte, " << nombre << "!" << endl; 363 | 364 | ``` 365 | > Antes de usar esta instrucción usa cin.ignore(), para limpiar el buffer y pueda leer correctamente. 366 | --- 367 | 368 | ### char. Variable que almacena un solo caracter. 369 | 370 | > Limite: uede representar caracteres desde -128 a 127 o desde 0 a 255, dependiendo de si se considera signo o no. 371 | 372 | Ejemplo: 373 | 374 | ```cplusplus 375 | char letra = 'a'; 376 | char digito = '2'; 377 | char simbolo = '%'; 378 | // Como se imprime? 379 | cout << "Letra: " << letra << endl; 380 | cout << "digito: " << letra << endl; 381 | cout << "simbolo: " << letra << endl; 382 | ``` 383 | 384 | --- 385 | -------------------------------------------------------------------------------- /02_Operadores/00_Operadores_de_Asignacion/readme.md: -------------------------------------------------------------------------------- 1 | # Operadores de asignación 2 | 3 | * Los operadores de asignación son usados en C++ para asignar valores a varibles. 4 | * Por ejemplo a = 5, es una asignación simple, en el que asigna el valor de 5 a la variable "a" en la izquierda. 5 | * Existen varios operadores de asignación, por ejemplo a += 5, que suma el valor de 5 al valor que ya tenga a en el momento, y es equivalente a a = a + 5. 6 | * "=", x = 5, equivalente a la asignación de la variable x, el valor de 5. 7 | * "+=", x +=5 - equivalente a x = x + 5 8 | * "-=", x -=5 - equivalente a x = x - 5 9 | * "*=", x *=5 - equivalente a x = x * 5 10 | * "/=", x /=5 - equivalente a x = x / 5 11 | * "%=", x %=5 - equivalente a x = x % 5 12 | 13 | -------------------------------------------------------------------------------- /02_Operadores/01_Operadores_de_Comparacion/readme.md: -------------------------------------------------------------------------------- 1 | # Operadores comparativos 2 | 3 | Son usados para comparar valores. Y solo regresan un valor de verdadero o falso. De acuerdo a la expresión evaluada. 4 | ___ 5 | 6 | Todos los ejemplos usan las siguientes variables 7 | 8 | ```cplusplus 9 | // Enteros 10 | int n1 = 10; 11 | int n2 = 20; 12 | 13 | // Floats 14 | float f1 = 1.5; 15 | float f2 = 5.2; 16 | ``` 17 | ___ 18 | 19 | ## ">" Mayor a - Verdadero si el operando izquierdo es mayor al derecho, x > y. 20 | 21 | ```cplusplus 22 | // 1. Mayor que 23 | cout << "(n1 > n2): " << (n1 > n2) << endl; 24 | cout << "(f1 > f2): " << (f1 > f2) << endl; 25 | ``` 26 | 27 | ___ 28 | 29 | ## "<" Menor a - Verdadero si el operando izquierdo es menor al de la derecha, x < y. 30 | 31 | ```cplusplus 32 | 33 | // 2. Menor que 34 | cout << "(n1 < n2): " << (n1 < n2) << endl; 35 | cout << "(f1 < f2): " << (f1 < f2) << endl; 36 | ``` 37 | ___ 38 | 39 | ## "==" Igual a - Verdadero si ambos operandos son iguales, x==y. 40 | 41 | ```cplusplus 42 | // 3. Igualdad 43 | cout << "(n1 == n2): " << (n1 == n2) << endl; 44 | cout << "(f1 == f2): " << (f1 == f2) << endl; 45 | ``` 46 | 47 | ___ 48 | 49 | ## "!=" Diferente a - Verdadero si ambos operadores son diferentes, x!= y. 50 | 51 | ```cpluplus 52 | // 4. Desigualdad 53 | cout << "(n1 != n2): " << (n1 != n2) << endl; 54 | cout << "(f1 != f2): " << (f1 != f2) << endl; 55 | ``` 56 | ___ 57 | 58 | ## ">=" Mayor o igual - Verdadero si el operando izquierdo es mayor o igual al derecho, x >= y. 59 | 60 | ```cplusplus 61 | // 5. Mayor o igual que 62 | cout << "(n1 >= n2): " << (n1 >= n2) << endl; 63 | cout << "(f1 >= f2): " << (f1 >= f2) << endl; 64 | ``` 65 | 66 | ___ 67 | 68 | ## "<=" Menor o igual - Verdadero si el operando izquierdo es menor o igual al derecho, x <= y. 69 | 70 | ```cplusplus 71 | // 6. Menor o igual que 72 | cout << "(n1 <= n2): " << (n1 <= n2) << endl; 73 | cout << "(f1 <= f2): " << (f1 <= f2) << endl; 74 | ``` 75 | 76 | ___ 77 | 78 | ## Ejemplos mixtos 79 | 80 | ```cplusplus 81 | // Enteros 82 | int n1 = 10; 83 | int n2 = 20; 84 | 85 | // Floats 86 | float f1 = 1.5; 87 | float f2 = 5.2; 88 | 89 | cout << boolalpha; // Imprime ture en lugar de 1 90 | 91 | // 7. Comparaciones de tipos mixtos 92 | cout << "(n1 > f2): " << (n1 > f2) << endl; 93 | cout << "(f1 < n2): " << (f1 < n2) << endl; 94 | 95 | // 8. Valores negativos 96 | cout << "(n1 > -n2): " << (n1 > -n2) << endl; 97 | cout << "(f1 < -f2): " << (f1 < -f2) << endl; 98 | 99 | // 9. Combinación de comparaciones 100 | // Puedes usar la palabra and en lugar de && 101 | // Puedes usar la palabra or en lugar de || 102 | cout << "((n1 < n2) && (f1 > f2)): " << ((n1 < n2) && (f1 > f2)) << endl; 103 | cout << "((n1 == 10) || (f1 == 5.2)): " << ((n1 == 10) || (f1 == 5.2)) << endl; 104 | 105 | // 10. Comparaciones anidadas 106 | cout << "(n1 > n2 - 10): " << (n1 > n2 - 10) << endl; 107 | cout << "(f1 <= f2 + 10.5): " << (f1 <= f2 + 10.5) << endl; 108 | 109 | // 11. Comparacón con constantes 110 | cout << "(n1 == 10): " << (n1 == 10) << endl; 111 | cout << "(f1 == 5.2): " << (f1 == 5.2) << endl; 112 | 113 | // 12. Compración con los resultados de las operaciones aritméticas 114 | cout << "((n1 + n2) < (f1 * f2)): " << ((n1 + n2) < (f1 * f2)) << endl; 115 | cout << "((n1 + n2) >= (f1 / f2)): " << ((n1 - n2) >= (f1 / f2)) << endl; 116 | 117 | // 13. Comparación de resultados negativos y positivos 118 | cout << "((-n1) < n2): " << ((-n1) < n2) << endl; 119 | cout << "((-f1) > f2): " << ((-f1) < f2) << endl; 120 | 121 | // 14. Combinación de aritméticas y compración 122 | cout << "((n1 * n2) > (f1 - f2)): " << ((n1 * n2) > (f1 - f2)) << endl; 123 | cout << "((n2 / n1) <= (f1 + f2)): " << ((n2 / n1) <= (f1 + f2)) << endl; 124 | 125 | // 15. Comparaciones encadenadas 126 | cout << "(n1 < n2 and n2 < f1): " << (n1 < n2 and n2 < f1) << endl; 127 | cout << "(f2 > f1 and f1 > n1): " << (f2 > f1 and f1 > n1) << endl; 128 | 129 | //16. Compración de módulos 130 | cout << "((n2 % n1) == 0): " << ((n2 % n1) == 0) << endl; 131 | 132 | ``` 133 | -------------------------------------------------------------------------------- /02_Operadores/02_Operadores_Logicos/readme.md: -------------------------------------------------------------------------------- 1 | # Los operadores lógicos 2 | 3 | Los operadores lógicos son operaciones usadas con valores y variables. Y siempre regresan como resultado Verdadero ó Falso. 4 | 5 | 6 | * "and", "Y" lógico - Verdadero si ambos operadores son verdaderos, x and y. 7 | 8 | * "or", "O" lógico - Verdadero si alguno o ambos operadores son verdaderos, x or y. 9 | 10 | * "not", "NO" lógico - Verdadero si el operando es Falso, not(x). 11 | -------------------------------------------------------------------------------- /02_Operadores/03_Operadores_Aritmeticos/readme.md: -------------------------------------------------------------------------------- 1 | # Operadores aritméticos. 2 | 3 | 1. Suma **+** 4 | 5 | Adiciona el valor de dos operandos. 6 | 7 | ```cplusplus 8 | int a = 10; 9 | int b = 5; 10 | int suma = a + b; 11 | cout << "Resultado de la suma es : " << suma << endl; 12 | ``` 13 | ___ 14 | 2. Resta **-** 15 | 16 | Substrae el valor del segundo operando al primer operando. 17 | 18 | ```cplusplus 19 | int a = 10; 20 | int b = 5; 21 | int resta = a - b; 22 | cout << "Resultado de la resta es : " << resta << endl; 23 | ``` 24 | ___ 25 | 26 | 3. Múltiplicación * 27 | 28 | Multiplica el valor de dos o mas operandos. 29 | 30 | ```cplusplus 31 | int a = 10; 32 | int b = 5; 33 | int multiplicacion = a * b; 34 | cout << "Resultado de la multiplicacion es : " << multiplicacion << endl; 35 | ``` 36 | ___ 37 | 38 | 4. División **/** 39 | Divide el dividendo (operando que se encuentra en la parte izquierda entre el divisor operando que se encuentra en la parte derecha. 40 | 41 | ```cplusplus 42 | int a = 10; 43 | int b = 5; 44 | int division = a / b; 45 | cout << "Resultado de la division es : " << division << endl; 46 | ``` 47 | ___ 48 | 49 | 5. Modulo o residuo **%** 50 | 51 | Es el residuo de la division (cuanto me resta después de haber aplicado la division. 52 | 53 | ```cplusplus 54 | int a = 10; 55 | int b = 5; 56 | int residuo = a % b; 57 | cout << "Resultado del residuo es : " << residuo << endl; 58 | ``` 59 | ___ 60 | 61 | 6. Operadores de incremento y decremento. 62 | 63 | * Incremento **++** 64 | 65 | Operador unitario que equivale a incrementar o sumar en 1 el valor de la variable al que se le aplica. Sin necesidad de usar una asignación a la variable. (Equivalente a: variable = variable+1) 66 | 67 | ```cplusplus 68 | int a = 10; 69 | a++; 70 | cout << "Incremento es : " << a << endl; 71 | ``` 72 | ____ 73 | * Decremento **--** 74 | 75 | Operador unitario que equivale a decrementar o restar en 1 el valor de la variable al que se le aplica. Sin necesidad de usar una asignación a la variable. (Equivalente a: variable = variable-1) 76 | 77 | ```cplusplus 78 | int a = 10; 79 | a--; 80 | cout << "Decremento es : " << a << endl; 81 | ``` 82 | -------------------------------------------------------------------------------- /02_Operadores/readme.md: -------------------------------------------------------------------------------- 1 | # Operadores 2 | 3 | ## Los operadores son de suma importancia en programación ya que permiten operaciones o acciones sobre datos, variables y valores. 4 | 5 | ### Los operadores aritméticos son importantes para realizar cálculos matemáticos básicos. Nos permiten procesamiento numérico, desde calculos que requieren resolver o contestar problemas o casos que en escencia requieren operaciones simples o complejos. 6 | 7 | ### Los operadores de comparaciones se utilizan para comparar valores. Estos nos regresaran un valor booleano, es decir, verdadero o falso. 8 | 9 | ### Los operadores lógicos nos ayudan a validar afirmaciones de nuestras proposiciones son verdaderas o falsas, o si necesito invertir el resultado de dichas afirmaciones. 10 | 11 | ### Las asignaciones de valores nos permiten asignar un valor a una variable en una cantidad específica, y en algunos casos modificar el valor mientras asignamos o reasignamos el valor. 12 | 13 | ## Evaluación de operadores lógicos y aritméticos, y precedencia 14 | 15 | * La precedencia es la combinación de valores, variables, operadores y funciones que son expresiones que necesitan ser evaluadas y validas. Por ejemplo 5-7 16 | * La mayor precedencia la tienen los parentesis, donde evaluará lo que se encuentre adentro antes que nada. 17 | * La evaluación de los operadores aritméticos básicos (+,*,-,/) tienen una propiedad asociativa de izquierda a derecha. 18 | * La precedencia es la jerarquía con la que las expresiones son evaluadas, Por ejemplo 10-4*2, donde la multiplicación tiene una mayor prioridad que la suma. 19 | 20 | ## Numeros y matematicas 21 | 22 | 23 | image 24 | 25 | -------------------------------------------------------------------------------- /03_Instrucciones_de_Decision/00_Instruccion_IF_ELSE/readme.md: -------------------------------------------------------------------------------- 1 | # IF .. ELSE 2 | 3 | La instrucción **if.. else** es una condiciónante que evalúa una expresión, y si esta, es verdadera ejecutará las instrucciones entre las llaves **{ }**, en caso de que la evaluación de la expresión es falsa se debe usar la instrucción **else** que ejecutará otras instrucciones si el resultado es falso. 4 | 5 | ```C++ 6 | if (condiciones) 7 | { 8 | // Ejecuta las instrucciones en caso de ser verdadero 9 | } else 10 | { 11 | // Ejecuta las instrucciones en caso de ser falso. 12 | } 13 | ``` 14 | 15 | ## if necesita condiciones 16 | 17 | * Usa **if** para ejecutar el bloque de código en caso de la condición sea verdadera 18 | * Usa **else** para ejecutar el bloque de código en caso de que la condición sea falsa. 19 | 20 |

21 | Layout app 22 |

23 | 24 | ### Ejercicios if - else 25 | 26 | 1. Encontrar si un número es par o impar. 27 | 2. Encontrar el mayor de dos números, solicita los dos números de tipo int. 28 | ```C++ 29 | int n1, n2; 30 | cout << "n1 : "; 31 | cin >> n1; 32 | cout << endl; 33 | cout << "n2 : "; 34 | cin >> n2; 35 | cout << endl; 36 | if (n1 > n2) 37 | { 38 | cout << "n1 : " << 39 | n1 << endl; 40 | } 41 | else 42 | { 43 | cout << "n2 : " << 44 | n2 << endl; 45 | } 46 | ``` 47 | 3. Solicitar la edad de la persona y si esta es mayor de edad, escribir en pantalla “Mayor de edad” de lo contrario “Menor de edad” 48 | ```C++ 49 | int edad; 50 | cout << "Dame tu edad : "; 51 | cin >> edad; 52 | cout << endl; 53 | if (edad >= 18) 54 | { 55 | cout 56 | << "mayor de edad " 57 | << endl; 58 | } 59 | else 60 | { 61 | cout 62 | << "menor de edad " << endl; 63 | } 64 | ``` 65 | 4. Solicitar la temperatura si esta es menor a 10 grados, escribir en pantalla “hace mucho frío”, si la temperatura es entre mayor a 10 grados y menor a 17 grados, escribir en pantalla “hace frío” y por último si es mayor a 17 grados, escribir en pantalla “el clima es templado”. 66 | ```C++ 67 | int temp; 68 | cout << "temperatura : "; 69 | cin >> temp; 70 | cout << endl; 71 | if (temp < 10) 72 | { 73 | cout 74 | << "Hace mucho frio " 75 | << endl; 76 | } 77 | if (temp >= 10 and 78 | temp <= 17) 79 | { 80 | cout << "frio " << endl; 81 | } 82 | if (temp > 17) 83 | { 84 | cout << "templado" 85 | << endl; 86 | } 87 | ``` 88 | 5. Preguntar si al usuario si está a favor de la paz, guardar en una variable tipo char llamada voto, validar si el voto es ‘S’ o el voto es ‘N’ escribir en pantalla “voto valido” en caso de que sea cualquier otro carácter escribir, “voto invalido” 89 | ```C++ 90 | char voto = ' '; 91 | cout << "A favor s/n : "; 92 | cin >> voto; 93 | cout << endl; 94 | if (voto == 's' 95 | or voto == 'n' or 96 | voto == 'S' or 97 | voto == 'N') 98 | { 99 | cout << "Voto valido " 100 | << endl; 101 | } 102 | else 103 | { 104 | cout << "Voto invalido " 105 | << endl; 106 | } 107 | ``` 108 | 6. Preguntar al usuario cuantas horas ha trabajado el empleado durante la semana, si, el empleado trabajo más de 40 horas, el excedente de horas se multiplicará por 75 pesos y publicar este cálculo en pantalla que será el bono del empleado. 109 | ```C++ 110 | int horasTrabajadas = 0; 111 | cout << "Horas trabajadas : "; 112 | cin >> horasTrabajadas; 113 | cout << endl; 114 | int horasBono = horasTrabajadas 115 | - 40; 116 | if (horasBono > 0) 117 | { 118 | horasBono = horasBono * 75; 119 | cout << "Bono " << horasBono; 120 | } 121 | ``` 122 | 7. Crear dos variables de tipo int, que guarden el día y mes, del cumpleaños del usuario. Si la fecha corresponde a mes 9 y día 15, escribir en pantalla, “Feliz cumpleaños” 123 | 8. Crear una variable que se llame velocidad, pregunta por este valor, si esta es negativa, escribir en pantalla “velocidad negativa”, si la velocidad es cero, escribir en pantalla “en reposo”, y si es positiva escribir en pantalla “velocidad positiva”. 124 | 9. Crear las siguientes variables de tipo int: huevos, mantequilla, leche, harina, levadura, azucar y sal. Asigna valores aleatorios a cada variable, entre 1 y 5. Si todos los ingredientes tienen al menos un elemento, escribir en pantalla “Puedes crear hot cakes” de lo contrario escribir en pantalla “No hay suficientes ingredientes” 125 | 10. Crear un programa en C++ que determine cuantos hot cakes se pueden hacer basado en la pregunta anterior. 126 | -------------------------------------------------------------------------------- /03_Instrucciones_de_Decision/01_Instruccion_SWITCH/readme.md: -------------------------------------------------------------------------------- 1 | # switch case... 2 | Explicación: 3 | switch (opcion): Evalúa la variable opcion. 4 | case 1:: Si opcion es igual a 1, ejecuta el bloque de código correspondiente. 5 | break;: Termina la ejecución del switch para evitar que se ejecuten los siguientes casos. 6 | default:: Se ejecuta si ninguna de las opciones anteriores coincide. 7 | 8 | ```C++ 9 | 10 | int opcion = 2; 11 | 12 | switch (opcion) { 13 | case 1: 14 | std::cout << "Opción 1 seleccionada." << std::endl; 15 | break; 16 | case 2: 17 | std::cout << "Opción 2 seleccionada." << std::endl; 18 | break; 19 | case 3: 20 | std::cout << "Opción 3 seleccionada." << std::endl; 21 | break; 22 | default: 23 | std::cout << "Opción no válida." << std::endl; 24 | break; 25 | } 26 | 27 | 28 | 29 | 30 | 31 | ``` 32 | -------------------------------------------------------------------------------- /03_Instrucciones_de_Decision/readme.md: -------------------------------------------------------------------------------- 1 | # Test 2 | -------------------------------------------------------------------------------- /04_Instrucciones_Ciclicas/00_Instruccion_FOR/readme.md: -------------------------------------------------------------------------------- 1 | # Definición de un ciclo finito 2 | 3 | * Se usa cuando se necesita ejecutar un bloque de código por un número finito de veces. 4 | * Es una estructura de control que permite ejecutar el código a través de un contador de forma que este, se incrementa o decrementa, es decir sumando o restando. 5 | 6 | 7 | ![image](https://github.com/user-attachments/assets/c945429b-d591-4956-9917-7ded4c096263) 8 | 9 | 10 | ## Ejemplo: 11 | 12 | Imprimir números naturales: 13 | 14 | Ejercicio uno. Se le pide crear una secuencia de los números naturales de 0 a 9, esto a través de una instrucción “for”. 15 | 16 | Requerimientos: 17 | * Un contador que pueda incrementar los números de {0 a 9} 18 | * Un limite para saber que hemos llegado a 9 y detener el ciclo. 19 | * Imprimir el contador con la instrucción cout 20 | 21 | Que necesito? 22 | * Una variable que me sirva para incrementar los números naturales, desde cero hasta 9. En este caso será un número entero que llamaremos “contador”. 23 | * Una variable o una constante que valide a través de una comparación lógica que hemos alcanzado nuestra meta. 24 | * En cada interacción, es decir, en cada incremento de una unidad; imprimir el contador. 25 | 26 | ![image](https://github.com/user-attachments/assets/ba600b99-ea73-4cff-ac71-3de460ed57a9) 27 | 28 | 29 | ¿Que está pasando? paso a paso. 30 | * Cuando se declara una instrucción “for”, su primer parámetro es declarar a nuestra variable que en este caso se llama “contador” e inicia en cero. 31 | * Inmediatamente válida si el contador, satisface la condición lógica, en este caso pregunta si el contador es menor o igual a cero. La primera vez es verdadero (true). Ya que cero es menor o igual a nueve. NOTA, el nueve viene de la declaración de la variable limite que se inicializa en 9. 32 | * Ejecutará todas las instrucciones entre las llaves que en este caso imprimirá cero. Que es la instrucción Console.Write(“ “+contador+”, “); 33 | * Incrementa el contador++ y este cambiará de cero a uno, ya que: 34 | contador = contador + 1. 35 | * Todas las instrucciones fuera del “for” se ejecutarán una sola vez. 36 | 37 | Ejercicios: 38 | 39 | 1. Generar el código necesario en C++ para contar los números naturales de manera regresiva de nueve a cero. Tip : en lugar de sumar ++, necesitas restar -- 40 | 2. Generar el código necesario en C++ para contar los números de cero a 99. Tip : Necesitas inicializar el contador en uno y cambiar el limite a 99. 41 | 3. Generar el código necesario en C++ para contar los números del uno al cien pero solo imprimir los números pares. Tip : usa un “if” y usa la operación residuo “%” para determinar que sea número par, y si es par, entonces imprime el número. Tip : revisa la solución del examen o las clases, cuando un número era múltiplo de 3 o de 2. 42 | 4. Generar el código necesario en C++ solicitando el rango uno mínimo y uno máximo para generar la impresión de los números de manera secuencial de uno en uno, si ingresa 1 como mínimo y 10 como máximo, deberá imprimir 1,2,3,4,5,6,7,8,9,10 Tip: Declara dos variables enteras (int) e insertalas en la instrucción for. 43 | 5. Generar el código necesario en C++ solicitando el rango uno máximo y uno mínimo para generar la impresión de los números de manera secuencial regresiva de uno en uno, si ingresa 1 como mínimo y 10 como máximo, deberá imprimir 10,9,8,7,6,5,4,3,2,1 Tip: Declara dos variables enteras (int) e insertalas en la instrucción for. 44 | -------------------------------------------------------------------------------- /04_Instrucciones_Ciclicas/01_Instruccion_WHILE/readme.md: -------------------------------------------------------------------------------- 1 | # Instrucción while. 2 | 3 | Es una instrucción cíclica que valida un argumento booleano, mientras se cumpla este, seguirá ejecutando las instrucciones que estan dentro de los límites de ella. 4 | 5 | Sintaxis: 6 | 7 | ```C++ 8 | 9 | while ( ) 10 | { 11 | 12 | } 13 | 14 | ``` 15 | 16 | 17 | ## Ejercicios while 18 | 19 | 1. Imprimir los números naturales usando la instrucción while. Crear una variable que incremente el número desde cero. 20 | 2. Sumar los números naturales usando la instrucción while, usando una variable adicional para acumular el resultado. 21 | 3. Calcular el factorial de un número usando la instrucción while, usando una variable adicional para acumular el resultado de las multiplicaciones 22 | 4. Crear las tablas de multiplicación del 1 usando la instrucción while. 23 | 5. Contar el número de digitos de un número usando la instrucción while. 24 | 25 | 26 | -------------------------------------------------------------------------------- /04_Instrucciones_Ciclicas/02_Instruccion_DO_WHILE/readme.md: -------------------------------------------------------------------------------- 1 | # do..while. 2 | 3 | Es una instrucción de control que se ejecuta mientras se cumple la condición de la instrucción. SU gran diferencia es que al menos se ejecuta una vez, mientras el while, puede que no se ejecute. 4 | 5 | Normalmente son usadas para generar menús que necesitan mostrar una serie de opciones y se mostrará mientras no salga uno del menú. 6 | 7 | Sintaxis 8 | 9 | ```C++ 10 | 11 | do 12 | { 13 | 14 | } while (condicion); 15 | 16 | ``` 17 | 18 | ## Ejercicios do..while 19 | 1. Crear un menú usando la instrucción do.while, que imprima la opción seleccionada. Use 6 opciones. La opción 6 debe salir del menú. 20 | 2. Crear un juego de adivina el número, usando la instrucción do..while. 21 | 3. Preguntar la edad de una persona, usando la instrucción do..while, acumular las edades en una variable que acumule las edades y calcular el promedio de las edades ingresadas, hasta que se ingrese cero en la edad. 22 | -------------------------------------------------------------------------------- /04_Instrucciones_Ciclicas/readme.md: -------------------------------------------------------------------------------- 1 | # Test 2 | -------------------------------------------------------------------------------- /05_CSHARP_{C#}/readme.md: -------------------------------------------------------------------------------- 1 | # C# 2 | 3 | ## Tipos de variable 4 | Son básicamente los mismos tipos de variable que **C++** 5 | 6 | ### Ejemplos de tipos de variable primitivas: 7 | ```C# 8 | // Enteros 9 | int numero1 = 5; // Variable de tipo entero 10 | Console.WriteLine(numero1); 11 | // Double, Float, Decimal 12 | double numero2 = 3.14; // Variable de tipo doble 13 | Console.WriteLine(numero1); 14 | // char 15 | char letra = 'A'; // Variable de tipo carácter 16 | Console.WriteLine(letra); 17 | // bool 18 | bool esVerdad = true; 19 | Console.WriteLine(esVerdad); 20 | //long 21 | long numeroGrande = 9223372036854775807; // Máximo valor de long 22 | Console.WriteLine(numeroGrande); 23 | // short 24 | short numeroPequeno = 32767; // Máximo valor de short 25 | Console.WriteLine(numeroPequeno); 26 | //byte 27 | byte numeroByte = 255; // Máximo valor de byte 28 | Console.WriteLine(numeroByte); 29 | 30 | ``` 31 | 32 | ### Ejemplo de tipo de variable string 33 | ```C# 34 | string texto = "Hola, mundo!"; // Variable de tipo cadena de caracteres 35 | ``` 36 | ### Ejemplo de variables tipo comodin 37 | ```C# 38 | var numero = 10; // C# inferirá que es un int 39 | var texto = "Hola"; // C# inferirá que es un string 40 | ``` 41 | 42 | 43 | ### Ejemplo de declaración de constantes 44 | ```C# 45 | const int velocidadLuz = 300_000; // Variable constante, no se puede cambiar 46 | ``` 47 | ___ 48 | 49 | ## Estructuras de salida. 50 | 51 | Método: Console.WriteLine 52 | 53 | Namespace: System 54 | 55 | **Salida**, escribe los datos especificados, seguido de un retorno, a la salida estándar del lenguaje. La variante es Console.Write si no se quiere el retorno. 56 | 57 | Formatos: Console.WriteLine(string). 58 | ```C# 59 | //Ejemplos: 60 | Console.WriteLine(“Esto es un string”); 61 | Console.WriteLine(“Hola Mundo”); 62 | ``` 63 | 64 | Formatos: Console.WriteLine(string+object). 65 | ```C# 66 | int numero = 5; 67 | Console.WriteLine("Tu numero es : "+numero); 68 | ``` 69 | ___ 70 | 71 | ## Estructuras de entrada. 72 | 73 | Método: Console.ReadLine 74 | 75 | Namespace: System 76 | 77 | Formatos: 78 | ```C# 79 | Console.WriteLine(string). 80 | //Ejemplos: 81 | Console.WriteLine(“Esto es un string”); 82 | Console.WriteLine(“Hola Mundo”); 83 | ``` 84 | ___ 85 | 86 | ### Conversión de string a número 87 | 88 | Puedes convertir un string a un número llamando al método Parse, que se encuentra en los tipos de variable numéricos (int, long, double, short, float, decimal, etc) o usando los métodos de la clase System.Convert. Es más eficiente usar el método Parse. 89 | 90 | ```C# 91 | int edad; 92 | Console.Write("Ingresa tu edad : "); 93 | edad = int.Parse(Console.ReadLine()); 94 | Console.WriteLine(); 95 | Console.WriteLine("Tu edad es : "+edad); 96 | ``` 97 | 98 | ___ 99 | 100 | ## Operaciones aritméticas Sqrt, Pow 101 | 102 | La operación raíz cuadrada, usa el formato Math.Sqrt(). Esta operación produce como resultado la raíz cuadrada de un número especifico. 103 | 104 | Formatos: 105 | Math.Sqrt(numero). 106 | Ejemplos: 107 | ```C# 108 | double num = 2; 109 | num = Math.Sqrt(num); 110 | Console.WriteLine(num); 111 | ``` 112 | Formatos: 113 | Math.Pow(numero,potencia). 114 | ```C# 115 | double num = 2; 116 | num = Math.Pow(num,2); 117 | Console.WriteLine(num); 118 | ``` 119 | ___ 120 | 121 | ## Ciclo while 122 | Se usa cuando se necesita ejecutar un bloque de instrucciones por un número específico de veces. Hasta que se cumpla una condición. 123 | 124 | 125 | ```C# 126 | while (condición) 127 | { 128 | instrucción1; 129 | instrucción2; 130 | } 131 | ``` 132 | ___ 133 | 134 | ## Ciclo do..while 135 | 136 | Se usa cuando se necesita ejecutar un bloque de instrucciones por un número específico de veces. Hasta que se cumpla una condición. 137 | A diferencia del while, este código se ejecuta al menos una vez. 138 | 139 | ```C# 140 | do 141 | { 142 | instrucción1; 143 | instrucción2; 144 | } while (condición); 145 | ``` 146 | ___ 147 | 148 | ## Clase Random 149 | 150 | Método: Random 151 | Namespace: System 152 | 153 | Representa un generador de números aleatorios, que es un algoritmo que produce una secuencia de números que cumplen ciertos requerimientos estadísticos de aleatoriedad. 154 | 155 | ```C# 156 | 157 | var rand = new Random(); 158 | Console.WriteLine("Random.Next : "+rand.Next()); 159 | Console.WriteLine("Random.Next rango : "+rand.Next(0,2)); 160 | Console.WriteLine("Random.Next double : "+rand.NextDouble()); 161 | ``` 162 | ___ 163 | ## Declaración, inicialización e impresión de arreglos de 1 dimensión 164 | 165 | Formato: 166 | ```C# 167 | //[] nombre_arreglo = new [# de elementos] 168 | //Ejemplo: 169 | int[] naturales = new naturales[10]{ 0 ,1, 2, 3, 4, 5, 6, 7, 8, 9 }; 170 | // declaración sin inicializar el numero de elementos 171 | int[] numeros = { 1, 2, 3, 4, 5 }; // Declaración e inicialización de un arreglo de enteros 172 | string[] nombres = { "Ana", "Luis", "Carlos" }; // Declaración e inicialización de un arreglo de strings 173 | // imprimir arreglos 174 | for (int i=0; i <=9; i++) 175 | { 176 | Console.Write(naturales[i]+" ,"); 177 | } 178 | Console.WriteLine(); 179 | // formato de impresión con foreach 180 | foreach (var elemento in naturales) 181 | { 182 | Console.Write(elemento+" ,"); 183 | } 184 | ``` 185 | ___ 186 | ## Declaración, inicialización e impresión de arreglos de 2 dimensiones 187 | 188 | Formato: 189 | ```C# 190 | //[,] nombre_arreglo = new [# de renglones , # de columnas] 191 | //Ejemplo: 192 | int[,] matriz = new int[2,2]{{1,2},{3,4}}; // Declaración e inicialización de un arreglo bidimensional 193 | 194 | for (int i=0; i<=1; i++) 195 | { 196 | for (int j=0; j<=1; j++) 197 | { 198 | Console.Write(matriz[i,j]+" ,"); 199 | } 200 | Console.WriteLine(); 201 | } 202 | 203 | // Acceder a los elementos del arreglo bidimensional 204 | Console.WriteLine(matriz[1, 1]); // Imprime: 4 205 | Console.WriteLine(tablero[0, 1]); // Imprime: 3 206 | 207 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FP 2 | Fundamentos de Programación 3 | 4 | ![100%](https://progress-bar.xyz/100) 5 | ____ 6 | 7 | ```bash 8 | ├──PARTE I: Introducción 9 | ├── Instalación de Visual Studio [Liga Instalación](https://visualstudio.microsoft.com/es/downloads/) 10 | ├── Instalación de Visual Studio. 11 | ├── Como crear un programa 12 | ├── Porque C++ 13 | ├── Control de un programa 14 | ├── Control Secuencial 15 | ├── Control de Decisión 16 | ├── Control Iterativo o Cíclico 17 | ├── PARTE II Fundamentos de Programación. 18 | ├── Funciones principales de un lenguaje de programación. 19 | ├── Que es una palabra reservada? 20 | ├── Estructuras de Salida. 21 | ├── Instrucción de Salida cout 22 | ├── Nombres de Variables/Identificadores 23 | ├── Tipos de Variables 24 | ├── Enteros. Signed/Unsigned. Números sin punto decimal. 25 | ├── Como se declaran? 26 | ├── Como se asignan valores desde programa? 27 | ├── Como se asignan valores desde consola? 28 | ├── Como se imprimen en consola? 29 | ├── short 30 | ├── int 31 | ├── long long 32 | ├── unsigned 33 | ├── Fraccionarios/Decimales. Números con punto decimal 34 | ├── Como se declaran? 35 | ├── Como se asignan valores desde programa? 36 | ├── Como se asignan valores desde consola? 37 | ├── Como se imprimen en consola? 38 | ├── float. 7-8 decimales de precisión. 39 | ├── double. 15-16 decimales de precisión. 40 | ├── Booleanos. Valor lógico 0,1 {true, false} 41 | ├── bool 42 | ├── función boolalpha 43 | ├── Textos y caracteres 44 | ├── Como se declaran? 45 | ├── Como se asignan valores desde programa? 46 | ├── Como se asignan valores desde consola? 47 | ├── Como se imprimen en consola? 48 | ├── Como convertir un string a número. 49 | ├── string 50 | ├── char 51 | ├── Contenedores 52 | ├── Arreglos 53 | ├── Clase Arreglo 54 | ├── Vectores 55 | ├── Iteradores 56 | ├── Modificadores 57 | ├── Clases y Objetos 58 | ├── Estructuras 59 | ├── Clases y Objetos 60 | ├── Encapsulación 61 | ├── Herencia 62 | ├── Polimorfismo 63 | ├── PARTE III Operadores 64 | ├── Operadores de Asignacion 65 | ├── "=" Operador de asignacion. 66 | ├── Operadores de Comparacion 67 | ├── ">" Mayor a - Verdadero si el operando izquierdo es mayor al derecho, x > y. 68 | ├── "<" Menor a - Verdadero si el operando izquierdo es menor al de la derecha, x < y. 69 | ├── "==" Igual a - Verdadero si ambos operandos son iguales, x==y. 70 | ├── "!=" Diferente a - Verdadero si ambos operadores son diferentes, x!= y. 71 | ├── ">=" Mayor o igual - Verdadero si el operando izquierdo es mayor o igual al derecho, x >= y. 72 | ├── "<=" Menor o igual - Verdadero si el operando izquierdo es menor o igual al derecho, x <= y. 73 | ├── Operadores Logicos 74 | ├── "and" Operador de disyunción. 75 | ├── "or" Operador de union. 76 | ├── "not" Operador de negacion. 77 | ├── Operadores Aritmeticos. 78 | ├── "+" Suma 79 | ├── "-" Resta 80 | ├── "*" Multiplicacion 81 | ├── "/" Division 82 | ├── "%" Residuo 83 | ├── PARTE IV Instrucciones de Decision 84 | ├── Tipos de condiciones de if..else 85 | ├── if simple. solamente if. 86 | ├── if doble. if..else 87 | ├── if's anidados 88 | ├── instrucción switch 89 | ├── PARTE V Instrucciones Cíclicas 90 | ├── Instrucción for 91 | ├── Instrucción do..while 92 | ├── Instrucción while. 93 | ├── PARTE VII C Sharp 94 | ├── Tipos de Variable 95 | ├── Estructuras de Entrada 96 | ├── Estructuras de Salida 97 | ├── Operaciones y Funciones Aritmeticas 98 | ├── Ciclo while 99 | ├── Ciclo do..while 100 | ├── Clase Random (generacion de numeros aleatorios) 101 | ├── Declaracion, inicializacion e impresión de arreglos de una dimensión. 102 | ├── Declaracion, inicializacion e impresión de arreglos de dos dimensiones. 103 | ``` 104 | 105 | 106 | -------------------------------------------------------------------------------- /imagenes/ifelse2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/josblax/FP/9a18005eca561aea56c553b42a816c96c6766a94/imagenes/ifelse2.png -------------------------------------------------------------------------------- /imagenes/precedencia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/josblax/FP/9a18005eca561aea56c553b42a816c96c6766a94/imagenes/precedencia.png -------------------------------------------------------------------------------- /imagenes/readme.md: -------------------------------------------------------------------------------- 1 | 2 | --------------------------------------------------------------------------------