Está en la página 1de 51

Dev-C++, clase1 mostrar constantes

Publicado el 6 septiembre 2009 por Eddy

Hola a todos/as, como veniamos viendo en la entrada codigos en Dev-C++ he visto necesario hacer una simplificacion linea por linea del codigo usado con la libreria <iostream.h> , asi analizamos las funciones que tiene. Las mas claras asi como veniamos diciendo en las entradas anteriores ( estructura ) y ( codigos ), son las funciones cin ( para ingresar datos ) y cout ( para mostrar datos ). Vamos a ello: Como ya vimos en la entrada estructura de un programa en c++ , tenemos la cabecera, la funcion principal y el cuerpo. Entonces har a continuacion un programa pequeo donde usemos las funciones principales de la libreria <iostream.h> MOSTRAR MI NOMBRE 1.) Hacer un programa que muestre tu nombre con el formato: *** tu nombre *** Por favor antes de ver sta entrada recomiendo ver la entrada: Uso de la aplicacion #include <iostream.h> main ( ) { cout<< \n \n \t \t system(pause); } Analicemos el codigo anterior, * Primera linea cabecera y libreria Al ser <iostream.h> nos permite usar los recursos cin ( entrada ) y cout ( salida )entre otras muchas otras cosas, pero ahora solo estamos viendo entrada y salida de datos por lo tanto nos enfocamos mas en el cin y cout, tambien sta libreria contieneuna funcion llamada: system(pause) que pudieron ver en el codigo anterior est una linea antes de que se cierre la ultima llave, mas adelante veremos con detalle para que sirve y por qu est ahi Como lo que queremos es unicamente mostrar mi nombre , pues usamremos solo cout que sirve para mostrar, es decir datos constantes ( ver entrada: Todo sobre constantes ). * Segunda linea funcion principal * * * Eddy * * * \n \n ;

Siempre colocamos la funcion principal: main ( ) en todo programa para indicar que comenzaremos con el desarrollo del mismo ( ver entrada: estructura de un programa en c++ ) * Tercera / sexta linea inicio y fin del programa Las llaves indican que el cuerpo del programa se desarrollar en su interior, es como decir que son los limites para saber de donde a donde va la codificacion de algun programa. * Cuarta linea recurso cout Bien sta ya es la primera linea que hemos programado, porque el programa al ejecutarse va a mostrar sto: * * * Eddy * * * Cmo funciona cout ? como sabemos ya, cout es un recurso que usa C++ para la salida 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 )

cout<<

esa la sintaxis que lleva para poder mostrar datos constantes como texto/numeros/simbolos. 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 deescritura/variables/funciones/etc.. ). Y as funciona cout de * Quinta linea pausado del programa system(pause); Es la funcion que se usa para pausar el programa ya que si tenemos un programa y lo compilamos, despues lo ejecutamos. El programa avanzara como est previsto y programado pero al terminar la codificacion, es decir al llegar a la llave del final se cierra automaticamente porque ha terminado su funcion ( hacer lo que se le program ) { <- aqui comienza a correr el programa . . } <- al llegar aqu se cierra automaticamente. Y as uno no alcanza a ver el resultado , en ste caso que nos muestre: * * * Eddy * * * Entonces por ese motivo se coloca una pausa antes de llegar a la llave final y as no se cierre el programa automaticamente. Si no que nos pedir: presione una tecla para continuar. As nosotros decidimos cuando queremos cerrar el programa y tenemos tiempo de ver bien los resultados { <- aqui comienza a correr el programa . . system(pause); < pausamos para ver los resultados } < cuando hayamos presionado una tecla ahi si se cierra automaticamente el programa. Tambien debemos recordar que para usar la funcion system(pause); debemos declarar inicialmente la libreria <iostream.h> pues sta es la que la contiene como contiene tambien al cin y cout del cual hablamos mas arriba. Saludos arriba a abajo en busca de errores,

Nota: El recurso cout tambien es denominado una instruccin de salida de datos, para saber ms ver [ Tipos instrucciones ]

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 delmapa 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 ***

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 delmapa de sitio ). #include <iostream.h> main( ) { int n1,n2,n3; cout<< \n \n \t \t cin>>n1; cout<< \n \n \t \t cin>>n2; cout<< \n \n \t \t cin>>n3; Ingrese el primer numero: Ingrese el segundo numero: Ingrese el tercer numero: \n \n ; \n \n ;

\n \n ;

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 ***

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 delmapa de sitio ). #include 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: <iostream.h>

n1 = 5 n2 = 245 n3 = 10 Equivale a: Entonces:

n4 = 5 + 245 + 10; 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 delmapa 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 variablesdiferentes 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 delmapa 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

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 a60 ], 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 delmapa 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 delmapa 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 ( primer numero > segundo numero Y primer numero > tercer numero ) Si 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 noentra 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 delmapa 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 numeropero 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 yese 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 delmapa 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 cicloDO 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

Operadores de asignacion
Publicado el 11 noviembre 2009 por Eddy

Hola a todos/as, Vamos a ver lo que son los operadores de asignacion, como su nombre lo indica son aquellos que sirven para asignar algo.

- Operadores de asignacion Asi como decia anteriormente, son para asignar algo ( texto valores caracteres especiales ) a cualquier variable por ejemplo y se los denota con la forma: algo1 = algo2 Donde el signo = sirve como operador para la asginacion. En ste caso a lo que se encuentre dentro de algo2 ya sean numeros o texto, se le asignar o se lo dar a algo1 quedando ste osea algo1 con el valor o caracteres que le di algo2 . Para eso principalmente sirve el operador de asignacion = para asignar. Ahora vamos a ver algunos ejemplos para tener ms claro el asunto, a continuacion veremos como se le asigna un valor a una variable: #include<iostream.h> #include<conio.h> main () { int A; A = 100; cout<<El valor de A es: <<A; getch(); } Vemos que hemos declarado una variable llamada: A como tipo entero ( int ), eso significa que los valores que le asignemos van a tener que ser redondos exactos justos en otras palabras no podran ser numeros reales ( numeros reales son aquellos enteros que estan acompaados por decimales ). Para ello vemos que le asignamos a la variable A la cantidad de 100. Para ello debimos usar la sintaxis de los operadores de asignacion, osea: algo1 = algo2 A = 100 Pero ya en la codificacion recuerden que cada instruccion va acompaada del punto y coma ( ; ) para indicar que ahi termina sa linea. Asi: A = 100 ; Pero vemos claramente como es asignarle un valor a una variable con el operador de asignacion igual ( = ) . Ampliar imagen

Ahora veremos como asignar valores de una variable a otra variable: Asi mismo como el ejemplo anterior pero haciendo unos pequeos cambios, pues ahora no le asignaremos un valor si no el contenido de otra variable, para ello vamos a agregar una variable B. Y darle un valor y asi veremos como funciona la asignacion en dos variables, vamos a ello: #include<iostream.h> #include<conio.h> main () { int A,B; B = 51; A = B; cout<<El valor de A es: <<A;

getch(); } Como vemos a diferencia del ejemplo anterior donde la asignamos un valor directamente a A , ahora le asignamos un valor a otra variable osea a B . Y el valor de la variable B se le asignar a la variable A, es decir que A deberia valer lo mismo que vale B porque as lo declaramos, al ejecutar el programa nos da como resultado sto, vemos que funciona: Ampliar imagen

Ahora veremos con texto, el caso de que se le quiera asignar texto a una variable, es lo mismo solo que cambia el tipo de dato, ya que para texto y caracteres se usa char mientras que para enteros se usa int. Vamos a ello: #include<iostream.h> #include<conio.h> main () { char A,B; B=z; A = B; cout<<El valor de A es: <<A; getch(); } Aqui vemos que hemos declarado a la variable A y B como tipo caracter, entonces al asignarle un caracter a A y despues el contenido de A se lo asignamos a B, entonces B tendr el valor de A. Entonces si le asignamos a A el caracter z , Btendr el contenido de z tambien por el operador de asignacion ( = ) y por ser delmismo tipo que A. Ampliar imagen

Saludos

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 necesariamenteentre 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 delmapa de sitio ). #include<iostream.h> main () { short num,cuad; cout<<\t\n cin>>num; if ( { do { cout<< cin>>num; \t \n Ingrese un numero entre 1 y 10 \n \n; Ingrese num un numero < 1 || entre 1 y num 10 \n \n; > 10 )

} while ( num < 1 || num > 10 ); } cuad = num * num; cout<< \n \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 ) El numero fue: <<num<<\n

Y en nuestro programa, que le estamos diciendo que haga ? do { cout<< cin>>num; \t \n Ingrese un numero entre 1 y 10 \n \n;

} 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 delmapa de sitio ). #include<iostream.h> main() { short opcion;

cout<<Escoja <<1: <<2: cin if ( { do { cout cin } while ( } if ( { cout system(pause); } else { cout system(pause); } } - linea 1: la cabecera y libreria *** <<Escoja opcion

una Hombre Mujer >> < 1 ||

opcion:

\n \n \n;

opcion

opcion; >2)

una >>

opcion

valida:; opcion;

opcion

< 1 || opcion << Bienvenido!

opcion

> 2 ); == 1 ) \n;

<< Bienvenida!

\n;

- 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 { . ( 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 a 2 ? 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 > 2 )

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, oseaestamos 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!

Dev-C++, clase10 ciclo: para..


Publicado el 28 febrero 2010 por Eddy

Hola a todos/as, Pues retomando, despues de haber visto el ciclo do while ( mientras que.. ) en laclase anterior, veremos el manejo de un nuevo ciclo que es el ciclo para... Este ciclo nos sirve para hacer una operacion un numero determinado de veces, a diferencia del ciclo mientras con el cual haciamos una operacion infinitas veces, hasta que la condicion se cumpla. Como sabemos, ste ciclo tiene su sintaxis ( osea la forma en como debe ser escrita/llamada ), si se omite algun detalle de la sintaxis pues dar un mensaje de error en la compilacion. Y bien, como es la estructura para usar el ciclo para.. ? Es sencilla, y se parece a las que hemos venido viendo [ if - else , do - while ]; si entendieron y puedieron con esas, el ciclo para.. se les hara facil de igual manera, su forma es la siguiente: for ( concicion inicial ; condicion final ; incremento / decremento ) { operaciones } Bien entonces podemos observar que ste ciclo nos sirve para hacer alguna/s operacion/es un numero determinado de veces ya que nosotros colocamos por medio de condiciones el inicio, el final y de cuanto queremos que sea el incremento. Ahora propongo hacer un ejemplo sencillo para que se entienda mejor como va la cosa 13.) Hacer un programa que muestre los numeros pares desde el 2 hasta el 20. Por favor antes de ver sta entrada recomiendo ver la entrada:

Uso de la aplicacion Bien, como podemos ver ste es un claro ejemplo donde se usa el ciclo para.. porque est claro; nos dan: - la condicion inicial: que comienze en 2 - la condicion final: que termine en 20 - el incremento: al decir que quiere los numeros pares, quiere decir que va de 2 en 2; osea que el incremento seria de 2 Ahora veamos el codigo para que vean como implantariamos el ciclo, 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 delmapa de sitio ). #include<iostream.h> main() { short a; cout for ( { cout } system(pause); } - linea 1: la cabecera y libreria *** - linea 2: funcion principal *** - linea 3 11 : inicio y fin del programa *** - linea 4: declaramos variables *** - linea 5: recurso cout *** - linea 6: instruccin repetitiva: for Ya vimos la sintaxis del ciclo para.., que les parece si interpretamos lo que seria hablado en nuestro lenguaje para que se entienda mejor lo que uno haria cuando emplee ste ciclo, seria algo asi: Lenguaje C++ para el ciclo for : for ( a=2 ; a<=20 ; a=a+2 ) { cout << a << \n; } Lenguaje humano para el ciclo para : para ( sta variable iniciada por el valor 2 ; hasta que sta variable sea menor igual que 20 ; vaya de 2 en 2) { muestre << la variable inicada ( condicion inicial ) incrementandose en 2 hasta que llegue a 20 ( condicion final ) << salto de linea ; } Nota: recuerden que \n es una secuencia de escape que se le llama salto de linea, pueden leer ms sobre secuencias de escape [ Aqui ] - linea 8: recurso cout *** Esto nos deberia mostrar lo siguiente: << a << \n; << Los numeros a=2; pares del 2 a<=20; al 20: \n\n; a=a+2 )

- Cuando recien comienza el ciclo la variable a tiene un valor inicial de 2, por lo tanto mostrar: 2 - Luego valida: la variable a es menor o igual a 20? NO, entonces le aplica el incremento o decremento, en ste caso es un incremento y el valor que se va a incrementar es de: 2, por lo tanto a ya no vale 2 como tenia en su valor inicial, si no que vale 2+2 ( valor anterior + incremento ) y mostrar: 4 - Asi sucesivamente, ir preguntando hasta llegar al punto en que se tope con sto: la variable a es menor o igual a 20 ? SI, entonces termina el ciclo. - linea 9: pausando el programa *** Eso es lo que debemos saber sobre el ciclo para.. , espero les haya servido cualquier duda comenten con toda confianza; saludos!

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 delmapa de sitio ). #include #include main() { int N, cout cin for ( { cout cin suma } cout << \n La = suma de los << << \n <iostream.h> <conio.h>

num, Cuantos x=1; << \n >> suma N << numeros >> x<=N;

suma=0, desea ingresar x++ Ingrese + numeros es: << suma << ?

x; ; N; ) numero:; num; num; 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 hacerN 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 delmapa 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!

Tipos de instrucciones
Publicado el 28 febrero 2010 por Eddy

Hola a todos/as, Aqui voy a hablar sobre los tipos de instrucciones con los que por lo general vamos a trabajar al momento de programar en c++ Pero antes, qu es una instruccin ?

Una instruccion es lo que le ordenamos a la maquina paara que ejecute, por eso se dice que un programa es un conjunto de instrucciones; ya que cuando ejecutamos un programa, se ejecutan asi mismo en su interior muchas instrucciones que hacen que la maquina realize algo. Estos son los tipos de instrucciones: - instrucciones declarativas - instrucciones de asignacion - instrucciones selectivas - instrucciones repetitivas - instrucciones de entrada y salida de datos - instrucciones de bifurcacion - Instrucciones declarativas Sirven para declarar librerias, variables, constantes, arreglos , punteros, estructuras Por ejemplo: 1.) Para librerias: las librerias las declaramos porque vamos a usar recursos que contienen ellas.[ms detalles ] #include <iostream.h> > cin , cout.. #include <conio.h> > funcion getch().. #include <string.h> > para manipular cadenas #include <math.h> > para operaciones numricas #include <time.h> > para usar la hora #include <stdio.h> > para usar alternativas de entrda salida como printf , scanf 2.) Para variables: las variables las declaramos con el fin de tener un espacio para almacenar algun dato que va a cambiar con el tiempo. [ ms detalles ] > Declarando variable tipo caracter char nombre; > Declarando variable tipo entero int a,b,c; double sueldo short contador > Declarando variable tipo decimal > Declarando variable tipo entero-corto

Sugerencia: leer cuanto espacio ocupa usar cada tipo de variable [ Aqui ] Consejo: A las unicas variables que se deben dar valores iniciales son a: - los contadores - los acumuladores Pero, Cul es la difencia entre ambos ? Acumuladores: se incrementa o decrementa en un valor variable. Ejemplo: sacar el promedio de un alumno, se suman las notas ( que varian ) y se divide para el numero de notas. Contadores: se incrementa o decrementa en una forma constante. Ejemplo: va contando de 1 en 1 de -3 en -3 , etc 3.) Para constantes: las constantes las declaramos con el fin de tener un espacio para almacenar algundato que no va a cambiar. [ ms detalles ] Se las puede declarar de dos formas: Tomemos como ejemplo la formula para hallar el area de un triangulo:

qu es lo que nunca cambia ? La base puede variar, la altura puede variar. Pero como vemos el 2 es constante, sea cual sea la base o la altura el 2 se queda ahi. Entonces si queremos declarar al 2 como una constante, podemos hacerlo de dos maneras: 1) anteponiendole #define al nombre de la constante y luego el valor que le corresponde, asi: #define nomb 2 ( lo puse de color para que se entienda mejor ) Nota: al usar ste metodo no se le pone el delimitador ; al final de la linea. A continuacin coloco un ejemplo en codigo, para que tengan una idea de como seria: #include main() { #define nomb 2 > int base,altura,area; cout<<Ingrese cin cout<<Ingrese cin area = ( del base triangulo es: Declarada la constante base: altura: * << altura area de la

<iostream.h>

forma

1. \n; >>base; \n; >>altura; )/nomb; <<endl;

cout<<El area system(pause); }

2) anteponiendole const seguido del tipo de variable que s, despues el nombre de la constante y luego el valor que va a contener, asi: const int nomb = 2; ( lo puse de color para que se entienda mejor ) Nota: a diferencia del metodo anterior, ste si lleva el delimitador ; al final de la linea. A continuacin coloco un ejemplo en codigo, para que tengan una idea de como seria: #include main() { const int nomb = 2; > int base,altura,area; cout<<Ingrese cin cout<<Ingrese cin area cout<<El system(pause); } 4.) Para arreglos: los arreglos son un conjunto de variables del mismo tipo y nombre, pero indexadas por una posicion diferente. > Declarando un arreglo tipo flotante ( decimal ) float vector [12]; se vector que se ha declarado arriba, al ser un arreglo quiere decir que hay 12 variables con el mismo nombre y son del mismo tipo, pero diferenciadas unicamente en su posicion, asi: vector[0],vector[1],vector[2],vector[3],vector[4],vector[5],vector[6], .. ,vector[10],vector[11]. = area ( del base triangulo Declarada la constante base: altura: * es: << altura area de la forma 2. \n; >>base; \n; >>altura; )/nomb; <<endl; <iostream.h>

Nota: los arreglos siempre comienzan en la posicion cero ( 0 ) por eso llegan hasta una unidad menos, en ste caso como declaramos un arreglo de 12 , su tope ser de 11; puesto a que desde cero ( 0 ) hasta once ( 11 ) hay doce ( 12 ) variables 5.) Para punteros: los punteros son variables que almacenan direcciones de memoria y se los reconoce por llevar un asterisco ( * ) delante del nombre de la variable, asi: float * ventas ; 6.) Para estructuras: las estructuras son una agrupacion de variables que forman un registro, se las denota de sta manera: struct alumno { int cedula; char nombre; short edad; } - Instrucciones de asignacion Sirven para dar valores a las variables, y llevan ste formato: nombre_variable = expresin ; Por ejemplo: a = 15 ; x=a+5; z=x/2; - Instrucciones selectivas Son mediante las cuales podemos ejecutar diferentes acciones, como resultado de una expresion que estemos evaluando en ese momento y pueden ser: - Las selectivas simples - Las selectivas dobles - Las selectivas multiples 1.) Simples: Las que como resultado de una expresin que se est evaluando, solo podemos ejecutar una opcion por verdadero; ejemplo: if ( expresin a evaluar ) acciones. { accin_1; accin_2; } 2.) Dobles: Nos permite seleccionar entre dos diferentes acciones: - Una por verdadero - Otra por falso De sta manera: if ( expresion a evaluar ) { accion_1; accion_2; } > Si sa expresin es verdadera y solo es verdadera, se ejecutarn las

> Si sa expresin es verdadera, se ejecutarn las acciones 1 y 2.

else > Pero si sa expresin era falsa, se ejecutarn las acciones 3 y 4. { accion_3; accion_4; } A profundidad: para ver ms sobre el manejo de la condicion if , puede acceder [ Aqui] 3.) Multiples: Podemos ejecutar diferentes acciones como resultado de una expresin que estemos evaluando; ejemplo: > Esta es la expresion que vamos a evaluar. switch ( expresion a evaluar ) { case 1 : accion 1 ; case 2 : accion 2 ; case 3 : accion 3 ; } - Instrucciones repetitivas Sirven para repetir una condicion N veces, siempre y cuando la condicion sea verdadera. a) Cuando no sabemos cuntas veces tendr que ejecutarse una accin para que sea verdadera, se usa el While y el Do While. Estas dos instrucciones repetitivas son muy parecidas en su funcin, y llegan al mismo resultado. Solo cambia la sintaxis: - Para while: While ( expresin ) { accin 1; accin 2; } - Para Do While: Do { accin 1; accin 2; } While ( expresin ) > Mientras esa expresin sea verdadera har las acciones 1 y 2. > Mientras esa expresin sea verdadera har las acciones 1 y 2.

b) Cuando sabemos cuntas veces queremos que se realice una accin, pues usamos la instruccion repetitiva for , su sintaxis es la siguiente: for ( expresin inicial ; expresin final ; incremento / decremento ) { accines; > Hasta que no llegue a la expresin final, se ejecur la accin una y otra vez. } Nota: Sobre los operadores de incremento y decremento, puedes ver ms informacin [ Aqui ] - Instrucciones de entrada y salida de datos El lenguaje C++ no tiene palabras reservadas para ingresar o mostrar datos, para ello usan recursos que se encuentran en las librerias. Por ejemplo: En la libreria <iostream.h> tenemos para la entrada y salida de datos a cin y coutrespectivamente. Uso: - Para la entrada de datos ( pedir ) cin >> nombre_del_usuario ; - Para la salida de datos ( mostrar ) cout << nombre_del_usuario

En la libreria <stdio.h> tenemos para la entrada y salida de datos a scanf y printfrespectivamente. Uso: - Para la entrada de datos ( pedir ) scanf ( %i %s %f , &edad apellido &sueldo ) ; Nota: Los amperson ( & ) van en todo tipo de variable menos en las cadenas de caracteres cuando usamos el scanf. - Para la salida de datos ( mostrar ) printf ( su edad es: %i , edad ) - Instrucciones de bifurcacin Interrumpen el flujo normal de un programa, es decir que evitan que se ejecute alguna instruccin del programa y salta a otra parte del programa. Por ejemplo: el break Switch ( expresin que estamos evaluando ) { case 1 : cout << Hola! ; break ; case 2 : cout << amig@s ; } En el ejemplo anterior tenemos, que en caso de que haya sido 1 pues mostrar Hola! y saldr del programa dejando a un lado lo dems. Entonces hemos comprobado que interrumpi el flujo normal del programa. Pero si tuvieramos algo de sta manera: Switch ( expresin que estamos evaluando ) { case 1 : cout << Hola! ; case 2 : cout << amig@s ; case 3 : cout << bienvenidos a ; case 4 : cout << Programando: Paso a Paso ; break ; } Entonces el flujo normal del programa avanza hasta el caso 4 dnde vemos que est el break y l pues interrumpe el flujo normal del programa y ahi acabaria nuestro programa, como resultado nos hubiera mostrado lo siguiente: Hola! amig@s bienvenidos a Programando: Paso a Paso . Asi mismo, hay otras que cumplen funciones parecidas como por ejemplo: continue : ste hace que se salte la instruccin en donde est y pase a la siguiente, por ejemplo: for ( x=1; x<10; x++ ) { if ( x == 5 ) continue; cout << x << endl; } Como resultado muestra: 1 2 3 4 6 7 8 9 No muestra el nmero 5, porque ahi se encuentra el continue. goto : ste nos lleva a una linea que indiquemos por medio de etiquetas. Asi: A: . . . if ( x == 100 ) goto A ; Y otros como return que devuelve un valor ( usado en funciones por lo general ), otro es exit que obliga a salir.

Eso es todo sobre los tipos de instrucciones, espero les haya servido; cualquier pregunta no duden en hacerla. 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 elcaso 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:

aki boyyyyyyyy
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 delmapa 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 tantoes 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 ysalga 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 delmapa de sitio ). #include #include main() { int N, cout << \n << \n A <iostream.h> <conio.h>

c1=0, cuantas Tus

c2=0, prendas desea personas

c3=0, mas realizar la

x, comunes encuesta ?

camis; \n ;

cin if ( { cout getch(); } else { cout << \n << << << for ( { cout // do { cout cin switch ( { case 1: case 2: case 3: default : } } while ( } cout << << << << 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 *** << \n c1 c2 c3 El promedio * << << << de cout << \n Digite su << \n Aqui Usuario vamos << \n * 123x=1; << \n Fin

>> N de la

N; <= 0 ) aplicacion.;

Camisas: elegante deportiva otra x<=N; # << con

Menu

\n \n \n \n \n; ) x << :; camisas:

x++

las

opcion >> camis

en:

Camisas.

\n; camis; ) c1++; break; c2++; break;

<< \n

Error!

c3++; break; \n;

camis

> 3 || la usa usa usa encuesta Camisas:

camis dice elegante deportiva otra que:

< 1 ); \n \n \n \n \n;

- 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 delmapa 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 queNO 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 delmapa de sitio ). #include #include main() { int x,numero[11]; cout<<\n for (x=0; { cout<<numero cin>>numero[x]; } cout<<\n cout<<\n cout<<\n getch(); } - 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 acciones12 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 *** Tercer Sexto Decimo <<x<<: ; Ingrese los x<=11; 12 numeros:\n; x++) <iostream.h> <conio.h>

numero: numero: numero:

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

- 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 pedirnumero [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 delmapa de sitio ). #include #include main() { char nombre[10],apellido[10],cedula[10]; cout<<\nIngrese cin>>nombre; cout<<\nIngrese cin>>apellido; cout<<\nIngrese cin>>cedula; cout<<\n\n<<nombre<< getch(); } - 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 anombre,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 caracteresindividuales hasta que cumpla 10 nombres ms claramente, internamente haria algo asi: nombre[0] = E nombre[1] = d | nombre: apellido: cedula: <<apellido<< | ; ; ; <<cedula<<\n; <iostream.h> <conio.h>

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 delmapa 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 nuevosnumeros 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 yrand_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!

También podría gustarte