Tuesday, June 21, 2005

ARREGLOS

Un array (lista o tabla) es una secuencia de objetos del mismo tipo. Los objetos se llaman elementos del array y se enumeran consecutivamente 0,1,2,3... El tipo de elemento almacenado puede ser cualquier tipo de dato de C++, incluyendo estructuras de datos definidas por el usuario.

Caracteristicas

*Almacenar los elementos del arreglo en posición de manera continua.
*Tener un único nombre de variable (p.e. salarios) que representa a todos los elementos y estos a su vez se diferencia por un índice y por un subíndice.
*Acceso directo o aleatorio a los elementos de un arreglo.

Los arrays (arreglos) se clasifican en unidimensionales (vectores o listas) o multidimensionales (tablas o matrices).

EJEMPLOS DE LOS ARREGLOS

#include
#include
int main()
{
int n[10]={32,27,64,18,95,14,90,70,60,37}
cout<<”Elementos” setw(13<<”valor”<


Apuntadores y Arreglos

En C++ se manejan dos tipos de arreglos los arreglos:

Ø Tipo listas: vectores o unidimensionales

Ø Tipo tablas: cuadros, concentrados, matrices o bidimensionales

En ambos casos son variables que permiten almacenar un conjunto de datos del mismo tipo a la vez, su diferencia es en la cantidad de columnas que cada uno de estos tipos contiene, como en los siguientes:

Apuntadores y Arreglos

Uno de los problemas más comunes al programar en C (y algunas veces en C++) es la comprensión de apuntadores y arreglos. En C (C++) ambos están altamente relacionados ; con algunas pequeñas pero esenciales diferencias. Tú declaras un apuntador poniendo un asterisco entre el tipo de datos y el nombre de la variable o función : char *strp; /* strp es un "apuntador a char" */.Se accesa el contenido de un apuntador derreferenciándolo por medio de -otra vez- el asterisco : *strp = 'a'; /* Un carácter simple */
Al igual que en otros lenguajes, se debe proveer algún espacio para el valor al cuál el apuntador está apuntando. Un apuntador a caracteres puede ser usado para apuntar a una secuencia de caracteres : el string. Los strings en C están terminados por un carácter especial NUL (0 o como char ' '). Así, puedes tener strings de cualquier longitud. Los strings se encierran en dobles comillas: strp = "hello". En este caso, el compilador automáticamente agrega el carácter de terminación NUL. De este modostrp apunta a una secuencia de 6 caracteres. El primer carácter es 'h', el segundo es 'e' y así sucesivamente. Podemos accesar estos caracteres por medio de un índice en strp: strp[0] /* h */ strp[1] /* e */ strp[2] /* l */ strp[3] /* l */ strp[4] /* o */ strp[5] /* \0 */.
El primer carácter también es igual a "*strp" que puede ser escrito como "*(strp + 0)". Esto nos lleva a algo llamado aritmética de apuntadores lo cuál constituye una de las poderosas cararacterísticas de C. Así, tenemos las siguientes ecuaciones : *strp == *(strp + 0) == strp[0] *(strp + 1) == strp[1] *(strp + 2) == strp[2] ... Nótese que estas ecuaciones son verdaderas para cualquier tipo de datos. La suma no está orientada a bytes, está orientada al tamaño del correspondiente tipo del apuntador. El apuntador strp puede ser puesto en otras localidades. Su destino puede variar. En contraste con eso, los arreglos son apuntadores fijos. Apuntan a una predefinida área de memoria, la cuál es especificada por corchetes : char str[6]. Puedes ver a str como un apuntador constante apuntando a una área de 6 caracteres. No podemos usar ésto del siguiente modo: str = "hallo"; /* ERROR */debido a que esto significaría cambiar el apuntador para que apuntara a 'h'. Debemos copiar el string al área de memoria provista. Por lo tanto, usamos una función llamada strcpy() la cuál es parte de la biblioteca estándar de C. strcpy(str, "hallo"); /* Ok */

Wednesday, June 08, 2005

INSTRUCCION SWITCH

También existen ocasiones o programas donde se exige evaluar muchas condiciones a la vez, en estos casos o se usa una condición compuesta muy grande o se debe intentar convertir el problema a uno que se pueda resolver usando la instrucción SWITCH.
Esta instrucción es una instrucción de decisión múltiple donde el compilador prueba o busca el valor contenido en una variable ENTERA o CHARACTER contra una lista de constantes apropiadas, es decir enteras, character, cuando el computador encuentra el valor de igualdad entre variable y constante entonces ejecuta el grupo de instrucciones asociados a dicha constante, si no encuentra el valor de igualdad entre variable y constante, entonces ejecuta un grupo de instrucciones asociados a un default, aunque este ultimo es opcional.

El formato de esta instrucción es el siguiente; capturar o asignar variable de condición;
switch(var OPCION)
{
case const1: instrucción(es);
break;
case const2: instrucción(es);
break;
case const3: instrucción(es);
break; ..................
default: instrucción(es);

ejemplo 2:

#include
#include
#include
void main ()
{
int opc ,a,b,r;
cout<<"menu"<>opc;
switch (opc)
{
case 1:
cout<<"base del cuadrado"<>a;
r=a*4;
cout<<"la base del cuadrado es:"<>a;
r=3.1416*(a*a);
cout<<"el area del circulo es:"<}
break;
}
getch();
}

ejemplo 2:

//juego de dados//
#include
#include
#include
int rolldice(void);
int main();
{
enumstatus{continue,won,lost};
int sum,mypoint;
status gamestatus;
srand (time(null));
sum=rolldice();
switch(sum){
case 7:
case 11:
gamestatus=won;
break
case 2:
case 3:
case 12:
gamestatus=continue;
mypoint=sum;
cout<<"El porcentaje es:"<break;
}
while (gamestatus==continue){
sum=rolldice();
if(sum==mypoint)
gamestatus==won;
else
if(sum==7)
gamestatus=lost;
}
if(gamestatus==won)
cout<<"El jugador gana"<else
cout<<"El jugador pierde"<return 0;
}
int rolldice(void)
{
int die1,die2,worksum;
die1=1+rand()%6;
die2=1+rand()%6;
worksum=die1+die2;
cout<<"Tirada del jugador"<<<""=<return worksum;
}

CICLO FOR

Instrucciones para ciclos resuelven el problema de repetir todo el programa o cierta parte del programa más de una vez.
Este ciclo es uno de los más usados para repetir una secuencia de instrucciones, sobre todo cuando se conoce la cantidad exacta de veces que se quiere que se ejecute una instrucción simple o compuesta.
Su formato general es:
for (inicialización; condición; incremento)
{Instrucción(es) ;};
Ejemplo:
For(x=1; x<=10; x=x+1) {puts (" MAMA "); }; En su forma simple la inicialización es una instrucción de asignación que carga la variable de control de ciclo con un valor inicial. La condición es una expresión relacional que evalúa la variable de control de ciclo contra un valor final o de parada que determina cuando debe acabar el ciclo. El incremento define la manera en que la variable de control de ciclo debe cambiar cada vez que el computador repite un ciclo. Se deben separar esos 3 argumentos con punto y coma (;)
EJEMPLO Codigo prog6.cpp #include
#include
#include
void main() {
clrscr();
// declaracion variables
int x;
// instruccion for
for(x=1;x<=10;x=x+1) { gotoxy(10, x+4); printf("%d MAMA",x); }; getchar(); } Casos Particulares del ciclo for; 1.- El ciclo comienza en uno y se incrementa de uno en uno este es el caso mas general. 2.- Pero el valor inicial puede se diferente de uno, ejemplo; for(x=5;x<=15;x=x+1){ etc.}; 3.- Incluso el valor inicial puede ser negativo, ejemplo; for (x = -3 ;x<= 8; x=x+1) { etc.}; 4.- Los incrementos también pueden ser diferentes al de uno en uno, ej.; for (x=1; x<= 20; x=x+3){ etc. }; 5.- Incluso pueden ser decrementos, solo que en este caso, recordar; 5.1.-el valor inicial de la variable debe ser mayor que el valor final. 5.2.-cambiar el sentido de la condición. ejemplo; for (x= 50 ; x >= 10; x= x-4 ) { etcétera };
6.- Solo para los casos de incrementos y decrementos de una en una unidad substituir en el for:
el x = x + 1 por x++
el x = x - 1 por x—

Ejemplo 2:
//Cálculo de interés compuesto//
#include
#include
#include
#include
#include
void main ()
{
double amount,
principal=1000,
rate=.05;
cout<<"Año"< <<"Cantidad depositada"< for (int year=1; year<=10; year++) { amount=principal*pow (1.0 + rate,year); cout< < < < }
getch ();
}

BUCLE WHILE

La instrucción while permite definir bucles, como hace la instrucción for. Pero así como en un bucle for el número de veces que se repite el bucle está definido desde que se empieza a ejecutar el bucle, en un bucle while cada vez que se va a repetir el bucle se comprueba si efectivamente hay que repetirlo.
La sintaxis del bucle while es la siguiente:

While (condición)
{
Contador
Cuerpo del bucle, que se repetirá mientras la condición sea cierta.
}



Por ejemplo, el siguiente programa escribe los números del 1 al diez:

//incremento de 1 en 1 hasta el 10//
#include
#include
#include
void main ()
{
int contador; //declarar variable
contador= 0; //valor inicial del contador
while (cont<=10) //condicion que debera cumplirse { //abrir bucle while contador= cont+1; //el contador acululara el valor anterior y sumara 1 cout<} //cerrar bucle while
Return O;
}

ejemplo 2:

//juego de dados//
#include
#include
#include
int rolldice(void);
int main();
{
enumstatus{continue,won,lost};
int sum,mypoint;
status gamestatus;
srand (time(null));
sum=rolldice();
switch(sum){
case 7:
case 11:
gamestatus=won;
break
case 2:
case 3:
case 12:
gamestatus=continue;
mypoint=sum;
cout<<"El porcentaje es:"<break;
}
while (gamestatus==continue){
sum=rolldice();
if(sum==mypoint)
gamestatus==won;
else
if(sum==7)
gamestatus=lost;
}
if(gamestatus==won)
cout<<"El jugador gana"<else
cout<<"El jugador pierde"<return 0;
}
int rolldice(void)
{
int die1,die2,worksum;
die1=1+rand()%6;
die2=1+rand()%6;
worksum=die1+die2;
cout<<"Tirada del jugador"<<<""=<return worksum;
}

Wednesday, May 25, 2005

DEFINICIÓN DE LA TOMA DE DECISIÓN IF Y ELSE

DEFINICIÓN DE LA TOMA DE DECISIÓN IF Y ELSE


La toma de decisión if y else nos van a permitir realizar una comparación entre varios valores de variables.

El comando if permite comparar una variable determinada y mediante ello realizar un cierto ciclo.

La instrucción else casi siempre va anclada al comando if ya que mediante esta instrucción podemos hacer que el proseso que empieza por la comparación de una variable tomo otro camino.


ejemplo

# include
# include
# include
int main ( )
{
int a,b;
cout<<”dame un numero”< if (a==1)
cout<<”numero correcto”< else
{
cout<<”numero incorrecto”< }
}

la estructura if tambien existe anidado que es la que permite hacer una serie de dasiciones.

ejemplo 2:

#include
#include
#include
int main()
{
int a,b,c;
clrscr();
cout<<"ingresa un numero: "<cin>>a;
cout<<"ingresa otro numero: "<cin>>b;
cout<<"ingresa un tercer numero: "<cin>>c;
if (a<=b)
cout<<"a es menor que b"<else{
if(a<=c)
{
cout<<"a es menor que c"<}
}
getchar();
return 0;
}

Thursday, May 19, 2005

DIAGRAMA DE FLUJO


Un Diagrama de Flujo representa la esquematización gráfica de un algoritmo, el cual muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema. Su correcta construcción es sumamente importante porque, a partir del mismo se escribe un programa en algún Lenguaje de Programación. Si el Diagrama de Flujo está completo y correcto

Es importante resaltar que el Diagrama de Flujo muestra el sistema como una red de procesos funcionales conectados entre sí por " Tuberías " y "Depósitos" de datos que permite describir el movimiento de los datos a través del Sistema. Este describirá : Lugares de Origen y Destino de los datos , Transformaciones a las que son sometidos los datos, Lugares en los que se almacenan los datos dentro del sistema , Los canales por donde circulan los datos. Además de esto podemos decir que este es una representación reticular de un Sistema, el cual lo contempla en términos de sus componentes indicando el enlace entre los mismos




PSEUDOCODIGO



Es un lenguaje de especificación de algoritmos. El uso de tal lenguaje hace el paso de codificación final (esto es, la traducción a un lenguaje de programación) relativamente fácil.

El pseudocódigo nació como un lenguaje similar al inglés y era un medio representar básicamente las estructuras de control de programación estructurada. Se considera un primer borrador, dado que el pseudocódigo tiene que traducirse posteriormente a un lenguaje de programación. Cabe señalar que el pseudocódigo no puede ser ejecutado por una computadora.

La ventaja del pseudocódigo es que en su uso en la planificación de un programa, el programador se puede concentrar en la lógica y en las estructuras de control y no preocuparse de las reglas de un lenguaje específico. Es también fácil modificar el pseudocódigo si se descubren errores o anomalías en la lógica del programa.

El pseudocódigo utiliza para representar las acciones sucesivas palabras reservadas en inglés (similares a sus homónimos en los lenguajes de programación), tales como star,begin, end, stop, if-then-else, while, repeat-until….etc
Ejemplo
Se requiere preguntar dos valores, y a continuación ofrecer un menú con las operaciones básicas (+, -, *, /). Después de presentar el resultado se ofrecerá la posibilidad de una nueva operación.

Inicio del proceso
Inicio de declaración
a:
Entero : OPCION, X, Y;
Carácter : OP, , RESPUESTA;
Fin de declaracion
Inicio del proceso
escribir(“Primer valor :”);
leer(X)
escribir(“Segundo valor : “);
leer(Y)
escribir(“1) Suma”);
escribir(“2) Resta “);
escribir(“3) Multiplicación “);
escribir(“4) División “);
escribir(“Qué operación deseas realizar ? : “);
leer(OPCION);
En caso de que OPCION=
Caso 1
Z= X+Y
escribir (“El resultado es: “Z);
Caso 2
Z= X-Y
escribir (“El resultado es: “Z);
Caso 3
Z= X*Y
escribir (“El resultado es: “Z);
Caso 4
Z= X/Y
escribir (“El resultado es: “Z);
Fin de los casos
escribir(‘Deseas otro cálculo : [S/N] ‘)
leer(OP)
Si OPCION =
S: ir a a;
Si no
Fin del proceso
Fin del progrmaFin

ALGORITMO


Algoritmo se aplica a muchos de los métodos de resolución de problemas que emplean una secuencia mecánica de pasos, como en el diseño de un programa de ordenador o computadora. Esta secuencia se puede representar en forma de un diagrama de flujo para que sea más fácil de entender.

Al igual que los algoritmos usados en aritmética, los algoritmos para ordenadores pueden ser desde muy sencillos hasta bastante complejos. En todos los casos, sin embargo, la tarea que el algoritmo ha de realizar debe ser definible. Esta definición puede incluir términos matemáticos o lógicos o una compilación de datos o instrucciones escritas. Utilizando el lenguaje de la informática, esto quiere decir que un algoritmo debe ser programable, incluso si al final se comprueba que el problema no tiene solución.

En las computadoras con lógica de microordenadores incorporada, esta lógica es un tipo de algoritmo. A medida que los equipos informáticos se hacen más complejos, más y más algoritmos del software toman la forma del llamado hard-software. Esto es, cada vez más, se están convirtiendo en parte de los circuitos básicos de los ordenadores o en módulos auxiliares; también están apareciendo por sí solos en máquinas específicas como las calculadoras de nóminas. En la actualidad, existen muchos algoritmos para diversas aplicaciones y algunos sistemas avanzados, como los algoritmos de inteligencia artificial, llegarán a ser corrientes en el futuro.

EJEMPLO:

Pograma que realiza una suma:
1) Especificar librería
2) Especificar librería
3) Especificar librería
4) Inicio del programa
5) Llave de apertura
6) Declaración de variables
7) Imprime en pantalla el mensaje y pide un valor
8) Asigna el valor a una variable
9) Imprime en pantalla el mensaje y pide otro valor
10) Asigna el valor a otra variable
11) Realiza la operación de los valores y los guarda en otra variable
12) Imprime en pantalla el mensaje y el resultado
13) Muestra los mensajes durante un tiempo
14) Llave de terminación del programa


Algoritmo del programa:

1) #include
2) #include
3) #include
4) Void main ( )
5) {
6) Int a, b, c;
7) Cout<<”dame un numero”<>a;
9) Cout<<”dame otro numero”<>b;
11) C=a+b;
12) Cout<< “el resultado es” <
13) Getch ( );
14) Muestra los mensajes durante un tiempo
15) Llave de terminación del programa

Wednesday, May 18, 2005

SECUENCIAS DE ESCAPE.

\N nos sirve para realizar un salto de línea y sirve para colocar el cursor en la
segunda linea.


\T nos sirve para realizar tabulaciones horizontales y mueve el cursor hasta la
siguiente tabulacion.


\R retorno de carro y coloca el cursor al inicio de la línea actual y no avanza a la
siguiente linea.


\A nos sirve para mandar un mensaje de alerta y sonar la campana del sistema.


\\ nos sirve para realizar comentarios de una sola línea.


\*texto*\ nos sirve para poner comentarios de mas de una línea.

BIBLIOTECA ESTÁNDAR DE C++.

Los programas en c++ constan de partes llamadas clases y funciones. pero la mayoría de los programadores de c++ aprovechan las vastas colecciones de clases y funciones que existen en la biblioteca estándar de c++. por lo tanto, en realidad hay dos partes en el aprendizaje del mundo de c++. la primera es aprender el lenguaje c++ mismo, y la segunda es conocer como se emplean las clases y funciones de la biblioteca estándar de c++.
el proveedor del compilador generalmente es el que proporciona las bibliotecas estándar de clases. los proveedores de software independientes proporcionan muchas bibliotecas de clase de propósito especial.
algunas de las bibliotecas son las siguientes:



contiene prototipo de funciones para procesamiento
de cadena estilo c. la nueva versión de archivo encabezado.

contiene prototipo de funciones y tipos para manipular la hora
y la fecha.

contiene prototipo de funciones de entrada y salida estándar, la
nueva versión de la librería estándar es .

contiene protocolo de funciones para los manipuladores de flujo
de mayor importancia que permite fortalecer y formatear flujo
de datos.

contiene claves y funciones utilizada por muchos archivos del
encabezado de la librería estándar.

contiene prototipos para funciones que efectúan entrada y
salida de archivos.

, los archivos de encabezado contienen clases que implementan
los contenedores de la biblioteca estándar los contenedores
sirven para almacenar datos durante la ejecución de los
programas.

contiene clases y funciones empleadas en la biblioteca
estándar

contiene clases y funciones utilizadas para la biblioteca estándar
y es utilizada para asignar memoria a sus contenedores.

contiene clases para manipular datos en los contenedores de la
b.s.

contiene funciones para manipular datos en lo contenedores en
de la b.s.

este archivo de encabezado contiene clases que se utilizan para
el manejo de excepción.

contiene la definición de clases string de la biblioteca.

contiene prototipo de funciones que llevan a cabo entradas de
cadenas y salidas de cadenas de memoria.

contiene clases y funciones que el procesamiento de flujo
normalmente utiliza para procesar de manera natural datos en
distintos idiomas.

permite definir los limites de los tipos de datos numéricos de cada
plataforma de computo.

contiene clases para identificar en que tipo de dato se utilizan.

PROGRAMACIÓN ESTRUCTURADA.


EL creciente empleo de los computadores ha conducido a buscar un abaratamiento del desarrollo des software, paralelo a la reducción del costo del hardware obtenido gracias a los avances tecnológicos. Los altos costos del mantenimiento de las aplicaciones en producción normal también han urgido la necesidad de mejorar la productividad del personal de programación.
En la década del sesenta salieron a la luz publica los principios de lo que más tarde se llamo Programación Estructurada, posteriormente se libero el conjunto de las llamadas "Técnicas para mejoramiento de la productividad en programación" (en ingles Improved Programming Technologies, abreviado IPTs), siendo la Programación Estructurada una de ellas.
Los programas computarizados pueden ser escritos con un alto grado de estructuración, lo cual les permite ser mas fácilmente comprensibles en actividades tales como pruebas, mantenimiento y modificación de los mismos. Mediante la programación Estructurada todas las bifurcaciones de control de un programa se encuentran estandarizadas, de forma tal que es posible leer la codificación del mismo desde su inicio hasta su terminación en forma continua, sin tener que saltar de un lugar a otro del programa siguiendo el rastro de la lógica establecida por el programador, como es la situación habitual con codificaciones desarrolladas bajo otras técnicas.
EN programación Estructurada los programadores deben profundizar mas que lo usual al procederá realizar el diseño original del programa, pero el resultado final es más fácil de leer y comprender, el objetivo de u programador profesional al escribir programas de una manera estructurada, es realizarlos utilizando solamente un numero de bifurcaciones de control estandarizados.

EL resultado de aplicar la sistemática y disciplinada manera de elaboración de programas establecida por la Programación Estructurada es una programación de alta precisión como nunca antes había sido lograda. Las pruebas de los programas, desarrollados utilizando este método, se acoplan mas rápidamente y el resultado final con programas que pueden ser leídos, mantenidos y modificados por otros programadores con mucho mayor facilidad.

HISTORIA DE C++


El C++ es un derivado del mitico lenguaje C. Este lenguaje aparecio en la decada de los 70 de la mano deDennis Ritchie para la programacion en sistemas operativos Unix(El mejor ejemplo actual de un sistemaoperativo Unix es Linux), el cual surgio como un lenguaje generalista recomendado sobre todo para programadoresya expertos, ya que no llevaba implementadas muchas funciones que hacen a un lenguaje más comprensible. Sinembargo, aunque esto en un principio puede convertirse en un problema, en la practica es su mayor virtud,ya que permite al programador un mayor control sobre lo que está haciendo. Años más tarde, un programador llamado Bjarne Stroustrup, creo lo que se conoce como C++. Necesitaba ciertas facilidades de programacion,incluidas en otros lenguajes pero que C no soportaba, al menos directamente, como son las llamadas clasesy objetos, conceptos muy en boga en la programación actual. Para ello rediseño el C, ampliando sus posibilidades pero manteniendo su mayor cualidad, la de permitir al programador en todo momento tener controlado lo que está haciendo, consiguiendo así una mayor rapidez que no se conseguiria en otros lenguajes.De clases y objetos baste saber por ahora que consisten en un sistema que pretende acercar los lenguajesde programación a una comprension más humana basandose en la construccion de objetos, con caracteristicaspropias solo de ellos, agrupados en clases. Es decir por ejemplo, si yo quisiera hacer un programa sobreanimales, crearia una clase llamada animales, en la cual cada animal, por ejemplo un pato, seria unobjeto, de tal manera que se ve el intento de esta forma de programar por ser un fiel reflejo a como loshumanos(en teoria) manejamos la realidad. Y con esta historia del C++ basta, ahora nos pondremos nuestrosguantes nos pondremos a operar sobre el objeto que ahora nos ocupa: el C++."