c++ corre

download c++ corre

of 143

Transcript of c++ corre

UNIVERSIDAD NACIONAL DEL CENTRO DEL PERU

TECNICAS DE PROGRAMACION ESTRUCTURADA: APLICACIONES CON C++

ABRAHAM GAMARRA MORENO DANIEL GAMARRA MORENO JUAN GAMARRA MORENO

CONTENIDOINTRODUCCIN......................................................................................................1 1.1.Construccin de un programa de computadora...........................................3 1.1.1.Anlisis del problema........................................................................4 1.1.2.Proceso de solucin..........................................................................4 1.1.3.Refinamiento del Programa..............................................................5 1.2.Caractersticas de los programas.................................................................5 1.2.1.Claridad.............................................................................................5 1.2.2.Eficiencia...........................................................................................5 1.2.3.Modularidad y estructuracin............................................................6 1.3.Objetos de un programa...............................................................................6 1.3.1.Constantes........................................................................................6 1.3.2.Variables...........................................................................................7 2.1.Definiciones..................................................................................................8 2.1.1.Algoritmo...........................................................................................8 2.1.2.Programacin modular......................................................................8 2.1.3.Programacin estructurada..............................................................9 2.2.Construccin de algoritmos........................................................................11 2.3.Representacin de algoritmos....................................................................11 2.3.1.Diagrama de Flujo...........................................................................11 2.3.2.Diagrama N-S.................................................................................12 2.3.3.Pseudocdigo.................................................................................12 3.1.Caractersticas............................................................................................13 3.2.Identificadores............................................................................................14 3.3.Palabras reservadas...................................................................................14 3.4.Estructura de un programa.........................................................................15

3.5.Comentarios...............................................................................................15 3.5.1.Comentario en ms de una linea....................................................15 3.5.2.comentario en una sola lnea..........................................................15 3.6.Bloques 16 3.7.Tipos de datos fundamentales...................................................................16 3.7.1.Tipo char.........................................................................................16 3.7.2.Tipos enteros..................................................................................16 3.7.3.Tipos de punto flotante...................................................................17 3.7.4.Tipo void..........................................................................................17 3.8.Modificadores de tipo.................................................................................17 3.9.Constantes..................................................................................................17 3.9.1.Constantes enteras.........................................................................17 3.9.2.Constante carcter (char)...............................................................18 3.9.3.Constante cadena...........................................................................18 3.9.4.Constante de punto flotante............................................................19 3.10.Definicin de constantes..........................................................................19 3.10.1.La directiva #define.......................................................................19 3.10.2.Const.............................................................................................19 3.11.Declaracin de variables..........................................................................19 3.12.Expresiones..............................................................................................20 3.13.Conversin de tipos..................................................................................21 4.1.Operadores aritmticos..............................................................................22 4.2.Operador de asignacin.............................................................................23 4.2.1.Igual (=)...........................................................................................24 4.2.2.Asignacin mltiple.........................................................................24 4.2.3.Asignacin relativa..........................................................................24

4.3.Operadores de relacin..............................................................................25 4.4.Operadores lgicos....................................................................................25 5.1.Salida/entrada estndar en c++.................................................................26 5.1.1.Salida con cout...............................................................................26 5.1.2.Entrada con cin...............................................................................27 6.1.Sentencia if.................................................................................................29 6.2.Sentencia switch.........................................................................................36 6.3.Sentencias repetitivas o bucles..................................................................38 6.4.Sentencia while..........................................................................................39 6.5.Sentencia do while.....................................................................................42 6.6.Sentencia for...............................................................................................43 6.7.Sentencia break..........................................................................................46 6.8.Sentencia continue.....................................................................................47 6.9.Sentencia goto............................................................................................47 6.10.Programas de aplicacin..........................................................................48 7.1.Subprogramas o subrutinas.......................................................................62 7.2.Cundo utilizar un subprograma?............................................................62 7.3.Diseo descendente (Top Down)...............................................................63 7.3.1.Ejemplo...........................................................................................63 7.4.Programacin modular...............................................................................66 7.4.1.Modulo............................................................................................66 7.4.2.Criterios a considerar en programacin modular...........................67 7.4.3.Fases de la programacin modular................................................67 7.5.Definicin de funciones..............................................................................67 7.5.1.Declaracin de prototipos...............................................................68 7.5.2.Llamada a una funcin:...................................................................69

7.5.3.Parmetros por valor......................................................................71 7.5.4.Parmetros por referencia..............................................................71 7.5.5.mbito de una variable...................................................................73 7.5.6.Variables locales.............................................................................74 7.5.7.Prametros formales y reales.........................................................74 7.5.8.Variables globales...........................................................................74 7.6.Programas de aplicacin............................................................................77 7.7.Funciones del sistema................................................................................81 7.7.1.Utilizacion de la directiva #include..................................................81 8.1.Arreglos unidimensionales: vectores..........................................................84 8.2.Arreglos bidimensionales: tablas / matrices...............................................90 9.1.Representacin de registros......................................................................96 9.2.Estructuras..................................................................................................96 9.3.Uniones 98 9.4.Operaciones con estructuras...................................................................100 9.4.1.Paso de estructuras a funciones..................................................100 9.4.2.Anidamiento de estructuras..........................................................102 9.5.Arreglos de registros................................................................................104 9.6.Programas de aplicacin.........................................................................105 10.1.Conceptos basicos.................................................................................110 10.2.Cadenas y caracteres.............................................................................112 10.3.Punteros a estructuras...........................................................................117 10.4.Listas enlazadas.....................................................................................117 10.5.Colas (fifo)..............................................................................................123 11.1.Organizacin de archivos.......................................................................126 11.2.Escritura en archivos:.............................................................................129

11.3.Lectura de archivos:...............................................................................129 11.4.Ubicacin del puntero para acceso directo............................................130 BIBLIOGRAFIA.....................................................................................................137

INTRODUCCIN

La programacin de computadoras en sus inicios fue concebida como un arte donde la inspiracin del programador era la base para escribir programas. Con el objetivo de disminuir el tiempo de elaboracin de programas, disminuir el costo de mantenimiento y mejorar el trabajo en equipo, se idearon tcnicas como la metodologa estructurada que a su vez dio origen al anlisis y diseo estructurado. En la actualidad existen nuevas tcnicas como la metodologa orientada a objetos, pero que en la prctica es una metodologa ms estructurada. Dentro de la diversidad de Lenguajes de Programacin el C/C++ sigue siendo un estndar universal por su portabilidad, es as que muchos compiladores comerciales han sido desarrollados en el C/C++. La mayora de la bibliografa del Lenguaje de Programacin C/C++ asume que el lector tiene conocimientos previos de programacin, lo que conlleva a una secuencia de aprendizaje donde primero se estudian cursos introductorios como Pascal y metodologa de la programacin estructurada, que forman las bases y luego se estudia el Lenguaje de Programacin C/C++. Nuestra experiencia en la enseanza de lenguajes de programacin no nos ha permitido recomendar un texto que contenga la metodologa y programacin en C/C++. Es por eso que el texto esta dirigido a lectores que necesitan mejorar su metodologa de programacin y elaborar programas en C++, encontrando en este texto ejercicios variados en forma yTECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++ GamarraMorenoADJ 1

complejidad. El texto contiene tcnicas de programacin estructurada con aplicaciones en Lenguaje C/C++. En los captulos I y II se desarrollan los conceptos bsicos sobre las tcnicas de programacin. Los captulos III, IV y V desarrollan las caractersticas del lenguaje de programacin C++. Las Sentencias de control, tratada en el capitulo VI, es la parte medular de cualquier programa y son estas que la que definen la secuencia de ejecucin de las sentencias del programa. En el capitulo VII, los programas grandes son divididos en pequeos programas llamados subprogramas y implementados como funciones, mediante las tcnicas del diseo descendente y la programacin modular se consigue una divisin optima del programa en subprogramas. Las estructuras de datos como los registros (en C/C++ struct) y arreglos (en ingls arrays) son desarrollados en el capitulo VIII. El capitulo VIII y IX tratan sobre los punteros y el uso de archivos de datos respectivamente. Esperamos que este material sea de gran ayuda aprendizaje en la programacin de computadoras. en su

LOS AUTORES.

TECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++

GamarraMorenoADJ

2

CAPITULO 1 PROGRAMACIN DE COMPUTADORAS1.1. CONSTRUCCIN COMPUTADORA DE UN PROGRAMA DE

Cualquier tarea que involucre el enfrentarse a un problema - no necesariamente la construccin de un programa de computadora -, involucra el tener una comprensin total del mismo y planear cuidadosamente cada uno de los pasos que intervienen en su solucin. La aparicin de la computadora se ha constituido como un potente medio por el cual podemos resolver muchos de nuestros problemas (cuando el problema lo permita), pero, cmo nos ayuda la computadora a resolver estos problemas?. Para ello empleamos un conjunto de instrucciones que pueda entender la computadora, a este conjunto de instrucciones le llamamos programa de computadora. Estos programas pueden desarrollarse en alguno o varios de los diferentes lenguajes de programacin existentes, tambin se pueden emplear una combinacin de estos. Obviamente debemos conocer las particularidades de cada lenguaje de programacin y emplearlo adecuadamente. En nuestro caso emplearemos el Lenguaje de Programacin C++ aplicado con Tcnicas deTECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++ GamarraMorenoADJ 3

Programacin Estructurada, ambos sern analizados con ms detalle en las secciones que siguen. El desarrollo del Programa de Computadora implica el seguimiento de varias etapas, los cuales pasamos a describir:

1.1.1. ANLISIS DEL PROBLEMAAqu damos el primer paso para el desarrollo de un Programa de Computadora, en esta parte se describe detalladamente el problema, determinando lo siguiente: Datos de entrada En el cual se especifica los datos proporcionados por el problema en cuestin. Algunas veces se tendrn que seleccionar entre muchos datos, aquellos datos importantes para obtener lo que se requiere. Datos de salida El programa que se elabora para solucionar el problema generar un resultado (lo que requerimos), qu resultado?. Evidentemente, esto tambin lo encontramos al analizar el problema, de esta forma establecemos los datos que se deben obtener al aplicar el programa.

1.1.2. PROCESO DE SOLUCINLuego del anlisis estableceremos la relacin existente entre los datos de entrada y los datos de salida. Puesto que si el problema es factible de ser solucionado recurriendo a un programa de computadora, los datos de entrada deben sustentar una relacin con los datos de salida a travs de un algoritmo que ser la solucin a nuestro problema. Un algoritmo es simplemente el conjunto de acciones que se debern establecer para solucionar nuestro problema. Este algoritmo - el Captulo Dos trata en detalle acerca de los algoritmos puede ser presentado de diversas maneras, unaTECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++ GamarraMorenoADJ 4

de sus formas de presentacin es a travs de cdigo en un lenguaje de programacin.

1.1.3. REFINAMIENTO DEL PROGRAMAEn esta etapa sometemos al programa a una serie de pruebas para determinar que cambios se podran realizar al programa para mejorar la funcionalidad del mismo, para este fin nos valemos de un grupo de datos de prueba que en muchas ocasiones nos permiten encontrar ciertos detalles que habamos dejado sueltos.

1.2. CARACTERSTICAS DE LOS PROGRAMASPara llegar a la solucin de un problema podemos utilizar varios mtodos de solucin, o lo que es lo mismo, varios algoritmos. Para seleccionar el algoritmo correcto debemos tener en cuenta ciertas caractersticas inherentes a estos algoritmos, que pueden estar representados en la forma de un programa de computadora. He aqu algunas de las caractersticas que podemos mencionar para este programa de computadora.

1.2.1. CLARIDADHa de ser fcil de leer y entender, en lo posible se debe emplear el algoritmo ms simple, de entre las mltiples opciones existentes. Un modo de mejora en la claridad del programa, es el de disponer comentarios en el programa, esto permite adicionalmente; la facilidad en el mantenimiento, las modificaciones y actualizaciones cuando sea necesario.

1.2.2. EFICIENCIASe busca hasta donde se menor cantidad de acciones el programa, aprovechando pueda ofrecer el sistema pueda, emplear la o instrucciones en los recursos que y la computadora,

TECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++

GamarraMorenoADJ

5

debe ser fcilmente adaptado a otro lenguaje de programacin.

1.2.3. MODULARIDAD Y ESTRUCTURACINPuede estar subdividido en bloques o mdulos, cada mdulo realiza una parte del trabajo total. Los mdulos deben usar las tcnicas de la Programacin Estructurada para facilitar la verificacin, depuracin y mantenimiento del programa.

1.3. OBJETOS DE UN PROGRAMASe consideran como objetos de un programa a aquellos elementos que son utilizados para almacenar y representar los datos ha emplearse en un programa, tienen las siguientes caractersticas: Identificador: Es el nombre que identificara al objeto. Ejemplo: suma, var1, pi, etc. Tipo: Es el conjunto de valores que puede tomar, el C++ tiene varios tipos de datos, el tipo de dato determina el conjunto de valores posibles para el objeto. Valor: Dentro del conjunto de valores que puede tomar se le asigna uno de ellos en un instante. Ejemplo: a = 5. Los objetos Variables. los podemos dividir en Constantes y

1.3.1. CONSTANTESEstos objetos tienen valores fijos y que no pueden ser variados a lo largo de la ejecucin de un programa. Se tiene aquellas que son predefinidas y definitivamente sus valores no pueden ser cambiados. Por ejemplo: __time__ significa la hora en el que fue compilado el archivo fuente.

TECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++

GamarraMorenoADJ

6

En el C++ tambin existen lo que se ha dado por llamar variables constantes, aunque realmente sean las constantes que define el propio programador.

1.3.2. VARIABLESSon objetos cuyos valores tienen posibilidad de ser cambiados durante ejecucin del programa. Ejemplo: int declara una variable a de tipo int. la la a;

TECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++

GamarraMorenoADJ

7

CAPITULO 2 ALGORITMOS2.1. DEFINICIONES2.1.1. ALGORITMOEl algoritmo tal como lo vimos inicialmente, es el conjunto de acciones que se debern realizar para resolver un problema. Si este problema ha de ser resuelto por una computadora, entonces el algoritmo es el conjunto de instrucciones que debern ser realizados por la computadora. El algoritmo empleado debe indicar el orden de realizacin de cada instruccin, el nmero de instrucciones ser finito. Se debe obtener los mismos resultados, cuando los datos de entrada son los mismos. Para la construccin de los algoritmos emplearemos; la Programacin Modular y una Tcnica de Programacin Estructurada.

2.1.2. PROGRAMACIN MODULARExiste una regla de oro en la programacin, divide y vencers. La Programacin ModularTECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++ GamarraMorenoADJ 8

es la aplicacin de esta regla, divide el programa en mdulos, en el caso del C++ estos mdulos estn representados en la forma de funciones, ya que el C++ es un lenguaje funcional, es decir solamente emplea funciones en la construccin de un programa. Estos mdulos reducen la complejidad de un programa, al permitir que cada mdulo pueda ser analizado y perfeccionado casi independientemente del resto de los mdulos, no totalmente independiente porque no se debe perder la visin global del programa. Los mdulos son interdependientes entre s; uno de ellos, el mdulo principal, controla y relaciona los dems mdulos. El mdulo principal, tambin es conocido como programa principal; en el caso del C++ esta viene a ser la funcin principal o funcin main(). El resto de mdulos se conocen como procedimientos o subprogramas; en el caso del C++ se denominan simplemente funciones. Un mdulo es un conjunto de instrucciones ordenadas, los cuales pueden ser referenciados empleando el nombre que se le asigna al mdulo. Cabe mencionar que, si el programa no es muy complejo no ser necesario crear ms de un mdulo, en este caso no se ha dividido el programa.

2.1.3. PROGRAMACIN ESTRUCTURADAYa sea que el programa cuente con uno o varios mdulos, en nuestro caso del C++, con una o ms funciones, tendremos que emplear la tcnica de programacin estructurada en el mdulo o los mdulos. La Programacin Estructurada, es una tcnica de programacin existen otras- que emplea en el diseo de los mdulos: estructuras de control, recursos abstractos y un diseo descendente.

TECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++

GamarraMorenoADJ

9

Estructuras de control Son tres tipos de estructuras que al utilizarse individualmente o en forma combinada pueden resolver cualquier problema de programacin con un solo punto de entrada y de salida. Las estructuras son las siguientes: Estructura secuencial, el cual ejecuta el conjunto de instrucciones sucesivamente una a continuacin de otra, sin omitir ninguna. Estructuras selectivas, son aquellas que seleccionan una alternativa puede ser una o varias instrucciones- a realizar, la seleccin depende del valor de una condicin. Estas a su vez se dividen en estructuras selectiva simple, doble y mltiple. Estructuras repetitivas, son aqullas en le que una instruccin o conjunto de instrucciones se repiten una cantidad de veces determinada por una condicin. Tenemos las siguientes, estructura repetitiva mientras, hacer mientras, desde hasta (para). Recursos abstractos El conjunto de instrucciones a seguir es un recurso abstracto, pues es independiente del tipo de computadora a emplear, as como tambin del lenguaje de programacin. Estas instrucciones deben ser implementadas con pocos o casi ningn cambio, en un lenguaje de programacin especfico para cualquier tipo de computadora. Metodologa Descendente de Arriba hacia Abajo Esta metodologa conocida tambin como top_down coloca las instrucciones en una estructura jerrquica, teniendo que algunas de estas instrucciones se encuentren en niveles respecto a otros. Dos instrucciones de niveles inmediatos se relacionan a travs de sus entradas y salidas. En cada nivel se detalla como se utilizan los datos que permitir la resolucin delTECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++ GamarraMorenoADJ 10

2.2. CONSTRUCCIN DE ALGORITMOS

problema planteado. Estos niveles muchas veces representan mdulos de programas.

Con el conocimiento acerca de los datos de entrada y salida, se puede iniciar la construccin del algoritmo. Para construir un algoritmo se emplea un diseo descendente, por lo tanto el algoritmo puede emplear mdulos de programa que sern fciles de analizar. Cada uno de estos mdulos pueden modificados constantemente de tal manera que se ajusten cada vez ms a las necesidades de nuestro programa. Luego es necesario representar el algoritmo a travs de algunas herramientas que mencionaremos en la siguiente seccin.

2.3. REPRESENTACIN DE ALGORITMOSEl algoritmo puede ser representado de diversas maneras, para ello emplearemos algunas de las denominadas herramientas de programacin: Diagrama de flujo, Diagrama N-S, Pseudocdigo. La representacin del algoritmo recurriendo al cdigo de un Lenguaje de Programacin tal como el C++, hace que se tenga que conocer necesariamente la sintaxis y caractersticas de este, por ello en forma general e independientemente del lenguaje de programacin, es mejor representarlo empleando algunas de estas herramientas. En este libro orientaremos el diseo del algoritmo para su representacin en el C++.

2.3.1. DIAGRAMA DE FLUJOEs una tcnica que sirve para representar un algoritmo a travs de smbolos y representa el orden de la secuencia de los algoritmos a travs de lneas de flujo, representadas como flechas. Existen unos pocos smbolos denominados principales que permite representar un algoritmo en forma general, pero adems se cuenta con un conjunto de smbolosTECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++ GamarraMorenoADJ 11

adicionales que se emplean para situaciones especificas.

2.3.2. DIAGRAMA N-SEl diagrama Nassi Schneiderman, para abreviar diagrama N-S, cumple tambin la funcin de representar un algoritmo, para ello hace uso de cajas contiguas, dispuestas uno tras de otros. Igual que el anterior, permite representar todas las instrucciones que deben ir en un programa.

2.3.3. PSEUDOCDIGORepresenta al algoritmo, en forma de palabras y frases del lenguaje natural, en nuestro caso el espaol. El Pseudocdigo a de estar sujeto a ciertas reglas que mencionaremos oportunamente, de tal manera que permitan expresar nuestro algoritmo de manera fcil y flexible.

TECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++

GamarraMorenoADJ 12

CAPITULO 3 CARACTERISTICAS DEL C++3.1. CARACTERSTICASEl lenguaje de programacin C++ se emplea para escribir sistemas de operativos, compiladores, programas ensambladores, programas de bases de datos, sistemas expertos, etc. Y sus caractersticas son: Es de propsito general;

Es un lenguaje de alto nivel como: PASCAL, BASIC, etc; Es un lenguaje estructurado, pues contiene las estructuras bsicas de composicin, seleccin y lazo o ciclo con entrada nica; Se le considera lenguaje de nivel medio, esto es, entre lenguaje ensamblador y de alto nivel, pues permite el manejo de datos a nivel de bits, bytes y direcciones; Permite la programacin modular: se pueden escribir programas independientes (mdulos) constituyendo libreras de programas para ser utilizados posteriormente;

TECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++

GamarraMorenoADJ 13

Es transportable: los programas escritos en este lenguaje pueden ser ejecutados bajo diferentes plataformas (Sistemas Operativos).

3.2. IDENTIFICADORESUn identificador es el nombre que se da a un programa, variable, constantes, etiqueta, funcin, clase, estructura, etc. Su longitud significativa por defecto es de 32 caracteres y debe estar formado por: El primer carcter debe ser una letra o el carcter subrayado (_), Los siguientes caracteres al primero pueden ser letras, dgitos, o el carcter subrayado (no esta permitido los espacios), El lenguaje C++ diferencia entre maysculas y minsculas en los identificadores, es decir los identificadores AREA y area son diferentes, y No se deben usar como identificadores las palabras reservadas por el lenguaje (ejemplo: break, case, char, int, etc.)

3.3. PALABRAS RESERVADASLas palabras reservadas forman parte del lenguaje de programacin C++ y entre algunas de las palabras reservadas tenemos: Asm cdecl continue Do enum far Friend inline long Pascal register short static this virtual Auto Char _cs Double _es _fastcall Goto Int Near Private Return Signed Struct typedef void Break Class default _ds Extern float huge Interrupt new protected _saveregs sizeof switch union volatile case const delete else _export for if _loadds operator public _seg _ss template unsigned while

TECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++

GamarraMorenoADJ 14

3.4. ESTRUCTURA DE UN PROGRAMAEl Lenguaje de programacin C++ esta formado por funciones y estos a su vez estn formados por bloques, la funcin main es la encargada de llamar a las otras funciones. // Directivas y declaraciones main(){ //Directivas declaraciones //Sentencias } funcin_1(){ //Directivas declaraciones //Sentencias } //Ms funciones Las Directivas son orden de programa que no se traducen a lenguaje de maquina porque es un mensaje para el compilador (o preprocesador), algunas directivas son: #include, #pragma, #define, #undef, etc. Las declaraciones son sentencias que especifican atributos (identificador, tipo de datos, alcance, tiempo de vida) de una variable o una funcin. La declaracin de una funcin se conoce como prototipo.

3.5. COMENTARIOSLos comentarios son ignorados por el compilador y se utilizan para autodocumentar los programas y C++ soporta dos tipos:

3.5.1. COMENTARIO EN MS DE UNA LINEA/* Comentario */ El compilador ignora todo lo que se encuentra entre /* y */.

3.5.2. COMENTARIO EN UNA SOLA LNEA// Comentario

TECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++

GamarraMorenoADJ 15

El compilador ignora todo lo que viene despus de // hasta el final de la lnea.

3.6. BLOQUESCualquier grupo de instrucciones puede formar un bloque y ser tratado como una instruccin simple, para lo cual basta encerrarlo entre llaves. { //Sentencias } Se pueden anidar como se muestra a continuacin {//Comienzo de bloque {//Comienzo de sub-bloque .. } //Fin de sub-bloque }//Fin de bloque

3.7. TIPOS DE DATOS FUNDAMENTALES3.7.1. TIPO CHARSon datos de un byte de longitud. Las variables de este tipo pueden tener signo (por defecto) o no tener signo, su rango es de -128 a 127 y de 0 a 255, respectivamente. Puede almacenar codigos ASCII (de: letras, digitos, signos de puntuacion, simbolos especiales, etc. Este tipo de dato internamente como un nmero entero. es tratado

3.7.2. TIPOS ENTEROSGuardan nmeros enteros positivos o negativos o cero, los tipos enteros son: TIPO Unsigned char Char Enum Unsigned int Short int Int Unsigned long LONGITUD 8 bits 8 bits 16 bits 16 bits 16 bits 16 bits 32 bits RANGO 0 a 255 -128 a 127 -32,768 a 32,767 0 a 65,535 -32,768 a 32,767 -32,768 a 32,767 0 a 4,294,967,295GamarraMorenoADJ 16

TECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++

TIPO Long

LONGITUD RANGO 32 bits -2,147,483,648 a 2,147,483,647

3.7.3. TIPOS DE PUNTO FLOTANTEGuardan nmeros positivos, negativos o cero con parte fraccionaria o punto decimal. TIPO Float Double Long double LONGITUD 32 bits 64 bits 80 bits RANGO 3.4*10-38 a 3.4*1038) 1.7*10-308) a 1.7*10308 3.4*10-4932 a 1.1*104932

3.7.4. TIPO VOIDEs un tipo de dato que indica vaco (nulo). Cuando una funcin no devuelve un valor la funcin es de tipo void.

3.8. MODIFICADORES DE TIPOLos modificadores de tipo son: signed, unsigned, short, long. Alteran el rango del tipo. Todos los modificadores son aplicables al tipo int. Los modificadores signed, unsigned puede ser aplicado al tipo char. Cuando el tipo es omitido entonces int es asumido. El modificador long puede ser aplicado al tipo double. Ejemplos: long x; /* long int */ unsigned char car; /* Caracter sin signo */ unsigned long int; /* Se puede omitir int, porque el tipo por defecto es int */

3.9. CONSTANTESSon valores numricos, caracteres o cadenas que no ocupa memoria fuera del cdigo del programa.

3.9.1. CONSTANTES ENTERASSon constantes sin parte fraccionaria y puede estar en sistema de numeracin octal, decimalTECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++ GamarraMorenoADJ 17

o hexadecimal; por decimal: 34, 5678.

ejemplo

en

el

sistema

Constante hexadecimal Las constantes Hexadecimales y estn precedidas por 0x, utiliza los dgitos del 0..9 y las letras de A..F (para representar valores del 10..15); por ejemplo: 0xFF, 0x12. Constante octal Son constantes en el sistema de numeracin octal y estn precedidos por 0 (cero), utiliza los dgitos del 0..7; por ejemplo: 011, 004.

3.9.2. CONSTANTE CARCTER (CHAR)Es una constante que esta formado por un solo carcter encerrado entre comillas o una secuencia de escape; por ejemplo: '\n','A'. Las secuencias utilizar son: S.ESC \a \b \f \n \t \" \r \\ \? \DDD \xHHH \0 \' \v de escape que se pueden

CARACTER DE SALIDA alerta (beep) Retroceso salto de pagina (alimentacin) salto de lnea tabulador horizontal comillas dobles retorno de carro Backslash Signo de interrogacin Cdigo octal de un carcter Cdigo hexadecimal de un carcter carcter nulo comilla simple Tabulacin vertical

3.9.3. CONSTANTE CADENALa constante cadena es un conjunto de caracteres y/o secuencias de escape que estn encerrados entre comillas dobles. "A" es una cadena y 'A' es un carcter.TECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++ GamarraMorenoADJ 18

3.9.4. CONSTANTE DE PUNTO FLOTANTESon constantes fraccionaria; por -4.3E+38. numricas ejemplo: con 12.48, parte .24,

3.10. DEFINICIN DE CONSTANTESUna constante no puede cambiar su valor cuando el programa esta en ejecucin. Se define utilizando:

3.10.1.

LA DIRECTIVA #DEFINE

#define Ejemplo: #define NOTA_MAX 20 #define ENTER 0x13 #define titulo "TURBO C"

3.10.2.

CONST

const =; Ejemplo: const NOTA_MAX=20;

3.11. DECLARACIN DE VARIABLESToda variable para ser usada por un programa debe ser antes declarada y el formato a utilizar es: [] [];

< almacenamiento>: auto, static, register, extern. Si se omite asume auto. : Indica los nombres de las variables a definir y estn separados por comas. Ejemplos: int contador=0; float sueldo, descuento, igv=0.18;

TECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++

GamarraMorenoADJ 19

3.12. EXPRESIONESSon valores, constantes, variables, llamada a una funcin o una combinaciones de los anteriores. Cuando se mezclan variables de diferentes tipos en una expresin, C++ las convierte a un mismo tipo. C++ convertir todos los operandos al tipo ms grande segn: Todos los tipos char, short int se convierten a int. Todos los tipos float a double. Para todo par de operandos, lo siguiente ocurre en secuencia: a) b) c) d) EJEMPLO char ch; int i; float f; double d; r=(ch / i) int int double double En la conversin, el tipo char ch es convertido a int y el float f es convertido a double. Luego segn los operandos se van modificando los tipos hasta obtener double. Si uno de los operandos es un long double el otro se convierte a long double. Si uno de los operandos es double el otro se convierte a double. Si uno de los operandos es long el otro se convierte a long. Si uno de los operandos es unsigned el otro se convierte a unsigned.

+

(f

*

d)

-

(f

+

i);

double at double

double double double

TECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++

GamarraMorenoADJ 20

3.13. CONVERSIN DE TIPOSPara forzar el tipo de una expresin utilice: (tipo) Ejemplo: float res; int num=13; i=(float) num/2; /* i toma el valor de 6.5 */ /* Primero num se cambia al tipo float luego efectua la operacin */ y

TECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++

GamarraMorenoADJ 21

CAPITULO 4 OPERADORES BSICOS4.1. OPERADORES ARITMTICOSLos operandos de mayor precedencia se ejecutan antes que los de menor precedencia. Por ejemplo: 4+5*214 Los operandos con igual precedencia se ejecutan de izquierda a derecha. Por ejemplo: 5*4/2/25 OPERADOR ( ) + ++ -* / % + DESCRIPCION Agrupacin Menos unitario Ms unitario Incremento Decremento Multiplicacin Divisin Modulo Suma Resta EJEMPLO (3+5) -3 +3 a++ a-4*3 4/3 4%3 4+3 4-3 OBSERV. PRECEDENCIA 1 2 2 2 2 3 3 3 5 5

a=a+1 a=a-1

Cuando el operador de divisin se aplica a un operando de tipo entero el resultado es de tipo entero, ejemplo 3/2 es igual a 1. Para obtener la parte fraccionariaTECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++ GamarraMorenoADJ 22

es necesario que uno de los operandos sea de tipo flotante, ejemplo 3/2.0 3.0/2 es igual a 1.5. El operador modulo es equivalente a decir el residuo de dividir el primer operando entre el segundo, ejemplo 5%2 es igual a 1. Slo es aplicado a datos de tipo entero. El operador ++ o -- puede ir delante o despus del operando. Cuando va delante del operando primero incrementa o decrementa y luego utiliza el nuevo valor del operando. Cuando va despus del operando primero utiliza el valor del operando y luego lo incrementa o decrementa. Ejemplo del uso de ++ antes del operando: a=3; x=++a+3; a toma el valor de 4, a este nuevo valor se le suma 3, por lo tanto x=7. Es lnea es equivalente a: a = a + 1; x = + + a + 3; x = a + 3; Ejemplo del uso de ++ despus del operando: a=3; y=a+++2; // y toma el valor del resultado de a (utilizando su valor 3) + 2 igual a 5, luego a toma el valor de 4. Su equivalencia es: y = a + 2; y = a + + + 2; a = a + 1;

4.2. OPERADOR DE ASIGNACINEstos operadores son utilizados para asignar un valor a una variable y pueden ser:

TECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++

GamarraMorenoADJ 23

4.2.1. IGUAL (=)Variable = ; El valor puede ser una variable o una expresin. Ejemplos: saldo = 567.89; car = A; edad = 20; constante, una

4.2.2. ASIGNACIN MLTIPLEPermite asignar un valor o expresin a ms de una variable. variable_1=variable_2= =variable_N=expresin; Ejemplo: x=y=3*2;

4.2.3. ASIGNACIN RELATIVAvariable = Expresin El operador puede ser cualquier aritmtico y es equivalente a: variable = variable operador expresin; OPERADOR += -= *= /= %= Ejemplo: x += 5; y -= 3; z = 2; //Equivalente a x=x+5; //Equivalente a y=y+3; //Equivalente a z=z*2; EJEMPLO x+=5; x-=5; x*=5; x/=5; x%=5; OBSERVACIONES x=x+5; x=x-5; x=x*5; x=x/5; x=x%5; operador

TECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++

GamarraMorenoADJ 24

4.3. OPERADORES DE RELACINLos operadores relacionales dan como resultado verdadero o falso. En "C++" todo numero diferente de cero es verdadero, y cero es equivalente a falso. OPERADOR > >= < 12 4>=12 412)&&(8>12) (4>12)||(8>12) PRECEDENCIA 1 2 3

El resultado de los operadores lgicos se resume en la siguiente tabla: p 1 1 0 0 q 1 0 1 0 !p 0 0 1 1 !q 0 1 0 1 p&&q 1 0 0 0 p||q 1 1 1 0

TECNICAS DE PROGRAMACIN ESTRUCTURADA: Aplicaciones en C++

GamarraMorenoADJ 25

CAPITULO 5 SALIDA / ENTRADA ESTNDAR5.1. SALIDA/ENTRADA ESTNDAR EN C++5.1.1. SALIDA CON coutEl flujo de salida se representa por el identificador cout, que es en realidad un objeto. El operador y; suma=x+y; cout