Sei sulla pagina 1di 12

CENTRO AMERIICANO DE ESTUDIIIOS SUPERIIIORES CE NTRO AMER CANO DE ESTU D OS SUPER OR ES N ST R PROGRAMACIIN IIII PR OGRAMAC N N

UNIDAD I. FUNDAMENTOS DEL LENGUAJE


Objetivo General. Al trmino de la unidad, el alumno conocer los conceptos bsicos necesarios dentro de un programa global del lenguaje a utilizar.

1.1. INTRODUCCIN AL LENGUAJE.


El lenguaje C++ es un lenguaje que apoya la programacin orientada a objetos y que se construy basado en el lenguaje C debido a que sus a desarrolladores les interesaba crear un lenguaje que soportara la programacin orientada a objetos y que al mismo tiempo tuviera las caractersticas de eficiencia en: La generacin de cdigo, flexibilidad y uso de funciones de bajo nivel del lenguaje C; adems existan muchos programadores de C que emigraran fcilmente a C++ al ver las similitudes de ambos. Cada vez que queremos ser capaces de resolver problemas de una manera ms eficiente se han creado los distintos paradigmas de programacin. De esta manera surge la programacin estructurada, la programacin funcional, la modular y as sucesivamente. La programacin orientada a objetos es un paradigma que surge debido a que los sistemas a desarrollar se fueron haciendo cada vez mas extensos y complejos y los paradigmas existentes no pudieron manejar convenientemente este incremento de complejidad y extensin, por lo que se hizo necesario implementar una nueva manera de resolver los problemas a la que se denomin programacin orientada a objetos. Con la programacin orientada a objetos se pretende crear programas en los que sus partes (entidades u objetos), correspondan fielmente a los objetos que conforman el problema a resolver y que incorpora caractersticas como la abstraccin de datos, la herencia y el polimorfismo, que permiten el desarrollo de programas en los que es posible la reutilizacin de cdigo y en los que se protegen los datos. 1. 1. 1. BREVE HISTORIA DEL SURGIMIENTO DEL LENGUAJE C++. Desde 1980 se utilizaron versiones anteriores del lenguaje C++ que se denominaban a s mismas C con clases. Estas primeras versiones surgieron debido a que Bjarne Stroustrup tuvo necesidad de realizar simulaciones manejadas por eventos y el lenguaje con el que podra haber resuelto su problema (Simula 67) no era lo suficientemente eficiente por lo que decidi crear un lenguaje ad hoc con sus necesidades. En este punto el diseador tuvo que elegir cul sera la manera de generar el nuevo lenguaje de programacin: Si utilizando como base un lenguaje conocido o empezando desde cero la implementacin del mismo, por lo que decidi utilizar como base el lenguaje C debido a las siguientes caractersticas que lo hicieron atractivo: Es un lenguaje verstil, conciso y de nivel relativamente bajo, lo que lo hace adecuado para la mayora de las tareas de desarrollo de sistemas adems de que es un lenguaje muy portable y tiene cabida en el ambiente de programacin UNIX; El C era un lenguaje ampliamente utilizado por muchos programadores y ya existan muchsimos sistemas implementados en l, adems de que era un lenguaje lo suficientemente estudiado para que en ese momento se tuviese un conocimiento amplio sobre sus fortalezas y debilidades. Al mismo tiempo, como deba ser un lenguaje que pudiese utilizarse para la simulacin de sistemas, incorpora muchas caractersticas de Simula 67 como el concepto de clase, las clases derivadas y las funciones virtuales.
L.I. Daro de los ngeles Lara Castillo Pgina 1 de12

CENTRO AMERIICANO DE ESTUDIIIOS SUPERIIIORES CE NTRO AMER CANO DE ESTU D OS SUPER OR ES N ST R PROGRAMACIIN IIII PR OGRAMAC N N
C++, no solamente incorpora caractersticas de C y Simula 67. Por ejemplo: De Algol68: se copia la capacidad para sobrecargar operadores y la libertad para poder hacer declaraciones en cualquier parte del cdigo. De Ada y parcialmente de UML se tom el mecanismo para resolver excepciones y el recurso de patrones. Por otra parte, el lenguaje C++ incorpora la reutilizacin de cdigo, la cual consiste en que teniendo bloques de cdigo (clases), estos pueden utilizarse en varias partes de un sistema o en distintos sistemas. Esto lo hace mucho mas conveniente que el lenguaje C y a su vez posibilita a los programadores el poder realizar sistemas de mayor tamao y complejidad con menor esfuerzo. Inicialmente C++ nace como una herramienta generada para que el autor y sus amigos no tuviesen que programar en ensamblador o C, la cual deba permitirles hacer ms fcil y agradable la escritura de programas de buena calidad para el programador individual. De tal manera que no surge como un proyecto en forma, ni se gener un grupo de trabajo para disear C++, bsicamente el lenguaje se enriqueca y se transformaba de acuerdo a las necesidades y sugerencias que los amigos del autor y algunos usuarios le hacan llegar. Al inicio existieron muchas versiones no oficiales del C++ y no fue sino hasta 1987 que se advirti la necesidad de estandarizarlo de manera formal y para ello se hizo un esfuerzo de establecer comunicacin entre los realizadores de compiladores de C++ y lo principales usuarios mediante correo electrnico, correo convencional y reuniones en conferencias a cerca de C++. Dicho esfuerzo culmina con la creacin del grupo X3J16 de ANSI que en 1989 se reuni para crear el estndar de C++ tal y como lo conocemos hoy en da. 1. 1. 2. CARACTERSTICAS DEL LENGUAJE C++. El lenguaje C++ incorpora todas las caractersticas de C en cuanto a: Tipos de datos bsicos Estatutos de control Arreglos Apuntadores Estructuras y Uniones Funciones definidas por el usuario Funciones integradas que permiten el fcil manejo de los recursos del sistema en bajo nivel Y adems incorpora las siguientes caractersticas que permiten la programacin orientada a objetos: Abstraccin de datos: Encapsulamiento: Herencia Polimorfismo Sobrecarga de funciones y operadores El primero y ms importante de todos los conceptos es precisamente un Objeto. Un objeto es un paquete de informacin y acciones, es decir que todo el conocimiento y el comportamiento de un objeto est contenido dentro de s mismo. Tiene cosas que slo l conoce, caractersticas que cualquiera puede ver y formas de hacer las cosas. En esta definicin encontramos dos nuevos conceptos, uno conocido como Encapsulamiento que indica que todo el conocimiento y comportamiento de un objeto esta contenido dentro del objeto.
L.I. Daro de los ngeles Lara Castillo Pgina 2 de12

CENTRO AMERIICANO DE ESTUDIIIOS SUPERIIIORES CE NTRO AMER CANO DE ESTU D OS SUPER OR ES N ST R PROGRAMACIIN IIII PR OGRAMAC N N
El otro concepto es la Abstraccin de datos, la cual se refiere a que al encerrar las caractersticas y el comportamiento del objeto dentro de un paquete lo que hacemos realmente es que modelamos algo del mundo real y lo empaquetamos, en dicha abstraccin tomamos slo lo ms importante de lo que deseamos y desechamos lo que es irrelevante. C++ nos permite la abstraccin de datos y el encapsulamiento por medio de las Clases. El encapsulamiento nos permite proteger los datos y las funciones, al permitir que slo ella misma sepa y responda de su estado y protegiendo el acceso a los mismos. Tambin es til para evitar efectos colaterales durante el desarrollo del software, ya que reduce la dependencia entre los mdulos. Las modificaciones se dan a nivel de clase, y esto no afectar al cdigo de otra seccin, debido a que los cambios no repercutirn en todo el sistema. Esta proteccin nos introduce un nuevo concepto conocido como Ocultacin de la informacin. El acceso a los elementos contenidos dentro de la clase est controlado. No slo se controla el acceso a los datos, sino tambin al cdigo. El usuario (programador) puede tener acceso a la definicin de la clase pero no necesariamente a la implantacin de la misma. Para proteger el acceso a los datos, por lo general solo es permitido que los datos sean modificados por las funciones miembro, pero inclusive tambin esta restringido el acceso a las funciones.

1.2. TIPOS DE DATOS ELEMENTALES.


Casi todos los lenguajes poseen un conjunto de datos y operaciones similar. Nosotros nos centraremos en los datos elementales que nos proporciona el lenguaje C++.

Un dato es como una caja, en la que podemos guardar un nico elemento de informacin. Los datos se caracterizan por tener las siguientes propiedades: Nombre o identificador, tipo y valor. Generalmente un nmero int es una secuencia de dgitos (0 ... 9), el cual puede estar precedido de un signo (+ o -). Los valores long int se denotan mediante el carcter L (o 1) aadido como sufijo.

Los enteros hexadecimales y octales pueden tambin ser representados aadiendo el prefijo 0X (o 0x) y 0, respectivamente al nmero. Los dgitos hexadecimales desde A a F (o a a f) se utilizan junto con el 0 hasta el 9 para representar nmeros hexadecimales. Un nmero float es un int, una fraccin decimal, una parte exponente o alguna combinacin de stos. La parte exponente consta del smbolo E seguido de un entero, denotando la multiplicacin por esa potencia entera de 10. Entonces, por ejemplo, el nmero float -5.33E-4 consta del entero 5, la fraccin decimal .33 y la parte exponente E-4, y es equivalente al nmero -0.000533. Por supuesto, el nmero -0.000533 tambin es un float legtimo y representa el mismo valor que -5.33E-4.

L.I. Daro de los ngeles Lara Castillo

Pgina 3 de12

CENTRO AMERIICANO DE ESTUDIIIOS SUPERIIIORES CE NTRO AMER CANO DE ESTU D OS SUPER OR ES N ST R PROGRAMACIIN IIII PR OGRAMAC N N
Por supuesto, cada nmero tiene varias representaciones float equivalentes. El rango de los nmeros vlidos int y float depende de la implementacin. Adems, la mayora de las implementaciones soportan valores float en doble precisin. C soporta esto mediante el tipo double. Normalmente, los valores float de precisin simple permiten hasta seis dgitos significativos, mientras que los de doble precisin permiten hasta diecisis. El tipo de datos char da la base para el procesamiento de cadenas en C. Un dato "char" es un carcter (una letra, dgito o carcter especial) encerrado entre apstrofos como los siguientes ejemplos: 'A' '7' ' ' '+' '$' 'a' El conjunto de caracteres disponible como valores char depende de la implementacin. Normalmente ste es el conjunto de caracteres ASCII, excepto para algunas implementaciones en IBM, las cuales prefieren el conjunto EBCDIC. Cuando se desea trabajar con enteros, dependiendo del rango, se puede usar short, int o long, con signo o sin signo. Para trabajar con enteros sin signo, se debe anteponer la palabra reservada unsigned delante del tipo (unsigned int). Esto nos permite aumentar el rango del tipo. Por defecto son con signo, no hace falta anteponer la palabra signed. 1. 2. 1. TIPO. El tipo es el conjunto de valores que puede tomar un dato. Como veremos ms adelante, el tipo de un dato determina el conjunto de operaciones que se pueden realizar sobre el mismo. En nuestro ejemplo metafrico de la caja, el tipo de la caja determinara qu puede contener. No podramos guardar un ordenador en una caja de zapatos y al contrario sera un derroche de espacio. Aunque ms adelante hablaremos de los tipos de datos en C, vamos a introducir uno de ellos: el tipo entero. La palabra reservada asociada al tipo entero es int (proviene del trmino integer). Un dato de tipo int est preparado para contener valores de tipo entero (sin decimales) que se encuentren en el rango entre -32768 y 32767. Debido a la naturaleza de este tipo de dato, podremos realizar con l operaciones numricas como: Resta (-), divisin (/), multiplicacin (*), etc 1. 2. 2. VALOR. El valor es la informacin que almacena el dato en un momento dado. En el ejemplo, una caja de zapatos no puede contener otra cosa que no sean zapatos, pero no tiene por qu contener siempre los mismos. Puede contener cualquier modelo y podemos usarla a lo largo del tiempo para guardar otro modelo distinto. En C++, para dar valor a un dato utilizamos el operador asignacin, que se expresa mediante el smbolo igual (=): Identificador = valor o expresin; Ejemplo: DiaDelMes = 7; TemperaturaActual = 0.75; Resultado = 3+5*4+ResultadoAnterior; Como podemos observar, a la hora de escribir un nmero real, el separador entre la parte entera y la decimal es el punto (y no la coma como estamos acostumbrados). De igual forma, en los ejemplos tambin se puede ver que las instrucciones en C++ terminan en punto y coma (;). Dicho smbolo es el separador de instrucciones, no el salto de lnea. Dicho de otro modo, si no pusisemos el punto y coma, el compilador creera que la operacin contina, aunque cambiemos de lnea.
L.I. Daro de los ngeles Lara Castillo

Pgina 4 de12

CENTRO AMERIICANO DE ESTUDIIIOS SUPERIIIORES CE NTRO AMER CANO DE ESTU D OS SUPER OR ES N ST R PROGRAMACIIN IIII PR OGRAMAC N N
Es importante sealar que el operador de asignacin no es una igualdad matemtica. Al realizar una asignacin se calcula el valor de la expresin que hay a la derecha del smbolo = y se le asigna al dato que hay a la izquierda. Por ejemplo, veamos la siguiente cadena de instrucciones: MiDato = 5; MiDato = MiDato * 2 + 1; En el ejemplo, en la primera lnea el dato toma el valor 5. En la siguiente lnea se realiza el clculo de lo que contena anteriormente la variable (valor 5) multiplicado por dos y mas uno. El resultado de dicha operacin es 5*2+1=11. Dicho resultado se guarda de nuevo en el dato, eliminando el valor anterior. Como vemos, esto nada tiene que ver con una igualdad matemtica.

1.3. PALABRAS RESERVADAS.


Son palabras especiales que no pueden usarse para nombrar otros elementos del lenguaje. Las siguientes son algunas de las palabras reservadas que se utilizan en C y C++. Es preciso insistir en que C++ hace distincin entre maysculas y minsculas. Por lo tanto, la palabra reservada for no puede escribirse como FOR, pues el compilador no la reconoce como una instruccin, sino que la interpreta como un nombre de variable.

1.4. IDENTIFICADORES.
El nombre o identificador de un dato es el nombre por el que nos referiremos a cada dato. Ha de ser nico, esto es, cada dato tiene un nombre distinto para poder referirnos a l unvocamente. Es como la etiqueta de la caja.

En C++, los nombres de los datos se constituyen por una nica palabra que puede estar compuesta por letras (excepto la ), nmeros y algunos smbolos del cdigo ASCII. Es importante recordar que para el lenguaje C, las letras en mayscula y en minscula son distintas. Adems, los identificadores no pueden comenzar por un nmero (aunque s contener alguno. Por ejemplo, los siguientes identificadores seran vlidos (y distintos entre s): Hola, MaNo, Curso_2001, curSo_2001, etc Adems de estas normas, es necesario que el identificador no coincida con ninguna palabra reservada, esto es, nombres que se correspondan con palabras propias del lenguaje (instrucciones, estructuras de control, etc).

1.5. TIPOS DE DATOS ESTRUCTURADOS.


Un array (tambin conocido como arreglo, vector o matriz) es una coleccin de variables relacionadas a las que se hace referencia por medio de un nombre en comn. Es un modo de manejar una gran cantidad de datos del mismo tipo bajo un mismo nombre o identificador. Las cadenas son arrays de caracteres (tipo char), terminado en un carcter nulo. Se pueden inicializar al momento de la declaracin, si se desea, en cuyo caso se har usando las comillas. Ejemplo: char ciudad[20]=San Sebastian; char name[]=Juan Pablo; char *direccion=Paseo Manuel Lardizabal 13;

L.I. Daro de los ngeles Lara Castillo

Pgina 5 de12

CENTRO AMERIICANO DE ESTUDIIIOS SUPERIIIORES CE NTRO AMER CANO DE ESTU D OS SUPER OR ES N ST R PROGRAMACIIN IIII PR OGRAMAC N N
En la forma 2 y 3, el compilador reserva el nmero de caracteres para almacenar la informacin. Las cadenas suelen contener texto (nombres, frases, etc.), y ste se almacena en la parte inicial de la cadena. Para separar la parte de la cadena que contiene el texto de la parte no utilizada, se usa el carcter fin de texto que es el carcter nulo (\0). Este carcter se introduce automticamente al inicializar la cadena. En una cadena se puede acceder de forma independiente a cada elemento, de la misma manera como se hace con los vectores, por ejemplo: char name[20]; name[0]='J';name[1]='u';name[2]='a'; name[3]='n'; name[4]='\0'; cout<< name<<endl; Para la lectura de cadenas desde la consola, la sentencia scanf presenta una dificultad: no acepta los espacios ni las tabulaciones, corta las frases. Para poder capturar una frase completa (con espacios), se puede utilizar la sentencia gets(), la cual forma parte de la biblioteca estndar del C++. Su forma general es: gets(nombre_de_cadena); Para usar esta funcin, es necesario incluir el fichero <stdio.h> en nuestro programa. Una estructura es una forma de agrupar un conjunto de datos de distinto tipo bajo un mismo nombre o identificador. A cada uno de los datos de la estructura se le denomina miembro. La estructura crea un nuevo tipo de datos. Para poder utilizar este nuevo tipo, hay que crear una nueva variable. Para acceder a los miembros de una estructura, se utiliza el operador punto (.), precedido por el nombre de la estructura y seguido por el nombre del miembro. Punteros. El valor de cada variable est almacenado en una determinada posicin de la memoria del ordenador, caracterizado por una direccin (que se suele expresar en un valor hexadecimal). Por lo general, gracias a los nombres de las variables, no es necesario que el programador sepa cul es la direccin de sus variables. Sin embargo, en ciertas ocasiones es ms til trabajar con las direcciones que con los propios nombres. El C++ dispone de un operador de direccin (&) que nos permite determinar la direccin de una variable, y de un tipo especial de variables destinadas a contener direcciones de variables. Estas variables se llaman punteros o apuntadores (pointers). Adems, C++ dispone de un operador de indireccin (*) que permite acceder al valor depositado en la zona de memoria, a la que apunta el puntero. As pues, un puntero es una variable que puede contener la direccin de otra variable. Un puntero ocupa por lo general 4 bytes de memoria y se debe declarar o definir de acuerdo con el tipo del dato al que apunta. As, un puntero del tipo int se declara de la sgte. manera: int *p; int* p; Mientras que uno del tipo float: float *x1; No se deben mezclar los tipos, debido a que ocupan diferentes bytes dentro de la memoria. Los punteros tambin tienen su propia direccin de memoria.

1.6. OPERADORES ELEMENTALES.


Un Operador es un carcter o grupo de caracteres que acta sobre una, dos o ms variables para realizar una determinada operacin con un determinado resultado.

L.I. Daro de los ngeles Lara Castillo

Pgina 6 de12

CENTRO AMERIICANO DE ESTUDIIIOS SUPERIIIORES CE NTRO AMER CANO DE ESTU D OS SUPER OR ES N ST R PROGRAMACIIN IIII PR OGRAMAC N N
Atendiendo al tipo de operacin que realizan, se clasifican en: Aritmticos Relacionales Lgicos De tratamiento de bits Especiales Los operadores, junto con los operandos, forman expresiones. En una expresin, los operandos pueden ser constantes, variables o llamadas a funciones que devuelvan valores. Una expresin se convierte en una sentencia cuando va seguida de un punto y coma. Cuando un grupo de sentencias se encierran entre llaves { }, forman un bloque, sintcticamente equivalente a una sentencia. 1. 6. 1. OPERADORES ARITMTICOS. Los operadores aritmticos se exponen en los cuadros siguientes: UNARIOS
BINARIOS

OPERADOR -++

DESCRIPCIN Cambio de signo Decremento Incremento

Los operadores -, + y * funcionan del mismo modo que en el resto de los lenguajes de programacin. El valor devuelto por el operador / depende del tipo de los operandos. Si estos son enteros, devuelve la parte entera del cociente; si alguno de ellos es real, devuelve el resultado como nmero real. El operador % es equivalente al operador mod de Pascal o Quick-BASIC. Proporciona el resto de la divisin entera de los operandos, que han de ser enteros. Por ejemplo, dadas las sentencias int x, y; x = 9; y = 2;

La operacin x / y devuelve el valor 4, mientras que la operacin x % y devuelve 1. Sin embargo, despus de las sentencias float x; int y; x = 9.0; y = 2;

La operacin x / y devuelve 4.5, no pudindose aplicar, en este caso, el operador % puesto que uno de los operandos no es entero. Los operadores ++ y -- aumentan o disminuyen, respectivamente, en una unidad el operando sobre el que actan. As, las expresiones x++; x- -; Producen el mismo efecto sobre la variable x que y el mismo que x = x + 1; ++x; x = x - 1; --x;

L.I. Daro de los ngeles Lara Castillo

Pgina 7 de12

CENTRO AMERIICANO DE ESTUDIIIOS SUPERIIIORES CE NTRO AMER CANO DE ESTU D OS SUPER OR ES N ST R PROGRAMACIIN IIII PR OGRAMAC N N
Es importante tener en cuenta la posicin de los operadores ++ y -- cuando se encuentran dentro de una expresin ms compleja. Si el operador est antes de la variable, la operacin de incremento o decremento se realiza antes de usar el valor de la variable. Si el operador est despus, primero se usa el valor de la variable y despus se realiza la operacin de incremento o decremento. Para aclarar esto, tomemos un ejemplo. Despus de las sentencias x = 10; y = ++x; Los valores que se almacenan en las variables x e y son, en ambos casos, 11. Puesto que el operador est antes de la variable x, primero se incrementa sta (asumiendo el valor 11), y despus se asigna el valor de x a la variable y. Sin embargo, despus de las sentencias x = 10; y = x++; Los valores para x e y sern, respectivamente, 11 y 10. En este caso, puesto que el operador est despus de la variable x, primero se usa el valor de sta (10) y se asigna a y; despus se realiza la operacin de incremento, pasando x a almacenar el valor 11. 1. 6. 2. OPERADORES RELACIONALES. Se usan para expresar condiciones y describir una relacin entre dos valores. En la pgina siguiente se muestra una tabla con todos ellos. Estos operadores se usan en sentencias del tipo if (a == b) printf ("Son iguales"); que debe leerse "si el contenido de la variable a es igual al de la variable b muestra en pantalla la frase Son iguales". El resultado de una expresin relacional slo puede ser verdadero o falso, lo que en C se identifica con los valores distinto de cero y cero, respectivamente. En la sentencia anterior, la expresin a == b se evaluar como 0 si a y b son diferentes, y como distinto de 0 si son iguales. 1. 6. 3. OPERADORES LGICOS. Actan sobre expresiones booleanas, es decir, sobre valores verdadero o falso generados por expresiones como las explicadas en el caso anterior. Son los siguientes: OPERADOR UNARIOS BINARIOS DESCRIPCIN Not And Or b F V F V

! && ||

El resultado de una operacin lgica viene dado por su tabla de verdad. La tabla de verdad de los operadores !, && y || se muestra a continuacin: Dado que el lenguaje interpreta como falso el valor 0 y como cierto cualquier valor diferente de cero, se pueden emplear operadores aritmticos en las expresiones lgicas y de comparacin. Por ejemplo, si x, y y z almacenan, respectivamente, los valores 20, 4 y 5, las expresiones siguientes son vlidas: x == y x=y x == (y * z) Se interpreta como FALSO (0) Se interpreta como VERDADERO (4) Se interpreta como VERDADERO (1)

Error! Marcador no Definido F F V V

!a
V V F F

a && b F F F V

a || b F V V V

L.I. Daro de los ngeles Lara Castillo

Pgina 8 de12

CENTRO AMERIICANO DE ESTUDIIIOS SUPERIIIORES CE NTRO AMER CANO DE ESTU D OS SUPER OR ES N ST R PROGRAMACIIN IIII PR OGRAMAC N N
1. 6. 4. OPERADORES DE TRATAMIENTO DE BITS. C incorpora ciertas operaciones sobre bits propias del Lenguaje Ensamblador, como desplazamientos o manipulacin individual de bits. Los operadores que realizan estas operaciones son los siguientes: 1. 6. 5. OTROS OPERADORES.

El resultado de una expresin, depende del orden en que se ejecuten las operaciones. Existen 2 reglas para determinar el orden y evaluacin: precedencia y asociatividad. El orden puede modificarse por medio del parntesis. Siempre se realizarn primero las operaciones que estn en los parntesis ms interiores. Por ejemplo: 3 + 4 * 2 nos dara 14 u 11, dependiendo del orden que se elija. Segn el orden establecido en C++ nos va a dar como resultado 11, ya que primero se ejecuta la multiplicacin y luego la suma. Si queremos obtener 14, haramos: (3+4)*2.

1.7. EXPRESIONES Y EVALUACIN DE OPERACIONES.


Una expresin es una combinacin de variables y/o constantes y operadores que dan lugar a un nico valor. Una expresin puede estar formada por otras expresiones ms sencillas, y puede contener parntesis de varios niveles agrupando distintos trminos.
Expresiones Aritmticas: Estn formadas por variables y/o constantes y distintos operadores aritmticos e incrementales (+,-,*,/,++,--,%). Dan como resultado de la evaluacin cualquier tipo numrico, ya sea entero o real. Por ejemplo: X = (-b + sqrt((b*b) (4*a*c)))/(2*a);

Expresiones alfanumricas: Operaciones con cadenas basadas en funciones.


Expresiones Lgicas o de Boole: Una expresin de Boole da como resultado los valores lgicos 0 o 1 (true o false). Slo intervienen operadores lgicos y operadores de relacin (>,<,&&,||,>=,..). p = (x < y) && (y <= z); //si x=15,y=18,z=20

L.I. Daro de los ngeles Lara Castillo

Pgina 9 de12

CENTRO AMERIICANO DE ESTUDIIIOS SUPERIIIORES CE NTRO AMER CANO DE ESTU D OS SUPER OR ES N ST R PROGRAMACIIN IIII PR OGRAMAC N N
1. 7. 1. ORDEN DE EVALUACIN DE OPERACIONES. El orden en el que se efectan la s operaciones en un lenguaje es un factor crtico a tener en cuenta si queremos obtener los resultados deseados. Vamos a observar el siguiente fragmento de cdigo: float a=5.0, b=7.0, c=2, d; d = a + b * c; En el ejemplo, la operacin puede realizarse de dos formas: podemos sumar a y b y el resultado multiplicarlo por c o bien multiplicar b y c y al resultado sumarle a. Se trata de operaciones distintas, de la primera forma el resultado sera 22.0 y de la segunda 19.0. Cada lenguaje asigna a cada tipo de operador una prioridad, de forma que una operacin compuesta por varios operadores siempre se resuelva de igual forma. Por ejemplo, sabemos que en C la operacin de multiplicacin es ms prioritaria que la de la suma, por tanto, en el ejemplo anterior la operacin se resolvera multiplicando primero b por c para despus sumar a. Para modificar la preferencia de los operadores, es posible agrupar las operaciones enmarcndolas entre parntesis ( ). De esta forma, si en el ejemplo anterior queremos realizar primero la suma y despus multiplicar por el resultado, tendremos que escribirlo de la forma: float a=5.0, b=7.0, c=2, d; d = ( a + b ) * c; Los parntesis se consideran como los operadores de mxima prioridad.

1.8. ESTRUCTURA DE UN PROGRAMA.


Todo programa en C consta de uno o ms mdulos llamados funciones. Una de las funciones se llama main (funcin por la que el programa siempre empieza la ejecucin, se trata pues de la funcin o programa principal). Cada funcin debe contener: Tiene una lnea de cabecera; Una llave izquierda, { ; Una serie de declaraciones (para las variables, archivos, arrays, etctera); Una serie de sentencias y una llave derecha, }. Las llaves izquierda y derecha, { y }, juegan en C++ el papel del begin y end en otros lenguajes, y por tanto, delimitan grupos de sentencias que se tratan como una. Frecuentemente aparece tambin, al principio, una lnea que comienza con "#include", para aadir una o ms libreras en el proceso de compilacin. A continuacin se muestra un sencillo programa en C++ que calcula y presenta la media de un nmero indeterminado de nmeros de entrada. Por ejemplo, si la entrada fuera 85.5, 87.5 y 89.5 y 91.5 el resultado presentado sera 88.5. EI programa utiliza la variable n para almacenar un nmero de entrada y la variable n para determinar el nmero de nmeros introducidos en el proceso. Las variables suma y med sirven para almacenar la suma de los nmeros y su media, respectivamente. /* Inclusin de las libreras que se van a usar */ #include <stdio.h> #include <iostream> using namespace std; /* Definicin de constantes */ /* Funcin principal */
L.I. Daro de los ngeles Lara Castillo Pgina 10 de12

CENTRO AMERIICANO DE ESTUDIIIOS SUPERIIIORES CE NTRO AMER CANO DE ESTU D OS SUPER OR ES N ST R PROGRAMACIIN IIII PR OGRAMAC N N
main () { /* Definicin de las variables que se van a usar */ float x, suma, med; int n; /* Instrucciones del programa */ n=0; suma=0; while (cin>>x>0) { ++n; suma+= x; } med=suma/n; cout<<"numeros que se dan n"<<n<<endl; Cout<<"es media n"<<med<<endl; } /* fin del programa */ Generalmente vemos que el punto y coma se utiliza para terminar una sentencia, y las llaves, { }, se utilizan para agrupar sentencias. Por tanto, las dos sentencias que siguen a "while..." se tratan como un grupo que se repetir hasta que ocurra el final de la entrada. Observe tambin que el formato de un programa en C++ queda determinado libremente por el programador. El estilo de indentacin mostrado aqu es uno completamente convencional, el cual facilita la legibilidad de los programas. Los comentarios en un programa en C++ pueden insertarse en cualquier sitio, siempre que vayan encerrados entre los delimitadores /* y */. Finalmente, observamos que puede usarse, al escribir un programa en C++, todo el alfabeto de letras maysculas y minsculas (A-Z y a-z). Como vemos, al principio del programa aparecen una serie de comentarios. Los comentarios sirven para documentar el propio texto del programa, para que sea ms comprensible tanto para nosotros como para cualquiera que lo tenga que utilizar. No afectan en ningn caso al funcionamiento del programa, se trata de textos simplemente aclarativos. Existen dos formas de insertar comentarios: Comentarios que pueden contener una o varias lneas: Se colocan entre los smbolos especiales /* (inicio de comentario) y */ (fin de comentario). Cualquier cadena colocada entre dichos smbolos ser obviada por el compilador. El comentario puede ocupar varias lneas. Comentarios de una sola lnea: Se colocan a la derecha del smbolo especial //. Afectan a toda la lnea colocada a la derecha de ste hasta que la lnea finalice (retorno de carro). Las primeras instrucciones significativas del programa son las inclusiones de las libreras que se van a usar. En este sentido, mediante la directiva #include <librera.h> especificamos al compilador las libreras estndar que se van a usar a lo largo del programa. Una librera es una coleccin de funciones de soporte que no se encuentran por defecto en el lenguaje. Existen muchas libreras de uso comn, como por ejemplo: stdio.h (funciones estndar de entrada/salida), string.h (funciones de manejo de cadenas) o math.h (funciones matemticas). Una vez incluidas en nuestro programa podremos utilizar todas las funciones asociadas con las mismas. A continuacin aparecen las constantes definidas por el usuario. Una vez declaradas podremos referirnos a ellas a lo largo de todo el programa.
L.I. Daro de los ngeles Lara Castillo

Pgina 11 de12

CENTRO AMERIICANO DE ESTUDIIIOS SUPERIIIORES CE NTRO AMER CANO DE ESTU D OS SUPER OR ES N ST R PROGRAMACIIN IIII PR OGRAMAC N N
Seguidamente aparece la funcin principal o main. Se trata de una funcin especial (las funciones sern tratadas en temas posteriores) que se caracteriza por ser la primera funcin que se ejecuta del programa. Todo programa ha de contener una y solo una funcin main. Toda funcin (incluida la funcin main) tiene el siguiente prototipo: Tipo NombreFuncin (parmetros){ [Instrucciones] } Como vemos, es necesario especificar el tipo de datos de salida de la funcin, as como los parmetros que va a manejar. Por ahora, no utilizaremos ni el tipo ni los parmetros de la funcin main (asignamos el tipo vaco void a la funcin). Es importante sealar es que las instrucciones asociadas a una funcin han de estar enmarcadas entre los smbolos { inicio de bloque) y } (fin de bloque). Estos smbolos determinan el mbito de la funcin. La instruccin especial return finaliza la ejecucin de la funcin, y en el caso de la funcin principal, tambin del programa. Dentro de la funcin principal distinguimos entre dos partes: la zona de declaracin de las variables a utilizar y la zona de las instrucciones del programa. Recordemos que para utilizar una variable es necesario declararla antes. 1.8.1. FUNCIN COUT. En la funcin cout<<;, la cadena de control, contiene los comandos de formato que le indican a cout<<; como debe visualizar el resto de los argumentos sobre la pantalla, as como la cantidad de argumentos existentes, recuerde que los argumentos deben ir separados por << signos menor que en la listas de argumentos: cout<<;: 1.8.2. FUNCIN CIN. La funcin cin>>, en realidad representa a una familia de funciones que escanean una entrada de datos con formato y cargan el resultado en los argumentos que se pasan por referencia a dicha funcin o funciones.
La funcin cin>> se puede utilizar para la introduccin de cualquier combinacin de valores numricos o caracteres.

1.8.3. CARACTERES DE BARRA INVERTIDA. El uso de las comillas simples para encerrar todas las constantes de caracteres funciona para la mayora de los caracteres imprimibles, pero algunos, como retorno de carro, es imposible de introducir por teclado. Por esta razn C++ proporciona las constantes especiales de caracteres de barra invertida. Cdigo
\b \f \n \r \t \ \ \0 \\ \v \a \N \x

CARACTERES DE BARRA INVERTIDA Significado


Retroceso Alimentacin de hoja Nueva lnea Retorno de carro Tabulador horizontal Doble comilla Simple comilla Nulo Barra invertida Tabulador vertical Alerta Constante octal ( n es constante octal) Constante hexadecimal

L.I. Daro de los ngeles Lara Castillo

Pgina 12 de12

Potrebbero piacerti anche