You are on page 1of 48

Estructura de un algoritmo

Posted on 23 julio 2009 by Eddy


Hola a todos/as,
Bien para explicar una estructura de un algoritmo tomar como ejemplo al cuerpo humano. Pues si, ya que nosotros estamos
compuestos de secciones, un cuerpo humano por ejemplo comienza de la cabeza y termina en los pies, y en el medio tenemos
el cuerpo donde estn los brazos, el pecho, la espalda, etc.. ( hablando solo de lo externo no de los organos internos ).
Bien, esa es una estructura. Entonces asi mismo son los algoritmos, naces con una cabeza que vendria a ser nuestro INICIO:

y terminan en los pies que vendrian a ser nuestro FIN:

Y como cuerpo tenemos a lo que son los procesos lectura de datos ( ingresos ) salida de datos ( mostrados ) ciclos
condiciones ..
por lo tanto en el cuerpo podemos decir que van los procesos del algoritmo / programa que estemos realizando. En la parte
del cuerpo del algoritmo, no tienen un orden como el cuerpo humano de que la garganta va antes de los brazos, ya que
dependiendo del programa, podemos ir pidiendo mostrando datos , no necesariamente tienen un orden especifico. Pero eso
si, en el desarrollo de un algoritmo debemos quedar con un esquema asi:
Inicio desarrollo fin


C++ es un lenguaje de programacin orientado a objetos que toma la base del lenguaje C y le agrega la capacidad de mayor y
mejor interaccion con el programador.
Las principales herramientas necesarias para escribir un programa en C++ son las siguientes:
o Un compilador de C++
o Paciencia
o Nociones sobre programacin
o Un editor cualquiera de texto, o mejor un entorno de desarrollo (IDE)


Estructura de un programa en C++
Posted on 5 septiembre 2009 by Eddy
Hola a todos/as,
Un programa, as como un algoritmo tiene una estructura, son casi identicos solo que en el programa intervienen librerias,
funciones, y otras partes ms que en un algoritmo no se pueden llegar a usar por complejidad.
Recomendacion, ver: Estructura de un algoritmo
vamos analizando por lineas ;)
ARCHIVO DE CABECERA
Librerias indica que se tengan en cuenta las funciones y tipos definidos en la librera que se escoja, por ejemplo tenemos:
#include < nombre de fichero >
podemos ver donde dice: nombre de fichero va como su nombre lo indica un fichero cabecera por lo general en c++
usamos iostream que son las siglas iniciales de: [ input output stream ].
Cada fichero cabecera sirve para indicarle al programa que funciones podemos usar, es decir que al colocarle el iostream,
tendremos funciones que se nos permitir usar c0mo el system(pause) para dar una pausa al programa que hemos hecho y
observar bien los resultados, entre otras; tambien podemos usar recursoscomo es el cin ( para que el usuario/a ingrese datos
) y el cout ( para mostrarle datos al usuario/a ).
Entonces quedamos con una cabecera asi:
#include <iostream.h>
CABECERA DE FUNCION FUNCION PRINCIPAL
Debajo de la cabecera principal del programa, se coloca la cabecera de funcion, sta funcion es obligatoria en cada programa
porque indica el comienzo del programa:
main ( )
Y se requiere de los parentesis despues de la palabra restringida main
CUERPO DESARROLLO
Despues de colocar main ( ) es decir nuestro indicador que comienza el programa, ya podemos comenzar con la programacion,
ya que la programacion va en el cuerpo del programa, se debe indicar cual es el cuerpo, osea los limites. En un programa los
limites son marcados por el simbolo las llaves , es decir { }
{
. . . .
. . . . . . .
}
Por ultimo tenemos las sentencias, es decir nuestra programacion, lo que vayamos realizando en el cuerpo del programa, lo
que va a hacer el programa al compilarlo y ejecutarlo. Todo eso va a ir en el cuerpo es decir DENTRO de los limites que
establecimos ( las llaves principales del programa )
Al final tenemos que, la estructura de un programa en c++ es as:
- ESTRUCTURA -
#include <iostream.h>
main ( )
{
. . . .
. . . . . . .
}

Dev-C++, codigos
Posted on 6 septiembre 2009 by Eddy
Hola a todos/as,
Ya hemos comenzado con la programacion en c++ y hemos visto la estructura de un programa en c++ ( ver entrada ), ahora
vamos a ver los codigos usados en ste lenguaje para asi entenderlo mejor, viendo los codigos mas usados podemos
desarrollar cualquier cantidad de programas, as que comencemos:
- Cabeceras ms usadas para comenzar -
#include <iostream.h>
#include <math.h>
#include <time.h>
Donde <iostream.h> contiene las funciones de ingresar y mostrar datos.

Donde <math.h> contiene las funciones matematicas comunes.
Donde <time.h> contiene las funciones para tratamiento y conversin entre formatos de fecha y hora.
- Funciones dependiendo de la cabecera -
- 1 -
Si usamos la biblioteca <iostream.h> tenemos que, las funciones ms comunes que vamos a usar son de entrada / salida
de datos. Y las operaciones mas comunes como suma/resta/multiplicacion/division.
- Ver ejemplo del uso de la libreria <iostream.h> para mostrar datos -
- 2 -
Si usamos la biblioteca <math.h> tenemos que, las funciones ms comunes que vamos a usar son de calculos matematicos
y conversiones. Y posee operaciones como hallar coseno/hallar raiz cuadrada/hallar la potencia/etc...
- 3 -

Si usamos la biblioteca <time.h> tenemos que, las funciones ms comunes que vamos a usar son de tratamiento y
operaciones usando la hroa y fecha como base. Y posee operaciones como calcular el numero de veces que se di click con el
mouse durante la ejecucion del programa/hallar un numero aleatorio/entre muchas opciones mas
- Los identidicadores -
Esto no es nuevo para nosotros, los identificadores son una secuencia de caracteres, letras, digitos y subguiones ( _ ), como lo
vimos en la entrada: Reglas para la declaracion de variables. Por lo tanto no har enfasis en ste tema, porque ya est
explicado con anterioridad. Unos ejemplos de los identificadores correctamente escritos:
altura1
Indicador
nombre_alumno
Signo_Del_Zodiaco
- Palabras reservadas -
Como sabemos, las palabras restringidas/reservadas son una de las reglas de la buena declaracion de variables y en cada
lenguaje existen diferentes palabras reservadas, en el caso de c++ tenemos una lista grande que va variando de las librerias
que se van aadiendo. Por ejemplo viendo por encima las librerias, cada una tiene sus funciones a las cuales no se les pueden
copiar el nombre para declaralo como variable, As:
cout / cin / etc.. de la libreria <iostream.h>
cos / pow / etc.. de la libreria <math.h>
srand / clock / etc.. de la libreria <time.h>
int / double / char / etc.. de la declaracion de variables
if / else / for / do / while / etc.. de los condicionantes
- Comentarios -
Los comentarios llevan pueden llevar dos formatos en c++
* El primero es para ms de una linea, y su sintaxis es la siguiente:
/* . . . . . . . */
* El segundo es para solo una linea, y su sintaxis es la siguiente:
// . . . . . . .
Los comentarios sirven para dejar plasmada una pequea explicacion de lo que se est haciendo en una linea o en un proma
en total.
- Signos de puntuacion y separadores -
Todas las sentencias deben terminar escritas con un punto y coma. Otros signos de puntuacion son:
! % ^ & * ( ) + = { } [ ] \ ; : < > ? , . /

- Secuencias de escape comunes -
En c++ podemos usar simbolos para indicar alguna funcion especifica, por ejemplo al colocar \n le indicamos al programa que
debe dar un enter salto de linea, por ejemplo:
cout<< \n Programando \n ;
Indicamos que antes de que muestre la palabra programando debe haber un espacio vacio como si se hubiese dado un enter,
y asi mismo despues de la palabra programando debe haber otro espacio en blanco o salto de linea.
ampliar imagen
Tenemos tambien el simbolo \t que sirve para hacer una tabulacion o una sangria, por ejemplo:
cout<< \t Programando \n ;
Eso indica que antes que muestre la palabra programando habr una tabulacion o una sangria ( como presionar algunas
veces la barra espaciadora ) antes de que salga la palabra programando y luego habra un salto de linea.
ampliar imagen
Existe tambien la posibilidad de hacer el enter salto de linea, colocando el codigo:
cout<<endl;
que significa cout = muestre y endl = fin de linea. Entonces mostrar un enter. No olvidarse que despues de cada sentencia se
debe colocar un punto y coma o si no habra error de sintaxis en la compilacion del programa.



Secuencias de escape
Posted on 10 noviembre 2009 by Eddy
Hola a todos/as,
Pues vamos a ver las secuencias de escape en c++ . Las secuencias de escape no son ms que constantes especiales que
se diferencian por llevar una barra inclinada delante, es decir ste simbolo: \
Tenemos algunas, mencionaremos las ms usadas:
\r
Es el retorno del carro, se la denomina as porque el cursor se ubica al comienzo de la misma linea al ser ejecutado el
programa y llegar al \r , el cursor volver al comienzo de la misma linea. Asi:
Ejemplo:
#include <iostream.h>
#include <conio.h>
main ()
{
cout<<Progrmando paso A paso \r;
getch();
}
Como podemos ver, he resaltado con rojo a la secuencia de escape de retorno de carro, entonces el programa har lo
siguiente:
1) como va a usar cout identificar que se est usando la libreria iostream.h
2) luego mostrar en pantalla lo que esta en comillas tal y cual
3) al final, antes de llegar al cierre de comillas se dar cuenta que est una secuencia de escape llamada retorno del carro,
entonces har que el cursor se regrese al inicio de la misma linea.
4) ver que hay un getch(); que sirve para pausar el programa y poder visualizar lo que hay en la consola ( ventanita negra )
Osea que en vez de quedar el subguion titiliando al final, osea despues de la palabra paso Asi:
Programando paso A paso_
se guion bajo se ira al inicio, quedando debajo de la primera letra, es decir la letra P de Programando. Asi:
Ampliar imagen
\n
Esta secuencia de escape funciona para dar un salto de linea, es decir un enter , Es como en literatura un punto a parte,
dice que vaya a la siguiente linea, asi es el \n , funciona para ir al comienzo de la siguiente linea.
Ejemplo:
#include <iostream.h>
#include <conio.h>
main ()
{
cout<<Progrmando paso A paso \n;
getch();
}
Como podemos ver, he resaltado con rojo a la secuencia de escape de salto de linea, entonces el programa har lo siguiente:
1) como va a usar cout identificar que se est usando la libreria iostream.h
2) luego mostrar en pantalla lo que esta en comillas tal y cual
3) al final, antes de llegar al cierre de comillas se dar cuenta que est una secuencia de escape llamada salto de linea,
entonces har que el cursor baje una linea y se ubique al comienzo de sta nueva linea.
4) ver que hay un getch(); que sirve para pausar el programa y poder visualizar lo que hay en la consola ( ventanita negra )
Osea que en vez de quedar el subguion titiliando al final, osea despues de la palabra paso Asi:
Programando paso A paso_
se guion bajo se ira al inicio de la siguiente linea, quedando asi:
Ampliar imagen
\a
Esta secuencia de escape funciona para dar pitido o alarma, es decir un piiip , Es como una especie de notificacion, se la
usa muy amenudo para cuando se ingresa mal un valor, que ademas de un mensaje de error, se muestre un sonido de error,
para eso se usa el \a.
Ejemplo:
#include <iostream.h>
#include <conio.h>
main ()
{
cout<<Progrmando paso A paso \a;
getch();
}
Como podemos ver, he resaltado con rojo a la secuencia de escape de alarma , entonces el programa har lo siguiente:
1) como va a usar cout identificar que se est usando la libreria iostream.h
2) luego mostrar en pantalla lo que esta en comillas tal y cual
3) al final, antes de llegar al cierre de comillas se dar cuenta que est una secuencia de escape llamada alarma, entonces
har un sonido de aviso cuando termine de mostrar el texto, como un piiip
4) ver que hay un getch(); que sirve para pausar el programa y poder visualizar lo que hay en la consola ( ventanita negra )
NOTA: como es un sonido no lo puedo colocar aqui, pero vamos pueden probarlo en sus casas y ejecutenlo vern que
funciona ;)
\b
Esta secuencia de escape funciona para retroceder un espacio en la linea mostrada, no es como el retorno del carro \r ,
pues el retorno de carro se regresaba toda la linea, mientras que el \b solo retrocede un espacio.
Ejemplo:
#include <iostream.h>
#include <conio.h>
main ()
{
cout<<Progrmando paso A paso \b;
getch();
}
Como podemos ver, he resaltado con rojo a la secuencia de escape de retorno de espacio , entonces el programa har lo
siguiente:
1) como va a usar cout identificar que se est usando la libreria iostream.h
2) luego mostrar en pantalla lo que esta en comillas tal y cual
3) al final, antes de llegar al cierre de comillas se dar cuenta que est una secuencia de escape llamada retorno de espacio,
entonces regresar un espacio en la misma linea.
4) ver que hay un getch(); que sirve para pausar el programa y poder visualizar lo que hay en la consola ( ventanita negra )
Osea que en vez de quedar el subguion titiliando al final, osea despues de la palabra paso Asi:
Programando paso A paso_
se guion bajo se ira un espacio antes en la misma linea, quedando asi:
Ampliar imagen
Entonces cada vez que coloquemos un \b ir retrocediendo un espacio mas hacia atras, para dejar un ejemplo hagamos el
mismo pero con seis \b , entonces retrocederemos 4 espacios a la izquierda en la misma linea. Asi:
cout<<Progrmando paso A paso \b\b\b\b\b\b;
Entonces quedara debajo de la A, veamos:
Ampliar imagen
( barra inclinada y el cero )
Esta secuencia de escape se llama caracter nulo o fin de cadena . Se encuentra al final de cada linea, pero son invisibles
a la vista del programador o del espectador. Diria que es asi mas o menos como est en el medio, tomando como ejemplo los
ejercicios anteriores:
cout<<Progrmando paso A paso \r ;
cout<<Progrmando paso A paso \n ;
cout<<Progrmando paso A paso \a ;
cout<<Progrmando paso A paso \b ;
No lo vemos, pero siempre est al final de cada cadena indicando que hasta ahi llega lo que se quizo mostrar. Ahora veremos
un ejemplo claro del fin de cadena , donde cortaremos una cadena a la mitad con el simple hecho de usar el puesto que
siempre est al final ( invisible para nosotros ), si lo usamos podemos cortar cualquier cadena.Asi:
Ejemplo:
#include <iostream.h>
#include <conio.h>
main ()
{
cout<< \n Progrmando paso A paso \n ;
getch();
}
Como podemos ver, he resaltado con rojo a la secuencia de escape de fin de la cadena , y con color verde a la secuencia de
escape fin de linea para ver que se pueden usar las que queramos. Entonces el programa har lo siguiente:
1) como va a usar cout identificar que se est usando la libreria iostream.h
2) luego mostrar en pantalla lo que esta en comillas tal y cual
3) al medio de la cadena, antes de llegar donde dice: A paso se dar cuenta que est una secuencia de escape llamada fin
de la cadena, entonces cortar la cadena hasta ahi. Dejando olvidado lo dems.
4) ver que hay un getch(); que sirve para pausar el programa y poder visualizar lo que hay en la consola ( ventanita negra )
Osea que en vez de quedar mostrando todo el texto:
Programando paso A paso
la secucencia de caracter nulo fin de cadena, har que se muestre solamente hasta antes de A paso , quedando asi:



CLASE 1
MONSTRAR CONSTANTES
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 * * * Eddy * * * \n \n ;
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

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 arriba a abajo en busca de errores, deescritura/variables/funciones/etc.. ). Y as funciona cout ;)
Nota: El recurso cout tambien es denominado una instruccin de salida de datos, para saber ms ver [ Tipos de instrucciones ]

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


CLASE2
INGRESAR DATOS
Hola a todos/as,
Como vimos en la clase anterior 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 ***
Saludos, cualquier duda por favor diganmela con toda confianza

CLASE 3
Dev-C++, clase3 mostrar variables
Posted on 21 septiembre 2009 by 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 Ingrese el primer numero: \n \n ;
cin>>n1;
cout<< \n \n \t \t Ingrese el segundo numero: \n \n ;
cin>>n2;
cout<< \n \n \t \t Ingrese el tercer numero: \n \n ;
cin>>n3;
cout<< \n Los numeros ingresados fueron: \n ;
cout<< \t primer numero: <<n1<<\n;
cout<< \t segundo numero: <<n2<<\n;
cout<< \t tercer numero: <<n3<<\n;
system(pause);
}
- Primera linea: la cabecera y libreria ***
- Segunda linea: funcion principal ***
- linea 3 16 : inicio y fin del programa ***
- Cuarta linea: declaramos variables ***
Esta funcion ya la vimos en la clase anterior, pero quiero recalcar que las variables que vayamos a declarar en cada programa
que hagamos si son ms de una pues van separadas con una coma. As:
- Ejercicio de la clase anterior -
int cantidad;
solo necesitabamos una variable para cumplir con lo que pedia el programa, pero ahora necesitamos tres variables, entonces
colocamos en nombre de la variable seguida de una coma ( , ) para separar cada variable. As:
- Ejercicio de sta clase -
int n1,n2,n3;
- Quinta linea: recurso cout ***
- Sexta linea: recurso cin ***
Esta funcion tambien la vimos en la clase anterior, pero quiero recalcar que por cada cin ( por cada vez que pidamos un dato
), ste debe llevar su correspondiente variable, en ste caso tenemos 3 variables, entonces habr 3 cin pidiendo cada
una. As es correcto:
cin>>n1; > para el numero 1
cin>>n2; > para el numero 2
cin>>n3; > para el numero 3
Esta mal que se haga por ejemplo que pidamos los tres numeros y que le coloquemos al cin la misma variable ya que eso
har que en vez de que se almacene un valor unico por cada variable, se reemplaze por el ms reciente. Asi es incorrecto:
cin>>n1; > para el numero 1
cin>>n1; > para el numero 2
cin>>n1; > para el numero 3
Eso haria que se reemplace el numero anterior por uno nuevo ya que el dato que ingrese el usuario/a se almacenar en la
misma variable cada vez, perdiendo asi sa variable el valor que tenia antes por el ultimo valor que ingreso el usuario/a.
- Septima linea: recurso cout ***
- Octava linea: recurso cin ***
- Novena linea: recurso cout ***
- Decima linea: recurso cin ***
- linea 11: recurso cout ***
- linea 12: recurso cout ***
Ya he explicado como funciona cout , pero aqui vamos a mostrar variables ahora. Para ello se usa el mismo comando solo
que como decia al comienzo, para mostrar constantes se usan las comillas, mientras que para mostrar variables no se usan
comillas . Entonces por se motivo vemos sto:
cout<< \t primer numero: <<n1<<\n;
vemos que estamos mostrando una parte constante: \t primer numero:
seguido de la parte constante que no lleva comillas: n1
y para dar un enter o salto de linea colocamos despues el simbolo \n como siempre en una manera constante osea entre
comillas como siempre lo hemos hecho, ya que es un codigo hecho con ese fin, no es una variable.
Hemos usado << en varias situaciones ya que se es el separador de datos constantes y datos variables. Es como decir
sto:
cout<< \t primer numero: ;
cout<< n1;
cout<< \n ;
Pero simplificado en una sola linea, por eso queda as:
cout<< \t primer numero: <<n1<<\n;
Si recordamos en DFD, nuestro separador de partes constantes y partes variables era la coma ( , ) pueden recordarlo ( AQUI ).
Ac en el lenguaje c++ en cambio es el simbolo << .
- linea 13: recurso cout ***
- linea 14: recurso cout ***
- linea 15: pausando el programa ***

CLASE 4
Dev-C++, clase4 operaciones con variables
Posted on 25 septiembre 2009 by Eddy
Hola a todos/as,
Hasta el momento ya hemos visto lo que son:
Dev-C++, clase1 mostrar constantes
Dev-C++, clase2 ingresar variables
Dev-C++, clase3 mostrar variables
Entonces ya que sabemos mostrar datos variables y constantes y sabemos como ingresar variables. Pues ahora procedemos
a aprender como hacer operaciones con dichas variables y as ir sacando resultados diferentes, la forma no cambia mucho,
hacer operaciones es aun ms facil que ingresar o mostrar datos porque no hace falta de ningun comando ;)
4.-) Hacer un programa que pida 3 numeros y luego los sume y muestre la respuesta en pantalla con el formato:
n1+n2+n3=n4
Por favor antes de ver sta entrada recomiendo ver la entrada:
Uso de la aplicacion
Bien, el ejercicio nos pide 3 numeros ( que son los que ingresar el usuario/a ), y con esos numeros almacenados cada uno en
una variable diferente, es decir:
n1 = primer nuemro
n2 = segundo numero
n3 = tercer numero
Esos numeros vamos a sumarlos entre ellos para as sacar un resultado, que ser almacenado en una nueva variable que
llamaremos n4.
n4 = resultado de la suma de n1+n2+n2
Ahora que sabemos como va a ir planteado nuestro programa, procedemos a realizarlo. Y as como les dije antes, no hay
miedos, porque hacer operaciones es super sencillo no entra ningun nuevo comando ;)
Nota: El hecho de usar el simbolo = , quiere decir que ests usando un operador de asignacion, puedes ver ms
detalles [ Aqui ]
ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las
entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis.
Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad (
entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General
delmapa de sitio ).
#include <iostream.h>
main ()
{
int n1,n2,n3,n4;
cout<< \t \n Ingrese 3 numeros para hallar la suma total de ellos \n \n;
cout<< \n Primer nuemro: \n;
cin>>n1;
cout<< \n Segundo nuemro: \n;
cin>>n2;
cout<< \n Tercer nuemro: \n;
cin>>n3;
n4 = n1 + n2 + n3;
cout<< \n La suma total de los numeros es: \n\n;
cout<<n1<<+<<n2<<+<<n3<<=<<n4<<\n\n;
system(pause);
}
- linea 1: la cabecera y libreria ***
- linea 2: funcion principal ***
- linea 3 16 : inicio y fin del programa ***
- linea 4: declaramos variables ***
- linea 5: recurso cout ***
- linea 6: recurso cout ***
- linea 7: recurso cin ***
- linea 8: recurso cout ***
- linea 9: recurso cin ***
- linea 10: recurso cout ***
- linea 11: recurso cin ***
- linea 12: operacion con las variables
Como podemos ver sin ningun codigo nuevo, le hemos asignado a la variable n4 un nuevo valor ( que equivale a la suma de
n1+n2+n3 ). Por eso tenemos la linea de sta manera:
n4 = n1 + n2 + n3;
Vemos que n4 viene a ser nuestra variable receptora de informacion. Porque a ella se le asigna el valor de: n1+n2+n3
Entonces si tendriamos que:
n1 = 5
n2 = 245
n3 = 10
Equivale a: n4 = 5 + 245 + 10;
Entonces: n4 = 260;
Nota: El operador de asignacion = tambien es denominado una instruccin de asignacion, para saber ms ver [ Tipos de
instrucciones ]
- linea 13: recurso cout ***
- linea 14: recurso cout ***
NOTA: su explicacion ms detallada est en la linea 12 de la clase3
- linea 15: pausando el programa ***

CLASE 5
Dev-C++, clase5 ejercicios de aplicacion I
Posted on 29 septiembre 2009 by 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 ***

CLASE 5.1
DFD, clase5 ejercicios de aplicacion I
Posted on 27 julio 2009 by 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:
Clase1 mostrar constantes
Clase2 ingresar variables
Clase3 mostrar variables
Clase4 operaciones con variables
Y no se olviden tampoco de revisar la seccin General, pues ahi estn conceptos base que debemos tener en cuenta a la
hora de programar. Aunque en cada clase siempre estoy linkeando uno que otro concepto ;)
Bien, comencemos con la artilleria :lol: :lol:
5.) Hacer un algoritmo que permita ingresar dos numeros, y muesstre la multiplicacion de ambos, con el formato: numero1 *
numero2 = numero3
Bien, ahi tenemos uno as que comencemos.
qu nos pide el ejercicio ?
Nos pide 2 numeros para ingresar ( que son los que vamos a multiplicar ), y un numero para mostrar ( que es el resultado de la
multiplicacion de los dos numeros ingresados ).
Entonces, abrimos DFD.
- Luego de abrir la aplicacion DFD, procedemos a colocar, lo que va a hacer el programa , as:
ampliar imagen
- Seguimos con el cuerpo del algoritmo ( ver estructura de un algoritmo ), por lo tanto nos tocaria declarar las variables,
necesitamos 3 variables: los dos numeros que ingresar el usuario ( n1 y n2 ), y el numero que saldr de la multiplicacin de
ambos digitos ( el cual seria nuestro n3 ). Ahi estn nuestras tres variables, deber quedar algo as:
ampliar imagen
- Le damos valor inicial de cero (0), porque queremos que no tengan un valor al comienzo, es como que estn vacias las
variables, ya lo hemos hablado antes por lo tanto ( ver clase2 , clase3 ).
- Seguimos, lo que debemos hacer ahora es pedirle al usuario los dos numeros, para ello le mostraremos un
mensaje avisando que debe ingresar el primer numero, y luego otro de que deber ingresar el segundo numero. Cada uno con
su respectivosimbolo de lectura, para que el numero que ingrese el usuario se almacene tanto en n1 como en n2, as:
ampliar imagen
ampliar imagen
ampliar imagen
ampliar imagen
- Ahora que ya estn declaradas las variables, y el usuario supuestamente ya las ingres, vamos a hacer las operaciones, con
el simbolo de asignacion como lo vimos en la clase4, entonces nos quedaria algo as:
ampliar imagen
- Ahora ya tenemos: las variables declaradas, los datos ingresados, la multiplicacion almacenada en n3, por lo tanto solo nos
falta mostrar la multiplicacion de los dos numeros ( osea n3 ), pero ojo que en el enunciado dice claramente: con el formato:
numero1 * numero2 = numero3 . Entonces devemos mostrarlo con ese formato, as:
ampliar imagen

6.) Hacer un algoritmo que permita ingresar tres numeros, y muestre en pantalla tanto la suma como la multiplicacion de ellos,
con el formato indicado a continuacion:
* Para la suma: N + N + N = N
* Para la multiplicacion: N x N x N = N
- Ok, que tenemos ahora ? ;)
pues que debemos ingresar 3 numeros y mostrar su suma y su multiplicacion. entonces quedamos que usaremos 5 variables (
los tres numeros: n1,n2,n3 y los resultados osea n4 que va a ser nuestro resultado de la suma y n5 que va a ser nuestro
resultado de la multiplicacion ).
- Comenzamos abriendo DFD
- Mostramos el detalle del ejercicio
ampliar imagen
- Declaramos las variables que vamos a usar, en ste caso 5 variables: los tres numeros que vamos a pedirle al
usuario (n1,n2,n3) y la suma (n4) junto con lamultiplicacion (n5), dan un total del 5 variables.
ampliar imagen
ampliar imagen
- Ahora le pedimos al usuario los datos con su respectivo mensaje y caja de texto, as:
ampliar imagen
ampliar imagen
ampliar imagen
ampliar imagen
ampliar imagen
ampliar imagen
- Bien, ahora ya tenemos los 3 nuemros declarados y pedidos, falta que hagamos los calculos, osea: la suma y la
multiplicacion de los 3 numeros, para ello vamos a hacer la operacion a continuacion:
ampliar imagen
- Ahora solo nos queda mostrar los resultados con el formato que nos dijeron en el enunciado, vamos a ello:
ampliar imagen
- Ahi podemos ver que es para la suma, por los simbolos ya lo notarn +, bien tambien subraye con rojo los separadores las
comas, para que sobresalgan, recuerden que si se olvidan de una coma o est mal colocada, no les funcionar el programa,
por error de sintaxis ( como ya hemos hablado las primeras clases ) ;)
- Tambien debemos mostrar la multiplicacion, por lo tanto en un nuesvo simbolo de salida, lo hacemos y nos debe quedar
algo asi:



CLASE 6
Dev-C++, clase6 operaciones con decisiones
Posted on 9 octubre 2009 by 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 ***


CLASE 7

Dev-C++, clase7 ejercicios de aplicacion II
Posted on 13 octubre 2009 by 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
Si ( primer numero > segundo numero Y primer numero > tercer numero )
Entonces, haga esto:
{
muestre: El mayor numero entre: primer numero,segundo numero,tercer numero. fue el numero: primer numero doble
enter;
}
Lo mismo que vemos escrito en lenguaje humano, es decir lo que nosotros entendemos y podemos realizarlo a medida de
logica. Pues la computadora no lo entendera porque no es su lenguaje, asi que para decirle eso, habr que hablar en su
lenguaje de sta manera:
( como est en el programa ya expuesto )
Lenguaje codigo
if ( n1 > n2 && n1 > n3 )
{
cout<< \n El mayor numero entre: <<n1<< , <<n2<< , <<n3<< fue el numero: <<n1<<\n\n;
}
Y asi mismo con cada pregunta, ya que son tres numeros se haran tres preguntas, ya que cada una asumira que se sera el
primero y si no es as pues saltar a la siguiente y siguiente y siguiente asi sucesivamente hasta llegar al numero que cumple
la condicion [ que sea mayor a los demas numeros ingresados ]
Nota: Cuando solo se valida a la expresin para saber unicamente si fu positiva, se le denomina una instruccin selectiva
simple y usa unicamente el if porque va a validar solo en caso de que se haya cumplido la condicin, en sta
instruccin 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 ***


CLASE 8
Dev-C++, clase8 ciclo: mientras que..
Posted on 24 octubre 2009 by 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 ***

CLASE 9
Dev-C++, clase9 ejercicios de aplicacion III
Posted on 26 febrero 2010 by 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 Ingrese un numero entre 1 y 10 \n \n;
cin>>num;
if ( num < 1 || num > 10 )
{
do
{
cout<< \t \n Ingrese un numero entre 1 y 10 \n \n;
cin>>num;
}
while ( num < 1 || num > 10 );
}
cuad = num * num;
cout<< \n \n El numero fue: <<num<<\n
<< \n Y su cuadrado es: <<cuad<<\n;
system(pause);
}
- linea 1: la cabecera y libreria ***
- linea 2: funcion principal ***
- linea 3 20 : inicio y fin del programa ***
- linea 4: declaramos variables ***
- linea 5: recurso cout ***
- linea 6: recurso cin ***
- linea 7: instruccin selectiva simple: if ***
- linea 8 15: inicio y fin del if ( contiene al do while que est en las lineas 9 14 )***
- linea 9: instruccin repetitiva: do while ***
Bien como podemos ver, aqui en la linea 9 tenemos la instruccin repetitiva que veniamos viendo en la clase anterior.
Ahora, que estamos validando ? , recordemos que la instruccin repetitiva: do while significa hacer sto mientras
sto pase , entonces sirve para validar
de alguna forma, algun dato. Y en este caso estamos validando si el numero ingresado es: menor que 1 mayor que 10.
Como podemos ver tenemos sta forma:
do {
..
} while ( condicion )
en nuestro idioma, vendria a ser asi:
Haga sto: { ..
} mientras que sto pase: ( condicion )
Y en nuestro programa, que le estamos diciendo que haga ?
do
{
cout<< \t \n Ingrese un numero entre 1 y 10 \n \n;
cin>>num;
}
while ( num < 1 || num > 10 );
Le estamos diciendo:
haga sto: {
- muestre ste mensaje: Ingrese un numero entre 1 y 10
- pida el numero y guardelo en la variable num
} mientras que el numero ingresado haya sido menor que 1 mayor que 10
Entonces el ciclo se va a repetir infinitas veces, hasta que el usuario/a ingrese un numero entre 1 y 10. Porque no queremos
que ingrese un -4 por ejemplo
el programa que nos han pedido dice que el numero ingresado debe estar entre 1 y 10, por lo tanto debemos validar ;)
- linea 10 14: inicio y fin del do while ***
- linea 16: operaciones con las variables ***
Aqui pues como vamos a sacarle el cuadrado a el numero que se ingres, debemos multiplicar dos veces el mismo numero
para obtener su cuadrado. Asi:
Por ejemplo tenemos que se ingres el 5 , entonces decimos:
nombre_de_la_variable = numero_ingresado * numero_ingresado;
cuad = num * num
cuad = 5 * 5
entonces en cuad va a estar almacenado el valor 25 que sali de multiplicar 5 *5.
Nota: Aqui estamos usando tanto: operadores de asignacion como instrucciones de asignacin ;)
- linea 17: recurso cout ***
- linea 18: recurso cout ***
- linea 19: pausamos el programa ***
12.) Hacer un programa que escoja entre dos opciones: 1: hombre y 2: mujer, si el usuario/a escoje 1, se mostrara el
siguente mensaje bienvenido! , si escoje la opcion 2, mostrar el mensaje bienvenida! . Pero si no escoje ninguna de las
opciones deber volver a pedir la opcion hasta que ingrese una de las dos opciones.
Bien, como podemos ver debemos hacer un programa que mostrar dos opciones:
1: Hombre
2: Mujer
y debemos validar de que se ingrese unicamente una de las dos opciones. Para ello usaremos el ciclo DO WHILE , para
validar de que ingrese una opcion
valida y si no lo hace, el programa se lo pedir hasta que lo haga ;)
ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las
entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis.
Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad ( entiendase
como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General delmapa de
sitio ).
#include <iostream.h>
main ()
{
short opcion;
cout <<Escoja una opcion: \n
<<1: Hombre \n
<<2: Mujer \n;
cin >> opcion;
if ( opcion < 1 || opcion > 2 )
{
do
{
cout <<Escoja una opcion valida:;
cin >> opcion;
}
while ( opcion < 1 || opcion > 2 );
}
if ( opcion == 1 )
{
cout << Bienvenido! \n;
system(pause);
}
else
{
cout << Bienvenida! \n;
system(pause);
}
}
- linea 1: la cabecera y libreria ***
- linea 2: funcion principal ***
- linea 3 28 : inicio y fin del programa ***
- linea 4: declaramos variables ***
- linea 5: recurso cout ***
- linea 6: recurso cout ***
- linea 7: recurso cout ***
- linea 8: recurso cin ***
- linea 9 17: instruccion selectiva simple: if ***
- linea 11 15: instruccin repetitiva: do while ***
Aqui vemos que el do while slo se ejecuta si se cumple el if de arriba, es decir ste:
if ( opcion < 1 || opcion > 2 )
{
. ( Aqui dentro de las llaves del if est el do while y lo que va a hacer )
}
Eso significa que se va a validar de sta manera la opcion:
1.) se muestra un mensaje que dice escoja una opcion 1: hombre , 2: mujer ( osea el cout de la linea 5 7 )
2.) se pide al usuario que ingrese la opcion que desea ( osea el cin de la linea 8 )
3.) se hace una validacion interna, que pregunta: el numero que ingreso es menor a 1 es mayor 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
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

CLASE 10
Dev-C++, clase10 ciclo: para..
Posted on 28 febrero 2010 by 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 cilo 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 << Los numeros pares del 2 al 20: \n\n;
for ( a=2; a<=20; a=a+2 )
{
cout << a << \n;
}
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:
- 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 ***

CLASE 11
DFD, clase11 ciclo: para..
Posted on 12 agosto 2009 by Eddy
Hola a todos/as,
Bien, ya hemos ido viendo todos los simbolos usados en DFD, junto con sus respectivos ejercicios de muestra y luego unos
ejercicios de aplicacion para reforzarlo. Ahora solo nos queda pendiente ste simbolo, el ciclo: para..
Este simbolo, es parecido al anterior ( ciclo: mientras que.. ), solo que a ste le podemos agregar un inicio, un fin y un
incremento. Para la variable con la que trabajemos. Pero sus usos son muy parecidos. Entonces vamos a ver un ejercicio para
dejar ms claro como funciona el ciclo: para..
15.) Hacer un algoritmo que muestre la tabla de multiplicar de un numero ingresado por el usuario. Y que la muestre con el
fomato: A x B = C
Bien, como dice el ejercicio simplemente hay que realizar una tabla de multiplicar de algun numero que ingrese el usuario.
Recordando que la tabla de multiplicar lleva un formato general del 1 al 12. Comencemos:
- Abrimos DFD
- Colocamos el detalle del ejercicio:
ampliar imagen
- Declaramos las variables que vamos a usar, en ste caso 3 variables:
numero = cantidad que va a ingresar el usuario, del cual va a ser la tabla. Por ejemplo si ingresa el 4, se va a generar la tabla
de multiplicar del 4.
ciclo = controlador que vamos a usar, como ya les dije en la introduccion el ciclo: para.. sirve parecido al ciclo: mientras
que.. pero a diferencia que lleva un inicio, un fin, y un incremento. Entonces por eso siempre debemos crear una variable para
hacer las condiciones. En ste caso la variable se va a llamar ciclo.
resp = respuesta, es en donde vamos a almacenar el valor de la multiplicacion, osea el resultado. Por ejemplo:
A x B = C
El valor de C es el que se almacenar en resp. Y es el que mostraremos.
ampliar imagen
- Ahora pedimos el dato, osea de que numero desea generar la tabla
ampliar imagen
ampliar imagen
- Mostramos un mensaje de comprobacion, para que al usuario observe que de se numero que ingreso, se mostrar la tabla
de multiplicacion
ampliar imagen
- Ahora vamos a abrir el ciclo para.. porque el usuario/a, ya nos ha dado el numero para generar la tabla de multiplicar.
Entonces decimos que:
ampliar imagen
EXPLICACION: el simbolo para.. tiene la siguiente estructura:
De izquierda a derecha,
primer recuadro: ahi se coloca la variable controladora, es decir la variable que vamos a usar para el ciclo. En nuestro caso, la
variable se llama: ciclo
segundo recuadro: es el valor inicial ( comienzo / partida ) que le daremos a la variable. Es decir que nuestra variable ciclo va
a valer 1 al comienzo, por lo tanto la tabla de multiplicacion la comenzaremos con 1, lo cual est correcto porque las tablas de
multiplicar llevan un formato:
2 x 1 = 2
2 x 2 = 4
tercer recuadro: es el valor final ( tope / meta ) que le daremos a la variable. Es decir que nuestra variable ciclo va a llegar a
valer un maximo de 12 al final, por lo tanto la tabla de multiplicacion la terminaremos con 12
2 x 11 = 22
2 x 12 = 24
cuarto recuadro: es el incremento, es decir de cuanto en cuanto va a ir aumentando el ciclo. En ste caso de uno en uno.
Porque la tabla de multiplicar va de uno en uno, demostracion:
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
Ven que la tabla va incrementando, en 1. Porque 5,6,7,8 es el orden con que va avanzando la tabla, y asi seguir hasta el tope,
en ste caso el tope es 12
- Ahora queda calcular la respuesta, ya tenemos expresado el ciclo que vamos a usar, osea desde 1 hasta 12 de uno en uno (
nuestra tabla de multiplicar ). Entonces solo nos queda expresar la respuesta, que es la multiplicacion de:
a) el numero ingresado ( que no va a cambiar ), por ejemplo arriba en la tabla del 2, el dos (2) no cambia en toda la tabla
porque de l se trata.
b) el incremento ( de cuanto en cuanto va subiendo ), en ste caso de uno en uno, y como vimos arriba en el ejemplo de la
tabla del 2, el incremento si va cambiando valia: 5, depsues 6, despues 7, etc..
Vamos a realizar la operacion, y como ya sabemos. Para realizar operaciones se usa el simbolo de asignacion porque le
vamos a asignar a resp un valor ( la multiplicacion del numero y el incremento ). As:
ampliar imagen
- Y por ultimo, solo nos queda mostrar la tabla con el formato: A x B = C

CLASE 12
Dev-C++, clase12 evaluando casos
Posted on 23 marzo 2010 by 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:
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 ***

CLASE 13
Dev-C++, clase13 ejercicios de aplicacion V
Posted on 9 abril 2010 by 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 <iostream.h>
#include <conio.h>
main()
{
int N, c1=0, c2=0, c3=0, x, camis;
cout << \n Tus prendas mas comunes \n
<< \n A cuantas personas desea realizar la encuesta ? ;
cin >> N;
if ( N <= 0 )
{
cout << \n Fin de la aplicacion.;
getch();
}
else
{
cout << \n Menu \n
<< \n * Camisas: \n
<< 1- elegante \n
<< 2- deportiva \n
<< 3- otra \n;
for ( x=1; x<=N; x++ )
{
cout << \n Usuario # << x << :;
// Aqui vamos con las camisas:
do
{
cout << \n Digite su opcion en: Camisas. \n;
cin >> camis;
switch ( camis )
{
case 1: c1++; break;
case 2: c2++; break;
case 3: c3++; break;
default : cout << \n Error! \n;
}
}
while ( camis > 3 || camis < 1 );
}
cout << \n El promedio de la encuesta dice que: \n
<< * Camisas: \n
<< c1 << usa elegante \n
<< c2 << usa deportiva \n
<< c3 << usa otra \n;
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 ***
- 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 ***

CLASE 14
Dev-C++, clase14 arreglos
Posted on 13 mayo 2010 by 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 <iostream.h>
#include <conio.h>
main()
{
int x,numero[11];
cout<<\n Ingrese los 12 numeros:\n;
for (x=0; x<=11; x++)
{
cout<<numero <<x<<: ;
cin>>numero[x];
}
cout<<\n Tercer numero: <<numero[2];
cout<<\n Sexto numero: <<numero[5];
cout<<\n Decimo numero: <<numero[9];
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 ***
- 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! ;)

CLASE 15
Dev-C++, clase15 ejercicios de aplicacion VI
Posted on 26 mayo 2010 by 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 <iostream.h>
#include <conio.h>
main()
{
char nombre[10],apellido[10],cedula[10];
cout<<\nIngrese nombre: ;
cin>>nombre;
cout<<\nIngrese apellido: ;
cin>>apellido;
cout<<\nIngrese cedula: ;
cin>>cedula;
cout<<\n\n<<nombre<< | <<apellido<< | <<cedula<<\n;
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[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 ***

CLASE 16
Dev-C++, Clase16 Funciones (en general)
Posted on 17 octubre 2010 by Eddy
Hola a todos/as,
En sta clase vamos a tratar sobre las funciones en c++, para ello debemos tener algunos conceptos claros:
Qu es una funcion ?
Una funcion es un conjunto de instrcciones que se la puede llamar desde el programa principal o desde otras funciones.
Para que sirven las funciones ?
Nos sirven para desarrollar algo en especial cuando el programa asi lo necesite.
Como usarlas ?
Para usar funciones, debemos tener en cuenta dos cosas que necesita:
1) La declaracion de la funcion:
Esta nos sirve para que al compilar el programa, el compilador reconozca que esa funcion existe; ya que si la llamamos desde
alguna parte del programa sin haberla declarado o habiendola declarado, se la declar mal eso nos dar error. Entonces es
importante antes siquiera de desarrollar la funcion, declararla.
Para declararla se sigue la siguiente sintaxis:
prototipo_de_funcion nombre_de_la_funcion ( parametros opcionales );
Qu es eso de prototipo y parametros ?
- Prototipo de la funcion: sirve para indicar que va a retornar la funcion, si va a retornar un entero, un double, un char, o
simplemente no retorna nada ( void ). Esto es obligatorio
- Parametros: son los datos que le enviamos a la funcion para que con ellos posiblemente desarrolle algo que necesitemos.
Esto es opcional.
Entonces, una funcion para ingresar podria ser asi:
void ingresar();
Donde vemos no va a retornar nada, por ello tiene void entonces la funcion hace lo que tiene que hacer y termina, no devuelve
nada.
Un ejemplo de devolucion seria en una suma de enteros, ya que se le podria enviar como dato los dos numeros y la funcion
haria internamente la suma devolviendonos la suma de dichos numeros ( si son todos enteros, devolveria un int. Si son enteros
y flotantes devolveria un float ), asi:
int suma_enteros ( int, int ); // suma unicamente enteros, devuelve un entero
float suma_numeros ( float, float ); // suma enteros o flotantes, devuelve un flotante
2) La definicion de la funcion:
Como vimos la declaracion nos servia para que el compilador sepa que existe dicha funcion, ahora la definicion nos sirve ya
para desarrollar la funcion; es decir ya programar dentro de ella para que haga lo que necesitamos. Como consecuencia de
que ya est creada podemos usarla, pero si no la hubiesemos declarado y la desarrollamos ( hacemos la definicion ), al
compilar nos dar error y dir que esa funcion no fue declarada, que no existe.
La definicion es muy similar a la declaracion, solo que esta vez lleva un ambiente ( donde vamos a programar es decir las
llaves { } ), asi:
void ingresar()
{
// Lo que deba hacer esa funcion
}
Tambien otra diferencia es que la declaracion lleva ; ( punto y coma ) al final, la definicion ya no lo lleva.
Ahora vamos a ver un ejemplo de como usariamos una funcion en nuestro programa, haremos esa ingresar que veniamos
poniendo de ejemplo.
22.) Hacer un programa que pida dos datos cualesquiera llamando a una funcion sin retorno y luego confirme si se ingresaron
correctamente.
Por favor antes de ver sta entrada recomiendo ver la entrada:
Uso de la aplicacion
ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las
entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis.
Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad (
entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General
delmapa de sitio ).
Bien, como datos tenemos que el programa deber usar una funcion sin retorno, es decir una void. Tambien que debemos
pedir en esa funcion dos valores cualesquiera; en mi caso voy a pedir dos cosas: nombre y numero de la suerte; luego se
mostrar el mensaje de que se ingresaron correctamente dichos datos, vamos a ello:
#include <iostream.h>
#include <conio.h>
// declaramos la funcion ingresar
void ingresar();
main()
{
cout<<\n Ingrese los datos: \n;
ingresar();
cout<<\n Los datos se ingresaron correctamente! \n;
getch();
}

//definimos la funcion ingresar
void ingresar()
{
char nombre[10];
int numero;
cout<<\n Ingrese su nombre: \n;
cin>>nombre;
cout<<\n Ingrese su numero de la suerte: \n;
cin>>numero;
}
- linea 1 2: la cabecera y libreria ***
- linea 3: comentario ***
- linea 4: declaracion de la funcion
La declaracion de una funcion debe estar siempre antes de la definicion, por eso es recomendable que se la coloque al inicio
del programa debajo de las librerias para que el programa se vea mejor estructurado y puedan encontrar rapido las funciones
que han declarado y si hace falta alguna aadirla rapidamente o editarla en caso de haberla declarado mal, es altamente
recomendable que se proceda de dicha forma.
De la declaracion de la funcion ingresar, queda muy poco que decir ya lo vimos arriba en los conceptos.
- linea 5: funcion principal ***
- linea 6 11: inicio y fin del programa ***
- linea 7: recurso cout ***
- linea 8: llamamos a una funcion ya declarada
Ya que creamos una funcion llamada ingresar con el fin de pedir los datos por medio de ella y no por medio del cuerpo
principal main(), debemos llamarla / convocarla para que pueda ejecutar lo que tiene programado en su interior ya que por si
sola ( sin ser llamada ), el programa terminaria y ella no realizaria ninguna accion.
Para llamar a una funcion lo unico que se debe hacer es escribirla tal cual fue declarada sin alteraciones ya que las funciones
son key sensitive, es decir que no es lo mismo:
- void HOLA(); que void HoLa();
Pues distingue mayusculas de minusculas, para el compilador son dos funciones diferentes ( para nosotros son la misma
palabra pero escrita diferente ).
Bien, como decia para llamar a la funcion se la coloca tal como fue declarada seguida del punto y coma ( no se le pone
el prototipo ), solo el nombre y los posibles parametros que lleve, por lo tanto nuestra declaracion seria:
ingresar();
Como vemos no se le coloc el prototipo ( void ) y no lleva parametros por lo que los parentesis no tienen nada dentro. Esa
linea har que el compilador vaya a donde se encuentra definida dicha funcion y realize lo que ella tenga programado y eso es
lo que queremos, pues la funcion ingresar es la que le va a pedir los datos al usuario.
- linea 9: recurso cout ***
Esta linea est a continuacion de la llamada a la funcion ingresar, pero sta linea no ser ejecutada hasta que termine de
ejecutarse lo que contiene la funcion ingresar porque los programas van en orden logico no necesariamente en orden lineal,
por lo que estando en la linea 8 y llamamos a una funcion cuyo desarrollo est en la linea 15, el compilador salt a dicha
posicion ejecuta todo lo que tiene en se ambiente ( entre las llaves {} ) y de ahi regresa y continua con la linea 9.
Visto de una manera grafica, as es como funciona la llamada a funciones:
Ampliar imagen
- linea 10: pausamos el programa ***
- linea 12: comentario ***
- linea 13: Definicion de la funcion
Lo mismo, queda poco que decir ya vimos al inicio de la clase como se definian las funciones una vez declaradas, aqui va a ir
codigo normal ( codigo que tranquilamente podria ir en la funcion principal main(), pero el enunciado indica que debemos
desarrollar una funcion que lo haga ).
Como podemos ver, aqui dentro de la definicion:
- declaramos variables
- mostramos contenido
- pedimos contenido
Son procedimientos normales solo que aplicados de una manera nueva, que estamos viendo en esta clase; las funciones.
- linea 14 21: Inicio y fin de la funcion ingresar();
Hasta el momento habiamos visto en clases anteriores inicio y fin del programa, ste inicio y fin est delimitado por las llaves (
tambien llamado ambiente: {} ), entonces las funciones tambien tienen su ambiente, por lo tanto el inicio y fin de una funcion
ser desde donde comienza la llave y se cierra.
- linea 15 16: Declaramos variables ***
- linea 16: Recurso cout ***
- linea 17: Recurso cin ***
- linea 19: Recurso cout ***
- linea 20: Recurso cin ***
Bien, una vez que se haya ejecutado la linea 20, el compilador ir hacia la linea 9 para continuar con el correcto funcionamiento
del programa ahi lo que har es mostrar un mensaje Los datos se ingresaron correctamente! y luego con el getch();se
pausar la aplicacion para ver los resultados.

CLASE 17
Dev-C++, Clase17 Funciones (paso por valor)
Posted on 11 abril 2011 by Eddy
Hola a todos/as,
En la clase anterior (clase16), vimos los conceptos e implementaciones de las funciones en si en c++, vimos lo que era la
definicion y declaracion de la funcion en el cuerpo del programa, cmo se debia hacer, dnde se debia hacer, su estructura,
etc.. Ahora asi mismo, las funciones no solamente son llamadas para que realicen cierta necesidad, si no que en algunas
ocaciones para que la funcion desarrolle dicha necesidad necesita que se le envien parametros.
En la clase anterior vimos que eran los parametros y para que servian, ademas de como denotarlos; asi que si no sabes que
son parametros de funcion, puedes ir a la clase anterior y revisarlo para no tener confusiones.
Bien ahora esos parametros que se le enviarn a la funcion para que ella pueda cumplir su papel correctamente, pueden ser
enviados de dos maneras:
1) Pasar los parametros por valor ( paso por valor )
2) Pasar los parametros por referencia ( paso por referencia )
Aquella manera de pasar los datos mencionada anteriormente es diferente una de la otra, es decir no es lo mismo pasar datos
por valor que pasarlos por referencia. En la programacion depende del ejercicio o de la ocacion para implementar o pensar en
como seria mejor que pase el parametro. En la clase de hoy vamos a ver el paso por valor y en la siguiente veremos por
referencia.
Qu es el paso por valor ?
Es enviarle un parametro ( variable,constante,etc.. ) a otra funcion que para resolver su contenido necesita obligatoriamente
recibir ese parametro, es decir la funcion depende de los parametros para funcionar.
Al pasar por valor los parametros que hago en si ?
Estas enviando el contenido de algo ( ya sea una variable, constante, etc.. ) para que la funcion de destino la use y ahi pueda
completar con exito su objetivo. Pero se debe tener en cuenta que al pasar por valor; la variable original no se altera, se envia
una copia de ella a la cual si se le aplican cambios sern alterados unicamente en ella, ms no en la original.
Como declaro una funcion que reciba parametros por valor ?
La declaracion de una funcion que recibe parametros es casi igual a la que vimos en la clase anterior en una funcion en
general, la sintaxis seria la siguiente para una funcion que reciba parametros por valor:
prototipo_de_la_funcion nombre_de_la_funcion ( tipo_de_dato del parametro1 ,tipo_de_dato del parametro 2 , );
Ejemplo:
void suma ( int , int );
Como vemos en el ejemplo anterior, est declarada una funcion suma que va a recibir dos parametros que sern enteros
porque el tipo de dato lo denota asi. Aquellos parametros son por valor , lo denotamos por el hecho que unicamente va eltipo
de dato en los parentesis.
El prototipo de la funcion suma es void, es decir que no va a retornar valores, ser un procedimiento. Si retornara un entero
sera int el prototipo, un numero con decimales seria float el prototipo, etc..
Cmo defino una funcion que recibe parametros por valor ?
La definicion es la misma que la anterior, solo que no lleva punto y coma (;) al final, puesto aqui es un ambiente que se va a
programar mas no una declaracion, tendremos algo asi como definicion de la funcion suma:
Ejemplo:
void suma ( int n1, int n2 )
{
.
}
Donde n1 y n2 son variables formales.
Qu son variables formales ?
Son aquellas que se declaran en el momento de recibir el parametro en la funcion de destino, tienen el contenido de una
variable existente; pero no tiene necesariamente el mismo nombre. Por ejemplo si ste es mi codigo:
// sueldo = 100.
// comision = 20.
main()
{

.
.
suma ( sueldo, comision );
.

}
void suma ( int n1, int n2 )
{
.
}
Ahi lo que pueden observar es que en el cuerpo principal ( main ), se hace un llamado a una funcion suma que recibe como
parametro dos numeros enteros. En ste caso ser el sueldo y la comision de un empleado, la funcion suma los recibir y con
esos valores hara un proceso interno.. Pero vemos que al momento de llamar a la funcion suma le enviamos:
* sueldo ( variable entera )
* comision ( variable entera )
Pero en la definicion de la funcion suma, estn dos variables en donde llega el contenido de sueldo y comision, aquellas
variables son: n1 y n2.
Como pueden ver, no necesariamente la funcion debe tener en su definicion el mismo nombre de la variable que le est
pasando el dato, mas bien se suele recomendar cambiar el nombre a las variables formales ( las que se crean / se declaran en
la definicion de la funcion que recibe parametros ya sea por valor o por referencia, pero estamos viendo por valor en sta clase
).
Lo que si nos importa es que aquellas variables cualquiera que sea su nombre ( en nuestro caso n1 y n2 ), reciben el contenido
esperado. Es decir que:
Si sueldo valia 100 como estaba previsto, n1 va a tener el valor de 100 en su contenido.
Si comision valia 20 como estaba previsto, n2 va a tener el valor de 20 en su contenido.
Y si a n1 y n2 le sumamos 500 mas, que pasa ?
Lo que pasa es que quedaria asi:
n1 = 600 ( es decir 100 + 500 )
n2 = 520 ( es decir 20 + 500 )
Pero sueldo y comision quedarian intactos, es decir:
sueldo = 100
comision = 20
NO se alteran las variables originales en los pasos por valor como ya habia indicado al inicio de la clase, pero si pasan su
contenido exacto a las variables formales de la funcion destinada que recibe parametros. Como dije se crea una copia y esas
copias pueden ser alteradas pero no se alterarn las originales.
Bien, ahora que sabemos como declarar y definir una funcion que reciba parametros por valor, ademas de tener claros muchos
conceptos base para el manejo de funciones, ya podemos realizar un ejemplo de como usariamos en la practica el paso por
valor en un programa que nos lo pida. Veamos:
23.) Hacer un programa que haga las veces de calculadora entre dos nmeros, es decir que el usuario ingresar
dos nmeros y luego el programa por medio de funciones recibir los nmeros y mostrar su resultado en: suma, resta,
multiplicacion y division. Luego tambien mostrar cuales fueron los nmeros ingresados.
Por favor antes de ver sta entrada recomiendo ver la entrada:
Uso de la aplicacion
ATENCION: en las clases anteriores he explicado las lineas y que hace cada una, entonces les sugiero que vean las
entradas anteriores para entender las lineas de las que no voy a hacer mucha enfasis.
Las lineas que ya hayamos visto, les colocar *** al final para que sepan que ya lo hemos visto con anterioridad (
entiendase como anterioridad a la/las clases anteriores ademas de sus correspondientes entradas en la seccion General
delmapa de sitio ).
Bien hay diferentes maneras de hacerlo, pero vamos a verlo de manera individual es decir que voy a realizar una funcion para
cada caso: suma,resta,multiplicacion y division. De esta manera entendern mejor como va el paso por valor en funciones,
comencemos:
#include <iostream.h>
#include <conio.h>
void suma(float,float);
void resta(float,float);
void multiplicacion(float,float);
void division(float,float);
main()
{
float n1,n2;
cout<<\n -Operaciones aritmeticas basicas- \n
<<\n Ingrese cantidad 1:;
cin>>n1;
cout<<\n Ingrese cantidad 2:;
cin>>n2;
suma(n1,n2);
resta(n1,n2);
multiplicacion(n1,n2);
division(n1,n2);
cout<<\n\n Los numeros ingresados fueron: <<n1<< y <<n2;
getch();
}
void suma(float x,float y)
{
cout<<\n La suma = <<(x+y);
}
void resta(float x,float y)
{
cout<<\n La resta = <<(x-y);
}
void multiplicacion(float x,float y)
{
cout<<\n La multiplicacion = <<(x*y);
}
void division(float x,float y)
{
cout<<\n La division = <<(x/y);
}
- linea 1 2: la cabecera y libreria ***
- linea 3 6: declaracin de funciones que vamos a usar ***
- linea 7: funcin principal ***
- linea 8 21: inicio fin del programa ***
- linea 9: declaramos variables tipo flotantes ***
- linea 10 11: recurso cout ***
- linea 12: recurso cin ***
- linea 13: recurso cout ***
- linea 14: recurso cin ***
- linea 15 18: llamamos a las funciones
Aqu lo que estamos haciendo es llamar a cada funcin: suma,resta,multiplicacion,division. Como la funcin necesita de los
numeros ingresados anteriormente ( n1 y n2 ) para calcular su respectiva suma resta multiplicacion division, entonces
debemos enviarle como parametros aquellos datos. Pero debes tener en cuenta lo siguiente:
- La declaracin de la funcin debe ser acorde a la definicin de la misma funcin [ver declaracion y definicion ( clase16 ) ]
es decir que, no podemos entrar en contradicciones por ejemplo al declarar:
void suma();
y luego al momento de usar la funcion ( al definirla ) colocar:
int suma ( x,y,z )
{
}
Eso conyeva a errores de compilacion, porque como ya he dicho el lenguaje es key sensitive; osea que no es lo mismo suma
que: Suma suMA summa, etc..
En nuestro caso, como declaramos una funcin void ( sto quiere decir que no retorna valores ), mas abajo al momento de
realizar la programacin debemos definirla de igual manera como void, NO como int ni float ni double, etc..
Tambin con los parametros, si la declaramos como void que no recibe parametros;NO debemos despues definirla
como void que si reciba parametros, por ms que este bien escrito el nombre y el prototipo, no coincide a la hora de ser
llamada la funcin por el simple hecho de que no es lo mismo:
void resta (); -> declaracion
void resta ( n1,n2 ) -> definicion
{
}
Como pueden ver, el n1 y n2 estn de ms por as decirlo, en todo caso el programa lo que interpretara es que
esa funcin resta(n1,n2) es otra funcin diferente a resta()por el simple hecho de que no coinciden completamente. As que
mucho ojo con eso;)
- linea 19: recurso cout ***
Lo que hacemos aqu es mostrar los numeros que fueron ingresados, con el fin de reconocer que en el paso por valor NO se
alteran las variables originales, ya que mostraremos n1 y n2 con los valores originales a pesar de que hubo acciones
aritmticas en su contenido ( sumas, restas, .. ) pero esos cambios NO afectaron a las variables originales sino a las
formales; pues esa es una de las caracteristicas de pasar por valor los datos, se pasan copias.
- linea 20: pausamos el programa ***
- linea 22 25: funcion suma
Aqui esta la definicion de la funcion suma, que como vemos:
no retorna valores ( void )
recibe dos parametros flotantes ( x,y )
y lo que hace en su ambiente es mostrar mediante el recurso cout: la suma es y hacer un calculo matematico (x+y), que lo
que har es mostrar en pantalla la suma de ambas variables.
- linea 22 25: funcion resta
Hace lo mismo que la suma, solo que el calculo matematico cambia (x-y)
- linea 26 29: funcion multiplicacion
Hace lo mismo que las anteriores, solo que el calculo matematico cambia (x*y)
- linea 29 32: funcion division
Hace lo mismo que las anteriores, solo que el calculo matematico cambia (x/y)
Y eso es todo, podemos ver que mostramos los valores calculados y el contenido de las variables orginales, con sto podemos
tener una buena nocion de como son y para que sirven las funciones con paso por valor.

CLASE 18

You might also like