Está en la página 1de 16

20/2/2014

El diseo del programa C + + de programacin incluyendo las estructuras de datos 6ed.pdf

Una visin general de Computadoras y P ROGRAMACIN L os idiomas


En este captulo, usted podr: Aprenda acerca de los diferentes tipos de ordenadores Explora los componentes de hardware y software de un sistema informtico Ms informacin sobre el lenguaje de una computadora Aprenda acerca de la evolucin de los lenguajes de programacin Examinar los lenguajes de programacin de alto nivel Descubra lo que un compilador es y para qu sirve Examinar un programa en C + Explora cmo se procesa un programa en C + Aprenda lo que es un algoritmo y explorar las tcnicas de resolucin de problemas Hazte consciente de diseo estructurado y metodologas de programacin de diseo orientados a objetos Tomar conciencia de estndar de C + + y ANSI / ISO C + + estndar

Introduccin
file:///D:/Capitulo%201.html 1/16

20/2/2014

El diseo del programa C + + de programacin incluyendo las estructuras de datos 6ed.pdf

Trminos como'' la Internet ", que no estaban familiarizados Hace tan slo 20 aos son ahora comunes. Los estudiantes de la escuela primaria con regularidad" resaca "de la Internet y el uso de computadoras para disear sus proyectos de aula. Muchas personas utilizan Internet para buscar informacin y para comunicarse con otros. Todo esto es posible gracias a la disponibilidad de los diferentes programas informticos, tambin conocidos como programas de ordenador. Sin el software, un ordenador no sirve para nada. El software se desarrolla mediante el uso de lenguajes de programacin. El lenguaje de programacin C + + es especialmente adecuado para el desarrollo de software para realizar tareas especficas. Nuestro principal objetivo es ayudar a aprender a escribir programas en el lenguaje de programacin C + +. Antes de empezar la programacin, es til para entender algunos de los trminos bsicos y los diferentes componentes de la computadora ofa. Comenzamos con una description global de la historia ofcomputers.

Una breve resea de la historia de los ordenadores


El primer dispositivo conocido para llevar a cabo los clculos fue el baco. El baco fue inventado en Asia, pero fue utilizada en la antigua Babilonia, China, y en toda Europa hasta la Baja Edad Media. El baco utiliza un sistema de perlas de deslizamiento en un bastidor para la adicin y la resta. En 1642, el filsofo y matemtico francs Blaise Pascal invent el dispositivo de clculo llamado Pascaline. Tena ocho diales mviles sobre ruedas y puede calcular sumas de hasta ocho cifras largas. Tanto el baco y Pascaline podan realizar slo las operaciones de suma y resta. Ms tarde en el siglo 17, Gottfried von Leibniz invent un dispositivo que fue capaz de sumar, restar, multiplicar y dividir. En 1819, Joseph Jacquard, un tejedor francs, descubri que las instrucciones para tejer sus telares se podran almacenar en tarjetas con agujeros en ellos. Mientras que las tarjetas se movieron a travs de la telar en secuencia, las agujas pasan a travs de los agujeros y recogidos roscas del color y la textura correcta. Un tejedor podra reorganizar las cartas y cambiar el patrn que se est tejiendo. En esencia, las tarjetas de programar un telar para producir patrones en la tela. La industria del tejido puede parecer que tienen poco en comn con la industria de la computacin. Sin embargo, la idea ofstoring informacin por los agujeros de perforacin en una tarjeta demostr ser ofgreat importancia en los ofcomputers de desarrollo posteriores. A principios y mediados de la dcada de 1800, Charles Babbage, matemtico Ingls y cientfico fsico, dise dos mquinas de calcular: el motor de la diferencia y la mquina analtica. El motor de diferencia podra realizar operaciones complejas, tales como elevar al cuadrado nmeros automticamente. Babbage construy un prototipo de la mquina diferencial, pero no construy el dispositivo real. La primera mquina diferencial completa se termin en Londres en 2002, 153 aos despus de que fue diseado. Se compone de 8.000 piezas, pesa cinco toneladas y mide 11 pies de largo. Una rplica Ofthe mquina diferencial fue terminada en 2008 y est en exhibicin en el Museo de Historia de ordenador en Mountain View, California ( http://www.computerhistory.org/ babbage /). La mayor parte del trabajo de Babbage se conoce a travs de los escritos de su colega Ada Augusta, Condesa de Lovelace. Augusta es considerada la primera programadora de computadoras. A finales del siglo 19, los funcionarios del Censo de EE.UU. necesitaban ayuda para tabular precisin los datos del censo. Herman Hollerith invent una mquina calculadora que funcionaba con electricidad y utiliza tarjetas perforadas para almacenar datos. Mquina de Hollerith fue inmensamente exitosa. Hollerith fund la empresa Tabulating Machine, que ms tarde se convirti en la corporacin informtica y la tecnologa conocida como IBM. La primera mquina de la computadora-como fue el Mark I. Fue construido en 1944, conjuntamente por IBM y la Universidad de Harvard, bajo la direccin ofHoward Aiken. Tarjetas perforadas se utilizan para alimentar los datos en la mquina. El Mark I fue de 52 pies de largo, pesaba 50 toneladas, y tena 750.000 piezas. En 1946, el ENIAC (Electronic Numerical Integrator y Calculator) fue construido en la Universidad de Pennsylvania. Contena 18.000 tubos de vaco y pesaba unas 30 toneladas. Los ordenadores que conocemos hoy en da usan las reglas de diseo dadas por John von Neumann en la dcada de 1940. Su diseo incluye componentes tales como una unidad aritmtica lgica, una unidad de control, memoria y dispositivos de entrada / salida. Estos componentes se describen en la siguiente seccin. Diseo por ordenador de Von Neumann hace posible almacenar las instrucciones de programacin y los datos en el mismo espacio de memoria. En 1951, la UNIVAC (Universal Automatic Computer) fue construida y vendida a la Oficina del Censo de EE.UU.. En 1956, la invencin de los transistores se tradujo en computadoras con consumo eficiente de energa ms pequeas, ms rpidas, ms fiables, y ms. Esta poca tambin vio el surgimiento de la industria de desarrollo de software, con la introduccin de FORTRAN y COBOL, dos lenguajes de programacin anticipada. En el siguiente avance tecnolgico importante, transistores fueron reemplazados por pequeos circuitos integrados o chips de''.'' Chips son ms pequeas y ms barato que los transistores y pueden contener miles de circuitos en un nico chip. Dan computadoras tremenda velocidad de procesamiento. En 1970, el microprocesador, toda una CPU en un solo chip, se invent. En 1977, Stephen Wozniak y Steven Jobs disearon y construyeron la primera computadora de Apple en su garaje. En 1981, IBM introdujo su computadora personal (PC). En la dcada de 1980, los clones del PC IBM hizo la computadora personal an ms asequible. A mediados de la dcada de 1990, la gente de muchos sectores de la vida podan pagarlos. Las computadoras son cada vez ms rpido y menos costoso que la tecnologa avanza. Las computadoras de hoy en da son de gran alcance, confiable y fcil de usar. Pueden aceptar instrucciones de la palabra hablada y de imitar el razonamiento humano a travs de la inteligencia artificial. Los sistemas expertos ayudan a los mdicos a hacer diagnsticos. Aplicaciones de computacin mvil estn creciendo significativamente. El uso de dispositivos de mano, los repartidores pueden acceder a los satlites de posicionamiento global (GPS) para verificar la ubicacin de los clientes para las recogidas y entregas. Los telfonos celulares le permiten verificar su direccin de e-mail, hacer reservas de avin, ver cmo las poblaciones se estn realizando, y acceder a sus cuentas bancarias. Aunque hay varias categoras de computadoras, tales como la unidad central, de tamao mediano y micro, todos los equipos que comparten algunos elementos bsicos, que se describen en la siguiente seccin.

Elementos de un sistema informtico


Una computadora es un dispositivo capaz comandos ofperforming electrnicos. Los comandos bsicos que un equipo realiza son de entrada (obtener datos), de salida (resultado display), el almacenamiento y ofarithmetic rendimiento y operaciones lgicas. Hay dos componentes principales OFA sistema informtico: hardware y software. En las siguientes secciones, le damos una breve descripcin de estos componentes. Veamos primero el hardware.

file:///D:/Capitulo%201.html

2/16

20/2/2014

El diseo del programa C + + de programacin incluyendo las estructuras de datos 6ed.pdf

Hardware
Componentes de hardware principales incluyen la unidad central de procesamiento (CPU), memoria principal (mm), tambin llamada memoria de acceso aleatorio (RAM); dispositivos de entrada / salida, y almacenamiento secundario. Algunos ejemplos de dispositivos de entrada son el teclado, el ratn y el almacenamiento secundario. Ejemplos de dispositivos de salida son la pantalla, la impresora y el almacenamiento secundario. Echemos un vistazo a cada uno de estos componentes en mayor detalle.

Unidad central de procesamiento y la memoria principal


La unidad central de procesamiento es el cerebro'''' de la computadora y la pieza ms costosa de hardware en un ordenador. El ms poderoso de la CPU, ms rpido el equipo. Las operaciones aritmticas y lgicas se llevan a cabo dentro de la CPU. La figura 1-1 (a) muestra algunos componentes de hardware.
F IG UR A 1-1

Componentes de hardware de un ordenador y la memoria principal

La memoria principal, o memoria de acceso aleatorio, se conecta directamente a la CPU. Todos los programas deben ser cargados en la memoria principal antes de que puedan ser ejecutados. Del mismo modo, todos los datos deben ser llevados en la memoria principal antes de que un programa puede manipularla. Cuando el ordenador est apagado, todo en la memoria principal se pierde. La memoria principal es una secuencia ordenada de clulas, llamadas clulas de memoria. Cada celda tiene una ubicacin nica en la memoria principal, llamada la direccin de la celda. Estas direcciones ayudan a acceder a la informacin almacenada en la clula. La figura 1-1 (b) muestra la memoria principal con algunos datos.

Computadoras de hoy vienen con la memoria principal que consiste de millones a miles de millones de clulas. Aunque la figura 1-1 (b) muestra los datos almacenados en las clulas, el contenido de una clula puede ser o bien una instruccin de programacin o datos. Por otra parte, esta figura muestra los datos como nmeros y letras. Sin embargo, como se explica ms adelante en este captulo, la memoria principal almacena todo como secuencias de 0s y 1s. Las direcciones de memoria se expresan tambin como secuencias de 0s y 1s.

Almacenamiento secundario
Dado que los programas y los datos deben ser almacenados en la memoria principal antes de procesar y porque todo en la memoria principal se pierde cuando el ordenador est apagado, la informacin almacenada en la memoria principal debe ser transferido a algn otro dispositivo de almacenamiento permanente. El dispositivo que almacena la informacin de forma permanente (a menos que el dispositivo se vuelve inutilizable o cambiar la informacin de reescritura) se llama de almacenamiento secundario. Para ser capaz de transferir informacin desde la memoria principal a un almacenamiento secundario, estos componentes deben estar conectados directamente entre s. Ejemplos de almacenamiento secundario son los discos duros, unidades flash, disquetes, discos ZIP, CD-ROMs, y cintas.

Dispositivos de Entrada / Salida


Para un equipo para realizar una tarea til, debe ser capaz de tomar en los datos y programas y mostrar los resultados ofcalculations. Los dispositivos que se alimentan los datos y programas en las computadoras se llaman dispositivos de entrada. El teclado, el ratn y el almacenamiento secundario son ejemplos de dispositivos de entrada. Los dispositivos que el sistema utiliza para mostrar los resultados se llaman dispositivos de salida. monitor, la impresora, y de almacenamiento secundario son ejemplos de dispositivos de salida. La Figura 1-2 muestra algunos de los dispositivos de entrada y salida.

file:///D:/Capitulo%201.html

3/16

20/2/2014

El diseo del programa C + + de programacin incluyendo las estructuras de datos 6ed.pdf

D i s p o s i t i v o sL o sd i s p o s i t i v o sd ee n t r a d as a l i d a
F IG UR A 1-2

Algunos dispositivos de entrada y salida

Software
Software son programas escritos para realizar tareas especficas. Por ejemplo, los procesadores de texto son los programas que se utilizan para escribir cartas, documentos, e incluso libros. Todo el software est escrito en los lenguajes de programacin. Hay dos tipos de programas: programas del sistema y programas de aplicacin. Los programas del sistema de control de la computadora. El programa del sistema que se carga por primera vez cuando usted enciende su PC se llama el sistema operativo. Sin un sistema operativo, el ordenador es intil. El sistema operativo supervisa la actividad general del equipo y proporciona servicios. Algunos ofthese servicios incluyen la gestin de memoria, las actividades de entrada / salida, y la gestin del almacenamiento. El sistema operativo tiene un programa especial que organiza el almacenamiento secundario para que pueda acceder cmodamente a la informacin. Los programas de aplicacin realizan una tarea especfica. Los procesadores de texto, hojas de clculo, y los juegos son ejemplos de programas de aplicacin. El sistema operativo es el programa que ejecuta los programas de aplicacin.

La lengua de un ordenador
Cuando presiona Aen el teclado, el ordenador muestra u n aen la pantalla. Pero lo que est almacenado en realidad dentro de la memoria principal de la computadora? Qu es el lenguaje de la computadora? Cmo se almacena todo lo que escribe en el teclado? Recuerde que una computadora es un dispositivo electrnico. Las seales elctricas se utilizan dentro de la computadora para procesar la informacin. Hay dos tipos de seales elctricas:. Analgicas y digitales Las seales analgicas son formas de onda continua se utilizan para representar cosas tales como el sonido. Las cintas de audio, por ejemplo, almacenar datos en seales analgicas. seales digitales representan informacin con una secuencia de 0y s 1s. A 0representa una baja tensin, y un 1representa un alto voltaje. Las seales digitales son portadores ms confiables de informacin que las seales analgicas y se pueden copiar de un dispositivo a otro con una precisin exacta. Usted puede haber notado que cuando usted hace una copia de una cinta de audio, la calidad de sonido de la copia no es tan buena como la cinta original. Por otro lado, cuando se copia un CD, la copia es tan bueno como el original. Los equipos utilizan seales digitales. Debido a que las seales digitales son procesadas dentro de un equipo, el equipo ofa lenguaje, llamado lenguaje de mquina, es una secuencia de 0y s 1s. El dgito 0o 1se llama un dgito binario, o poco. A veces una secuencia de 0y s 1s se conoce como un cdigo binario o un nmero binario. De bits: Un dgito binario 0o 1 . Una secuencia de ocho bits se llama un byte. Adems, 2 10 bytes = 1024 bytes se llama un kilobytes (KB). Tabla 1-1 resume los trminos utilizados para describir diversos nmeros de bytes.

Unidad Sm bolo
Byte Kilobyte KB Megabyte MB Gigabyte GB

Bits / Bytes
8 bits 2 10 bytes = 1024 bytes 1024 KB = 2 10 KB = 2 20 bytes = 1.048.576 bytes 1024 MB = 2 10 MB = 2 30 bytes = 1.073.741.824 bytes 1024 TB = 2 10 TB = 2 50 bytes = 1.125.899.906.842.624 bytes 1024 PB = 2 10 PB = 2 60 bytes = 1.152.921.504.606.846.976 bytes 1024 EB = 2 10 EB = 2 70 bytes = 1.180.591.620.717.411.303.424 bytes

Terabyte Tuberculosis 1024 GB = 2 10 GB = 2 40 bytes = 1,099,511,627,776 bytes Petabyte PB Exabyte EB

Zetabyte ZB

Cada letra, nmero o smbolo especial (tales como *o {) en su teclado se codifica como una secuencia de bits, cada uno con una nica representacin. El esquema de codificacin ms utilizado en las computadoras personales es la de siete bits Cdigo Estndar Americano para Intercambio de Informacin (ASCII). El

file:///D:/Capitulo%201.html

4/16

20/2/2014

El diseo del programa C + + de programacin incluyendo las estructuras de datos 6ed.pdf

conjunto de datos ASCII consiste en 128 caracteres numerados del 0 al 127. Es decir, en el conjunto de datos ASCII, la posicin del primer carcter es 0, la posicin de la segunda carcter es 1, y as sucesivamente. En este esquema, Ase codifica como el nmero binario 1 0 0 0 0 0 1 .De hecho, Aes el carcter 66a en el cdigo de caracteres ASCII, pero su posicin es 65 debido a la posicin del primer carcter es 0. Por otra parte, el nmero binario 1 0 0 0 0 0 1es la representacin binaria de 6 5 .El carcter 3se codifica como 0 1 1 0 0 1 1 .Tenga en cuenta que en el juego de caracteres ASCII, la posicin del personaje 3es 51, por lo que el personaje 3es el carcter 52a en el conjunto ASCII . Tambin se deduce que 0 1 1 0 0 1 1es la representacin binaria de 5 1 .Para obtener una lista completa del juego de caracteres ASCII imprimible, consulte el Apndice C.

El sistema de numeracin que utilizamos en nuestra vida diaria se llama el s i s t em a dec i m al , o en bas e 10. Porque todo dentro de una computadora se representa como una secuencia de 0 y 1, es decir, los nmeros binarios, el sistema de numeracin que utiliza un equipo se llama bi n ari o o de bas e 2. Hemos indicado en el prrafo anterior que el nmero 1000001 es la representacin binaria de 65. Apndice E describe cmo convertir un nmero de base 10 a base 2 y viceversa.

NOTA

Dentro de la computadora, cada carcter se representa como una secuencia de ocho bits, es decir, como un byte. Ahora la representacin binaria de ocho bits de 65 es 0 1 0 0 0 0 0 1 .Tenga en cuenta que hemos aadido 0a la izquierda de la representacin de siete bits de 65 para convertirlo en una representacin de ocho bits. Del mismo modo, la representacin binaria de ocho bits de 51 es 0 0 1 1 0 0 1 1 . ASCII es un cdigo de siete bits. Por lo tanto, para representar cada carcter ASCII en el interior del equipo, debe convertir la representacin en binario de siete bits de un carcter ASCII a una representacin binaria de ocho bits. Esto se logra mediante la adicin de 0a la izquierda de la codificacin ASCII de siete bits de un carcter. Por lo tanto, dentro de la computadora, el carcter Ase representa como 0 1 0 0 0 0 0 1 ,y el carcter 3se representa como 0 0 1 1 0 0 1 1 . Hay otros esquemas de codificacin, tales como EBCDIC (utilizado por IBM) y Unicode, que es un desarrollo ms reciente. EBCDIC consta de 256 caracteres, Unicode consta de 65.536 caracteres. Para almacenar un personaje que pertenece a Unicode, se necesitan dos bytes.

La evolucin de los lenguajes de programacin


El lenguaje ms bsico de una computadora, el lenguaje de mquina, proporciona instrucciones de programa en bits. A pesar de que la mayora de las computadoras realizan el mismo tipo de operaciones, los diseadores de la computadora pueden haber optado por diferentes conjuntos de cdigos binarios para realizar las operaciones. Por lo tanto, el lenguaje de mquina de una mquina no es necesariamente el mismo que el lenguaje de mquina de otra mquina. La nica consistencia entre las computadoras es que en cualquier ordenador moderno, todos los datos se almacenan y manipulan como cdigos binarios. Las primeras computadoras fueron programadas en lenguaje de mquina. Para ver cmo las instrucciones estn escritas en lenguaje de mquina, suponga que desea utilizar la ecuacin:

s a l a r i o s=t a s aH o r a s
para calcular el salario semanal. Adems, supongamos que el cdigo binario 1 0 0 1 0 0es sinnimo de carga, 1 0 0 . 1 1 0puestos para la multiplicacin y 1 0 0 . 0 1 0 puestos de tienda. En el lenguaje de la mquina, es posible que tenga la siguiente secuencia de instrucciones para calcular el salario semanal:

1 0 0 1 0 00 1 0 0 0 11 0 0 1 1 00 1 0 0 1 01 0 0 0 1 00 1 0 0 1 1
Para representar la ecuacin de salarios semanales en lenguaje de mquina, el programador tena que recordar los cdigos de lenguaje de mquina para diversas operaciones. Adems, para manipular los datos, el programador tena que recordar las ubicaciones de los datos en la memoria principal. Esta necesidad de recordar cdigos especficos hizo la programacin no slo es muy difcil, pero tambin propenso a errores. Idiomas de la Asamblea se han desarrollado para hacer el trabajo del programador ms fcil. En lenguaje ensamblador, una instruccin es una forma fcil de recordar llama un mnemnico. Tabla 1-2 muestra algunos ejemplos de instrucciones en lenguaje ensamblador y su cdigo en lenguaje de mquina correspondiente.

Lenguaje ensam blador M quina Idiom a


C A R G A S T O R M U L T A A D I R S U B 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 0 1 1

Siguiendo las instrucciones en lenguaje ensamblador, se puede escribir la ecuacin para calcular los salarios semanales de la siguiente manera:

H o r aS T O Rs a l a r i o sM U L Tt a s aC A R G A
Como se puede ver, es mucho ms fcil de escribir instrucciones en lenguaje ensamblador. Sin embargo, un equipo no puede ejecutar instrucciones en lenguaje ensamblador directamente. Las instrucciones tienen primero que ser traducido a lenguaje de mquina. Un programa llamado ensamblador traduce las instrucciones en lenguaje ensamblador a lenguaje de mquina.

file:///D:/Capitulo%201.html

5/16

20/2/2014

El diseo del programa C + + de programacin incluyendo las estructuras de datos 6ed.pdf

Ensamblador: Un programa que traduce un programa escrito en lenguaje ensamblador en un programa equivalente en lenguaje de mquina. Pasar de lenguaje de mquina a lenguaje ensamblador hace la programacin ms fcil, pero un programador todava se vio obligado a pensar en trminos de instrucciones de mquina individuales. El siguiente paso para hacer la programacin ms fcil era crear lenguajes de alto nivel que estaban ms cerca de los lenguajes naturales, tales como Ingls, francs, alemn y espaol. Basic, FORTRAN, COBOL, Pascal, C, C + +, C # y Java son todos los lenguajes de alto nivel. Usted aprender el lenguaje de alto nivel C + + en este libro. En C + +, se escribe la ecuacin de salarios semanales de la siguiente manera:

s a l a r i o s=t a s a*h o r a s ;
La instruccin escrita en C + + es mucho ms fcil de entender y se explica por s para un usuario novato que est familiarizado con la aritmtica bsica. Al igual que en el lenguaje ofassembly caso, sin embargo, el equipo no puede ejecutar directamente las instrucciones escritas en un lenguaje de alto nivel. Para ejecutar en un ordenador, las instrucciones de estos C + + primero necesitan ser traducidos a lenguaje de mquina. Un programa que se llama un compilador traduce las instrucciones escritas en lenguajes de alto nivel en cdigo de mquina. Compilador: Un programa que traduce las instrucciones escritas en un lenguaje de alto nivel en el lenguaje de mquina equivalente.

TABLA 1-2 Ejemplos de instrucciones en lenguaje ensamblador y en lenguaje de mquina

El procesamiento de un programa escrito en C + +


En las secciones anteriores, analizamos el lenguaje mquina y lenguajes de alto nivel y nos mostr un programa de C + +. Debido a que una computadora puede entender slo en lenguaje de mquina, usted est listo para revisar los pasos necesarios para procesar un programa escrito en C + +. Considere el siguiente programa en C + +: # include < i o s t r e a m > using namespace s t d ; int m a i n( ){

c o u t< <" +p r o g r a m aM ip r i m e r aC+ . "< <E n d l ; devolver 0 ; }


En este punto, usted no necesita preocuparse demasiado por los detalles de este programa. Sin embargo, si ejecuta (ejecutar) este programa, se mostrar la siguiente lnea en la pantalla:

M ip r i m e rp r o g r a m ae nC++ .
Recordemos que una computadora puede entender slo en lenguaje de mquina. Por lo tanto, con el fin de ejecutar con xito este programa, el cdigo debe primero ser traducido a lenguaje de mquina. En esta seccin, se revisan los pasos necesarios para ejecutar programas escritos en C + +. Los siguientes pasos, como se muestra en la Figura 1-3, son necesarias para procesar un programa en C + +. 1. Utilice un editor de texto para crear un programa en C + + siguiendo las reglas, o sintaxis, el lenguaje de alto nivel. Este programa se llama el cdigo fuente, o programa fuente. El programa se debe guardar en un archivo de texto con la extensin. c p p .Por ejemplo, si ha guardado el programa anterior en el archivo llamado F i r s t C P P P r o g r a m ,a continuacin, su nombre completo es F i r s t C P P P r o g r a m .c p p . Programa Fuente: Un programa escrito en un lenguaje de alto nivel. 2. El programa de C + + que figura en el apartado anterior figura la declaracin # include < i o s t r e a m > .En un programa C + +, las declaraciones que comienzan con el smbolo #se llaman directivas del preprocesador. Estas declaraciones son procesadas por un programa llamado preprocesador. 3. Despus de procesar las directivas de preprocesador, el siguiente paso es verificar que el programa obedece a las reglas de la programacin en lenguaje-es decir, el programa es sintcticamente correcta-y traducir el programa en lenguaje de mquina equivalente. El compilador comprueba el programa fuente de errores de sintaxis y, se encuentra ifNo error, traduce el programa en lenguaje de mquina equivalente. El programa en lenguaje de mquina equivalente se llama un programa objeto. Programa del objeto: La versin en lenguaje de mquina del programa de lenguaje de alto nivel. 4. Los programas que se escriben en un lenguaje de alto nivel se han desarrollado utilizando un entorno de desarrollo integrado (IDE). El IDE contiene muchos programas que son tiles en la creacin de su programa. Por ejemplo, contiene el cdigo necesario (programa) para mostrar los resultados del programa y varias funciones matemticas para hacer el trabajo del programador un poco ms fcil. Por lo tanto, si cierto cdigo ya est disponible, puede utilizar este cdigo en lugar de escribir su propio cdigo. Una vez que el programa se desarrolla con xito y compilado, usted todava tiene que traer el cdigo de los recursos utilizados en el IDE en su programa para producir un programa final que la computadora puede ejecutar. Este cdigo escrito previamente (programa) reside en un lugar llamado la biblioteca. Un programa llamado enlazador combina el programa objeto con los programas de las bibliotecas.

file:///D:/Capitulo%201.html

6/16

20/2/2014

El diseo del programa C + + de programacin incluyendo las estructuras de datos 6ed.pdf

Vinculador: Un programa que combina el programa objeto con otros programas en la biblioteca y que se utiliza en el programa para crear el cdigo ejecutable. 5. A continuacin, debe cargar el programa ejecutable en la memoria principal para su ejecucin. Un programa que se llama un cargador lleva a cabo esta tarea. Bandeja de carga: Un programa que se carga un programa ejecutable en la memoria principal. 6. El paso final es para ejecutar el programa. La figura 1-3 muestra cmo se procesa un tpico programa de C + +.
F IG UR A 1-3

Procesamiento de un programa en C +

Como programador, usted necesita estar preocupado slo por el paso 1. Es decir, hay que aprender, entender y dominar las reglas del lenguaje de programacin para crear programas de cdigo.

Como se ha sealado anteriormente, los programas se desarrollan utilizando un IDE. IDEs conocidos utilizados para crear programas en el lenguaje de alto nivel C + + incluyen Visual C + + 2008 Express, Visual C + + 2010 Express, Visual Studio 2010 (de Microsoft), y C + + Builder (de Borland). Tambin puede utilizar DevC + + IDE de Bloodshed Software para crear y probar programas C + +. Estos IDEs contienen un editor de texto para crear el programa fuente, un compilador para comprobar el programa de origen de los errores de sintaxis, un programa para vincular cdigo objeto junto con los recursos IDE, y un programa para ejecutar el programa. Estos entornos de desarrollo son muy fcil de usar. Al compilar el programa, el compilador no slo identifica los errores de sintaxis, sino tambin por lo general sugiere cmo corregirlas. Por otra parte, con slo un simple comando, el cdigo objeto est vinculado con los recursos utilizados por el IDE. Por ejemplo, el comando que hace el enlace en Visual C + + 2008 Express, Visual C + + 2010 Express y Visual Studio 2010 es construir o reconstruir. (Para cualquier aclaracin sobre el uso ofthese comandos, verifique la documentacin ofthese IDEs.) Programa Siel no es todava compilado, cada ofthese comandos primero compila el programa y luego los enlaces y produce el cdigo ejecutable. El sitio Web http://msdn.microsoft.com/en-us/beginner/bb964629.aspx contiene un video que explica cmo utilizar Visual C + + 2008 Express para escribir programas en C + +.

Programacin con el Ciclo de anlisis de problemas-Codificacin-Ejecucin


La programacin es un proceso de resolucin de problemas. Diferentes personas usan diferentes tcnicas para resolver problemas. Algunas tcnicas estn muy bien descritos y fcil de seguir. Ellos no slo resuelven el problema, sino que tambin dan una idea de cmo se lleg a la solucin. Estas tcnicas de resolucin de problemas pueden ser fcilmente modificados si el dominio del problema cambia. Para ser un buen solucionador de problemas y un buen programador, debe seguir las buenas tcnicas de resolucin de problemas. Una de las tcnicas de resolucin de problemas comunes incluye el anlisis de un problema, delineando los requisitos del problema, y el diseo de pasos, llamado algoritmo, para resolver el problema. Algoritmo: Un proceso paso a paso para resolver problemas en los que se lleg a una solucin en una cantidad finita de tiempo. En un entorno de programacin, el proceso de resolucin de problemas requiere de los tres pasos siguientes: 1. Analizar el problema, esbozar el sus requisitos de la solucin de problemas y, y disear un algoritmo para resolver el problema. 2. Implementar el algoritmo en un lenguaje de programacin, como C + +, y verificar que el algoritmo funciona. 3. Mantener el programa mediante el uso y la modificacin de que si cambia el dominio del problema. Figura 1-4 resume este proceso de programacin de tres pasos.

file:///D:/Capitulo%201.html

7/16

20/2/2014

El diseo del programa C + + de programacin incluyendo las estructuras de datos 6ed.pdf

F IG UR A 1-4

ciclo de Anlisis de problemas de codificacin de ejecucin

Desarrollar un programa para resolver un problema, se empieza por el anlisis del problema. A continuacin, disear el algoritmo, escribe las instrucciones de un programa en un lenguaje de alto nivel, o el cdigo del programa, y entrar en el programa en un sistema informtico. Analizando el problema es el primer paso y ms importante. Este paso requiere que usted haga lo siguiente: 1. Entender a fondo el problema. 2. Comprender los requisitos del problema. Los requisitos pueden incluir si el programa requiere interaccin con el usuario, si se manipula de datos, si se produce una salida, y lo que la salida se parece. Si el programa manipula los datos, el programador debe saber lo que estn los datos y la forma en que se representa. Es decir, que hay que buscar en los datos de muestra. Siel programa produce una salida, usted debe saber cmo se deben generar y formatear los resultados. 3. Si el problema es complejo, dividir el problema en subproblemas y repetir los pasos 1 y 2. Es decir, para los problemas complejos, es necesario analizar cada subproblema y entender las necesidades de cada subproblema. Despus de analizar detenidamente el problema, el siguiente paso es disear un algoritmo para resolver el problema. Si se rompi el problema en subproblemas, es necesario disear un algoritmo para cada subproblema. Una vez que el diseo de un algoritmo, es necesario comprobar que la correccin. A veces se puede probar la correccin de un algoritmo mediante el uso de datos de la muestra. En otras ocasiones, puede que tenga que realizar algn anlisis matemtico para probar la correccin del algoritmo. Una vez que haya diseado el algoritmo y verificado su correccin, el siguiente paso es para convertirlo en un cdigo de programacin equivalente. A continuacin, utilice un editor de texto para introducir el cdigo de programacin o el programa en una computadora. A continuacin, debe asegurarse de que el programa sigue la sintaxis del lenguaje. Para verificar la correccin de la sintaxis, se ejecuta el cdigo a travs de un compilador. Si el compilador genera los mensajes de error, debe identificar los errores en el cdigo, retrelos y vuelva a ejecutar el cdigo mediante el compilador de nuevo. Cuando se eliminan todos los errores de sintaxis, el compilador genera el cdigo de mquina equivalente, el ligador enlaza el cdigo mquina con los recursos del sistema, y el cargador coloca el programa en la memoria principal, de modo que pueda ser ejecutado. El paso final es para ejecutar el programa. El compilador garantiza solamente que el programa sigue la sintaxis del lenguaje. Esto no garantiza que el programa se ejecutar correctamente. Durante la ejecucin, el programa podra terminar de forma anormal debido a errores lgicos, como la divisin por cero. Incluso si el

file:///D:/Capitulo%201.html

8/16

20/2/2014

El diseo del programa C + + de programacin incluyendo las estructuras de datos 6ed.pdf

programa termina normalmente, todava podra generar resultados errneos. Bajo estas circunstancias, es posible que deba volver a examinar el cdigo, el algoritmo, o incluso el anlisis del problema. Su experiencia general de la programacin tendr xito si usted pasa tiempo suficiente para completar el anlisis de los problemas antes de intentar escribir las instrucciones de programacin. Por lo general, esto se hace el trabajo en el papel con un bolgrafo o un lpiz. Tomando este enfoque cuidadoso a la programacin tiene un nmero ofadvantages. Es mucho ms fcil descubrir los errores en un programa que es bien analizado y bien diseado. Adems, un programa cuidadosamente analizado y diseado es mucho ms fcil de seguir y de modificar. Incluso los programadores ms experimentados gastan una cantidad considerable de tiempo a analizar un problema y el diseo de un algoritmo. A lo largo de este libro, usted no slo aprender las reglas de la escritura de programas en C + +, pero usted tambin aprender las tcnicas de resolucin de problemas. La mayora de los captulos contienen ejemplos de programacin con que tratan los problemas de programacin. Estos ejemplos de programacin ensean tcnicas de cmo analizar y resolver problemas, algoritmos de diseo, cdigo de los algoritmos en C + +, y tambin le ayudar a entender los conceptos discutidos en el captulo. Para obtener un beneficio total ofthis libro, se recomienda que usted trabaja a travs de estos ejemplos de programacin. A continuacin, se presentan ejemplos de las diversas tcnicas de anlisis de problemas y el algoritmo de diseo.

1
En este ejemplo, diseamos un algoritmo para calcular el permetro y el rea de un rectngulo. Para encontrar el permetro y el rea de un rectngulo, lo que necesita saber la longitud y el ancho del rectngulo. El permetro y el rea del rectngulo son entonces dadas por las siguientes frmulas:

r e ap e r i m e t r a l=2( l a r g o+a n c h o )=l o n g i t u d-a n c h o


El algoritmo para encontrar el permetro y el rea del rectngulo es: 1. Obtener la longitud del rectngulo. 2. Obtener el ancho del rectngulo. 3. Encontrar el permetro usando la siguiente ecuacin:

p e r m e t r o=2^( l a r g o+a n c h o )
4. Encuentra el rea utilizando la siguiente ecuacin:

r e a=l o n g i t u d^a n c h o

Ejemplo 1-2
En este ejemplo, diseamos un algoritmo que calcula el impuesto sobre las ventas y el precio de un artculo vendido en un estado particular. El impuesto sobre las ventas se calcula como sigue: La parte del estado del impuesto sobre las ventas es del 4%, y la parte de la ciudad del impuesto sobre las ventas es del 1,5%. Si el artculo es un artculo de lujo, como un coche de ms de $ 50,000, entonces hay un impuesto de lujo del 10%. Para calcular el precio del artculo, nosotros necesitamos calcular la porcin del estado del impuesto sobre las ventas, la parte de la ciudad del impuesto sobre las ventas, y, si se trata de un artculo de lujo, el impuesto de lujo. Supongamos s a l e P r i c edenota el precio de venta del artculo, s t a t e S a l e s T a xdenota impuesto de ventas del estado, c i t y S a l e s T a xdenota impuesto sobre las ventas de la ciudad, l u x u r y T a xdenota el impuesto de lujo, S a l e s T a xdenota el total del impuesto de ventas, y a m o u n t D u edenota el precio final del artculo. Para calcular el impuesto sobre las ventas, es necesario conocer el precio de venta Ofthe elemento y si el artculo es un artculo de lujo. El s t a t e S a l e s T a xy c i t y S a l e s T a xpueden calcularse utilizando las siguientes frmulas:

s t a t e S a l e s T a x=s a l e P r i c e^0 . 0 4c i t y S a l e s T a x=s a l e P r i c e-0 . 0 1 5


A continuacin, usted puede determinar l u x u r y T a xde la siguiente manera:

i f( a r t c u l oe su na r t c u l od el u j o ) l u x u r y T a x=s a l e P r i c e0 , 1l oc o n t r a r i o l u x u r y T a x=0
A continuacin, usted puede determinar S a l e s T a xde la siguiente manera:

S a l e s T a x=s t a t e S a l e s T a x++c i t y S a l e s T a xl u x u r y T a x
file:///D:/Capitulo%201.html 9/16

20/2/2014

El diseo del programa C + + de programacin incluyendo las estructuras de datos 6ed.pdf

Por ltimo, se puede calcular a m o u n t D u ede la siguiente manera:

a m o u n t D u e=s a l e P r i c e+S a l e s T a x
El algoritmo para determinar S a l e s T a xy a m o u n t D u ees, por tanto: 1. Obtener el precio de venta del artculo. 2. Determinar si el artculo es un artculo de lujo. 3. Encuentra la porcin del estado del impuesto sobre las ventas mediante la frmula:

s t a t e S a l e s T a x=s a l e P r i c e^0 . 0 4
4. Encontrar parte de la ciudad del impuesto sobre las ventas mediante la frmula: c i t y S a l e s T a x=s a l e P r i c e-0 . 0 1 5 5. Encuentre el impuesto de lujo con la siguiente frmula:

i f( a r t c u l oe su na r t c u l od el u j o ) l u x u r y T a x=s a l e P r i c e^0 , 1d eo t r am a n e r a l u x u r y T a x=0


6. Encuentra S a l e s T a xusando la frmula:

S a l e s T a x=s t a t e S a l e s T a x++c i t y S a l e s T a xl u x u r y T a x
7. Encuentra a m o u n t D u eutilizando la frmula: a m o u n t D u e=s a l e P r i c e+S a l e s T a x

Ejemplo 1-3
En este ejemplo, diseamos un algoritmo que calcula el sueldo mensual de un vendedor en una tienda local. Cada vendedor tiene un salario base. El vendedor tambin recibe una bonificacin al final de cada mes, en base a los siguientes criterios: Si el vendedor ha estado con la tienda por cinco aos o menos, el bono es de $ 10 por cada ao que l o ella ha trabajado all. Si el vendedor ha estado con la tienda por ms de cinco aos, la bonificacin es de $ 20 por cada ao que l o ella ha trabajado all. El vendedor puede ganar un bono adicional de la siguiente manera: Si el total de las ventas realizadas por el vendedor para el mes son al menos $ 5,000 pero menos de $ 10,000, l o ella recibe una comisin del 3% sobre la venta. Si las ventas totales realizadas por el vendedor para el mes son al menos 10.000 dlares, l o ella recibe una comisin del 6% sobre la venta. Para calcular sueldo mensual de un vendedor, usted necesita saber el sueldo base, el nmero de aos que el vendedor ha estado en la compaa, y el total de las ventas realizadas por el vendedor de ese mes. Supongamos s a l a r i o B a s edenota el salario base, n o O f S e r v i c e Y e a r sdenota el nmero de aos que el vendedor ha estado en la tienda, l ap r i m adenota el bono, T o t a l S a l e sdenota las ventas totales realizadas por el vendedor en el mes, y a d d i t i o n a l B o n u sdenota el bono adicional. Puede determinar el bono de la siguiente manera:

s i( n o O f S e r v i c e Y e a r se sm e n o rq u eoi g u a lac i n c o ) b o n o=1 0n o O f S e r v i c e Y e a r sl oc o n t r a r i o d eb o n i f i c a c i n=2 0-n o O f S e r v i c e Y e a r s


A continuacin, se puede determinar la ventaja adicional de que el vendedor de la siguiente manera:

s i( T o t a l S a l e se sm e n o sd e5 0 0 0 ) a d d i t i o n a l B o n u s=0e no t r oc a s o s i( T o t a l S a l e se sm a y o rq u eoi g u a la5 0 0 0y T o t a l S a l e se si n f e r i o ra1 0 . 0 0 0 )a d d i t i o n a l B o n u s=T o t a l S a l e s^( 0 . 0 3 )e no t r oc a s o a d d i t i o n a l B o n u s=T o t a l S a l e s^( 0 . 0 6 )


A raz de la discusin anterior, ahora se puede disear el algoritmo para calcular sueldo mensual de un vendedor:

file:///D:/Capitulo%201.html

10/16

20/2/2014
1. Obtenga s a l a r i o B a s e . 2. Obtenga n o O f S e r v i c e Y e a r s .

El diseo del programa C + + de programacin incluyendo las estructuras de datos 6ed.pdf

3. Clculo de bono con la siguiente frmula:

s i( n o O f S e r v i c e Y e a r se sm e n o rq u eoi g u a lac i n c o ) d eb o n i f i c a c i n=1 0-n o O f S e r v i c e Y e a r sl oc o n t r a r i o d eb o n i f i c a c i n=2 0-n o O f S e r v i c e Y e a r s


4. Obtenga T o t a l S a l e s . 5. Calcular a d d i t i o n a l B o n u susando la siguiente frmula:

s i( T o t a l S a l e se sm e n o sd e5 0 0 0 ) a d d i t i o n a l B o n u s=0e no t r oc a s o s i( T o t a l S a l e se sm a y o rq u eoi g u a la5 0 0 0yT o t a l S a l e se sm e n o sd e1 0 . 0 0 0 )a d d i t i o n a l B o n u s= T o t a l S a l e s^( 0 . 0 3 )d eo t r om o d o a d d i t i o n a l B o n u s=T o t a l S a l e s^( 0 . 0 6 )


6. Calcular c h e q u ed ep a g ousando la ecuacin:

P a y c h e c k=s a l a r i o B a s e+b o n u s+a d d i t i o n a l B o n u s

Ejemplo 1-4
En este ejemplo, diseamos un algoritmo para jugar un juego de nmeros-adivinanzas. El objetivo es generar de forma aleatoria un nmero entero mayor o igual que 0y menor que 1 0 0 .pedir al jugador (usuario) de adivinar el nmero. Si el jugador adivina correctamente el nmero, la salida de un mensaje apropiado. De lo contrario, comprobar si el nmero adivinado es menor que el nmero aleatorio. Si el nmero adivinado es menor que el nmero aleatorio generado, el mensaje de salida,'' Su conjetura es menor que el nmero. Adivina de nuevo'';! De lo contrario, la salida del mensaje,'' Su conjetura es mayor que el nmero. Prueba otra vez!''. Luego pedir al jugador que ingrese otro nmero. Al jugador se le pide que adivine el nmero aleatorio hasta que el jugador entra en el nmero correcto. La primera etapa es generar un nmero aleatorio, como se describe anteriormente. C + + proporciona los medios para hacerlo, lo que se discute en el Captulo 5. Supongamos n u mes el nmero al azar y l ac o n j e t u r ase refiere a cuantos adivinado por el jugador. Despus de que el jugador entra en la c o n j e t u r a ,se puede comparar la e s t i m a c i ncon el nmero aleatorio de la siguiente manera:

i f( c o n j e t u r ae si g u a lan u m ) P r i n t" L oh a sa d i v i n a d oe ln m e r oc o r r e c t o . "d eo t r am a n e r a s ic r e oq u ee sm e n o sd en u m I m p r i m i r" S uc o n j e t u r ae si n f e r i o ra ln m e r o .A d i v i n ad en u e v o ! "d eo t r am a n e r a I m p r i m i r" S uc o n j e t u r ae sm a y o rq u ee ln m e r o .A d i v i n ad en u e v o ! "


Ahora puede disear un algoritmo de la siguiente manera: 1. Generar un nmero aleatorio y lo llaman n u m . . 2 Repita los pasos siguientes hasta que el jugador ha adivinado el nmero correcto: a. Pedir al jugador que ingrese c o n j e t u r a . b.

i f( c o n j e t u r ae si g u a lan u m ) P r i n t" L oh a sa d i v i n a d oe ln m e r oc o r r e c t o . "d eo t r am a n e r a s ic r e oq u ee sm e n o sd en u m I m p r i m i r" S uc o n j e t u r ae si n f e r i o ra ln m e r o .A d i v i n ad en u e v o ! "D el oc o n t r a r i o


file:///D:/Capitulo%201.html 11/16

20/2/2014

El diseo del programa C + + de programacin incluyendo las estructuras de datos 6ed.pdf

I m p r i m i r" S uc o n j e t u r ae sm a y o rq u ee ln m e r o .A d i v i n ad en u e v o ! "
En el captulo 5, se utiliza este algoritmo para escribir un programa en C + + para jugar el juego de adivinar el nmero.

Ejemplo 1-5
Hay 10 estudiantes en una clase. Cada estudiante ha tomado cinco pruebas, y cada prueba vale 100 puntos. Queremos disear un algoritmo para calcular la calificacin de cada estudiante, as como el promedio de la clase. La calificacin se asigna de la siguiente manera: Si la puntuacin media de prueba es mayor o igual a 9 0 ,el grado es A ;si la puntuacin media de prueba es mayor o igual a 8 0y menor de 9 0 ,el grado es B ;si el promedio puntuacin de la prueba es mayor o igual a 7 0y menor de 8 0 ,el grado es C ;si la puntuacin media de prueba es mayor o igual a 6 0y menor de 7 0 ,el grado es D ;de otro modo, el grado es F .Nota que los datos consisten en los nombres de los estudiantes y sus calificaciones. Este es un problema que se puede dividir en subproblemas de la siguiente manera: Hay cinco pruebas, por lo que el diseo de un algoritmo para encontrar el puntaje promedio de la prueba. A continuacin, se disea un algoritmo para determinar el grado. Los dos subproblemas son para determinar el puntaje promedio de la prueba y determinar el grado. Primero vamos a disear un algoritmo para determinar el puntaje promedio de la prueba. Para hallar la puntuacin media de prueba, agregue los cinco puntajes de las pruebas y luego dividir la suma por . 5Por lo tanto, el algoritmo es el siguiente: 1. Recibe los cinco resultados de las pruebas. 2. Aadir los cinco resultados de las pruebas. Supongamos s u m arepresenta la suma de los puntajes de las pruebas. 3. Supongamos p r o m e d i orepresenta el puntaje promedio de la prueba. Entonces

M e d i a=s u m a/5 ;
A continuacin, se disea un algoritmo para determinar el grado. Supongamos g r a d orepresenta el grado asignado a un estudiante. El siguiente algoritmo determina el grado:

S ie lp r o m e d i oe sm a y o rq u eoi g u a la9 0 U ng r a d o=d eo t r om o d o S ie lp r o m e d i oe sm a y o rq u eoi g u a la8 0ym e n o rd e9 0g r a d o=Bd eo t r om o d o S ie lp r o m e d i oe sm a y o rq u eoi g u a la7 0ym e n o rd e8 0g r a d o=Cd eo t r om o d o S ie lp r o m e d i oe sm a y o rq u eoi g u a la6 0ym e n o rd e7 0g r a d o=Dd eo t r om o d o g r a d o=F
Usted puede utilizar las soluciones a estos subproblemas para disear el algoritmo principal de la siguiente manera: (Supongamos t o t a l A v e r a g erepresenta la suma de las medias de la media de pruebas de cada estudiante.) 1. t o t a l A v e r a g e=0 ; . 2 Repita los pasos siguientes para cada alumno de la clase: una. Recibe el nombre del estudiante. b. Utilice el algoritmo como se discuti arriba para encontrar el puntaje promedio de la prueba. c. Utilice el algoritmo como se mencion anteriormente para encontrar el grado. d. Actualizar t o t a l A v e r a g eaadiendo puntaje promedio de la prueba del estudiante actual. 3. Determine el promedio de las clases de la siguiente manera:

c l a s s A v e r a g e=t o t a l A v e r a g e/1 0
Un ejercicio de programacin en el Captulo 8 pide que escriba un programa en C + + para determinar el puntaje promedio de la prueba y la calificacin de cada estudiante en una clase.

Metodologas de programacin
Dos enfoques populares para el diseo de la programacin son el enfoque estructurado y el enfoque orientado a objetos, que se exponen a continuacin.

file:///D:/Capitulo%201.html

12/16

20/2/2014

El diseo del programa C + + de programacin incluyendo las estructuras de datos 6ed.pdf

Programacin Estructurada
Divisin de un problema en subproblemas ms pequeos se llama diseo estructurado. Luego se analiza cada subproblema, y se obtiene una solucin para resolver el subproblema. Las soluciones a todos los subproblemas se combinan a continuacin para resolver el problema general. Este proceso de implementacin de un diseo estructurado se llama programacin estructurada. El enfoque de diseo estructurado es tambin conocido como el diseo de arriba hacia abajo, el diseo de abajo hacia arriba, refinamiento paso a paso, y la programacin modular.

Programacin orientada a objetos


Diseo orientado a objetos (OOD) es una metodologa de programacin ampliamente utilizado. En OOD, el primer paso en el proceso de resolucin de problemas es identificar los componentes llamados objetos, que forman la base de la solucin, y para determinar cmo estos objetos interactan uno con el otro. Por ejemplo, suponga que desea escribir un programa que automatiza el proceso de alquiler de vdeo para una tienda de video local. Los dos objetos principales de este problema son el vdeo y el cliente. Despus de identificar los objetos, el siguiente paso es especificar para cada objeto de los datos pertinentes y las posibles operaciones a realizar en esos datos. Por ejemplo, para un objeto de vdeo, los datos pueden incluir: nombre de la pelcula actores protagonistas productor productora Nmero de copias en stock Algunas de las operaciones en un objeto de vdeo pueden incluir: comprobar el nombre de la pelcula reducir el nmero de copias en stock por uno despus se alquil una copia incrementar los ofcopies nmero en stock en uno despus de que un cliente devuelve un video en particular Esto ilustra que cada objeto consiste en datos y las operaciones sobre los datos. Un objeto combina datos y las operaciones sobre los datos en una sola unidad. En OOD, el programa final es una coleccin de objetos que interactan. Un lenguaje de programacin que implementa OOD se llama programacin orientada a objetos (POO) el lenguaje. Usted aprender acerca de las muchas ventajas de OOD en captulos posteriores. Debido a que un objeto consiste ofdata y las operaciones sobre los datos, antes de poder disear y utilizar objetos, usted necesita aprender cmo representar los datos en la memoria del ordenador, cmo manipular los datos y la forma de aplicar las operaciones. En el captulo 2, usted aprender los tipos de datos bsicos de C + + y descubrir la forma de representar y manipular datos en la memoria del ordenador. Captulo 3 se explica cmo introducir datos en un programa en C + + y los resultados generados por un programa en C + + de salida. Para crear operaciones, escribes algoritmos y ponerlas en prctica en un lenguaje de programacin. Debido a que un elemento de datos en un programa complejo por lo general tiene muchas operaciones, para separar las operaciones de los dems y utilizarlos de forma eficaz y de una manera conveniente, utilizar funciones para implementar algoritmos. Despus de una breve introduccin en los captulos 2 y 3, usted aprender los detalles de las funciones en el Captulo 6. Algunos algoritmos requieren que un programa de tomar decisiones, un proceso llamado seleccin. Otros algoritmos pueden requerir ciertas declaraciones que repetirse hasta que se cumplan ciertas condiciones, un proceso llamado repeticin. Sin embargo, otros algoritmos pueden requerir la seleccin y repeticin. Usted aprender acerca de los mecanismos de seleccin y repeticin, llamadas estructuras de control, en los captulos 4 y 5. Adems, en el captulo 8, utilizando un mecanismo denominado matriz, usted aprender cmo manipular los datos cuando los elementos de datos son del mismo tipo, como elementos de una lista de las cifras de ventas. Por ltimo, trabajar con objetos, lo que necesita saber cmo combinar los datos y las operaciones sobre los datos en una sola unidad. En C + +, el mecanismo que le permite combinar datos y las operaciones sobre los datos en una sola unidad se llama una clase. Usted aprender cmo funcionan las clases, cmo trabajar con clases, y cmo crear clases en las clases de captulo y abstraccin de datos (ms adelante en este libro). Como puede ver, usted necesita aprender unas cuantas cosas antes de trabajar con la metodologa OOD. Para que este aprendizaje sea ms fcil y eficaz, este libro se divide intencionalmente las estructuras de control en dos captulos (4 y 5). Para algunos problemas, el enfoque estructurado para el diseo del programa ser muy eficaz. Otros problemas sern mejor atendidos por los OOD. Por ejemplo, si un problema requiere la manipulacin de conjuntos de nmeros con funciones matemticas, podra utilizar el enfoque de diseo estructurado y delinear los pasos necesarios para obtener la solucin. La biblioteca de C + + proporciona una gran cantidad de funciones que se pueden utilizar con eficacia para manipular nmeros. Por otro lado, si desea escribir un programa que hara una mquina de dulces operativo, el enfoque OOD es ms eficaz. C + + fue diseado especialmente para implementar OOD. Adems, OOD funciona bien y se utiliza en conjuncin con el diseo estructurado. Tanto el diseo estructurado y OOD enfoques requieren que usted domine los componentes bsicos de un lenguaje de programacin para ser un programador efectivo. En los captulos 2 a 8, usted aprender los componentes bsicos de C + +, tales como tipos de datos, entrada / salida, estructuras de control, funciones definidas por el usuario, y las matrices, requeridas por cualquier tipo de programacin. Nos ilustran cmo estos conceptos funcionan utilizando el enfoque de la

file:///D:/Capitulo%201.html

13/16

20/2/2014

El diseo del programa C + + de programacin incluyendo las estructuras de datos 6ed.pdf

programacin estructurada. A partir de las clases de los captulos y de abstraccin de datos, se utiliza el enfoque OOD.

ANSI / ISO C + + estndar


El lenguaje de programacin C + + evolucionaron a partir de C y fue diseado por Bjarne Stroustrup en los Laboratorios Bell en la dcada de 1980. Desde la dcada de 1980 hasta principios de 1990, varios compiladores de C + + estaban disponibles. A pesar de que las caractersticas fundamentales de C + + en todos los compiladores eran en su mayora los mismos, el lenguaje C + +, se hace referencia en este libro como estndar de C + +, fue evolucionando de forma ligeramente diferente en distintos compiladores. Como consecuencia de ello, los programas en C + + no siempre eran porttiles de un compilador a otro. Para hacer frente a este problema, a principios de 1990, se estableci un comit conjunto de la American Institucin Nacional estndar (ANSI) y la Organizacin Internacional de Normalizacin (ISO) para estandarizar la sintaxis de C + +. A mediados de 1998, se aprobaron / C + + estndares del lenguaje ANSI ISO. La mayora de los compiladores de hoy en da cumplen con estos nuevos estndares. En los ltimos aos, el + + C comit se reuni varias veces para normalizar an ms la sintaxis de C + +. A mediados de 2010, el segundo estndar de C + + fue votada y aprobada. El principal objetivo de esta norma, conocida como C + +0 x, o provisionalmente como C + 11, es hacer que el limpiador + C + cdigo y ms eficaz. Por ejemplo, la nueva norma introduce el tipo de datos a largo tiempo para tratar con nmeros enteros grandes, declaracin automtica de variables mediante instrucciones de inicializacin, la mejora de la funcionalidad del d ebucles para trabajar eficazmente con matrices y contenedores, y los nuevos algoritmos. Sin embargo, no todas las nuevas caractersticas de esta nueva norma se han implementado por todos los compiladores actualmente disponibles. En este libro, se introducen las nuevas caractersticas de C + + que sabemos que han sido implementadas por los compiladores conocidos y tambin comentar sobre los que se llevarn a cabo en el futuro. Este libro se centra en la sintaxis de C + +, aprobado por ANSI / ISO, conocido como ANSI / ISO estndar de C + +.

Review_ RPIDA
1. . 2 3. 4. 5. 6.

Una computadora es un dispositivo electrnico capaz de realizar operaciones aritmticas y lgicas. Un sistema informtico tiene dos componentes: hardware y software. La unidad de procesamiento central (CPU) y la memoria principal son ejemplos de componentes de hardware. Todos los programas deben ser llevados en la memoria principal antes de que puedan ser ejecutadas. Cuando el poder se apaga, todo en la memoria principal se pierde.

almacenamiento secundario proporciona un almacenamiento permanente de informacin. Los discos duros, unidades flash, disquetes, discos ZIP, CD-ROMs, y cintas son ejemplos de almacenamiento secundario.
7. 8. 9. 10. 11

entrada al ordenador se realiza mediante un dispositivo de entrada. Dos dispositivos de entrada ms comunes son el teclado y el ratn. El ordenador enva su salida a un dispositivo de salida, tal como la pantalla del ordenador. software son los programas dirigidos por el equipo.

Texto original

Design an algorithm that prompts Jason to enter the number of items ordered and the price of each item.

El sistema operativo supervisa la actividad general del equipo Sugiere y proporciona una traduccin servicios. mejor

. El lenguaje ms bsico de una computadora es una secuencia de 0 y s 1 s llamado lenguaje de mquina. Cada ordenador entiende directamente su propio lenguaje de mquina.
12. 13. 14.

Un bit es un dgito binario, 0 o 1 . Un byte es una secuencia de ocho bits. Una secuencia de 0 s y 1 s se conoce como un cdigo binario o un nmero binario. Un kilobyte (KB) es de 2 10 = 1024 bytes, un megabyte (MB) es 2 20 = 1.048.576 bytes, un gigabyte (GB) es de 2 30 = 1.073.741.824 bytes; un terabyte (TB) es 2 1,099,511,627,776 bytes; un petabyte (PB) es 2 50 = 1,125,899,906,842,624 bytes; un exabyte (EB) es 2 60 = 1,152,921,504,606,846,976 de bytes y un zetabyte

. 15 40 =

(ZB) es 2 70 = 1,180,591,620,717,411,303,424 bytes.


16. 17. 18. 19.

El lenguaje ensamblador utiliza fcil de recordar las instrucciones llamados mnemnicos. Ensambladores son programas que traducen un programa escrito en lenguaje ensamblador a lenguaje de mquina. Los compiladores son programas que traducen un programa escrito en un lenguaje de alto nivel en cdigo mquina, llamado cdigo objeto.

Un enlazador enlaza el cdigo objeto con otros programas que ofrece el entorno de desarrollo integrado (IDE) y utilizados en el programa de produccin de cdigo ejecutable.
. 20

Por lo general, se necesitan seis pasos para ejecutar un programa en C + +: editar, preprocesar, compilar, enlazar, cargar y ejecutar.

file:///D:/Capitulo%201.html

14/16

20/2/2014
21 22. . 23

El diseo del programa C + + de programacin incluyendo las estructuras de datos 6ed.pdf

. Un cargador transfiere el cdigo ejecutable en la memoria principal. Un algoritmo es un proceso paso a paso para resolver problemas en los que se lleg a una solucin en una cantidad finita de tiempo.

El proceso de resolucin de problemas tiene tres pasos: analizar el problema y disear un algoritmo, implementar el algoritmo en un lenguaje de programacin, y mantener el programa.
24. 25.

Los programas escritos utilizando el enfoque de diseo estructurado son ms fciles de entender, fciles de probar y depurar, y ms fcil de modificar.

En el diseo estructurado, un problema se divide en subproblemas ms pequeos. Cada subproblema se resuelve, y las soluciones a todos los subproblemas se combinan entonces para resolver el problema.
26. 27. 28.

En el diseo orientado a objetos (OOD), un programa es una coleccin de objetos que interactan. Un objeto consta de datos y las operaciones sobre los datos. El + sintaxis ANSI / ISO estndar de C + fue aprobado a mediados de 1998.

EXERCISES_
1. a. b. c. d. e. f. g. h. i. j. k.

Marque los siguientes enunciados como verdaderos o falsos. El primer dispositivo conocido para llevar a cabo los clculos fue el Pascaline. las computadoras de hoy en da pueden aceptar instrucciones de la palabra hablada, pero no pueden imitar el razonamiento humano. En la codificacin ASCII, cada carcter se codifica como una secuencia de 8 bits. Un compilador traduce un programa de alto nivel en lenguaje ensamblador. Las operaciones aritmticas se realizan dentro de la CPU, y si se encuentra un error, sta imprime los errores lgicos. Una secuencia de 0 y 1 se llama un cdigo decimal. Unos vnculos enlazadores y carga el cdigo objeto de la memoria principal en la CPU para su ejecucin. Desarrollo de un programa en C + + incluye seis pasos. Un programa escrito en un lenguaje de programacin de alto nivel se llama un programa fuente. ZB significa cero bytes.

El primer paso en el proceso de resolucin de problemas es analizar el problema. l . En el diseo orientado a objetos, un programa es una coleccin de funciones ofinteracting.
2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.

Cules son los comandos bsicos realizados por un equipo? Nombre tres componentes de hardware. Por qu se necesita un almacenamiento secundario? Cul es la funcin de un sistema operativo? Cules son los dos tipos de programas? Cules son las diferencias entre los lenguajes de mquina y lenguajes de alto nivel? Qu es un programa de cdigo? Por qu necesita un compilador? Qu tipo de errores son reportados por un compilador? Por qu necesita traducir un programa escrito en un lenguaje de alto nivel a lenguaje de mquina? Por qu preferira usted para escribir un programa en un lenguaje de alto nivel en lugar de un lenguaje de mquina? Cul es la vinculacin? Cules son las ventajas del anlisis de problemas y el diseo de algoritmos sobre escribir directamente un programa en un lenguaje de alto nivel?

file:///D:/Capitulo%201.html

15/16

20/2/2014
15.

El diseo del programa C + + de programacin incluyendo las estructuras de datos 6ed.pdf

Disear un algoritmo para encontrar el promedio ponderado de cuatro calificaciones de los exmenes. Los cuatro resultados de las pruebas y sus respectivos pesos se dan en el siguiente formato:

t e s t S c o r e lw e i g h t T e s t S c o r e l
Por ejemplo, los datos de la muestra es la siguiente:

7 50 . 2 09 50 . 3 58 50 . 1 56 50 . 3 0
16. 17. 18.

Disear un algoritmo para convertir el cambio dado en cuartos, diez, cinco y un centavo en peniques. Teniendo en cuenta el radio, en pulgadas, y el precio de una pizza, el diseo de un algoritmo para encontrar el precio de la pizza por pulgada cuadrada.

Para obtener una ganancia, los precios de los artculos que se venden en una tienda de muebles estn marcados en un 80%. Despus de marcar los precios de cada artculo se pone a la venta con un descuento del 10%. Disear un algoritmo para encontrar el precio de venta de un producto vendido en la tienda de muebles. Qu informacin se necesita para encontrar el precio de venta?
19.

Supongamos un , B, y c denotar las longitudes de los lados de un tringulo. A continuacin, el rea del tringulo se puede calcular utilizando la frmula:

\ js (s - a) (s -

b) (s - e) ,

donde s = (1/2) ( un + B + C ). Disear un algoritmo que utiliza esta frmula para encontrar el rea de un tringulo. Qu informacin se necesita para hallar el rea? Jason normalmente utiliza Internet para comprar diversos artculos. Si el coste total de los artculos pedidos, a la vez, es de $ 200 o ms, entonces el envo y la direccin es libre, de lo contrario, los gastos de envo es de $ 10 por artculo. Disear un algoritmo que le pide a Jason que introduzca el nmero de artculos pedidos y el precio de cada artculo. El algoritmo da salida entonces el monto total de facturacin. Su algoritmo debe utilizar un bucle (estructura de repeticin) para obtener el precio de cada artculo. (Para simplificar, se puede suponer que Jason ordena a no ms de cinco elementos a la vez.)
20.

Supongamos que el costo de envo de un fax internacional se calcula de la siguiente manera: El coste del servicio es de $ 3.00, $ 0.20 por pgina para las primeras 10 pginas, y $ 0.10 por cada pgina adicional. Disear un algoritmo que pide al usuario que introduzca el nmero de pginas que desea enviar por fax. El algoritmo utiliza entonces el nmero de pginas que desee enviar por fax para calcular el importe a cobrar.
. 21

Un cajero automtico permite a un cliente para retirar un mximo de $ 500 por da. Si un cliente se retira ms de $ 300, el precio de servicio es del 4% del importe de ms de $ 300. Siel cliente no tiene suficiente dinero en la cuenta, el cajero automtico informa al cliente sobre los fondos insuficientes y le da al cliente
22.

la opcin de retirar el dinero para un cargo de servicio de $ 25.00. Si no hay dinero en la cuenta o si el saldo de la cuenta es negativa, el cajero automtico no permite que el cliente pueda retirar dinero. Si la cantidad que debe retirarse es superior a $ 500, la ATM informa al cliente sobre el monto mximo que se puede retirar. Escribir un algoritmo que permite al cliente introducir la cantidad que se retire. El algoritmo comprueba entonces la cantidad total de la cuenta, dispensa el dinero al cliente, y la carga a la cuenta por la cantidad retirada y los cargos por servicios, si las hubiera.
23. a. b. c. d.

Se le da una lista de los nombres de los estudiantes y sus calificaciones. Disear un algoritmo que hace lo siguiente: Calcula las puntuaciones medias de las pruebas. Determina e imprime los nombres de todos los estudiantes cuyos resultados de los exmenes por debajo de la calificacin de la prueba de la media.

Determina la calificacin de la prueba ms alta. Imprime los nombres de todos los estudiantes cuyos puntajes en los exmenes son los mismos que la calificacin de la prueba ms alta.

(Usted debe dividir este problema en subproblemas de la siguiente manera: El primer subproblema determina el puntaje promedio de la prueba El segundo subproblema determina e imprime los nombres de todos los estudiantes cuyos resultados de los exmenes por debajo de la puntuacin media de ensayo La tercera subproblema determina la calificacin de la prueba ms alta.. . El cuarto subproblema imprime los nombres de todos los estudiantes cuyos puntajes en los exmenes son los mismos que la calificacin de la prueba ms alta. El algoritmo principal combina las soluciones de los subproblemas.)

file:///D:/Capitulo%201.html

16/16

También podría gustarte