Sunteți pe pagina 1din 77

Dev-C++, codigos

Publicado el 6 septiembre 2009 por Eddy Hola a todos/as, Ya hemos comenzado con la programacion en c++ y hemos visto la estructura de un programa en c++ ( ver entrada ), ahora vamos a ver los codigos usados en ste lenguaje para asi entenderlo mejor, viendo los codigos mas usados podemos desarrollar cualquier cantidad de programas, as que comencemos: - Cabeceras ms usadas para comenzar #include <iostream.h> #include <math.h> #include <time.h> Donde <iostream.h> contiene las funciones de ingresar y mostrar datos. Donde <math.h> contiene las funciones matematicas comunes. Donde <time.h> contiene las funciones para tratamiento y conversin entre formatos de fecha y hora. - Funciones dependiendo de la cabecera -1Si usamos la biblioteca <iostream.h> tenemos que, las funciones ms comunes que vamos a usar son de entrada / salida de datos. Y las operaciones mas comunes como suma/resta/multiplicacion/division. - Ver ejemplo del uso de la libreria <iostream.h> para mostrar datos -2Si usamos la biblioteca <math.h> tenemos que, las funciones ms comunes que vamos a usar son de calculos matematicos y conversiones. Y posee operaciones como hallar coseno/hallar raiz cuadrada/hallar la potencia/etc... -3Si usamos la biblioteca <time.h> tenemos que, las funciones ms comunes que vamos a usar son de tratamiento y operaciones usando la hroa y fecha como base. Y posee operaciones como calcular el numero de veces que se di click con el mouse durante la ejecucion del programa/hallar un numero aleatorio/entre muchas opciones mas - Los identidicadores Esto no es nuevo para nosotros, los identificadores son una secuencia de caracteres, letras, digitos y subguiones ( _ ), como lo vimos en la entrada: Reglas para la declaracion de variables. Por lo tanto no har enfasis en ste tema, porque ya est explicado con anterioridad. Unos ejemplos de los identificadores correctamente escritos: altura1 Indicador nombre_alumno Signo_Del_Zodiaco - Palabras reservadas -

Como sabemos, las palabras restringidas/reservadas son una de las reglas de la buena declaracion de variables y en cada lenguaje existen diferentes palabras reservadas, en el caso de c++ tenemos una lista grande que va variando de las librerias que se van aadiendo. Por ejemplo viendo por encima las librerias, cada una tiene sus funciones a las cuales no se les pueden copiar el nombre para declaralo como variable, As: cout / cin / etc.. de la libreria <iostream.h> cos / pow / etc.. de la libreria <math.h> srand / clock / etc.. de la libreria <time.h> int / double / char / etc.. de la declaracion de variables if / else / for / do / while / etc.. de los condicionantes - Comentarios Los comentarios llevan pueden llevar dos formatos en c++ * El primero es para ms de una linea, y su sintaxis es la siguiente: /* . . . . . . . */ * El segundo es para solo una linea, y su sintaxis es la siguiente: // . . . . . . . Los comentarios sirven para dejar plasmada una pequea explicacion de lo que se est haciendo en una linea o en un proma en total. - Signos de puntuacion y separadores Todas las sentencias deben terminar escritas con un punto y coma. Otros signos de puntuacion son: ! % ^ & * ( ) + = { } [ ] \ ; : < > ? , . / - Secuencias de escape comunes En c++ podemos usar simbolos para indicar alguna funcion especifica, por ejemplo al colocar \n le indicamos al programa que debe dar un enter salto de linea, por ejemplo: cout<< \n Programando \n ; Indicamos que antes de que muestre la palabra programando debe haber un espacio vacio como si se hubiese dado un enter, y asi mismo despues de la palabra programando debe haber otro espacio en blanco o salto de linea.

ampliar imagen Tenemos tambien el simbolo \t que sirve para hacer una tabulacion o una sangria, por ejemplo: cout<< \t Programando \n ; Eso indica que antes que muestre la palabra programando habr una tabulacion o una sangria ( como presionar algunas veces la barra espaciadora ) antes de que salga la palabra programando y luego habra un salto de linea.

ampliar imagen Existe tambien la posibilidad de hacer el enter salto de linea, colocando el codigo: cout<<endl; que significa cout = muestre y endl = fin de linea. Entonces mostrar un enter. No olvidarse que despues de cada sentencia se debe colocar un punto y coma o si no habra error de sintaxis en la compilacion del programa. Recomendacion, ver las secuencias de escape ms detalladas [ AQUI ] Saludos

Dev-C++, clase2 ingresar variables


Publicado el 16 septiembre 2009 por Eddy Hola a todos/as, Como vimos en la clase anterior ( clase1 mostrar constantes ), pues ahora que sabemos ya mostrar datos, vamos a aprender a ingresar datos. Para ello usaremos ahora un recurso diferente al de salida de datos que era cout , el nuevo recurso es cin , pero no hay complicaciones porque la sintaxis es ms facil aun que la de mostrar ( cout ). 2.-) Hacer un programa que pida una cantidad y una vez ingresada nos muestre un mensaje de que se ingres correctamente el dato. Por favor antes de ver sta entrada recomiendo ver la entrada: Uso de la aplicacion Bien, como vemos ahora trabajaremos no solo con constantes si no con variables tambin, por lo tanto deben tener en claro lo que son las variables, su uso, la manera de declararlas correctamente, etc.. Para ello les recominedo lean las siguientes entradas ( si han seguido el curso a medida que he ido avanzando, ya han de haber visto stas entradas ) Todo sobre: variables Reglas para la declaracin de variables Una vez leidas y comprendidas las dos entradas anteriores, podemos avanzar con el codigo fuente de ste programa que hemos propuesto para realizar. #include <iostream.h> main( ) { int cantidad; cout<< \n \n \t \t Ingrese una cantidad: \n \n ; cin>>cantidad; cout<< \n La cantidad se ingreso correctamente. Gracias \n ; system(pause); } Bien, segun el codigo que est arriba tenemos que:

ATENCION: en la clase anterior expliqu las lineas y que hace cada una, aqui solo cambia que vamos a usar un nuevo codigo cin, entonces les sugiero que vean la entrada anterior para entender las lineas de las que no voy a hacer mucha enfasis ( clase1 mostrar constantes ) Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ). - Primera linea: la cabecera y libreria *** - Segunda linea: funcion principal *** - Tercera/novena linea: inicio y fin del programa *** - Cuarta linea: declaramos variables Por lo general despues de la apertura del programa ( la llave { ), se coloca las variables que vamos a usar, pero hay que recordar que para usar variables hay que declararlas y saber las reglas de una buena declaracion, para que no tengamos problemas futuros. Ahora a diferencia de los algoritmos/diagramas como veiamos en DFD ( AQUI ), pues en los lenguajes de programacion usamos codigos en lugar de simbolos. Entonces como veiamos ahi, usabamos el simbolo de asignacion ( ver simbolos ) para declarar las variables, ac no vamos a usar un simbolo si no un codigo . El codigo puede variar dependiendo de lo que queramos hacer con esa variable, las formas de declaracion ms comunes son: int > para declarar variables que van a contener datos enteros, es decir que no contendrn decimanles. Por ejemplo 453 float > para declarar variables que van a contener una parte entera y una parte decimal corta. Por ejemplo 8.6 double > para declarar variables del mismo tipo que las float pero ste usa mas precision con los decimales. Por ejemplo 9.453 char > para asignar un solo caracter. Por ejemplo t Ahora que hemos visto los tipos de datos que sirven para declarar nuestras variables y saber como van a ser almacenadas a medida que se ejecute el programa. Pues en ste caso vamos a pedir un numero entero cualquiera, porque el ejercicio unicamente nos pide: Hacer un programa que pida una cantidad , nada ms entonces solo lo declararemos como un valor entero seguido del nombre que usar como variable, por eso qued esa linea asi: int cantidad; Porque int va a indicar que la variable cantidad contendr datos enteros sin decimales. Asi de sencillo amigos/as. - Quinta linea: recurso cout *** - Sexta linea: recurso cin Bien sta es la linea nueva de programacin para nosotros, en sta linea le indicamos al programa que va a pedir un dato y se dato que ingrese el usuario/a, lo va a almacenar en la variable cantidad ( antes declarada ) Cmo funciona cin ? como sabemos ya, cin al ser un recurso para la entrada de datos de la libreria <iostream.h> no es una palabra restrigida/reservada, es decir que se puede usar como variable, pero NO es recomendable quiz de problemas al compilar el programa, para saber en C++ cual es o

no es una palabra reservada, pues se lo denota por estar en negrita ( ver entrada: reglas para la declaracion de variables ), entonces ahora que lo hemos recordado, veremos como es su sintaxis ( forma de escritura para que funcione como debe ) cin>>nombre de la variable ; esa la sintaxis que lleva para poder pedir datos al usuario/a. Si se omite uno de esos caracteres, al compilar el programa nos dar errores por mala escritura o sintaxis. ( compilar es hacer un barrido a los codigos escritos de arriba a abajo en busca de errores, de escritura/variables/funciones/etc.. ). Y as funciona cin Nota: El recurso cin tambien es denominado una instruccin de entrada de datos, para saber ms ver [ Tipos de instrucciones ] - Septima linea: recurso cout *** - Octava linea: pausando el programa *** Saludos, cualquier duda por favor diganmela con toda confianza

Dev-C++, clase3 mostrar variables


Publicado el 21 septiembre 2009 por Eddy Hola a todos/as, Hemos avanzado hasta ahora con los comando que deberiamos ir aprendiendo en orden y lo mas sencillo posible, ahora que sabemos: mostrar datos constantes ( clase1 ) ingresar variables ( clase2 ) Vamos a procedes con un ejercicio para aprender a mostrar variables. De la misma manera en que usamos el comando cout<< dato constante , lo usaremos para mostrar variables, la nica diferencia es que, como sabemos ya las constantes se las muestra con comillas y las variables no - Asi como lo vimos en su tiempo con el DFD Por se motivo es indispensable primero pasar por los diagramas de flujo y algoritmos antes de comenzar a programas con codigos, porque ayudan al mejor entendimiento. Por el simple hecho de que se compara y se da por hecho que es lo mismo, solo que en vez de simbolos ahora usamos codigos, y lo mismo es en cualquier lenguaje de programacion. Vamos a continuacion a ver un ejemplo para aplicar el concepto de sta clase, mostrar variables. 3.-) Hacer un programa que pida 3 numeros y luego los muestre en pantalla. Por favor antes de ver sta entrada recomiendo ver la entrada: Uso de la aplicacion Tenemos que el ejercicio propuesto pide 3 numeros que van a ser nuestras variables ya que cada vez que se ejecute el programa los datos cambiarn, entonces son datos variables. Por lo tanto estamos pidiendo datos, para pedirlos se le avisa al usuario entonces aplicaremos ( mostrar constantes ) y para que el usuario/a lo ingrese estaremos aplicando ( ingresar variables ), lo nuevo es que ahora vamos a mostrar las variables ingresadas por el usuario/a.

ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis. Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ). #include <iostream.h> main( ) { int n1,n2,n3; cout<< \n \n \t \t Ingrese el primer numero: \n \n ; cin>>n1; cout<< \n \n \t \t Ingrese el segundo numero: \n \n ; cin>>n2; cout<< \n \n \t \t Ingrese el tercer numero: \n \n ; cin>>n3; cout<< \n Los numeros ingresados fueron: \n ; cout<< \t primer numero: <<n1<<\n; cout<< \t segundo numero: <<n2<<\n; cout<< \t tercer numero: <<n3<<\n; system(pause); } - Primera linea: la cabecera y libreria *** - Segunda linea: funcion principal *** - linea 3 16 : inicio y fin del programa *** - Cuarta linea: declaramos variables *** Esta funcion ya la vimos en la clase anterior, pero quiero recalcar que las variables que vayamos a declarar en cada programa que hagamos si son ms de una pues van separadas con una coma. As: - Ejercicio de la clase anterior int cantidad; solo necesitabamos una variable para cumplir con lo que pedia el programa, pero ahora necesitamos tres variables, entonces colocamos en nombre de la variable seguida de una coma ( , ) para separar cada variable. As: - Ejercicio de sta clase int n1,n2,n3; - Quinta linea: recurso cout *** - Sexta linea: recurso cin *** Esta funcion tambien la vimos en la clase anterior, pero quiero recalcar que por cada cin ( por cada vez que pidamos un dato ), ste debe llevar su correspondiente variable, en ste caso tenemos 3 variables, entonces habr 3 cin pidiendo cada una. As es correcto: cin>>n1; > para el numero 1 cin>>n2; > para el numero 2

cin>>n3; > para el numero 3 Esta mal que se haga por ejemplo que pidamos los tres numeros y que le coloquemos al cin la misma variable ya que eso har que en vez de que se almacene un valor unico por cada variable, se reemplaze por el ms reciente. Asi es incorrecto: cin>>n1; > para el numero 1 cin>>n1; > para el numero 2 cin>>n1; > para el numero 3 Eso haria que se reemplace el numero anterior por uno nuevo ya que el dato que ingrese el usuario/a se almacenar en la misma variable cada vez, perdiendo asi sa variable el valor que tenia antes por el ultimo valor que ingreso el usuario/a. - Septima linea: recurso cout *** - Octava linea: recurso cin *** - Novena linea: recurso cout *** - Decima linea: recurso cin *** - linea 11: recurso cout *** - linea 12: recurso cout *** Ya he explicado como funciona cout , pero aqui vamos a mostrar variables ahora. Para ello se usa el mismo comando solo que como decia al comienzo, para mostrar constantes se usan las comillas, mientras que para mostrar variables no se usan comillas . Entonces por se motivo vemos sto: cout<< \t primer numero: <<n1<<\n; vemos que estamos mostrando una parte constante: \t primer numero: seguido de la parte constante que no lleva comillas: n1 y para dar un enter o salto de linea colocamos despues el simbolo \n como siempre en una manera constante osea entre comillas como siempre lo hemos hecho, ya que es un codigo hecho con ese fin, no es una variable. Hemos usado << en varias situaciones ya que se es el separador de datos constantes y datos variables. Es como decir sto: cout<< \t primer numero: ; cout<< n1; cout<< \n ; Pero simplificado en una sola linea, por eso queda as: cout<< \t primer numero: <<n1<<\n; Si recordamos en DFD, nuestro separador de partes constantes y partes variables era la coma ( , ) pueden recordarlo ( AQUI ). Ac en el lenguaje c++ en cambio es el simbolo << . - linea 13: recurso cout *** - linea 14: recurso cout *** - linea 15: pausando el programa *** Saludos, cualquier inquietud haganmela saber

Dev-C++, clase4 operaciones con variables


Publicado el 25 septiembre 2009 por Eddy

Hola a todos/as, Hasta el momento ya hemos visto lo que son: Dev-C++, clase1 mostrar constantes Dev-C++, clase2 ingresar variables Dev-C++, clase3 mostrar variables Entonces ya que sabemos mostrar datos variables y constantes y sabemos como ingresar variables. Pues ahora procedemos a aprender como hacer operaciones con dichas variables y as ir sacando resultados diferentes, la forma no cambia mucho, hacer operaciones es aun ms facil que ingresar o mostrar datos porque no hace falta de ningun comando 4.-) Hacer un programa que pida 3 numeros y luego los sume y muestre la respuesta en pantalla con el formato: n1+n2+n3=n4 Por favor antes de ver sta entrada recomiendo ver la entrada: Uso de la aplicacion Bien, el ejercicio nos pide 3 numeros ( que son los que ingresar el usuario/a ), y con esos numeros almacenados cada uno en una variable diferente, es decir: n1 = primer nuemro n2 = segundo numero n3 = tercer numero Esos numeros vamos a sumarlos entre ellos para as sacar un resultado, que ser almacenado en una nueva variable que llamaremos n4. n4 = resultado de la suma de n1+n2+n2 Ahora que sabemos como va a ir planteado nuestro programa, procedemos a realizarlo. Y as como les dije antes, no hay miedos, porque hacer operaciones es super sencillo no entra ningun nuevo comando Nota: El hecho de usar el simbolo = , quiere decir que ests usando un operador de asignacion, puedes ver ms detalles [ Aqui ] ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis. Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ). #include <iostream.h> main () { int n1,n2,n3,n4; cout<< \t \n Ingrese 3 numeros para hallar la suma total de ellos \n \n; cout<< \n Primer nuemro: \n; cin>>n1; cout<< \n Segundo nuemro: \n; cin>>n2; cout<< \n Tercer nuemro: \n; cin>>n3;

n4 = n1 + n2 + n3; cout<< \n La suma total de los numeros es: \n\n; cout<<n1<<+<<n2<<+<<n3<<=<<n4<<\n\n; system(pause); } - linea 1: la cabecera y libreria *** - linea 2: funcion principal *** - linea 3 16 : inicio y fin del programa *** - linea 4: declaramos variables *** - linea 5: recurso cout *** - linea 6: recurso cout *** - linea 7: recurso cin *** - linea 8: recurso cout *** - linea 9: recurso cin *** - linea 10: recurso cout *** - linea 11: recurso cin *** - linea 12: operacion con las variables Como podemos ver sin ningun codigo nuevo, le hemos asignado a la variable n4 un nuevo valor ( que equivale a la suma de n1+n2+n3 ). Por eso tenemos la linea de sta manera: n4 = n1 + n2 + n3; Vemos que n4 viene a ser nuestra variable receptora de informacion. Porque a ella se le asigna el valor de: n1+n2+n3 Entonces si tendriamos que: n1 = 5 n2 = 245 n3 = 10 Equivale a: n4 = 5 + 245 + 10; Entonces: n4 = 260; Nota: El operador de asignacion = tambien es denominado una instruccin de asignacion, para saber ms ver [ Tipos de instrucciones ] - linea 13: recurso cout *** - linea 14: recurso cout *** NOTA: su explicacion ms detallada est en la linea 12 de la clase3 - linea 15: pausando el programa *** Saludos, cualquier duda con toda confianza me la pueden decir

Dev-C++, clase5 ejercicios de aplicacion I


Publicado el 29 septiembre 2009 por Eddy Hola a todos/as, Bien, pues con lo que hemos visto hasta ahora, proceder a realizar varios ejercicios ( con lo que hemos visto hasta ahora ), pero antes quisiera que estn al dia de lo que hemos venido haciendo durante ste tiempo, as que les sugiero que revisen la seccin Ayuda, donde encontrarn detallada de manera ascendente las clases y ejercicios que hemos venido

haciendo. Recuerden que en sta clase veremos ejercicios que contienen todo lo que vimos en las clases anteriores 5.-) Hacer un programa que permita ingresar 3 numeros, entonces que multiplique los dos primeros numeros y luego a se resultado se le sume el tercer numero que ingres el usuario/a. Por favor antes de ver sta entrada recomiendo ver la entrada: Uso de la aplicacion Bien, veamos lo que tenemos: Nos pide que ingresemos tres numeros, entonces sern tres variables diferentes para nosotros, usaremos n1,n2,n3 para los numeros que ingresar el usuario/a. Despues nos dice que tenemos que multiplicar los dos primeros numeros, es decir que multiplicaremos n1 y n2 lo cual nos dar un resultado, a ese resultado lo llamaremos multip porque es el resultado de la multiplicacion de n1 y n2. Y por ultimo el programa debe sumarle el valor de n3 a nuestra variable multip porque as lo dice el enunciado. esa operacion dar un nuevo resultado el cual lo llamaremos resp de respuesta y ser lo que mostraremos al final. Veamos el ejercicio asumiendo datos: n1 = 10 n2 = 8 n3 = 40 Entonces, ahi toca multiplicar los dos primeros numeros: n1 * n2 = multip 10 * 8 = 80 Luego a se valor hallado se le sumar el tercer numero: multip + n3 = resp 80 + 40 = 120 Al final, se mostrar el resultado que ser: 120 Ahora vamos con el codigo fuente del programa ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis. Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ). #include <iostream.h> main () { int n1,n2,n3,multip,resp; cout<< \t \n Ingrese 3 numeros \n \n; cout<< \t \n los dos primeros se multiplicaran y ese resultado se le sumara al tercer numero\n \n; cout<< \n Primer nuemro: \n; cin>>n1;

cout<< \n Segundo nuemro: \n; cin>>n2; cout<< \n Tercer nuemro: \n; cin>>n3; multip = n1 * n2; cout<< \n La multiplicacion de los dos primeros numeros fue: \n\n; cout<<n1<<x<<n2<<=<<multip<<\n\n; resp = multip + n3; cout<< \n Al sumar el tercer nuemro con el resultado anterior tenemos: \n\n; cout<<multip<<+<<n3<<=<<resp<<\n\n; system(pause); } - linea 1: la cabecera y libreria *** - linea 2: funcion principal *** - linea 3 20 : inicio y fin del programa *** - linea 4: declaramos variables *** - linea 5: recurso cout *** - linea 6: recurso cout *** - linea 7: recurso cout *** - linea 8: recurso cin *** - linea 9: recurso cout *** - linea 10: recurso cin *** - linea 11: recurso cout *** - linea 12: recurso cin *** - linea 13: operaciones con variables *** NOTA: su explicacion ms detallada est en la clase4 - linea 14: recurso cout *** - linea 15: recurso cout *** NOTA: su explicacion ms detallada est en la linea 12 de la clase3 - linea 16: operaciones con variables *** - linea 17: recurso cout *** - linea 18: recurso cout *** - linea 19: pausando el programa *** 6.-) Hacer un programa que pida 4 numeros, entonces sumar el primero y el tercero, luego se le restar el segundo y a ese resultado se le multiplicar el cuarto numero. Bien, veamos lo que tenemos: Nos pide que ingresemos cuatro numeros, entonces sern cuatro variables diferentes para nosotros, usaremos n1,n2,n3,n4 para los numeros que ingresar el usuario/a. Despues nos dice que tenemos que sumar el primer numero con el tercer nuemero, es decir sumaremos: n1 y n3 lo cual nos dar un resultado, a ese resultado lo llamaremos sum porque es el resultado de la suma de n1 y n3. Tambien nos pide el programa que a se resultado se le reste el segundo numero, es decir que a lo que nos di como resultado sum se le restar el valor que tenga la variable n2,

as habra un nuevo numero que ser llamado rest porque es el resultado de la resta entre sum y n2 Y por ultimo el programa debe multiplicar se resultado hallado ( osea rest ) el valor de n4 porque as lo dice el enunciado. esa operacion dar un nuevo resultado el cual lo llamaremos resp de respuesta y ser lo que mostraremos al final. Veamos el ejercicio asumiendo datos: n1 = 50 n2 = 30 n3 = 15 n4 = 6 Entonces, ahi toca multiplicar los dos primeros numeros: n1 + n3 = sum 50 + 15 = 65 Luego a se valor hallado se le restar el segundo numero: sum - n2 = rest 65 - 30 = 35 Y por ultimo tenemos que a se valor se le debe multiplicar la cantidad que est almacenada en nuestra variable n4 rest * n4 = resp 35 * 6 = 210 Al final, se mostrar el resultado que ser: 210 Ahora vamos con el codigo fuente del programa ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis. Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ). #include <iostream.h> main () { int n1,n2,n3,n4,sum,rest,resp; cout<< \t \n Ingrese 4 numeros \n \n; cout<< \n Primer nuemro: \n; cin>>n1; cout<< \n Segundo nuemro: \n; cin>>n2; cout<< \n Tercer nuemro: \n; cin>>n3; cout<< \n Cuarto nuemro: \n; cin>>n4; sum = n1 + n3;

cout<< \n La suma del primer y tercer numero fue: \n\n; cout<<n1<<+<<n3<<=<<sum<<\n\n; rest = sum n2; cout<< \n Al restar el segundo nuemro con el resultado anterior tenemos: \n\n; cout<<sum<<-<<n2<<=<<rest<<\n\n; resp = rest * n4; cout<< \n Multiplicando el cuarto nuemro con el resultado anterior tenemos: \n\n; cout<<rest<<x<<n4<<=<<resp<<\n\n; system(pause); } - linea 1: la cabecera y libreria *** - linea 2: funcion principal *** - linea 3 24 : inicio y fin del programa *** - linea 4: declaramos variables *** - linea 5: recurso cout *** - linea 6: recurso cout *** - linea 7: recurso cin *** - linea 8: recurso cout *** - linea 9: recurso cin *** - linea 10: recurso cout *** - linea 11: recurso cin *** - linea 12: recurso cout *** - linea 13: recurso cin *** - linea 14: operaciones con variables *** NOTA: su explicacion ms detallada est en la clase4 - linea 15: recurso cout *** - linea 16: recurso cout *** NOTA: su explicacion ms detallada est en la linea 12 de la clase3 - linea 17: operaciones con variables *** - linea 18: recurso cout *** - linea 19: recurso cout *** - linea 20: operaciones con variables *** - linea 21: recurso cout *** - linea 22: recurso cout *** - linea 19: pausando el programa *** Saludos, y cualquier duda o comentario con gusto lo atender lo ms pronto posible
About these ads

Dev-C++, clase6 operaciones con decisiones


Publicado el 9 octubre 2009 por Eddy Hola a todos/as,

Seguimos con las clases, en ste caso entra una nueva instruccin que vamos a usar. La instruccin es del tipo selectiva doble y su denominacin en codigo es: if / else y nos permite realizar decisiones del tipo: - Si x vale 100 entonces haga sto [ Si = if ] - Caso contrario haga sto [ Caso contrario = else ] Esas son decisiones que podemos tomar, las decisiones van normalmente en todo caso a que; si algo es asi, pues haga algo // si algo no es asi, pues haga algo diferente y por ultimo de que si son iguales las cosas, pues se hara algo tambien en se caso. Recordemos que en la decision es como una comparacion si se fijan, siempre se estan comparando valores Vamos con un ejercicio para ver ms a fondo como va sto de las decisiones en el lenguaje C++, y aprender ms sobre sta nueva funcion que veremos. 7.-) Hacer un programa que pida dos nuemros. En caso de que el primero sea mayor que el segundo, se le sumar la cantidad de 100. Si al contrario el segundo numero es mayor al primero, se le sumar la cantidad de 200. Mostrar el mayor numero con la suma que le corresponde 100 o 200. Por favor antes de ver sta entrada recomiendo ver la entrada: Uso de la aplicacion Bien, el ejercicio nos dice que debemos pedir dos numeros, para ello usaremos dos variables n1 y n2. Tambien nos dice que si el primer numero es mayor al segundo se le sumar la cantidad de 100, y si el segundo es mayor al primero se le sumar 200. Asi que pongamos valores y emulemos lo que vendria a hacer el ejercicio: n1 = primer numero n2 = segundo numero resp1 = en caso de que el primer numero haya sido mayor en sta variable se almacenar el valor de n1 + 100 resp2 = en caso de que el segundo numero haya sido mayor en sta variable se almacenar el valor de n2 + 200 Si n1 es mayor a n2 entonces a n1 le sumamos 100 Caso contrario significa que n1 no fue mayor a n2, osea que n2 es mayor a n1 por lo tanto a n2 que vendria a ser el mayor se le suma 200 - Vamos con valores ahora n1 = 20 n2 = 60 Si 20 es mayor a 60 entonces resp1 = 20 + 100 [ pero no es as, 20 NO es mayor a 60 ], asi que vamos al caso contrario.. Caso contrario ( osea al revez, que 60 es mayor a 20 ) entonces resp2 = 60 + 200 [ ste si es correcto, pues 60 SI es mayor a 20 ] Entonces mostrariamos el valor mayo con su suma respectiva asi: El numero mayor fue: 60 Y se le agrego la cantidad de 200, por lo tanto el resultado es: 260. Esa es la idea del ejercicio

ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis. Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ). #include <iostream.h> main () { int n1,n2,resp1,resp2; cout<< \t \n Ingrese 2 numeros \n \n; cout<< \n Primer nuemro: \n; cin>>n1; cout<< \n Segundo nuemro: \n; cin>>n2; if ( n1 > n2 ) { resp1 = n1 + 100; cout<< \n El numero mayor fue: <<n1<< Y se le agrego la cantidad de 100, por lo tanto el resultado es: <<resp1<<\n\n; } else { resp2 = n2 + 200; cout<< \n El numero mayor fue: <<n2<< Y se le agrego la cantidad de 200, por lo tanto el resultado es: <<resp2<<\n\n; } system(pause); } - linea 1: la cabecera y libreria *** - linea 2: funcion principal *** - linea 3 21 : inicio y fin del programa *** - linea 4: declaramos variables *** - linea 5: recurso cout *** - linea 6: recurso cout *** - linea 7: recurso cin *** - linea 8: recurso cout *** - linea 9: recurso cin *** - linea 10 19: instruccion selectiva doble: if / else Como ya venia diciendo en el comienzo de sta clase, la instruccin selectiva doble: if / else es para tomar decisiones entre de que: si esto es como esto.. entonces haga esto.. si esto no es como esto.. entonces haga esto.. si estas cosas son iguales.. entonces haga esto..

Sirve para la toma de decisiones como pueden observar, muy bien y en el ejercicio que vine explicando la logica de l arriba veiamos que si era mayor el primero se le sumaba 100, si era mayor el segundo se le sumaba 200. Ahora, como sabemos cada instruccin\funcion\recurso\protipo\etc.. tiene su sintaxis ( as como vimos con la sintaxis de los recursos cin y cout ), la instruccin selectiva doble: if / else de igual manera tienen una sintaxis, la cual explicar a continuacion: if ( comparacion de datos ) { operaciones o datos a mostrar si la comparacion result como se queria } Como podemos observar, primero se coloca la palabra reservada if que significa ( si.. ), entonces ahi comenzariamos con el: si x vale 1 entonces.. ( sto es un ejemplo ) Luego de la palabra reservada if, pues colocamos lo que queremos comparar, dependiendo del ejercicio puede variar. En nuestro caso era que comparabamos dos variables para ver cual era mayor. As: if ( n1 > n2 ) Ahora que se hizo la comparacion hay que decirle al programa que va a hacer si eso es cierto. Entonces el programa analiza.. es n1 mayor que n2 ?. Respuesta SI ( supongamos ) Entonces debe hacer algo al respecto, ahi es donde entra en juego lo que va entre llaves { } Asi como decia arriba en la sintaxis de la funcion if, en las llaves se puede hacer tanto, operaciones o simplemente mostrar un dato, en nuestro caso hicimos las dos cosas. - Hicimos operaciones: resp1 = n1 + 100; - Mostramos datos: cout<< \n El numero mayor fue: <<n1<< Y se le agrego la cantidad de 100, por lo tanto el resultado es: <<resp1<<\n\n; pero todo eso debe ir entre llaves para indicarle al programa de donde a donde se estan realizando cosas por el hecho de que la resupesta haya sido SI a la decision. Pero si la respuesta a la decision hubiese sido NO, ahi cambia la cosa. Se salta automaticamente lo que haria el programa si hubiera sido SI y va directamente a hacer lo que tenia previsto cuando la respuesta era NO. De esta manera: es n1 mayor que n2 ?. Respuesta NO ( supongamos ) Entonces debe hacer algo al respecto, y eso va a ir entre llaves como en el caso anterior { } Pero ya no va if si no que va else porque if es cuando la respuesta a la condicion sea SI y else es cuando la respuesta a la condicion sea NO Ya que suponemos que n1 NO fue mayor que n2, entonces se le sumaba 200 a la cantidad mayor, en ste caso es n2. Y asi mismo se puede hacer operaciones o simplemente mostrar datos, y como en el if, hicimos las dos cosas: - Hicimos operaciones: resp2 = n2 + 200;

- Mostramos datos: cout<< \n El numero mayor fue: <<n2<< Y se le agrego la cantidad de 200, por lo tanto el resultado es: <<resp2<<\n\n; As es como funciona if / else. Y su sintaxis aunque ya est explicada en todo lo que he dicho, se la puede dejar expuesta as: if ( comparacion de datos ) { operaciones o datos a mostrar si la comparacion result como se queria } else > caso contrario { operaciones o datos a mostrar si la comparacion no result como se queria } - linea 20: pausando el programa *** Saludos y cualquier duda o comentario lo atender lo ms rapido posible

Dev-C++, clase7 ejercicios de aplicacion II


Publicado el 13 octubre 2009 por Eddy Hola a todos/as, En la clase anterior vimos la aplicacion de la instruccin selectiva doble: if / else que sirve para las condiciones. Ahora haremos unos ejercicios de aplicacion para terminar de solventar ese conocimiento y aplicarlo bien. Vamos a ello. 8.-) Hacer un programa que pida 3 numeros y al mayor lo muestre en pantalla Por favor antes de ver sta entrada recomiendo ver la entrada: Uso de la aplicacion Bien, entonces segun el ejercicio propuesto necesitamos tres numeros, para ello vamos a usar tres variables diferentes: n1,n2,n3. n1 = primer numero n2 = segundo numero n3 = tercer numero Luego habra que analizar cual entre los tres numeros ingresados es el mayor, y al encontrarlo lo mostraremos en pantalla. Funcionar de sta manera, asumiendo datos: n1 = 15 n2 = 22

n3 = 9 Expresandolo en manera humana, como apreciamos nosotros el medio: si 15 es mayor a 22 y tambien es mayor a 9 entonces, Mostramos 15 Expresandolo en manera de codigo, la primera pregunta seria: Si 15 > 22 && 15 > 9 si eso fuera cierto mostrariamos el 15 como respuesta. Pero no es cierto por lo tanto vamos con la siguiente pregunta. Si 22 > 15 && 22 > 9 eso si es cierto, entonces mostrariamos el numero 22 como resultado. Pero si eso tampoco fuera cierto se preguntaria por tercera vez: Si 9 > 15 && 9 > 22 si eso fuera cierto, se mostraria el 9 como numero mayor, pero no es as. El numero mayor fue el 22. Se hubiera mostrado en la linea anterior cuando preguntamos si 22 era mayor que 15 y 9 Tambien podemos observar que tenemos un codigo nuevo, es el separador && que significa Y . Asi como vemos he coloreado con caf el Y en el lenguaje Humano y el && en lenguaje codigo para que observen que decir Y equivale a poner && en codigo fuente en lenguaje C+ + NOTA: ver mas informacion sobre el operador logico && [ AQUI ] Ahora que vimos como va el ejercicio. Comenzamos con el codigo fuente ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis. Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ). #include <iostream.h> main () { int n1,n2,n3; cout<< \t \n Ingrese 2 numeros \n \n;

cout<< \n Primer nuemro: \n; cin>>n1; cout<< \n Segundo nuemro: \n; cin>>n2; cout<< \n Segundo nuemro: \n; cin>>n3; if ( n1 > n2 && n1 > n3 ) { cout<< \n El mayor numero entre: <<n1<< , <<n2<< , <<n3<< fue el numero: <<n1<<\n\n; } if ( n2 > n1 && n2 > n3 ) { cout<< \n El mayor numero entre: <<n1<< , <<n2<< , <<n3<< fue el numero: <<n2<<\n\n; } if ( n3 > n1 && n3 > n2 ) { cout<< \n El mayor numero entre: <<n1<< , <<n2<< , <<n3<< fue el numero: <<n3<<\n\n; } system(pause); } - linea 1: la cabecera y libreria *** - linea 2: funcion principal *** - linea 3 25 : inicio y fin del programa *** - linea 4: declaramos variables *** - linea 5: recurso cout *** - linea 6: recurso cout *** - linea 7: recurso cin *** - linea 8: recurso cout *** - linea 9: recurso cin ***

- linea 10: recurso cout *** - linea 11: recurso cin *** - linea 12 15: instruccin selectiva simple if Vemos asi como lo explicaba arriba, que el codigo pide al programa que pregunte si el primer numero es mayor que el segundo y el tercero. A continuacion les colocare el modo lenguaje humano y el lenguaje codigo Lenguaje humano Si ( primer numero > segundo numero Y primer numero > tercer numero ) Entonces, haga esto: { muestre: El mayor numero entre: primer numero,segundo numero,tercer numero. fue el numero: primer numero doble enter; } Lo mismo que vemos escrito en lenguaje humano, es decir lo que nosotros entendemos y podemos realizarlo a medida de logica. Pues la computadora no lo entendera porque no es su lenguaje, asi que para decirle eso, habr que hablar en su lenguaje de sta manera: ( como est en el programa ya expuesto ) Lenguaje codigo if ( n1 > n2 && n1 > n3 ) { cout<< \n El mayor numero entre: <<n1<< , <<n2<< , <<n3<< fue el numero: <<n1<<\n\n; } Y asi mismo con cada pregunta, ya que son tres numeros se haran tres preguntas, ya que cada una asumira que se sera el primero y si no es as pues saltar a la siguiente y siguiente y siguiente asi sucesivamente hasta llegar al numero que cumple la condicion [ que sea mayor a los demas numeros ingresados ] Nota: Cuando solo se valida a la expresin para saber unicamente si fu positiva, se le denomina una instruccin selectiva simple y usa unicamente el if porque va a validar solo en caso de que se haya cumplido la condicin, en sta instruccin no entra el else , por lo mismo se le denomina simple. Para ver ms entrar [ Aqui ]

- linea 16 19: instruccin selectiva simple if *** - linea 20 23: instruccin selectiva simple if *** - linea 24: pausando el programa *** 9.-) Hacer un programa que pida 5 numeros y muestre los numeros pares hallados Bien como podemos apreciar, el ejercicio propuesto nos pide que ingresemos cinco numeros, osea que usaremos cinco variables: n1 = primer numero n2 = segundo numero n3 = tercer numero n4 = cuarto numero n5 = quinto numero Y segun el ejercicio, solo se deben mostrar aquellos numeros que fueron pares. Entonces tendremos que validar cada numero para saber si cada uno es par o no. Si es par lo mostramos si no es par pues pasamos al siguiente. De sta manera: Si primer numero es par entonces { mostramos el primer numero } Vamos con el codigo fuente del programa: ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis. Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ). #include <iostream.h> main () {

int n1,n2,n3,n4,n5; cout<< \t \n Ingrese 5 numeros \n \n; cout<< \n Primer nuemro: \n; cin>>n1; cout<< \n Segundo nuemro: \n; cin>>n2; cout<< \n Tercer nuemro: \n; cin>>n3; cout<< \n Cuarto nuemro: \n; cin>>n4; cout<< \n Quinto nuemro: \n; cin>>n5; if ( n1 % 2 == 0 ) { cout<< Numero par hallado: <<n1<<\n\n; } if ( n2 % 2 == 0 ) { cout<< Numero par hallado: <<n2<<\n\n; } if ( n3 % 2 == 0 ) { cout<< Numero par hallado: <<n3<<\n\n; } if ( n4 % 2 == 0 ) { cout<< Numero par hallado: <<n4<<\n\n; } if ( n5 % 2 == 0 ) { cout<< Numero par hallado: <<n5<<\n\n; } system(pause); } - linea 1: la cabecera y libreria *** - linea 2: funcion principal ***

- linea 3 37 : inicio y fin del programa *** - linea 4: declaramos variables *** - linea 5: recurso cout *** - linea 6: recurso cout *** - linea 7: recurso cin *** - linea 8: recurso cout *** - linea 9: recurso cin *** - linea 10: recurso cout *** - linea 11: recurso cin *** - linea 12: recurso cout *** - linea 13: recurso cin *** - linea 14: recurso cout *** - linea 15: recurso cin *** - linea 16 19: instruccin selectiva simple if *** Asi como venia diciendo al comienzo del ejercicio. Teniamos que validar cada numero para saber si era o no un numero par, y en caso de que lo fuese mostrarlo. Pero.. Cmo sabemos si un numero es par ? Esto ya lo hemos visto cuando vimos DFD, pero de todas maneras lo explicare a continuacion: Pues un numero es par cuando al dividirlo para dos ( 2 ), su residuo o resto es igual a cero ( 0 ). Dado como la formula:

entonces si tenemos por ejemplo dando datos los siguientes valores: n1 = 22 n2 = 7

Aplicando la formula de numeros pares ( numero cualquiera dividio para dos ), entonces tenemos que: Numero par 22 / 2 = 11 sobrando cero ( 0 ) porque es exacta la division. Numero impar 7 / 2 = 3 sobrando uno ( 1 ) porque la division no es exacta. Pero todo lo que vemos es la manera en como la entendemos nosotros, a la computadora se le escribe en codigo para que entienda entre lineas lo que debe realizar y como lo debe realizar. Para ello lo transicribimos del lenguaje humano al lenguaje codigo. De esta manera para que sea ms didactico: Lenguaje humano Si el residuo del primer numero al dividido para dos es igual a cero entonces { mostrar el primer numero porque es par } Lenguaje codigo if ( n1 % 2 == 0 ) { cout<< Numero par hallado: <<n1<<\n\n; } Como podemos observar aqui tambien usamos un nuevo codigo que es para hallar el residuo o resto de una division, es el simbolo % . Recordatorio: en DFD usabamos una funcion llamada mod para hacer sta operacion, osea hablamos de sacar el residuo/resto/lo que sobra, en una division de dos numeros. [ ver ms sobre mod en DFD, ejercicio8 ]. Ac en el lenguaje C++ usamos a diferencia de DFD, un simbolo que equivale a usar el mod en DFD, es el simbolo que venimos viendo en sta clase: % He hecho una grafica donde muestro ms didacticamente como funciona el mod ( en DFD ) y el % ( en lenguaje C++ ), como ven a continuacion:

Ampliar imagen - linea 20 23: instruccin selectiva simple if *** - linea 24 27: instruccin selectiva simple if *** - linea 28 31: instruccin selectiva simple if *** - linea 32 35: instruccin selectiva simple if *** - linea 36: pausando el programa *** Eso fue todo por sta clase, espero haya sido de ayuda. Cualquier inquietud o sugerencia me la pueden comentar, la atender lo ms rapido posible. Saludos

Dev-C++, clase8 ciclo: mientras que..


Publicado el 24 octubre 2009 por Eddy Hola a todos/as, En sta clase veremos un nuevo bucle ( secuencia repetitiva ): DO WHILE. Que en espaol podria ser traducida como: hacer sto miestras que sto pase. Esta nueva instruccin repetitiva la usaremos para hacer repeticiones de algo un numero indeterminado de veces. Por ejemplo el caso de que solo se desee ingresar un numero que sea menor a 10 entonces no podemos dejar que el usuario ingrese cualquier digito, para eso esta el ciclo mientras, ya que diriamos nosotros.. mientras que el numero ingresado sea mayor a 10 entonces.. pida de nuevo el numero hasta que ingrese un numero menor a 10 Ese es un caso normal para el uso de la instruccin repetitiva: DO WHILE

Pero vamos a profundisar ms con un ejemplo sencillo para que quede claro como funciona y como es su sintaxis, vamos a ello: 10.-) Hacer un programa que pida un numero mayor a 100 y lo muestre en pantalla con la forma: *** numero *** Por favor antes de ver sta entrada recomiendo ver la entrada: Uso de la aplicacion Bien como podemos observar, el ejercicio solo nos pide que ingresemos un numero pero con una condicion, de que el numero ingresado sea mayor a 100, si no cumple esa funcion pues no vale el programa porque la finalidad es que el usuario ingrese un numero unicamente mayor a 100. Para sto vamos a poner en practica lo que ya hemos aprendido en las clases anteriores, siendo la ms reciente la clase sobre la instruccin selectiva doble: if / else [ clase6 ] Desglosando un poco lo que vamos a hacer, pues necesitamos unicamente de un numero, por lo tanto vamos a usar una variable unicamente, le asignare el nombre de num porque va a ser el numero que ingrese el usuario/a. De sta manera pediremos el numero al usuario, el usuario ingresar un numero y ese numero se almacenara en la variable num Ahora que la variable num tiene el numero ingresado procederiamos a analizarla a ver si es que el numero que ingres el usuario/a es mayor a 100, si es asi lo mostramos directamente, pero si no es asi; entonces ahi aplicamos el ciclo mientras.. Diriamos lo siguiente: Hacer: ingresar un numero > DO Hasta que: el numero ingresado sea mayor a 100 > WHILE Entonces el usuario/a, ingresar una y otra vez un numero hasta que el numero que ingrese sea mayor a 100, si no; el bucle se repetir infinitamente. Una vez que haya ingresado el numero mayor a 100, debemos hacer que el programa lo muestre en pantalla con el formato: *** num *** ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis. Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ).

#include <iostream.h> main () { int num; cout<< \t \n Ingrese un numero mayor a 100 \n \n; cin>>num; if ( num <= 100 ) { do { cout<< \t \n Ingrese un numero mayor a 100 \n \n; cin>>num; } while ( num <= 100 ); } cout<< \n \n El numero fue: <<*** <<num<< ***<<\n \n; system(pause); } - linea 1: la cabecera y libreria *** - linea 2: funcion principal *** - linea 3 18 : inicio y fin del programa *** - linea 4: declaramos variables *** - linea 5: recurso cout *** - linea 6: recurso cin *** - linea 7 15: instruccin selectiva simple: if *** - linea 9 14: instruccin repetitiva: do while Como podemos ver aqui estamos aplicando la nueva instruccin repetitiva, osea DO WHILE, como toda instruccin\funcin\prototipo\ lleva su forma de escritura, es decir su sintaxis para que funcione debe estar convocada de la manera en que se cre para que funcione bien, asi como hemos visto las sintaxis o formas de escritura para varias instrucciones como la de if else , recuerdan que era:

if ( algo pasa ) > si algo pasa { entonces.. hago sto, muestro sto,etc.. } Bien para el caso de DO WHILE es lo mismo, vamos con la sintaxis de: do > hacer lo que esta en llaves.. { sta operacion } while ( sto pase ) > mientras pase lo que est en parentesis Eso es lo que estamos diciendo y aplicando con la sintaxis que mostr arriba, pues supongamos que el usuario ingreso el numero: 60 ( en la linea 6 ). Bien, claramente vemos que el numero 6 NO es mayor que 100, por lo tanto NO lo deberia mostrar si no ms bien pedir de nuevo el numero HASTA que el usuario/a ingrese un numero mayor a 100 por ejemplo 106 Entonces ahi es donde entra en juego el DO WHILE, vemos que dice: Hacer lo siguiente { Pedimos al usuario que ingrese un numero mayor a 100 } Mientras que ( el numero que ingrese no sea mayor a 100 ) Perfecto, lo que tenemos es que si en el primer intento el usuario/a ingres una cantidad menor a 100, se meter en el ciclo DO WHILE, obligandolo en cada intento a que ingrese un numero mayor a 100, caso contrario el ciclo no acabar. Pero si en el primer intento ingres una cantidad mayor a 100, no entrar al ciclo DO WHILE si no que directamente lo mostrar. Porque vemos que para entrar al ciclo DO WHILE primero debe cumplir la condicion if que dice: if ( num <= 100 ) Si el numero es menor o igual a 100 entre al ciclo DO WHILE

Entonces asi vemos como funciona el ciclo mientras que - linea 16: recurso cout *** - linea 17: pausando el programa *** Saludos, y cualquier duda comenten con toda confianza

Dev-C++, clase9 ejercicios de aplicacion III


Publicado el 26 febrero 2010 por Eddy Hola a todos/as, En la clase anterior vimos la aplicacion de la instruccin repetitiva: do / while que sirve como bucle para hacer cosas de una manera repetitiva. Ahora haremos unos ejercicios de aplicacion para terminar de solventar ese conocimiento y aplicarlo bien. Vamos a ello. 11.) Hacer un programa que pida un numero que se encuentre entre el 1 y el 10, una vez ingresado muestre su cuadrado en pantalla. Por favor antes de ver sta entrada recomiendo ver la entrada: Uso de la aplicacion Ok, podemos ver que en el ejercicio propuesto tenemos que pedir un numero al usuario/a y dicho numero debe estar validado, porque debe estar necesariamente entre el 1 y el 10. No puede ingresar un cero porque es menor a 1, no se puede ingresar un 40 porque seria mayor que 10, entonces hay que validar y para ello usaremos instrucciones que ya hemos visto, como es la del if / else y la del do while. Asi: ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis. Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ). #include <iostream.h> main () {

short num,cuad; cout<< \t \n Ingrese un numero entre 1 y 10 \n \n; cin>>num; if ( num < 1 || num > 10 ) { do { cout<< \t \n Ingrese un numero entre 1 y 10 \n \n; cin>>num; } while ( num < 1 || num > 10 ); } cuad = num * num; cout<< \n \n El numero fue: <<num<<\n << \n Y su cuadrado es: <<cuad<<\n; system(pause); } - linea 1: la cabecera y libreria *** - linea 2: funcion principal *** - linea 3 20 : inicio y fin del programa *** - linea 4: declaramos variables *** - linea 5: recurso cout *** - linea 6: recurso cin *** - linea 7: instruccin selectiva simple: if *** - linea 8 15: inicio y fin del if ( contiene al do while que est en las lineas 9 14 ) *** - linea 9: instruccin repetitiva: do while *** Bien como podemos ver, aqui en la linea 9 tenemos la instruccin repetitiva que veniamos viendo en la clase anterior. Ahora, que estamos validando ? , recordemos que la instruccin repetitiva: do while significa hacer sto mientras sto pase , entonces sirve para validar

de alguna forma, algun dato. Y en este caso estamos validando si el numero ingresado es: menor que 1 mayor que 10. Como podemos ver tenemos sta forma: do { .. } while ( condicion ) en nuestro idioma, vendria a ser asi: Haga sto: { .. } mientras que sto pase: ( condicion ) Y en nuestro programa, que le estamos diciendo que haga ? do { cout<< \t \n Ingrese un numero entre 1 y 10 \n \n; cin>>num; } while ( num < 1 || num > 10 ); Le estamos diciendo: haga sto: { - muestre ste mensaje: Ingrese un numero entre 1 y 10 - pida el numero y guardelo en la variable num } mientras que el numero ingresado haya sido menor que 1 mayor que 10 Entonces el ciclo se va a repetir infinitas veces, hasta que el usuario/a ingrese un numero entre 1 y 10. Porque no queremos que ingrese un -4 por ejemplo el programa que nos han pedido dice que el numero ingresado debe estar entre 1 y 10, por lo tanto debemos validar - linea 10 14: inicio y fin del do while *** - linea 16: operaciones con las variables *** Aqui pues como vamos a sacarle el cuadrado a el numero que se ingres, debemos multiplicar dos veces el mismo numero para obtener su cuadrado. Asi:

Por ejemplo tenemos que se ingres el 5 , entonces decimos: nombre_de_la_variable = numero_ingresado * numero_ingresado; cuad = num * num cuad = 5 * 5 entonces en cuad va a estar almacenado el valor 25 que sali de multiplicar 5 * 5. Nota: Aqui estamos usando tanto: operadores de asignacion como instrucciones de asignacin - linea 17: recurso cout *** - linea 18: recurso cout *** - linea 19: pausamos el programa *** 12.) Hacer un programa que escoja entre dos opciones: 1: hombre y 2: mujer, si el usuario/a escoje 1, se mostrara el siguente mensaje bienvenido! , si escoje la opcion 2, mostrar el mensaje bienvenida! . Pero si no escoje ninguna de las opciones deber volver a pedir la opcion hasta que ingrese una de las dos opciones. Bien, como podemos ver debemos hacer un programa que mostrar dos opciones: 1: Hombre 2: Mujer y debemos validar de que se ingrese unicamente una de las dos opciones. Para ello usaremos el ciclo DO WHILE , para validar de que ingrese una opcion valida y si no lo hace, el programa se lo pedir hasta que lo haga ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis. Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ). #include <iostream.h> main () { short opcion;

cout <<Escoja una opcion: \n <<1: Hombre \n <<2: Mujer \n; cin >> opcion; if ( opcion < 1 || opcion > 2 ) { do { cout <<Escoja una opcion valida:; cin >> opcion; } while ( opcion < 1 || opcion > 2 ); } if ( opcion == 1 ) { cout << Bienvenido! \n; system(pause); } else { cout << Bienvenida! \n; system(pause); } } - linea 1: la cabecera y libreria *** - linea 2: funcion principal *** - linea 3 28 : inicio y fin del programa *** - linea 4: declaramos variables *** - linea 5: recurso cout *** - linea 6: recurso cout *** - linea 7: recurso cout *** - linea 8: recurso cin *** - linea 9 17: instruccion selectiva simple: if *** - linea 11 15: instruccin repetitiva: do while *** Aqui vemos que el do while slo se ejecuta si se cumple el if de arriba, es decir ste:

if ( opcion < 1 || opcion > 2 ) { . ( Aqui dentro de las llaves del if est el do while y lo que va a hacer ) } Eso significa que se va a validar de sta manera la opcion: 1.) se muestra un mensaje que dice escoja una opcion 1: hombre , 2: mujer ( osea el cout de la linea 5 7 ) 2.) se pide al usuario que ingrese la opcion que desea ( osea el cin de la linea 8 ) 3.) se hace una validacion interna, que pregunta: el numero que ingreso es menor a 1 es mayor a2? Si la respuesta es verdadero, proceder a hacer el do while ( osea avanza a la linea 11 ) y que se va a hacer dentro del do while ? Pues como vemos, se va a mostrar un mensaje que dice: escoja una opcion valida y luego pedir el numero y lo almacenar en la variable opcion, y eso lo har infinitas veces, hasta que el usuario/a ingrese un numero que NO sea menor a 1 mayor a 2 ( osea hasta que el usuario ingrese 1 2 unicamente! ) - linea 18 27: instruccin selectiva doble: if else *** Para que el programa llegue aqui, debi haber pasado por el do while, es decir el usuario despues de todos sus intentos entendi que debia ingresar el 1 si era hombre el 2 si era mujer, y una vez que el usuario ingres bien la opcion el do while concluye, y procede a la siguiente linea ( osea sta la linea 18 ), donde hacemos otra validacion ms, preguntamos internamente si: la opcion que ingres el usuario/a fu 1 ? Si la respuesta es verdadero, pues mostrar el mensaje que dice Bienvenido! y har una pausa ( con el system(pause) para que logremos ver el mensaje ). Pero si la respuesta fu falso, entonces quiere decir que la opcion que el usuario/a ingres no fu 1

entonces fu 2, no puede ser otro numero porque ya pas el do while, osea estamos seguros de que ingres 1 2 no hay de otra. Entonces al ser 2, quiere decir que es mujer y se muestra el mensaje: Bienvenida! y asi mismo se hace una pausa para que podamos observar el mensaje. - linea 26: pausando el programa *** Eso es todo amigos/as, pueden probar los programas en sus editores; cualquier pregunta no duden en hacerla, la atender lo ms pronto posible, gracias a todos espero que les haya servido, saludos!
About these ads

Dev-C++, clase11 ejercicios de aplicacion IV


Publicado el 22 marzo 2010 por Eddy Hola a todos/as, Bien vamos a hacer algunos ejercicios sobre el tema visto en la clase anterior [ ciclo "para.." ], asi practicamos un poco mas y sacamos algunas dudas 14.) Hacer un programa que pida N numeros y muestre la suma de ellos. Por favor antes de ver sta entrada recomiendo ver la entrada: Uso de la aplicacion Como podemos ver, en ste ejercicio se nos dice que debemos ingresar N numeros, entonces.. A qu se refiere con N numeros ? Con eso se refiere a que, no sabemos ni tenemos especificado cuantos numeros vamos a pedir, sto va a depender del usuario/a, por lo tanto vamos a crear una variable N ( entera ), y ahi vamos a almacenar cuantos numeros desea ingresar el usuario Luego dice que se debe mostrar la suma de esos N numeros, para ello crearemos una variable suma ( entera ) y en cada reiteracion le iremos sumando el siguiente numero que ingrese el usuario, como un acumulador. sabes que es un acumulador ? > [ ver tipos de instrucciones ]

ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis. Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ). #include <iostream.h> #include <conio.h> main() { int N, num, suma=0, x; cout << \n Cuantos numeros desea ingresar ? ; cin >> N; for ( x=1; x<=N; x++ ) { cout << \n Ingrese numero:; cin >> num; suma = suma + num; } cout << \n La suma de los << N << numeros es: << suma << endl; getch(); } - linea 1 2: la cabecera y libreria *** - linea 3 : funcion principal *** - linea 4 16: inicio y fin del programa *** - linea 5: declaramos variables *** - linea 6: recurso cout *** - linea 7: recurso cin *** - linea 8: instruccion repetitiva: for *** Aqui le decimos que vaya desde 1 hasta N , es decir que vaya hasta el numero que ingres el usuario; porque ese numero significa cuantos numeros el usuario/a queria ingresar. Tambien le indicamos que vaya de 1 en 1, todo sto es el formato que debe llevar la instruccion repetitiva: for como lo vimos en la clase anterior [ AQUI ].

- linea 9 13: inicio y fin del for *** - linea 10: recurso cout *** - linea 11: recurso cin *** - linea 12: operaciones con variables *** Como decia ms arriba, usaremos un acumulador para ir sumando los numeros que vaya ingresando el usuario/a. Los acumuladores funcionan de sta manera: 1) Se deben inicializar como los contadores: acumluador = 0; 2) van sumando a si mismo, un valor variable, por medio de la formula: acumulador = acumulador + variable Entonces, al tener como valor inicial cero, esto seria: acumluador = 0 + variable Ahora suponiendo valores: 0 = 0 + 2 , despues.. 2 = 2 + 88 , despues.. 100 = 100 + 11 , despues.. 111 = 111 + , despues.. y asi sucesivamente, hasta que nosotros querramos; en ste caso solo lo va a hacer N veces porque est dentro del for - linea 14: recurso cout *** Aqui se mostrar la suma acumulada de los N numeros que ingres el usuario/a. - linea 15: pausando el programa *** 15.) Hacer un programa que haye cuantos numeros pares e impares fueron ingresados en 10 oportunidades. Bien, qu tenemos ? Tenemos que, el usuario/a ingresar 10 numeros ( 10 oportunidades ), y nosotros debemos calcular cuantos numeros pares e impares fueron ingresados en ese rango, vamos a ello.

ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis. Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ). #include <iostream.h> #include <conio.h> main() { int x,n,par=0,imp=0; cout << Pares e impares ( 10 oportunidades ); for ( x=1; x<=10; x++ ) { cout << \n Ingrese numero:; cin >> n; if ( n % 2 == 0 ) par ++ ; else imp ++ ; } cout << \n Hubo << par << numeros pares. ; cout << \n Hubo << imp << numeros impares.; getch(); } - linea 1 2: la cabecera y libreria *** - linea 3: funcion principal *** - linea 4 19: inicio y fin del programa *** - linea 5: declaramos variables *** Como declaramos dos contadores, para pares e impares debemos inicializarlos. [ ver ms ] - linea 6: recurso cout *** - linea 7: instruccion repetitiva: for *** Aqui le decimos que va a pedir un numero 10 veces, de 1 en 1. - linea 8 15: inicio y fin del for ***

- linea 9: recurso cout *** - linea 10: recurso cin *** - linea 11 13: instruccion selectiva doble: if else *** Como sabemos ya, para saber si un numero es par se lo divide para 2 y si el residuo resto es cero ( 0 ), entonces ese numero es par. Aqui aplicamos esa logica, y decimos: si el residuo es cero, entonces el acumulador de pares aumenta en 1 unidad. caso contrario, el contador de impares aumenta en 1 unidad. Y eso lo har 10 veces, al final sabremos cuantas unidades se les aumentaron tanto a los pares como a los impares y de esa manera sabremos cuantos fueron pares y cuantos fueron impares - linea 12: operaciones con variables *** - linea 14: operaciones con variables *** - linea 16: recurso cout *** - linea 17: recurso cout *** - linea 18: pausando el programa *** Bien eso fue un repaso de la clase anterior, espero les haya servido; cualquier duda/comentario/sugerencia la atender lo mas pronto posible. Saludos!

Dev-C++, clase12 evaluando casos


Publicado el 23 marzo 2010 por Eddy Hola a todos/as, Ya he explicado los otros dos tipos de instrucciones selectivas que son: A) Selectiva simple ( if ) B) Selectiva doble ( if else ) Ahora voy a dedicar sta entrada para hablar sobre los casos ( case ) que vendrian a ser nuestra ultima selectiva ( multiple ). En ocaciones un algoritmo o un programa tendr una serie de decisiones en las que se tendr que evaluar una variable, y cada evalucain

se la har de manera separada, pues como hemos inidicado pueden darse multiples casos. Para ello vamos a usar la instruccin selectiva multiple: Switch. Para qu nos sirve ? Pues la instruccin selectiva multiple switch, puede manipular una serie de casos ( case ) y tiene un caso opcional que es el de por defecto ( default ) Bien, ahora vamos a ver su sintaxis; como sabemos toda instruccin\funcion\prototipo\.. tiene tu sintaxis, si se omite algo en la sintaxis el compilador al momento de analizar si el programa est correcto para ejecutarlo, no podr hacerlo y desplegar un mensaje de error en sa linea. Bien la forma de escribir la instruccion selectiva multiple Switch es la siguiente: 1) Cuando evaluamos por numero: switch ( lo que queramos evaluar, por lo general variables pero pueden ser funciones tambin.. ) { case 1 : aqui va lo que deber pasar en caso de que haya sido 1 ; break ; case 2 : aqui va lo que deber pasar en caso de que haya sido 2 ; break ; case 3 : aqui va lo que deber pasar en caso de que haya sido 3 ; break ; } 2) Cuando evaluamos por caracter: switch ( lo que queramos evaluar, por lo general variables pero pueden ser funciones tambin.. ) { case 1 : aqui va lo que deber pasar en caso de que haya sido 1 ; break ; case 2 : aqui va lo que deber pasar en caso de que haya sido 2 ; break ; case 3 : aqui va lo que deber pasar en caso de que haya sido 3 ; break ; } Bien como podemos ver, la diferencia es que cuando evaluamos por numero, se coloca directamente el numero mientras que cuando evaluamos por caracter se coloca el caracter entre comillas simples. Entonces la variable que se va a evaluar con el switch, importa al momento de hacerlo. Ya saben: - Si van a evaluar por numero: necesitan que la variable sea numerica ( es decir, int / short .. )

- Si van a evaluar por caracter: necesitan que la varible sea caracter ( es decir, char ) Y no olvidarse que cuando se evalua a un char, los casos van con comillas simples ( ) , como vimos en el ejemplo de arriba. Nota: break es una instruccin de bifurcacin, osea que interrumpe el proceso normal de un programa. Por ejemplo en el codigo de arriba, existe un break en el caso 1, sto har que si el caso 1 fu verdadero se harn las acciones que estn programadas en l y luego saldr del switch porque est el break. Continuemos, como hemos visto arriba, es sencillo usar sta selectiva multiple pues nosotros decidimos muy claramente que hacer, si se caso se cumple. Ahora, recuerdan que arriba mencion que existia un caso opcional que era: default , pues a ste por lo general siempre se lo pone al final de los casos para que si no encuentra ningun caso; se ejecute l ( osea el default ) y muestre algun mensaje de error haga alguna accin que le hayamos indicado. De sta manera lo colocariamos: switch ( lo que evaluamos ) { case 1 : .. ; break ; case 2 : .. ; break ; default : . ; } Nota: default no necesita llevar break ; al final, puesto que si llegamos a l significa que no se encontr ninguno de los casos y una vez ejecutado lo que tenia que hacer el caso default, terminar la instruccin ( es decir, saldr del switch ) . Ok, ahora tenemos una idea ms clara de como es la estructura de sta instruccion selectiva multiple, ahora vamos a ver un ejemplo claro de como usariamos nosotros el switch case, para tomar decisiones dependiendo de los casos que se den, vamos a ello: 16.) Hacer un programa que muestre dos opciones: 1) Aire 2) Agua Y que dependiendo de la opcin que se escoja, deber mostrar un mensaje:

- Para aire, el mensaje: Aire: las aves . - Para agua, el mensaje: Agua los peces . En caso de que el usuario/a, no ingrese ninguna de las opciones mencionadas desplegar un mensaje: Hasta pronto! . Por favor antes de ver sta entrada recomiendo ver la entrada: Uso de la aplicacion Bueno pues, ste es un tipico ejercicio donde vemos con claridad que se deben usar casos para sacar mejor partida; ya que conocemos hasta ahora: - Selectiva simple > para un solo caso, y dado por verdadero. - Selectiva doble > para cuando son dos casos, verdadero y falso. Y pues aqui tenemos tres casos: 1) Aire , 2) Agua , x) Hasta pronto! Entonces, no entra ninguna de las dos selectivas mencionadas Pero si entra una selectiva multiple que como su nombre lo indica trata de multiples casos, para ello usamos el switch. ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis. Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ). #include <iostream.h> #include <conio.h> main() { short opcion; cout << - Opciones - << endl << 1) Aire << endl << 2) Agua << endl << Seleccione una opcion: ; cin >> opcion; switch ( opcion )

{ case 1 : cout << Aire: las aves ; break; case 2 : cout << Agua: los peces ; break; default : cout << Hasta pronto! ; } getch(); } - linea 1 2: la cabecera y libreria *** - linea 3: funcion principal *** - linea 4 18: inicio y fin del programa *** - linea 5: declaramos variables *** - linea 6 9: recurso cout *** - linea 10: recurso cin *** - linea 11: instruccion selectiva multiple: switch Bien como vemos, aqui est la novedad pero como ya he venido explicando ms arriba se debe evaluar una variable, en ste caso estamos evaluando a la variable opcion que fu declarada como short, por lo tanto es numerica. Y al ser una evaluacion numerica que habia dicho ? , pues que los casos no iban con comillas simples; si no, directamente con los numeros a evaluar. - linea 12 16: inicio y fin del switch - linea 13: evaluando un caso Pues aqui nos encontramos con que vamos a evaluar el caso 1 , es decir el caso en que el usuario/a ingres la opcion 1 . Porque habia para escoger 3 opciones, Aire Agua Nada. Al escoger 1 , es decir la primera opcion pues eso tendr una consecuencia, la consecuencia ser la que nos inidica el problema. Bien, dice claramente que en caso de que haya sido 1 , se deber mostrar el mensaje: Aire: las aves y eso es lo que hacemos aqui, como pueden ver en la sintaxis:

case 1 : cout << Aire: las aves ; break; Traduciondo sto decimos que: En caso de que haya sido 1 la opcion, entonces: muestre sto: Aire: las aves y salga del switch. Y la misma logica la aplicamos, en los demas casos. - linea 14: evaluando un caso *** - linea 15: evaluando un caso *** Como ya dije con anterioridad, el caso default es un caso especial al cual podemos acudir cuando queremos evaluar todo lo demas. Es decir, son infinitas opciones que pudo haber ingresado el usuario ( ya que no hemos validado ) y por ello si solo estamos exponiendole tres casos, habr quien ponga cualquier otra cosa, menos la que se le pide; entonces como son opciones infinitas que no podemos ponernos a imaginar que ingresaria un usuario/a X , entonces usamos el default, que a todo lo que no est en los casos expuestos le aplicara una accion que nosotros decidimos, ya sea mostrar un mensaje de error, o salir del programa como hemos hecho en ste. - linea 17: pausando el programa *** Bueno, eso es todo; espero les haya servido. Cualquier duda/comentario/sugerencia la atender lo mas pronto posible. Saludos!

Dev-C++, clase13 ejercicios de aplicacion V


Publicado el 9 abril 2010 por Eddy Hola a todos/as, En la clase anterior vimos el manejo de la instruccin selectiva multiple: switch case , y pues ahora vamos a realizar unos ejercicios para que quede ms claro y llenar algun vacio que les haya quedado con respecto a sta selectiva. Vamos a ello: 17.) Hacer un programa que simule una encuesta de vestimenta, hacer la encuesta a N personas segun la cantidad que haya en la sala. Y ademas mostrar el promedio de cuantas personas usan tales articulos de vestimenta . Por favor antes de ver sta entrada recomiendo ver la entrada: Uso de la aplicacion

Bien ste ejemplo que acabo de proponer, servir para volver a aplicar el uso del switch , con el fin de evaluar a manera de encuesta: Tus prendas mas comunes y para ello debemos: 1) saber cuantas personas hay en la sala ( es decir, a cuentos se le har la encuesta ) 2) proponer una men con las opciones 3) evaluar dichas opciones 4) mostrar el promedio Entonces, manos a la obra! ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis. Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ). #include <iostream.h> #include <conio.h> main() { int N, c1=0, c2=0, c3=0, x, camis; cout << \n Tus prendas mas comunes \n << \n A cuantas personas desea realizar la encuesta ? ; cin >> N; if ( N <= 0 ) { cout << \n Fin de la aplicacion.; getch(); } else { cout << \n Menu \n << \n * Camisas: \n << 1elegante \n << 2deportiva \n << 3otra \n; for ( x=1; x<=N; x++ ) { cout << \n Usuario # << x << :; // Aqui vamos con las camisas:

do { cout << \n Digite su cin >> switch ( { case 1: case 2: case 3: default : cout << } } while ( camis > 3 } cout << \n El promedio de << * << c1 << << c2 << << c3 << getch(); } } - linea 1 2: la cabecera y libreria *** - linea 3: funcion principal *** - linea 4 46: inicio y fin del programa *** - linea 5: declaramos variables *** - linea 6 7: recurso cout *** - linea 8: recurso cin ***

opcion

en: camis

Camisas.

\n; camis; ) break; break; break; \n;

c1++; c2++; c3++; \n

Error!

|| la

camis

<

1 que:

); \n \n \n \n \n;

encuesta dice Camisas: usa elegante usa deportiva usa otra

- linea 9 14: instruccion selectiva doble: if else *** En la linea 9, he puesto una condicion que podria darse, y es que: Qu pasa si el usuario ingresa un numero menor a 1 ? Si eso pasara el programa NO deberia avanzar, puesto a que le estamos preguntando al usuario: Cunta gente hay en la sala ? y si no hay nadie, osea cero ( 0 ); el programa no deberia continuar porque no hay nadie a quien hacerle la encuesta, peor aun si por error ingresa un numero

negativo. Entonces para evitar esos posibles inconvenientes hacemos una condicion como la que estan viendo, donde decimos que: if ( N < 1 ) { mensaje de salida } else { acciones } Si el nmero de gente en la sala es menor a uno , entonces el programa finaliza. Caso contrario, si har la accion porque ha habido por lo menos una persona en la sala a la que se le puede hacer la encuesta - linea 10 13: inicio y fin del if *** - linea 11: recurso cout *** - linea 12: pausando el programa *** - linea 15 45: inicio fin del else *** - linea 16 20: recurso cout *** - linea 21: instruccion repetitiva: for *** Aqui le decimos al programa que, como hay N personas en la sala; deber hacer la encuesta N veces - linea 22 38: inicio y fin del for *** - linea 23: recurso cout *** - linea 24: comentario *** Desde aqui vamos a hacer la evaluacion con el switch case. - linea 25 37: instrucion repetitiva: do while ***

- linea 26 36: inicio y fin del do while *** Bueno, siempre se recomienda hacer un do while antes del switch cuando se trata de seleccionar una opcion si si. Y como podemos ver, el usuario debe ingresar una de las tres que estas expuestas: 1) elegante 2) deportiva 3) otra Y si se le occurre ingresar algun otro numero que NO est entre las opciones, se le debe pedir denuevo el valor hasta que ingrese correctamente la opcion. Entonces por eso, tenemos ste do while, con el cual decimos: Haga: { > inicio del haga mientras pide camis ingresa camis evalua ( camis ) { > inicio del evalua caso 1 caso 2 caso 3 otro caso : muestra: ERROR! } > fin del evalua } mientras que ( camis sea menor a cero mayor a tres ) > fin del haga mientras Como podemos observar, eso har que se pida una y otra vez camis, mientras sea menor a cero o mayor a 3, lo cual est correcto pues solo hay tres opciones: 1-2-3 y entonces no se pueden ingresar opciones menores a 1 ni mayores 3 porque simplemente no hay. - linea 27: recurso cout ***

- linea 28: recurso cin *** - linea 29: instruccion selectiva multiple: switch Aqui vamos a evaluar la opcion que ingres el usuaio/a, y esa opcion est guardada en la variable camis . - linea 30 35: inicio y fin del switch *** - linea 31 34: evaluando casos *** En caso de que haya sido la: opcion 1, entonces el contador c1 se le aumentar una unidad. opcion 2, entonces el contador c2 se le aumentar una unidad. opcion 3, entonces el contador c3 se le aumentar una unidad. Y cuando le toque al siguiente usuario, porque son N usuarios ser de la misma manera, se aumentar en una unidad el contador dependiendo de la opcion que seleccion. - linea 39 43: recurso cout *** Mostramos el promedio de lo que la gente ms usa, de esta manera: c1 ( tendr el valor de todos los N usuarios que ingresaron la opcion 1 ) c2 ( tendr el valor de todos los N usuarios que ingresaron la opcion 1 ) c3 ( tendr el valor de todos los N usuarios que ingresaron la opcion 1 ) - linea 44: pausando el programa *** 18.) Hacer un programa que haga una operacion con dos numeros ingresados por el usuario, a manera de calculadora con las operaciones basicas: suma,resta,division,multiplicacion. Bien, lo que debemos hacer primero es asi mismo un men para que el usuario eliga una de las opciones que nos dice el enunciado del ejercicios, es decir: suma,resta,multiplicacion,division . Luego pedimos los numeros y dependiendo de que caso haya seleccionado el usuario/a, har dicha operacion. Vamos a ello: ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis.

Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ). #include <iostream.h> #include <conio.h> main() { char op; int n1, n2, resp; cout << Ingrese primer numero: \n; cin >> n1; cout << Ingrese segundo numero: \n; cin >> n2; cout << Operaciones: \n << A) suma \n << B) resta \n << C) multiplicacion \n << D) division \n << Escoja una opcion: ; cin >> op; switch ( op ) { case A: resp = n1 + n2; cout << respuesta = << resp; break; case B: resp = n1 n2; cout << respuesta = << resp; break; case C: resp = n1 * n2; cout << respuesta = << resp; break; case D: resp = n1 / n2; cout << respuesta = << resp; break; default: cout << Error!; } getch(); } - linea 1 2: la cabecera y libreria *** - linea 3: funcion principal *** - linea 4 27: inicio y fin del programa *** - linea 5: declaramos variables *** - linea 6: recurso cout *** - linea 7: recurso cout *** - linea 8: recurso cin ***

- linea 9: recurso cout *** - linea 10: recurso cin *** - linea 11 16: recurso cout *** - linea 17: recurso cin *** - linea 18: instruccion selectiva multiple switch *** Aqui vanmos a validar con un switch la variable op que es donde est la opcion que ingres el usuario/a. En caso de que haya sido diferente de A,B,C,D entonces mostrar un mensaje de error y saldr del switch. - linea 19 25: inicio y fin del switch *** - linea 20: evaluando casos *** En el primer caso, preguntamos si fu la opcion ( op ) igual a A y si era asi, pues sumar los numeros y mostrar la respuesta resp. - linea 21: evaluando casos *** En el segundo caso, preguntamos si fu la opcion ( op ) igual a B y si era asi, pues sumar los numeros y mostrar la respuesta resp. - linea 22: evaluando casos *** En el tercer caso, preguntamos si fu la opcion ( op ) igual a C y si era asi, pues sumar los numeros y mostrar la respuesta resp. - linea 23: evaluando casos *** En el cuarto caso, preguntamos si fu la opcion ( op ) igual a D y si era asi, pues sumar los numeros y mostrar la respuesta resp. - linea 24: evaluando casos *** Este es el caso por defecto, y es que si el usuario/a ingres alguna otra opcion que NO estaba en el men, entonces hacemos que muestre un mensaje de error. Luego saldr del switch automaticamente, ya que por lo general el caso default es el ultimo en ejecutarse, y eso significa que ningun caso fue cumplido. - linea 26: pausando el programa ***

Eso fue todo por ahora, espero les haya sido de ayuda. Cualquier duda/comentario/sugerencia.. la atender lo ms pronto posible. Saludos!

Dev-C++, clase14 arreglos


Publicado el 13 mayo 2010 por Eddy Hola a todos/as, A medida que avanzamos con la materia pues vamos viendo conceptos nuevos y que se pueden aplicar tanto para - Disminuir lineas de codigo - Mas claridad y criterio a la hora de programar - Obtener una idea de como un problema se puede resolver de diversas maneras Entre otras.. Y entonces aqui vamos a ver un nuevo concepto que nos ayuda en lo que he detallado anteriormente. Bien, pero muchos dirn, Qu es un arreglo ? Un arreglo vector es un conjunto de variables que poseen el mismo nombre y el mismo tipo de dato con la unica diferencia que est ubicada en una posicion diferente. Cmo es su sintaxis ? Pues un arreglo debe ser declarado asi: tipo de dato nombre del arreglo [ nmero de variables que se quiere tener ] ; Llevado a un ejemplo tangible seria: int edad [ 19 ]; Eso quiere decir que tendremos 20 variables llamadas edad que son de tipo entero ( int ). Pero qu es eso de que int edad [ 19 ] tiene 20 variables si yo veo 19 ? Bien ese es una tipica pregunta, porque es muy cierto Por qu ponemos 19 si queremos 20 ? , la respuesta es porque la maquina comienza a contar desde el cero ( 0 ). Yo en lo personal siempre pongo ste ejemplo: Cuntos dedos tengo en la mano ? -> 10 ( me responderia una persona ) Cuntos dedos tengo en la mano ? -> 9 ( me responderia una maquina ) Porque la persona comienza a contar desde uno ( 1 ), y la maquina desde cero ( 0 ).

Otro ejemplo, voy a un bao y veo a 2 personas entonces: - Para mi ( como persona ) que cuento desde el 1 hay dos personas, osea: persona 1 y persona 2 > (persona 1 + persona 2) = 2 personas - Pero para el lenguaje de programacion ( como maquina ) que cuenta desde el 0 hay 2 tambin, pero contadas desde el cero, osea: persona 0 y persona 1 > (persona 0 + persona 1) = 2 personas Eso es explicandolo de manera didactica a ustedes amigos/as, pero bueno si bien es cierto quiza a unos ya les habran dado la regla general aquella regla dice que: Los arreglos van de la posicion cero a la posicion n-1 ( donde n es la cantidad total de variables que queremos tener ) Y eso es lo mismo que les expliqu de manera mas didactica, vamos con un ultimo ejemplo: Si quiero 5 caramelos entonces n=5 y el concepto dice que los arreglos van de 0 hasta n-1. Por lo tanto lo unico que hacen es reemplazar valores: n-1 -> 5-1 > 4. Entonces mi arreglo caramelos va a ser asi: int caramelos [4]. Cul es su uso ? Como est en el concepto es un conjunto de variables es decir que en un arreglo puedo tener N variables y ahorrarme estar declarando esas N variables manualmente, por ejemplo: Declarar: int n1,n2,n3,n4,n5,n6,n7,n8; Es lo mismo que declarar: int n[7]; como ven se ahorra mucho al hacerlo, y se ve un mejor criterio a la hora de programar Ahora vamos a hacer un ejercicio para plasmar los conceptos en un programa, vamos a ello: 19.) Hacer un programa que pida 12 numeros en orden y que muestre de los 12 numeros solo el tercero,sexto,decimo. Por favor antes de ver sta entrada recomiendo ver la entrada: Uso de la aplicacion ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis.

Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ). #include #include main() { int cout<<\n for { cout<<numero cin>>numero[x]; } cout<<\n cout<<\n cout<<\n getch(); } <iostream.h> <conio.h>

Ingrese (x=0;

los

12 x<=11; <<x<<:

x,numero[11]; numeros:\n; x++) ;

Tercer Sexto Decimo

numero: numero: numero:

<<numero[2]; <<numero[5]; <<numero[9];

- linea 1 2: la cabecera y libreria *** - linea 3: funcion principal *** - linea 4 16: inicio y fin del programa *** - linea 5: declaramos variables *** Aqui podemos ver que se ha declarado dos variables: x -> variable para el for numero[11] -> arreglo de 12 variables llamadas numero y ambas estan bajo el tipo de dato int, asi que van a llevar datos enteros. - linea 6: recurso cout *** - linea 7: instruccion repetitiva: for *** Con la variable x declarada como entera al comienzo, vamos a hacer dos acciones 12 veces: - Nuestra primera accion ser mostrar un mensaje: Ingrese el numero x ( donde x va a ir cambiando cada ves que se repita el for )

Puesto a que x inicialmente tiene cero ( 0 ), lo podemos ver en la definicion del for cuando ponemos (x=0; x<=11; x++) Ahi decimos que x tendra un valor inicial de cero y llegar hasta 11 ( porque de cero a once hay 12 numeros y eso queremos 12 numeros ), y va a ir de 1 en 1. Bien entonces cuando mostremos: ingrese el numero x, en la primera vez dir: ingrese el numero 0, en la segunda: ingrese el numero 1 y asi sucesivamente La otra accin que debemos realizar dentro del for ser pedir el numero, lo veremos con mas detalles mas abajo. - linea 8 11: inicio y fin del for *** - linea 9: recurso cout *** Aqui es lo que les decia antes, sobre como se va a mostrar el incremento - linea 10: recurso cin *** Bien, ya ahorita sabemos de sobra como ingresar variables pero con arreglos algunos se pueden confundir, por eso voy a explicarlo mas detalladamente para que se entienda bien lo que se va a hacer en sta linea. Como sabemos para pedir un dato se usa el recurso cin y antes lo haciamos por ejemplo de sta manera: cin >> numero1; Bien, ahora como ya no estamos trabajando con variables solitarias sino con un conjunto de variables es decir un arreglo, debemos saber que en el caso de numero nosotros tenemos 12 ( con el mismo nombre y tipo ), y asi como les decia antes seria lo mismo que poner doce lineas asi: cin>>numero1; cin>>numero2; cin>>numero3; cin>>numero4;

y asi sucesivamente hasta pedir el numero12, pero eso NO vamos a hacer porque existen los arreglos que nos facilitan la vida evitandonos el estar declarando muchas variables para mas de usarlas una vez.. para ello tenemos nuestro numero [11] Y asi mismo eso quiere decir que tengo un numero1,numero2,numero3,.,numero12 pero no de manera individual sino en conjunto y se eso se denota por la posicion ya que poseen el mismo nombre y tipo, solo las podemos diferenciar por su posicion: numero[0],numero[1],numero[2],numero[3],numero[4],numero[5],.,numero[11] Y si se fijan en el for la variable x va a ir incrementandose desde 0 hasta 11 de 1 en 1. Entonces podemos usar ese incremento para indicarle la posicion del arreglo en la que estamos pidiendole que ingrese el dato, de sta manera: - Cuando inicia el for, x vale cero entonces pedimos: numero [x] que equivale a pedir numero [0] - Luego el for incrementa en 1, x vale 1 ( 0+1 ) entonces pedimos: numero [x] que equivale a pedir numero [1] - Luego el for incrementa en 1, x vale 2 ( 1+1 ) entonces pedimos: numero [x] que equivale a pedir numero [2] - Luego el for incrementa en 1, x vale 3 ( 2+1 ) entonces pedimos: numero [x] que equivale a pedir numero [3] Y asi sucesivamente hasta llegar a que x=11 y se pide: numero [11] ese seria el ultimo. ( ya que queriamos 12 y de cero a once hay 12 ). - linea 12,13,14: recurso cout *** Como en el enunciado nos pedian que mostremos los que estan en la posicion 3 , 6 y 10 pues vamos a mostrarlos y como ya venimos viendo seria: * Para la posicion 3 -> numero[2] ( porque va de cero a n-1 es decir de cero a 3-1 ) * Para la posicion 6 -> numero[5] ( porque va de cero a n-1 es decir de cero a 6-1 ) * Para la posicion 10 -> numero[9] ( porque va de cero a n-1 es decir de cero a 10-1 ) - linea 15: pausando el programa *** Muy bien ahi termina lo que debemos saber sobre arreglos para realizar eficientemente muchos ejercicios donde nos piden variedad de variables. Asi mismo, cualquier duda/sugerencia/comentario lo atender en cuanto se me haga posible. Saludos!

Dev-C++, clase15 ejercicios de aplicacion VI


Publicado el 26 mayo 2010 por Eddy Hola a todos/as, En la clase anterior vimos lo que son arreglos, su funcion / uso / etc.. Ahora vamos a poner en practica lo que seria implementarlo como nueva manera de manejar variables en nuestros programas. 20.) Hacer un programa que pida: nombre,apellido,cedula y luego lo muestre con el formato: Eddy | Perdomo | 012012012 Por favor antes de ver sta entrada recomiendo ver la entrada: Uso de la aplicacion ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis. Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ). #include #include main() { char cout<<\nIngrese cin>>nombre; cout<<\nIngrese cin>>apellido; cout<<\nIngrese cin>>cedula; cout<<\n\n<<nombre<< getch(); } <iostream.h> <conio.h>

nombre[10],apellido[10],cedula[10]; nombre: ; apellido: cedula: | <<apellido<< | ; ; <<cedula<<\n;

- linea 1 2: la cabecera y libreria *** - linea 3: funcion principal *** - linea 4 14: inicio y fin del programa ***

- linea 5: declaramos variables *** Estamos declarando variables ya de nueva manera, no como antes que sobrecargabamos nuestros programas con muchas variables, pudiendo declara una sola con diferentes posiciones como es el arreglo, en ste caso vemos que hemos declarado como char: nombre [10] -> sto significa que tendremos 10 variables char llamadas nombre apellido [10] -> sto significa que tendremos 10 variables char llamadas apellido cedula [10] -> sto significa que tendremos 10 variables char llamadas cedula Ahora se preguntarn: Y por qu 10 variables nombre si solo quiero ingresar 1 nombre ? Y la respuesta est en el tipo de dato, nosotros tenemos tanto a nombre,apellido,cedula como variables tipo char lo que significa que almacenarn cada una de ellas un solo dato [ para los que no sepan cuanto almacena cada tipo de dato les sugiero ver: ' Espacios de memoria segun tipo de variable ' ] Eso quiere decir que si yo por ejemplo quiero ingresar mi nombre: Eddy Y como tenemos nombre [10] la maquina virtualmente nos va a aceptar 10 caracteres individuales hasta que cumpla 10 nombres ms claramente, internamente haria algo asi: nombre[0] = E nombre[1] = d nombre[2] = d nombre[3] = y Y de la misma manera con apellido y cedula, entonces recuerden al ser char los valores se capturan de 1 en 1 - linea 6: recurso cout *** - linea 7: recurso cin *** - linea 8: recurso cout *** - linea 9: recurso cin *** - linea 10: recurso cout ***

- linea 11: recurso cin *** - linea 12: recurso cout *** Bueno pues aqui ya mostramos las variables ya concatenadas, por eso no usamos el indexado ( los corchetes que contienen la ubicacion ) mostramos directamente: nombre,apellido,cedula. Porque queremos mostrar todo lo que se encuentra en cada una de ellas, como el ejemplo Eddy que les puse arriba, de la misma manera. Ya que si ponemos por ejemplo a la hora de mostrar el nombre sto: cout<<nombre[10]; Eso nos va a mostrar la letra que contiene en la posicion 10, y en nuestro caso no hay nada porque Eddy nos tom 4 espacios. Por eso se muestra ya en concatenado que es: cout<<nombre; Eso nos va a mostrar la union de E+d+d+y = Eddy - linea 13: pausando el programa *** 21.) Hacer un programa que calcule cinco numeros aleatorios entre 1-20 y luego los muestre en pantalla Bien pues, he querido aadir un ejemplo con los famosos random es decir aleatorios, se usa mucho y pues a ms de uno les ha causado dolor de cabeza entender, saber usarlo, ponerlo en practica, etc.. Pero aqui amigos/as, les voy a explicar lo mejor posible como va sto, vamos a ello! ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis. Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ). #include <iostream.h> #include <conio.h> #include <time.h> main() { int x,n[5]; srand (time(0)); for (x=0; x<=4; x++) {

n[x]=rand()%20+1; } cout<<Numeros aleatorios: \n; for (x=0; x<=4; x++) { cout<<n[x]<<\t; } getch(); } - linea 1 3: la cabecera y libreria *** Usamos la libreria <time.h> para poder trabajar con el tiempo ( ms abajo les dar mas detalles especificamente por el srand (time(0)) ) - linea 4: funcion principal *** - linea 5 18: inicio y fin del programa *** - linea 6: declaramos variables *** - linea 7: randomizamos Bien, randomizar la generacion de numeros aleatorios es importante, ya que al usar sta linea: srand (time(0)); Estamos diciendole al compilador que randomize numeros aleatorios mediante la hora actual, es decir que cada vez que pase el tiempo va a ir generando nuevos numeros aleatorios ( cada vez que se ejecute el programa ). Pueden notarlo suprimiendo esa linea de codigo: srand (time(0)); , quitenla y vern que el programa no dar errores y se podra ejecutar tranquilamente, pero una vez ejecutado nos dar siempre los mismos numeros aleatorios ya que los sac y con esos qued, en cambio al decirle: srand (time(0)); estamos encerando el reloj y le decimos que trabaje generando numeros aleatorios a medida que avanza el tiempo entonces siempre va a estar constantemente cambiando ya que como conocemos nuestra unidad minima de tiempo es el segundo y pues hasta que ejecutamos una vez, ya pasaron algunos segundos hasta la proxima y asi.. Vamos a tener siempre numeros diferentes. - linea 8: instruccion repetitiva for *** - linea 9 11: inicio y fin del for *** - linea 10: operaciones con variables *** Bien pues tenemos la siguiente linea de codigo:

n[x]=rand()%20+1; Primero voy a explicar del n[x], asi como vimos en la clase anterior, los arreglos nos ayudan a que mediante a simple vista una sola variable nos pueda almacenar diferentes valores dependiendo de su posicion. En nuestro caso debemos generar cinco numeros aleatorios, pero no vamos a crear cinco variables n1,n2,n3,n4,n5 para calcularlos individualmente, no eso ya no porque conocemos ahora el uso de los arreglos, entonces con un n[5] ya tenemos esos ( n1,n2,n3,n4,n5 ) solo que indexados por su posicion que es lo unico que los diferencia, nuestros cinco numeros indexados serian: n[0] , n[ 1 ] , n[2] , n[ 3 ] , n[ 4 ]. Y para pedirlos nos creamos un ciclo repetitivo como lo es el for y pues.. desde que x vale 0 hasta que x vale 4 de 1 en 1 -> for (x=0; x<=4; x++) ahi tenemos que el for nos va a hacer cinco repeticiones, y pues aprovechamos y podemos colocar que: n[x]=rand()%20+1; entonces en la primera pasada seria: n[0]=rand()%20+1; n[1]=rand()%20+1; n[2]=rand()%20+1; Y asi sucesivamente hasta llegar a 4 que es hasta donde le indicamos al for que haga sus repeticiones. Y entonces ya tendremos almacenados en la memoria cinco variables con numeros aleatorios en su interior: n[0] , n[ 1 ] , n[2] , n[ 3 ] , n[ 4 ]. Ahora.. Qu es el rand() ? Bien, pues el rand() es una funcion que nos va a retornar un valor aleatorio entre 0 y rand_max ( el numero maximo que puede ser creado aleatoriamente ), y ese valor es un constante que se sabe es 32.767. Pero como no queremos nosotros tener un numero random entre 0 y 32.767, queremos tener un numero random entre 1 y 20 pues vamos a indicarle a rand() que no queremos que vaya hasta su max si no que queremos indicarle hasta donde queremos recibir aleatorios, entonces por eso colocamos: n[x]=rand()%20;

ahi le estamos indicando que queremos hasta un maximo de 20. Pero existe otro detalle y es que como les vengo diciendo rand() retorna valores aleatorios entre 0 y el maximo que le queramos dar ( en ste caso 20 ); pero a nosotros no nos estn pidiendo en el enuncia de ste ejercicio generar aleatorios entre 0 y 20, nos dicen entre 1 y 20. Bien para ello solo se le agrega con un + el numero desde donde queremos comenzar a generar el aleatorio, entonces ya saben: %20 > hasta donde +1 > desde donde Entonces tenemos que: n[x]=rand()%20+1; Le va a asignar a n[x] un valor entre 1 y 20 aleatorio - linea 12: recurso cout *** - linea 13: instruccion repetitiva for *** - linea 14 16: inicio y fin del for *** - linea 15: recurso cout *** Asi mismo como hicimos con el for de arriba, lo volvemos a aplicar pero sta vez no para generar aleatorios si no, para mostrar los valores que se encuentran en cada uno de los n[x] que son cinco: n[0] , n[ 1 ] , n[2] , n[ 3 ] , n[ 4 ]. Cada uno de ellos tendr en su interior un numero aleatorio entre 1 y 20, y ese valor ser mostrado separado por un \t que significa espacio de tabulacion. Para aquellos que no recuerden o no saben que es \t les sugiero revisen [ Las secuencias de escape ]. - linea 17: pausando el programa *** Bueno eso es todo, espero haya sido de ayuda; cualquier comentario/sugerencia/duda la atender lo ms pronto posible. Saludos!

Dev-C++, Clase16 Funciones (en general)


Publicado el 17 octubre 2010 por Eddy Hola a todos/as, En sta clase vamos a tratar sobre las funciones en c++, para ello debemos tener algunos conceptos claros: Qu es una funcion ?

Una funcion es un conjunto de instrcciones que se la puede llamar desde el programa principal o desde otras funciones. Para que sirven las funciones ? Nos sirven para desarrollar algo en especial cuando el programa asi lo necesite. Como usarlas ? Para usar funciones, debemos tener en cuenta dos cosas que necesita: 1) La declaracion de la funcion: Esta nos sirve para que al compilar el programa, el compilador reconozca que esa funcion existe; ya que si la llamamos desde alguna parte del programa sin haberla declarado o habiendola declarado, se la declar mal eso nos dar error. Entonces es importante antes siquiera de desarrollar la funcion, declararla. Para declararla se sigue la siguiente sintaxis: prototipo_de_funcion nombre_de_la_funcion ( parametros opcionales ); Qu es eso de prototipo y parametros ? - Prototipo de la funcion: sirve para indicar que va a retornar la funcion, si va a retornar un entero, un double, un char, o simplemente no retorna nada ( void ). Esto es obligatorio - Parametros: son los datos que le enviamos a la funcion para que con ellos posiblemente desarrolle algo que necesitemos. Esto es opcional. Entonces, una funcion para ingresar podria ser asi: void ingresar(); Donde vemos no va a retornar nada, por ello tiene void entonces la funcion hace lo que tiene que hacer y termina, no devuelve nada. Un ejemplo de devolucion seria en una suma de enteros, ya que se le podria enviar como dato los dos numeros y la funcion haria internamente la suma devolviendonos la suma de dichos numeros ( si son todos enteros, devolveria un int. Si son enteros y flotantes devolveria un float ), asi: int suma_enteros ( int, int ); // suma unicamente enteros, devuelve un entero float suma_numeros ( float, float ); // suma enteros o flotantes, devuelve un flotante 2) La definicion de la funcion:

Como vimos la declaracion nos servia para que el compilador sepa que existe dicha funcion, ahora la definicion nos sirve ya para desarrollar la funcion; es decir ya programar dentro de ella para que haga lo que necesitamos. Como consecuencia de que ya est creada podemos usarla, pero si no la hubiesemos declarado y la desarrollamos ( hacemos la definicion ), al compilar nos dar error y dir que esa funcion no fue declarada, que no existe. La definicion es muy similar a la declaracion, solo que esta vez lleva un ambiente ( donde vamos a programar es decir las llaves { } ), asi: void ingresar() { // Lo que deba hacer esa funcion } Tambien otra diferencia es que la declaracion lleva ; ( punto y coma ) al final, la definicion ya no lo lleva. Ahora vamos a ver un ejemplo de como usariamos una funcion en nuestro programa, haremos esa ingresar que veniamos poniendo de ejemplo. 22.) Hacer un programa que pida dos datos cualesquiera llamando a una funcion sin retorno y luego confirme si se ingresaron correctamente. Por favor antes de ver sta entrada recomiendo ver la entrada: Uso de la aplicacion ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis. Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ). Bien, como datos tenemos que el programa deber usar una funcion sin retorno, es decir una void. Tambien que debemos pedir en esa funcion dos valores cualesquiera; en mi caso voy a pedir dos cosas: nombre y numero de la suerte; luego se mostrar el mensaje de que se ingresaron correctamente dichos datos, vamos a ello: #include #include <conio.h> <iostream.h>

// void ingresar();

declaramos

la

funcion

ingresar

main() { cout<<\n Ingrese los datos: \n; ingresar(); cout<<\n Los datos se ingresaron correctamente! \n; getch(); }

//definimos la funcion ingresar void { char int cout<<\n cin>>nombre; cout<<\n cin>>numero; } ingresar() nombre[10]; numero; \n; suerte: \n;

Ingrese Ingrese su

su numero de

nombre: la

- linea 1 2: la cabecera y libreria *** - linea 3: comentario *** - linea 4: declaracion de la funcion La declaracion de una funcion debe estar siempre antes de la definicion, por eso es recomendable que se la coloque al inicio del programa debajo de las librerias para que el programa se vea mejor estructurado y puedan encontrar rapido las funciones que han declarado y si hace falta alguna aadirla rapidamente o editarla en caso de haberla declarado mal, es altamente recomendable que se proceda de dicha forma. De la declaracion de la funcion ingresar, queda muy poco que decir ya lo vimos arriba en los conceptos. - linea 5: funcion principal *** - linea 6 11: inicio y fin del programa *** - linea 7: recurso cout ***

- linea 8: llamamos a una funcion ya declarada Ya que creamos una funcion llamada ingresar con el fin de pedir los datos por medio de ella y no por medio del cuerpo principal main(), debemos llamarla / convocarla para que pueda ejecutar lo que tiene programado en su interior ya que por si sola ( sin ser llamada ), el programa terminaria y ella no realizaria ninguna accion. Para llamar a una funcion lo unico que se debe hacer es escribirla tal cual fue declarada sin alteraciones ya que las funciones son key sensitive, es decir que no es lo mismo: - void HOLA(); que void HoLa(); Pues distingue mayusculas de minusculas, para el compilador son dos funciones diferentes ( para nosotros son la misma palabra pero escrita diferente ). Bien, como decia para llamar a la funcion se la coloca tal como fue declarada seguida del punto y coma ( no se le pone el prototipo ), solo el nombre y los posibles parametros que lleve, por lo tanto nuestra declaracion seria: ingresar(); Como vemos no se le coloc el prototipo ( void ) y no lleva parametros por lo que los parentesis no tienen nada dentro. Esa linea har que el compilador vaya a donde se encuentra definida dicha funcion y realize lo que ella tenga programado y eso es lo que queremos, pues la funcion ingresar es la que le va a pedir los datos al usuario. - linea 9: recurso cout *** Esta linea est a continuacion de la llamada a la funcion ingresar, pero sta linea no ser ejecutada hasta que termine de ejecutarse lo que contiene la funcion ingresar porque los programas van en orden logico no necesariamente en orden lineal, por lo que estando en la linea 8 y llamamos a una funcion cuyo desarrollo est en la linea 15, el compilador salt a dicha posicion ejecuta todo lo que tiene en se ambiente ( entre las llaves {} ) y de ahi regresa y continua con la linea 9. Visto de una manera grafica, as es como funciona la llamada a funciones:

Ampliar imagen - linea 10: pausamos el programa ***

- linea 12: comentario *** - linea 13: Definicion de la funcion Lo mismo, queda poco que decir ya vimos al inicio de la clase como se definian las funciones una vez declaradas, aqui va a ir codigo normal ( codigo que tranquilamente podria ir en la funcion principal main(), pero el enunciado indica que debemos desarrollar una funcion que lo haga ). Como podemos ver, aqui dentro de la definicion: - declaramos variables - mostramos contenido - pedimos contenido Son procedimientos normales solo que aplicados de una manera nueva, que estamos viendo en esta clase; las funciones. - linea 14 21: Inicio y fin de la funcion ingresar(); Hasta el momento habiamos visto en clases anteriores inicio y fin del programa, ste inicio y fin est delimitado por las llaves ( tambien llamado ambiente: {} ), entonces las funciones tambien tienen su ambiente, por lo tanto el inicio y fin de una funcion ser desde donde comienza la llave y se cierra. - linea 15 16: Declaramos variables *** - linea 16: Recurso cout *** - linea 17: Recurso cin *** - linea 19: Recurso cout *** - linea 20: Recurso cin *** Bien, una vez que se haya ejecutado la linea 20, el compilador ir hacia la linea 9 para continuar con el correcto funcionamiento del programa ahi lo que har es mostrar un mensaje Los datos se ingresaron correctamente! y luego con el getch(); se pausar la aplicacion para ver los resultados. Eso es todo por ahora, cualquier duda / comentario / sugerencia, haganla con confianza. Saludos!

Dev-C++, Clase17 Funciones (paso por valor)


Publicado el 11 abril 2011 por Eddy Hola a todos/as,

En la clase anterior (clase16), vimos los conceptos e implementaciones de las funciones en si en c+ +, vimos lo que era la definicion y declaracion de la funcion en el cuerpo del programa, cmo se debia hacer, dnde se debia hacer, su estructura, etc.. Ahora asi mismo, las funciones no solamente son llamadas para que realicen cierta necesidad, si no que en algunas ocaciones para que la funcion desarrolle dicha necesidad necesita que se le envien parametros. En la clase anterior vimos que eran los parametros y para que servian, ademas de como denotarlos; asi que si no sabes que son parametros de funcion, puedes ir a la clase anterior y revisarlo para no tener confusiones. Bien ahora esos parametros que se le enviarn a la funcion para que ella pueda cumplir su papel correctamente, pueden ser enviados de dos maneras: 1) Pasar los parametros por valor ( paso por valor ) 2) Pasar los parametros por referencia ( paso por referencia ) Aquella manera de pasar los datos mencionada anteriormente es diferente una de la otra, es decir no es lo mismo pasar datos por valor que pasarlos por referencia. En la programacion depende del ejercicio o de la ocacion para implementar o pensar en como seria mejor que pase el parametro. En la clase de hoy vamos a ver el paso por valor y en la siguiente veremos por referencia. Qu es el paso por valor ? Es enviarle un parametro ( variable,constante,etc.. ) a otra funcion que para resolver su contenido necesita obligatoriamente recibir ese parametro, es decir la funcion depende de los parametros para funcionar. Al pasar por valor los parametros que hago en si ? Estas enviando el contenido de algo ( ya sea una variable, constante, etc.. ) para que la funcion de destino la use y ahi pueda completar con exito su objetivo. Pero se debe tener en cuenta que al pasar por valor; la variable original no se altera, se envia una copia de ella a la cual si se le aplican cambios sern alterados unicamente en ella, ms no en la original. Como declaro una funcion que reciba parametros por valor ? La declaracion de una funcion que recibe parametros es casi igual a la que vimos en la clase anterior en una funcion en general, la sintaxis seria la siguiente para una funcion que reciba parametros por valor: prototipo_de_la_funcion nombre_de_la_funcion ( tipo_de_dato del parametro1 , tipo_de_dato del parametro 2 , ); Ejemplo: void suma ( int , int );

Como vemos en el ejemplo anterior, est declarada una funcion suma que va a recibir dos parametros que sern enteros porque el tipo de dato lo denota asi. Aquellos parametros son por valor , lo denotamos por el hecho que unicamente va el tipo de dato en los parentesis. El prototipo de la funcion suma es void, es decir que no va a retornar valores, ser un procedimiento. Si retornara un entero sera int el prototipo, un numero con decimales seria float el prototipo, etc.. Cmo defino una funcion que recibe parametros por valor ? La definicion es la misma que la anterior, solo que no lleva punto y coma (;) al final, puesto aqui es un ambiente que se va a programar mas no una declaracion, tendremos algo asi como definicion de la funcion suma: Ejemplo: void suma ( int n1, int n2 ) { . } Donde n1 y n2 son variables formales. Qu son variables formales ? Son aquellas que se declaran en el momento de recibir el parametro en la funcion de destino, tienen el contenido de una variable existente; pero no tiene necesariamente el mismo nombre. Por ejemplo si ste es mi codigo: // sueldo = 100. // comision = 20. main() { . . suma ( sueldo, comision ); .

} void suma ( int n1, int n2 ) { . } Ahi lo que pueden observar es que en el cuerpo principal ( main ), se hace un llamado a una funcion suma que recibe como parametro dos numeros enteros. En ste caso ser el sueldo y la comision de un empleado, la funcion suma los recibir y con esos valores hara un proceso interno.. Pero vemos que al momento de llamar a la funcion suma le enviamos: * sueldo ( variable entera ) * comision ( variable entera ) Pero en la definicion de la funcion suma, estn dos variables en donde llega el contenido de sueldo y comision, aquellas variables son: n1 y n2. Como pueden ver, no necesariamente la funcion debe tener en su definicion el mismo nombre de la variable que le est pasando el dato, mas bien se suele recomendar cambiar el nombre a las variables formales ( las que se crean / se declaran en la definicion de la funcion que recibe parametros ya sea por valor o por referencia, pero estamos viendo por valor en sta clase ). Lo que si nos importa es que aquellas variables cualquiera que sea su nombre ( en nuestro caso n1 y n2 ), reciben el contenido esperado. Es decir que: Si sueldo valia 100 como estaba previsto, n1 va a tener el valor de 100 en su contenido. Si comision valia 20 como estaba previsto, n2 va a tener el valor de 20 en su contenido. Y si a n1 y n2 le sumamos 500 mas, que pasa ? Lo que pasa es que quedaria asi: n1 = 600 ( es decir 100 + 500 ) n2 = 520 ( es decir 20 + 500 ) Pero sueldo y comision quedarian intactos, es decir: sueldo = 100 comision = 20

NO se alteran las variables originales en los pasos por valor como ya habia indicado al inicio de la clase, pero si pasan su contenido exacto a las variables formales de la funcion destinada que recibe parametros. Como dije se crea una copia y esas copias pueden ser alteradas pero no se alterarn las originales. Bien, ahora que sabemos como declarar y definir una funcion que reciba parametros por valor, ademas de tener claros muchos conceptos base para el manejo de funciones, ya podemos realizar un ejemplo de como usariamos en la practica el paso por valor en un programa que nos lo pida. Veamos: 23.) Hacer un programa que haga las veces de calculadora entre dos nmeros, es decir que el usuario ingresar dos nmeros y luego el programa por medio de funciones recibir los nmeros y mostrar su resultado en: suma, resta, multiplicacion y division. Luego tambien mostrar cuales fueron los nmeros ingresados. Por favor antes de ver sta entrada recomiendo ver la entrada: Uso de la aplicacion ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis. Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General del mapa de sitio ). Bien hay diferentes maneras de hacerlo, pero vamos a verlo de manera individual es decir que voy a realizar una funcion para cada caso: suma,resta,multiplicacion y division. De esta manera entendern mejor como va el paso por valor en funciones, comencemos: #include <iostream.h> #include <conio.h> void suma(float,float); void resta(float,float); void multiplicacion(float,float); void division(float,float); main() {

float n1,n2; cout<<\n -Operaciones aritmeticas basicas- \n <<\n Ingrese cantidad 1:; cin>>n1; cout<<\n Ingrese cantidad 2:; cin>>n2; suma(n1,n2); resta(n1,n2); multiplicacion(n1,n2); division(n1,n2); cout<<\n\n Los numeros ingresados fueron: <<n1<< y <<n2; getch(); } void suma(float x,float y) { cout<<\n La suma = <<(x+y); } void resta(float x,float y) { cout<<\n La resta = <<(x-y); } void multiplicacion(float x,float y) { cout<<\n La multiplicacion = <<(x*y); } void division(float x,float y)

{ cout<<\n La division = <<(x/y); } - linea 1 2: la cabecera y libreria *** - linea 3 6: declaracin de funciones que vamos a usar *** - linea 7: funcin principal *** - linea 8 21: inicio fin del programa *** - linea 9: declaramos variables tipo flotantes *** - linea 10 11: recurso cout *** - linea 12: recurso cin *** - linea 13: recurso cout *** - linea 14: recurso cin *** - linea 15 18: llamamos a las funciones Aqu lo que estamos haciendo es llamar a cada funcin: suma,resta,multiplicacion,division. Como la funcin necesita de los numeros ingresados anteriormente ( n1 y n2 ) para calcular su respectiva suma resta multiplicacion division, entonces debemos enviarle como parametros aquellos datos. Pero debes tener en cuenta lo siguiente: - La declaracin de la funcin debe ser acorde a la definicin de la misma funcin [ ver declaracion y definicion ( clase16 ) ] es decir que, no podemos entrar en contradicciones por ejemplo al declarar: void suma(); y luego al momento de usar la funcion ( al definirla ) colocar: int suma ( x,y,z ) { } Eso conyeva a errores de compilacion, porque como ya he dicho el lenguaje es key sensitive; osea que no es lo mismo suma que: Suma suMA summa, etc..

En nuestro caso, como declaramos una funcin void ( sto quiere decir que no retorna valores ), mas abajo al momento de realizar la programacin debemos definirla de igual manera como void, NO como int ni float ni double, etc.. Tambin con los parametros, si la declaramos como void que no recibe parametros; NO debemos despues definirla como void que si reciba parametros, por ms que este bien escrito el nombre y el prototipo, no coincide a la hora de ser llamada la funcin por el simple hecho de que no es lo mismo: void resta (); -> declaracion void resta ( n1,n2 ) -> definicion { } Como pueden ver, el n1 y n2 estn de ms por as decirlo, en todo caso el programa lo que interpretara es que esa funcin resta(n1,n2) es otra funcin diferente a resta() por el simple hecho de que no coinciden completamente. As que mucho ojo con eso - linea 19: recurso cout *** Lo que hacemos aqu es mostrar los numeros que fueron ingresados, con el fin de reconocer que en el paso por valor NO se alteran las variables originales, ya que mostraremos n1 y n2 con los valores originales a pesar de que hubo acciones aritmticas en su contenido ( sumas, restas, .. ) pero esos cambios NO afectaron a las variables originales sino a las formales; pues esa es una de las caracteristicas de pasar por valor los datos, se pasan copias. - linea 20: pausamos el programa *** - linea 22 25: funcion suma Aqui esta la definicion de la funcion suma, que como vemos: no retorna valores ( void ) recibe dos parametros flotantes ( x,y ) y lo que hace en su ambiente es mostrar mediante el recurso cout: la suma es y hacer un calculo matematico (x+y), que lo que har es mostrar en pantalla la suma de ambas variables. - linea 22 25: funcion resta Hace lo mismo que la suma, solo que el calculo matematico cambia (x-y) - linea 26 29: funcion multiplicacion

Hace lo mismo que las anteriores, solo que el calculo matematico cambia (x*y) - linea 29 32: funcion division Hace lo mismo que las anteriores, solo que el calculo matematico cambia (x/y) Y eso es todo, podemos ver que mostramos los valores calculados y el contenido de las variables orginales, con sto podemos tener una buena nocion de como son y para que sirven las funciones con paso por valor. Saludos!, cualquier duda o sugerencia comenten sern bienvenidos! (:

Dev-C++, Clase18 Funciones (paso por referencia)


Publicado el 14 abril 2011 por Eddy Hola a todos/as, Continuando con las clases en c++, pues trataremos el tema sobra las funciones y su paso por referencia; esta es otra manera de enviar valores a diferentes funciones adems de la manera que ya tratamos en la clase17 funciones (paso por valor). Aqu les dejo dos videos hechos por mi, espero les sea de ayuda: IMPORTANTE: para ver los videos en alta resolucin, basta con abrirlos en youtube y seleccionar 720 px - Parte 1 - Parte 2 El codigo es el siguiente: 24.) Hacer un programa, que reciba en una funcion dos pero un dato que sea pasado por referencia y otro sea pasado por valor #include <iostream.h> #include <conio.h> void referencia ( int&, int ); int A,B; main() { cout<<\n Ingrese un valor para A: ; cin>>A; valores enteros

cout<<\n Ingrese un valor para B: ; cin>>B; cout<<\n ; cout<<\n valor inicial de A: <<A; cout<<\n direccion inicial de A: <<&A; cout<<\n valor inicial de B: <<B; cout<<\n direccion inicial de B: <<&B; cout<<\n \n\n\n; referencia(A,B); getch(); } void referencia ( int &vieneA, int vieneB ) { cout<< [ PRUEBA 1 ] \n; cout<<\n\n valor de *vieneA* = <<vieneA<<\n << direccion de *vieneA* = <<&vieneA<<\n << valor de *A* = <<A<<\n << direccion de *A* = <<&A<<\n\n <<\n\n valor de *vieneB* = <<vieneB<<\n << direccion de *vieneB* = <<&vieneB<<\n << valor de *B* = <<B<<\n << direccion de *B* = <<&B<<\n << ______________________________________\n; getch(); cout<< [ PRUEBA 2 ] \n; vieneA = 10; cout<<\n\n valor de *vieneA* = <<vieneA<<\n << direccion de *vieneA* = <<&vieneA<<\n << valor de *A* = <<A<<\n << direccion de *A* = <<&A<<\n\n <<\n\n valor de *vieneB* = <<vieneB<<\n << direccion de *vieneB* = <<&vieneB<<\n << valor de *B* = <<B<<\n << direccion de *B* = <<&B<<\n << ______________________________________\n; getch();

cout<< [ PRUEBA 3 ] \n; vieneB = 1200; cout<<\n\n valor de *vieneA* = <<vieneA<<\n << direccion de *vieneA* = <<&vieneA<<\n << valor de *A* = <<A<<\n << direccion de *A* = <<&A<<\n\n <<\n\n valor de *vieneB* = <<vieneB<<\n << direccion de *vieneB* = <<&vieneB<<\n << valor de *B* = <<B<<\n << direccion de *B* = <<&B<<\n << ______________________________________\n; getch(); cout<< [ PRUEBA 4 ] \n; A = 44; cout<<\n\n valor de *vieneA* = <<vieneA<<\n << direccion de *vieneA* = <<&vieneA<<\n << valor de *A* = <<A<<\n << direccion de *A* = <<&A<<\n\n <<\n\n valor de *vieneB* = <<vieneB<<\n << direccion de *vieneB* = <<&vieneB<<\n << valor de *B* = <<B<<\n << direccion de *B* = <<&B<<\n; getch(); } cualquier duda estamos por aqu. Saludos!

S-ar putea să vă placă și