lunes, 8 de abril de 2013

Página 1. Estructura de datos en C++

Capítulo 1.

Desarrollo de Software. Tipos abtractos de datos.


  • Introducción.
La razón principal para que las personas aprendan lenguajes y técnicas de programación, utilizar la computadora como una herramienta para resolver problemas. Este capítulo introduce al lector en la metodología a seguir para la resolución de problemas con computadoras y en el diseño de algoritmos examinando el concepto de Abstracción de Datos. La abstracción de datos es la técnica de inventar nuevos tipos de datos que sean más adecuados a una aplicación y, por consiguiente, facilitar la escritura del programa. La técnica de abstracción de datos es una técnica potente de propósito general que cuando se utiliza adecuadamente, puede producir programas más cortos, más legibles y flexibles.

Los lenguajes de programación soportan en sus compiladores tipos de datos fundamentales o básicos (predefinidos), tales como int, char y float en C, C++ y Java, lenguajes de programación, como C++, tienen características que permiten ampliar el lenguaje añadiendo sus propios tipos de datos.

Un tipo de dato definido por el programador se denomina tipo abastracto de dato, TAD (Abstract Data Type, ADT). El término abstracto se refiere al medio en que un programador abstrae algunos conceptos de programación creando un nuevo tipo de dato.
La modularización de un programa utiliza la noción de tipo abstracto de dato (TAD) siempre que sea posible. Si el lenguaje de programación soporta los tipo que desea el usuario y el conjunto de operaciones sobre cada tipo, se obtiene un nuevo tipo de dato denominado TAD.

Los paradigmas más populares soportados por el lenguaje C++ son: programación estructurada y programación orientada a objetos.



  • 1.1. EL SOFTWARE (LOS PROGRAMAS)
El software de una computadora es un conjunto de instrucciones de programa detalladas que controlan y coordinan los componentes hardware de una computadora y controlan las operaciones de un sistema informático. EL auge de las computadoras en el siglo pasado y en la actual siglo XXI, se debe esencialmente al desarrollo de sucesivas generaciones de software potentes y cada vez más amistosas (<<fáciles de utlizar>>)

Las operaciones que debe de realizar el hardware son especificadas por una lista de intrucciones, llamadas programas, o software. Un programa de software es un conjunto de sentencias o instrucciones dadas al computador. El proceso de escritura o codificación de un programa se denomina programación y las personas que se especializan en esta actividad se denominan programadores. Existen dos tipos importantes de software: software del sistema y software de aplicaciones. Cada tipo realiza una función diferente. 

Software del sistema, es un conjunto generalizado de programas que gestiona los recursos del computador, tal como el procesador central, enlaces de comunicaciones y dispositivos periféricos. Los programadores que escriben software del sistema se llaman programadores de sistemas. Software de aplicaciones el conjunto de programas escritos por empresas o usuarios individuales o en equipo y que instruyen a la computadora para que ejecute una tarea específica. Los programadores que escriben software de aplicaciones se llaman programadores de aplicaciones.

Los dos tipos de software están relacionados entre sí, de modo que los usuarios y los programadores pueden hacer así un uso eficiente del computador. En la Figura 1.1 se muestra una vista organizacional de un computador donde se muestran los diferentes tipos de software a modo de capas de la computadora desde su interior (el hardware) hacia su exterior (usuario): las diferentes capas funcionan gracias a las instrucciones específicas (instrucciones máquina) que forman parte del software del sistema y llegan al software de aplicación, programado por los programadores de aplicaciones, que es utilizado por el usuario y que no requiere ser un especialista.





Figura 1.1. Relación entre programas de aplicación y programas del sistema.



  • 1.1.1. Software del sistema
El software del sistema coordina las diferentes partes de un sistema de computadora y conecta e interactúa entre el software de aplicación y el hardware del computador. El software del sistema gestiona el hardware del computador. Otro tipo de software del sistema que gestiona, controla las actividades de la computadora y realizan tareas de proceso comunes, se denomina utility o utlidades (en algunas partes de Latinoamérica, utilerías). 
El software del sistema que gestiona y controla las actividades del computador se denomina sistema operativo. Otro software del sistema son los programas traductores o de traducción de lenguajes de computador que convierte los programas escritos en lenguajes de programación, entendibles por los programadores, en lenguaje máquina que entienden las computadoras.

El software del sistema es el conjunto de programas indispensables para que la máquina funcione; se denominan también programas del sistema. Estos programas son, básicamente, el sistema operativo, los editores de texto, los compiladores/intérpretes (lenguajes de programación) y los programas de utilidad.



  • 1.1.1. Software de aplicación
El software de aplicación tiene como función principal asistir y ayudar a un usuario de un computador para ejecutar tareas específicas. Los programas de aplicación se pueden desarrollar con diferentes lenguajes y herramientas de software. Por ejemplo: una aplicación de procesamiento de textos (word processing) tal como Word de Microsoft o Writely de Google que ayuda a crear documentos, una hoja de cálculo tales como Lotus 1-2-3 o Excel que ayudan a automatizar tareas tediosas o repetitivas de cálculos matemáticos o estadísticos, a generar diagramas o gráficos, presentaciones visuales como PowerPoint; o crear bases de datos como Acces u Oracle que ayudan a crear archivos y registros de datos.

Los usuarios normalmente compran, el software de aplicaciones en discos CDs o DVDs (antiguamente en disquetes) o lo descargan (bajan) de la Red de Internet y han de instalar el software copiando los programas correspondientes en el disco duro de la computadora. Cuando compre estos programas asegúrese de que son compatibles con su computador y con su sistema operativo. Existe una gran diversidad de programas de aplicación para todo tipo de actividades tanto de modo personal, como de negocios, navegación y manipulación de Internet, gráficos y presentaciones visuales, etc.

Los lenguajes de programación sirven para escribir programas que permitan la comunicación usuario/máquina. Unos programas especiales llamados traductores (compiladores o intérpretes) convierten las instrucciones escritas en lenguajes de programación en instrucciones escritas en lenguajes máquina (0 y 1, bits) que esta pueda entender.

Los programas de utilidad facilitan el uso de la computadora. Un buen ejemplo es un editor de textos que permite la escritura y edición de documentos. Los programas que realizan tareas concretas, nóminas, contabilidad, análisis estadístico, etc. Es decir, los programas que podrá escribir en C++ o Java, se denominan programas de aplicación.



  • 1.1.3. Sistema operativo
Un sistema operativo SO (Operating System, OS) es tal vez la parte más importante del software del sistema y es el  software que controla y gestiona los recursos del computador. En la practica, el sistema operativo es la colección de programas de computador que controla la interacción del usuario y el hardware del computador. El sistema operativo es el administrador principal del computador, y por ello a veces, se le compara con el director de una orquesta ya que este software es el responsable de dirigir todas las operaciones del computador y gestionar todos sus recursos.

El sistema operativo asigna recursos, planifica el uso de recursos y tareas del computador, y monitoriza las actividades del sistema informático. Estos recursos incluyen memoria, dispositivos de E/S (Entrada y Salida), y la UCP (Unidad Central de Proceso). El sistema operativo proporciona servicios tales como asignar memoria a un programa y manipulación del control de los dispositivos de E/S tales como el monitor del teclado o las unidades de disco. La Tabla 1.1 muestra algunos de los sistemas operativos más populares utilizados en enseñanza y en informática profesional.

Cuando un usuario interactúa con un computador, la interacción esta controlada por el sistema operativo. Un usuario se comunica con un sistema operativo a través de una interfaz de usuario de ese sistema operativo. Los sistemas operativos modernos utilizan una interfaz gráfica de usuario, IGU (Graphical User Interface, GUI) que hace uso masivo de iconos, botones, barras y cuadros de diálogo para realizar tareas que se controlan por el teclado o el ratón (mouse) entre otros dispositivos.


Sistema operativo
Características
Windows vista
Nuevo sistema operativo de Microsoft presentado a primeros de 2006, pero que se ha lanzado en noviembre de 2006.
Windows XP
Sistema más utilizado en la actualidad, tanto en el campo de la enseñanza, como en la industria y negocios. Su fabricante es Microsoft.
Windows 98/ME/2000
Versiones anteriores de Windows pero que todavía son muy utilizados.
UNIX
Sistema operativo abierto, escrito en C y todavía muy utilizado en el campo profesional.
Linux
Sistema operativo de software abierto, gratuito y de libre distribución, similar a UNIX, y una gran alternativa a Windows. Muy utilizado actualmente en servidores de aplicaciones para internet.
Mac OS
Sistema operativo de las computadoras Apple Macintosh.
DOS y OS/2
Sistemas operativos creados por Microsoft e IBM respectivamente, ya poco utilizados pero que han sido base de los actuales sistemas operativos.
CP/M
Sistemas operativos de 8 bits para las primeras microcomputadoras nacidas en la década de los setenta.
Symbian
Sistema operativo para teléfonos móviles apoyado fundamentalmente por el fabricante de teléfonos celulares Nokia.
PalmOS
Sistema operativo para agendas digitales, PDA, del fabricante Palm.
Windows mobile, CE
Sistema operativo para teléfonos móviles (celulares) con arquitectura y apariencias similares a Windows XP; actualmente en su versión 6.0



Tabla 1.1. Sistemas operativos - actuales y antiguos - utilizados en educación y en la empresa



Normalmente el sistema operativo se almacena de modo permanente en un chip de memoria de sólo lectura (ROM), de modo que este disponible tan pronto el computador se pone en marcha ("se enciende" o "se prende"). Otra parte del sistema operativo puede residir en disco y se almacena en memoria RAM en la inicialización del sistema por primera vez en una operación que se llama carga del sistema (booting).

Uno de los programas más importantes es el sistema operativo, que sirve, esencialmente, para facilitar la escritura y uso de sus propios programas. El sistema operativo dirije las operaciones globales de la computadora, instruye a la computadora para ejecutar otros programas y controla el almacenamiento y recuperación de archivos (programas y datos) de cintas y discos. Gracias al sistema operativo es posible que el programador pueda introducir y grabar nuevo programas, así como instruir a la computadora para que los ejecute. Los sistemas operativos pueden ser, monousuarios (un sólo usuario) y multiusuarios  o tiempo compartido (diferentes usuarios); atendiendo al número de usuarios y monocarga (una sola tarea) o multitarea (múltiples tareas) según las tareas (procesos) que puede realizar simultáneamente. C++ corre prácticamente en todos los sistemas operativos Windows XP, Windows 95, Windows NT, Windows 2000, UNIX, Linux, Vista, Windows 7, Windows 8..., y en casi todas las computadoras personales actuales PC, Mac, Sun, etc.





No hay comentarios:

Publicar un comentario