Logo Studenta

programacion c ejercicios resueltos-16

¡Estudia con miles de materiales!

Vista previa del material en texto

18 | Capítulo 1: Repaso de programación y resolución de problemas
Interfaz Enlace de conexión en un límite compartido 
que permite a los sistemas independientes satisfacer y 
actuar o comunicarse entre sí.
Sistema interactivo Sistema que permite la comunica-
ción directa entre el usuario y la computadora.
Sistema operativo Conjunto de programas que controla 
todos los recursos de la computadora.
Editor Programa interactivo empleado para crear y modi-
fi car programas fuente o datos.
Además de los programas que compra o escribe el usuario, hay 
programas en la computadora que están diseñados para simplifi car 
la interfaz usuario/computadora, lo que facilita el uso de la máquina. 
La interfaz entre el usuario y la computadora es un conjunto de 
dispositivos I/O —por ejemplo, un teclado, ratón y pantalla— que 
permiten al usuario comunicarse con la computadora. Los usuarios 
trabajan con teclado, ratón y pantalla en su lado del límite de inter-
faz; los cables conectados a estos dispositivos llevan los impulsos 
electrónicos con los que trabaja la computadora en su lado del lími-
te de interfaz. En el límite mismo está un mecanismo que traduce la 
información para los dos lados.
Al comunicarse directamente con la computadora, se está usando un sistema interactivo. Los siste-
mas interactivos permiten la entrada directa de programas y datos y proporcionan retroalimentación 
inmediata al usuario. En contraste, los sistemas por lotes requieren que todos los datos sean introdu-
cidos antes de que se ejecute un programa y proporcionan retroalimentación sólo después de que se 
ha ejecutado un programa. En este texto se centra la atención en los sistemas interactivos, aunque en 
el capítulo 4 se examinan programas orientados a archivos, que comparten ciertas similitudes con los 
sistemas por lotes.
El conjunto de programas que simplifi ca la interfaz usuario/computadora y mejora la efi cacia del 
procesamiento se denomina software de sistema. Incluye el compilador así como el sistema operativo 
y el editor (véase la fi gura 1-10). El sistema operativo controla todos los recursos de la computadora. 
Puede introducir programas, llamar al compilador, ejecutar programas objeto y realizar cualquier 
otra instrucción del sistema. El editor es un programa interactivo utilizado para crear y modifi car 
programas fuente o datos.
ENTRADA
Programa
Introducción del programa,
introducción de datos
COMPUTADORA
Software del sistema: sistema 
operativo, compilador, editor
Informes, listas
SALIDA
Figura 1-10 Interfaz usuario/computadora
DALE01.indd 18DALE01.indd 18 4/12/06 18:48:284/12/06 18:48:28
 www.FreeLibros.me
1.3 ¿Qué es una computadora? | 19
Información básica
Los orígenes de C++ 
A fi nales de la década de 1960 y principios de la de 1970, Dennis Ritchie creó el lenguaje de programación 
C en AT&T Bell Labs. En aquella época, un grupo de personas en los laboratorios Bell estaba diseñando el 
sistema operativo UNIX. Al inicio, UNIX se escribía en lenguaje ensamblador, como era costumbre para casi 
todo el software de sistema en esos días. Para evitar las difi cultades de programar en lenguaje ensamblador, 
Ritchie inventó C como un lenguaje de programación de sistema. C combina las características de bajo nivel 
de un lenguaje ensamblador con la facilidad de uso y portabilidad de un lenguaje de alto nivel. UNIX se 
reprogramó de modo que casi 90% se escribió en C y el resto en lenguaje ensamblador.
Las personas suelen preguntarse de dónde viene el enigmático nombre C. En la década de 1960 un 
lenguaje de programación denominado BCPL (Basic Combined Programming Language) tuvo un segui-
miento pequeño pero leal, sobre todo en Europa. De BCPL surgió otro lenguaje con B como abreviatura 
para su nombre. Para su lenguaje, Dennis Ritchie adoptó características del lenguaje B y decidió que el 
sucesor de B debería nombrarse C. Así que el avance fue de BCPL a B y después a C.
En 1985 Bjarne Stroustrup, también de laboratorios Bell, inventó el lenguaje de programación C++. 
Añadió al lenguaje C características para abstracción de datos y programación orientada a objetos (temas que 
se analizan más adelante en este libro). En lugar de nombrarlo lenguaje D, el grupo de laboratorios Bell de una 
manera humorística lo nombró C++. Como se verá más adelante, ++ signifi ca la operación de incremento en 
los lenguajes C y C++. Dada una variable x, la expresión x++ indica incrementar (sumar uno a) el valor actual 
de x. Por tanto, el nombre C++ hace pensar en una versión mejorada (“incrementada”) del lenguaje C.
Desde los años en que el doctor Stroustrup inventó C++, el lenguaje comenzó a evolucionar en formas 
un poco diferentes en distintos compiladores de C++. Aunque las características fundamentales de C++ 
fueron casi las mismas en los compiladores de las empresas, una compañía podía añadir una nueva carac-
terística de lenguaje, mientras que otra no. Como resultado, los programas de C++ no siempre fueron trans-
portables de un compilador al siguiente. La comunidad dedicada a la programación acordó que el lenguaje 
necesitaba ser estandarizado, y un comité conjunto de la International Standards Organization (ISO) y el 
American National Standards Institute (ANSI) comenzó el largo proceso de crear un estándar de lenguaje 
C++. Después de varios años de análisis y debate, el estándar de lenguaje ISO/ANSI para C++ se aprobó de 
manera ofi cial a mediados de 1998. La mayoría de los compiladores actuales de C++ avalan el estándar ISO/
ANSI (de aquí en adelante llamado estándar C++). Para ayudarlo si está usando un compilador preestándar, 
en todo el libro se indican las discrepancias entre las características de lenguaje antiguas y las nuevas que 
podrían afectar la manera como escribe sus programas.
Aunque en un principio C se propuso como un lenguaje de programación de sistema, tanto C como 
C++ se emplean mucho hoy día en negocios, industria y computación personal. C++ es poderoso y versátil 
e incorpora una amplia variedad de conceptos de programación. En este libro el alumno conocerá una 
parte sustancial del lenguaje, pero C++ incorpora características complejas que van más allá del alcance de 
un curso de programación introductorio.
Aunque las computadoras solitarias (independientes) son comunes en los hogares y negocios 
pequeños, es muy común que muchos usuarios se conecten juntos y formen una red. En una red de 
área local (LAN, por sus siglas en inglés) las computadoras están conectadas mediante cables y deben 
estar razonablemente cerca, como en un edifi cio de ofi cinas. En una red de área amplia (WAN, por 
sus siglas en inglés) o red de largo alcance, las computadoras están muy apartadas desde el punto de 
vista geográfi co y se comunican por medio de líneas telefónicas, cable de fi bra óptica u otros medios. 
La red de largo alcance mejor conocida es la Internet, que al principio se diseñó como un medio para 
que las universidades, negocios y agencias de gobierno intercambiaran información de investigación. 
La Internet se hizo popular con el establecimiento de la World Wide Web, un sistema de computado-
ras enlazadas por medio de Internet que soporta documentos formateados específi camente (páginas 
web) que contienen texto, gráfi cas, audio y video.
DALE01.indd 19DALE01.indd 19 4/12/06 18:48:304/12/06 18:48:30
 www.FreeLibros.me
20 | Capítulo 1: Repaso de programación y resolución de problemas
1.4 Ética y responsabilidades en la profesión de computación
Toda profesión opera con un conjunto de principios éticos que ayudan a defi nir las responsabilidades 
de las personas que la practican. Por ejemplo, los médicos tienen la responsabilidad ética de mantener 
confi dencial la información acerca de sus pacientes. Los ingenieros tienen una responsabilidad ética 
con sus patrones de proteger la información de propiedad exclusiva, pero también tienen la responsa-
bilidad de proteger al público y al ambiente del daño que podría resultar de su trabajo. Los escritores 
estáncomprometidos éticamente a no plagiar el trabajo de otros, etcétera.
La computadora presenta un vasto y novedoso ámbito de capacidades que pueden afectar al 
ambiente de manera espectacular. Esto enfrenta a la sociedad con muchas situaciones éticas nuevas. 
Algunas de las prácticas éticas se aplican a la computadora, mientras que otras situaciones requieren 
nuevas reglas éticas. En algunos casos, podría no haber normas establecidas, pero corresponde a la 
persona decidir lo que es ético. En esta sección se examinan algunas situaciones comunes encontra-
das en la profesión de la computación que dan lugar a asuntos éticos.
Un profesional en la industria de la computación, como cualquier otro, tiene conocimiento que le 
permite hacer ciertas cosas que otros no pueden. Saber cómo tener acceso a las computadoras, cómo 
programarlas y cómo manejar datos da al profesional de las computadoras la capacidad para crear 
productos nuevos, resolver problemas importantes y ayudar a las personas a manejar sus interaccio-
nes con el mundo aún más complejo en el que vivimos. El conocimiento de las computadoras puede 
ser un medio poderoso para efectuar un cambio positivo.
El conocimiento puede ser empleado también de maneras no éticas. Una computadora puede 
ser programada para activar una bomba, sabotear la línea de producción de un competidor o robar 
dinero. Aunque estos ejemplos constituyen un punto extremo y son inmorales en cualquier contexto, 
hay ejemplos más sutiles que son únicos para las computadoras.
Piratería de software
Es fácil copiar el software de computadora. Pero al igual que los libros, el software está en general 
protegido por las leyes de los derechos de autor. Es ilegal copiar software sin permiso de su creador. 
Tal copia se llama piratería de software.
Las leyes de derechos de autor protegen a los creadores de 
software (y libros y arte), de modo que puedan obtener ganancias 
del esfuerzo y dinero gastado en el desarrollo de software. El desa-
rrollo de un paquete de software puede costar millones de dólares, 
y este costo (junto con el de producir el paquete, enviarlo, apoyar a los clientes y permitir que el 
vendedor al menudeo incremente el precio) se refl eja en el precio de compra. Si las personas hacen 
copias no autorizadas del software, entonces la compañía pierde esas ventas y tiene que aumentar sus 
precios para compensar o gastar menos dinero en el desarrollo de versiones mejoradas del software; 
en cualquier caso, se hace más difícil lograr un precio deseable del software.
En ocasiones los piratas de software racionalizan su robo de software con la excusa de que sólo 
hacen una copia para su propio uso. Después de todo, no es que estén vendiendo gran cantidad de 
copias ilegales. Pero si miles de personas hacen lo mismo, entonces la compañía pierde millones 
de dólares, lo que origina precios más altos para todos.
Los profesionales de la computación tienen la obligación ética de no participar en la piratería 
de software y deben tratar de evitar que ocurra. Nunca copie software sin autorización. Si alguien le 
pide una copia de una pieza de software, debe negarse a proporcionarla. Si alguien le pide “prestado” 
el software para probarlo, dígale que lo puede hacer en su máquina (o en la tienda de un vendedor al 
menudeo), pero no haga una copia.
Esta regla no está restringida a duplicar software protegido por las leyes del derecho de autor; 
incluye el plagio de todo o parte del código que pertenece a cualquier otro. Si alguien le autoriza 
copiar un poco de su código, entonces, como cualquier escritor responsable, debe agradecer a esa 
persona con una cita en el código.
Piratería de software Copia no autorizada de software 
para uso personal o uso por parte de otros.
DALE01.indd 20DALE01.indd 20 4/12/06 18:48:384/12/06 18:48:38
 www.FreeLibros.me

Continuar navegando