KirkElPozz
Usuario (Argentina)
Bienvenidos a la segunda clase!! Te recomiendo que sigas cronológicamente las clases, porque hoy voy a dar por hecho que se entendió todo lo de la clase pasada. Nota: Muchos me dijeron que tendría que usar librerías gráficas y que deberia cambiar de IDE por uno mas nuevo. La idea del curso es empezar con Dev C++ al menos hasta que sepamos usar funciones, arreglos, estructuras, punteros, clases y objetos, etc. Una vez que tengamos esto bien pulido vamos a pasar a usar librerías para el desarrollo de juegos. Y por ultimo cuando Dev nos quede chico vamos a cambiar de IDE, pero por ahora Dev nos alcanza y sobra! Absolutamente todo lo que estas a punto de leer o ver esta hecho por mi, y es una recopilación de información que fui adquiriendo de distintas fuentes, pero principalmente de una cuenta de Youtube (Deje el link en la Fuente) de David, que hace videos. El problema es que los videos duran mas o menos unas 2 horas y aveces es tedioso o si uno no tiene tiempo se complica, es por eso que voy a intentar explicar lo mismo pero con post, lo cual debería ser mas rápido de leer. Vamos a empezar!! Quedo pendiente el código del ejercicio final, acá les dejo el código que yo propongo: (Click para descargar) Con leer el código deberías darte cuenta solo como funciona, hay solo una parte que podría llegar a ser confusa, la parte en la que se calcula el puntaje en caso que los minutos sean mayores a 10. Lo fundamental es entender la consigna, en caso que los minutos pasen de 10 se va a dar 30 puntos y por cada minuto extra se van a dar 15 puntos, lo primero que hay que hacer es calcular el valor de esos minutos extras, lo cual se hace (Minutos-10), ya que si tenemos 25 minutos, nuestros minutos extras son 15 ya que los primeros 10 siempre valen lo mismo. Después a esos minutos extras se los multiplica por su valor correspondiente, en este caso 15, y por ultimo le sumamos los 30 que se dan por pasar los primeros 10. Antes de avanzar mas, como les habia dicho antes, les voy a dejar la tabla de palabras reservadas: Que es esto? Son las palabras reservadas del lenguaje que no pueden ser utilizadas por el usuario como nombre de variables, constantes o funciones (Estas ultimas dos todavía no las vimos). Nosotros ya vimos que son las variables (Espacios reservados en memoria con un nombre identificador y un tipo, que pueden variar en el transcurso del programa, como vimos en el ejemplo de los vasos). Ahora, que son las constantes? Son básicamente lo mismo pero no pueden ser modificadas en ningún punto del programa, ¿Un ejemplo? Pi, calculo que estas familiarizado con la constante Pi, si no acá te dejo un gif muy famoso que lo explica: Bueno, si nosotros estamos haciendo un programa que resuelve problemas fisicos posiblemente uses muchas constantes, como por ejemplo Pi (3,1416), o la gravedad (9,86). En C++ podes usarlas, te dejo acá algunos ejemplos: En este ejemplo puse cuatro tipos, un entero, un real, un caracter y una cadena de caracteres Antes de que nos larguemos a hacer muuuuchos ejercicios re divertidos tengo la obligación de enseñarte 3 cositas mas, te tengo que enseñar a usar el while, do-while y el for. Una vez que ya los sepamos usar vamos a estar en condiciones de hacer programas un poco mas complejos. While (Mientras) Como ya habrás notado, las palabritas estas que usamos están en ingles, como el "if" significaba "si?" y el else significaba "Si no", el while significa mientras. Y lo que nos permite hacer es repetir una o mas sentencias mientras una condición sea verdadera, si la comparamos con el if-else que tenia una condición que dependiendo su veracidad iba por un camino o por el otro, en este caso teniendo una condiciones dependiendo de su veracidad vamos a repetir o no un ciclo finito de sentencias. Dejame ilustrarte con un ejemplo: El compilador va a seguir una serie de pasos para entender esto, aca los dejo suponiendo que yo soy el compilador: 1) Veo si la condición es verdadera. 2) Si la condición es verdadera voy a hacer la sentencia 1, luego la sentencia 2, luego me encuentro con una llave de cierre y vuelvo a hacer el paso 1) 3) Si la condición es falsa no voy a hacer la sentencia 1 y la sentencia 2, voy a salir del while y voy a ejecutar la sentencia 3 Imagino que notaste que si la condición es siempre verdadera caemos en un ciclo infinito provocando el colapso del universo entero, para evitar problemas te dejo dos observaciones: - Dentro de las sentencias que se repiten debe haber por lo menos una que cambie la condición, de lo contrario seria un lazo infinito. - Si la primera vez la condición es falsa las sentencias 1 y 2 no se ejecutan nunca Veamos un ejemplo un poco mas útil así se termina de entender su uso: (Este código es para mostrar por pantalla los números desde el 0 al 10, para descargarlo hace click) Si tu cara esta: es porque lo entendiste sin ayuda, en cambio si esta es porque se complico demasiado, y esa es la razón por la que estoy yo acá! Vamos paso por paso: int Numero = 0; Acá hay algo nuevo, como podes ver en el mismo momento que estaba declarando la variable llamada Numero del tipo int (entero) le di un valor, en este caso un valor de 0. Esto se puede hacer y es muy útil para hacer el programa mas corto, a esto se le llama inicializar una variable while (Numero <= 10) Se leería así: Mientras la variable Numero tenga un valor numero menor o igual a 10 cout<<Numero<<endl; Vamos a mostrar el valor que esta en la variable Numero, la primera vez va a ser de 0 ya que con ese valor fue inicializada. Numero++; Esto lo explique en el post anterior, ++ es un operador de incremento, es decir, a la variable Numero le vamos a incrementar en 1 su valor (Si antes era 0 ahora es 1, si antes era 4 ahora es 5) Ya entendimos la sintaxis del algoritmo, y el comportamiento es muy sencillo. Hagamos de cuenta que somos el programa y vayamos paso a paso: 1) Numero = 0 2) ¿Numero es menor o igual a 10? (Como 0 es menor o igual a 10 vamos a entrar al ciclo del while) 3) Mostramos en pantalla el valor de Numero (En este primer caso es un 0) 4) Le damos un incremento de 1 al valor que esta en Numero (Numero valía 0, después del incremento vale 1) 5) Como me encontré con una llave de cierre vuelvo a preguntar la condición, ¿Numero es menor o igual a 10? (En este caso Numero tiene un valor de 1, pero sigue siendo menor o igual a 10, asi que entro de nuevo al while) 6) Muestro en pantalla el valor de Numero (Vale 1) 7) Incremento a Numero (Pasa a valer 2) 8) Pregunto la condición de nuevo, y así sigue y sigue hasta que Numero llegue a valer 11, cuando valga 11 y se pregunte la condición (11 es menor o igual a 10) como evidentemente es falsa se va a salir del while (Como se sale no se van a ejecutar las sentencias de adentro, en otras palabras, el 11 no se va a mostrar por pantalla) 9) Como ya salimos del while muestro por pantalla el texto "Esos son todos los números del 0 al 10" y listo! Nota: El while al igual que el if no llevan punto y coma al final ( Se que es confuso, y si no te termino de caer la ficha no te preocupes porque después haciendo ejercicios (La clase 3 van a ser todos ejercicios) lo vas a entender perfecto, esta introducción teórica es solo para que estés familiarizado antes de empezar a ver códigos. Do - While (Hacer Mientras) Como lo dice el titulo la traducción a criollo de esto seria "Hacer mientras" y se comporta exactamente igual al while con una única diferencia, te acordas que recién te deje de observación que, en un while, si la condición es falsa las sentencias dentro de este jamas se ejecutan? Bueno, el Do - While te permite hacer las sentencias dentro de este al menos una vez, es decir, por lo menos una vez se van a ejecutar siempre. Te dejo un ejemplito así te orientas: Analicemos: El primer "do" se lee como hacer y hace referencia a ejecutar las sentencias que estén entre las llaves, ¿cuantas veces las vamos a ejecutar? Bueno, lo vamos a hacer siempre y cuando la Condición sea verdadera. En este caso vamos a ejecutar las sentencias 1 y 2 si o si la primera vez luego vamos a discutir la veracidad de la condición, si esta es verdadera vamos a volver a ejecutar las sentencias 1 y 2 y si esta es falsa vamos a salir del "do - while" y vamos a ejecutar la sentencia 3. Vamos con un ejemplito mas ilustrativo, hagamos nuevamente el ejemplo de mostrar los números del 0 al 10, pero esta vez usando el do-while: (Click para descargar) A estas alturas no creo que haga falta explicar mucho mas, su comportamiento es exactamente igual al while salvo las diferencias que mencione antes. Al estar frente a un do-while vamos a ejecutar las sentencias dentro del "do" independientemente a la veracidad de la condición, en este caso vamos a mostrar por pantalla Num (Cuyo valor inicial es 0, ya que lo inicialicé con este valor en la declaración de la variable) y voy a incrementar su valor en 1, luego pregunto por primera vez, ¿Es Num menor o igual a 10? en este caso si porque 0 <= 10 y voy a volver a ejecutar las sentencias del do, esto se va a repetir hasta que Num deje de ser menor o igual a 10, que va a ser cuando valga 11, en ese momento vamos a abandonar el lazo do-while y vamos a ejecutar la única sentencia fuera de este, que es el mensaje "Esos son todos los números del 0 al 10" Nota: En el do-while el while SI lleva punto y coma al final. Yo se que esto es demasiada información y cuesta digerirlo, pero hagamos un esfuerzo y veamos el ultimo tema teórico de esta clase que es el "For". For (Para) Por fin llegamos a esta herramienta fundamental en los pilares de la programación, el for! Es un poco distinto de usar, pero no es para nada difícil. Veamos como es el formato de uso: No te me asustes, es muy sencillo de entender. El for va a hacer una serie de repeticiones siempre dependiendo de una variable (Pueden ser mas, pero no nos adelantemos). En "Valor inicial" vamos a poner el valor con el que queremos que empiece nuestra variable, en "Condición" vamos a poner la condición necesario para que el bucle se realice y en incremento vamos a poner que cambio queremos que se efectué en nuestra variable cada vez que demos un ciclo en el bucle (Se pueden hacer mas cosas, no solo incrementar). ¿Te hable en chino básico? Entonces mejor hagamos el mismo ejemplo que vinimos haciendo pero ahora usando solo un "for": (Click para descargar) Como nosotros queremos mostrar todos lo numeros del 0 al 10 nuestra variable que va a controlar el for debe empezar en 0 y llegar hasta 10, por lo tanto nuestro valor inicial va a ser el 0 y nuestra condición va a ser "Siempre y cuando nuestra variable sea menor o igual a 10", el incremento que le vamos a dar es de a 1 por vuelta, por eso el ++. Siii!! terminamos con la teoría (Por ahora) Si te quedo alguna duda te recomiendo que te descargues los programitas de los ejemplos y los analices un poco (Cambiando el nombre de las variables, cambiando los valores numéricos, cambiando el orden, etc). Si aun así no entendes mandame un MP y yo me voy a encargar de ayudarte. Pero de todas formas aun no deberías saber como usarlos, solo fue una introducción para que puedas entender los ejercicios. Y hablando de los ejercicios acá te propongo una guía, de todas formas si tenes alguna duda de algún ejercicio en particular me lo mandas y la siguiente clase lo vemos. Se aceptan recomendaciones... (Click para agrandar) Posiblemente te preguntes ¿Porque siempre tan poquitos ejercicios? Tengo miedo que si te pongo 34 ejercicios te de vagancia y ni los hagas, o hagas solo 2 o 3. Si pongo poquitos aumento las posibilidades de que los hagas todos y de paso hago el aprendizaje mas livianito La idea es que sepas como encarar un problema, yo tengo un método (Para este tipo de ejercicios) que por lo menos a mi me resulta muy cómodo, te lo voy a enseñar: 1) Entender la consigna!!! Suena estúpido pero a veces el algoritmo no sale porque no se termino de entender del todo la consigna. 2) Hacer un Pseudocodigo, ¿Y eso con que se come? Bueno, seria como hacer el código del programa pero de manera informal, osea, usando el español en vez del C++. Cuando se programa se tienen dos problemas, saber hacer la lógica del programa y saber traducirla al lenguaje correspondiente. Si no hacemos el Pseudocodigo vamos a tener estos dos problemas al mismo tiempo, en cambio si lo hacemos vamos a tener un problema a la vez. Porque a la hora de hacer este código informal solo nos vamos a enfrentar al problema de pensar el algoritmo. 3) Hacer una prueba de escritorio, ¿Que?, seria sacar papel y lápiz y ponerse a probar con valores el Pseudocodigo, para después comparar cuando nuestro código ya este terminado y ver si dan los mismos resultados. Con estos 3 items no deberías tener ningún problema en resolver los ejercicios, estoy seguro que esto no se entendió, cuando hagamos los ejercicios siguiendo los pasos me vas a entender. Pido disculpas pero no me dio el tiempo para explicar de la manera que yo quiero todos los ejercicios, pero tampoco quiero atrasar mucho la salida de este post. Mañana voy a subir la resolución! Consigna: Hace el pseudocodigo del ejercicio 1, es decir, hace el código en español de como VOS harías funcionar el programa. Por favor comenta que te pareció así puedo mejorar, no dejes puntos porque a mi no me sirven de nada, lo que si me serviría es que lo compartas, por ahí esto le llega a alguien que lo necesite. Si no tenes tiempo de leer todo agregalo a favoritos y miralo después. Y si te gusto mucho seguime!! Perdon! No me di cuenta que tenia los comentarios cerrados!!