Está en la página 1de 102

OBDULIA ESTRADA ESPARZA

TEMARIO ALGORITMOS Y LENGUAJES DE PROGRAMACION UNIDAD I 1.1 Nuevas Tecnologas de la informacin.


Tecnologas de la Informacin y la Comunicacin ('TIC), se encargan del estudio, desarrollo, implementacin, almacenamiento y distribucin de la informacin mediante la utilizacin de hardware y software como medio de sistema informtico. Las tecnologas de la tecnologas emergentes y que hacen referencia procesar y difundir todo educativa, organizacin etc.). informacin y la comunicacin son una parte de las que habitualmente suelen identificarse con las siglas TIC a la utilizacin de medios informticos para almacenar, tipo de informacin con diferentes finalidades (formacin y gestin empresarial, toma de decisiones en general,

Ejemplos: Chat, web, mail, Bluetooth etc. El desarrollo tecnolgico Internet, comunicaciones mviles, banda ancha, satlites, microondas, etc. est produciendo cambios significativos en la estructura econmica y social, y en el conjunto de las relaciones sociales. La informacin se ha convertido en el eje promotor de cambios sociales, econmicos y culturales. El auge de las telecomunicaciones ha producido una transformacin de las tecnologas de la informacin y de la comunicacin, cuyo impacto ha afectado a todos los sectores de la economa y de la sociedad. La expansin de redes informticas ha hecho posible la universalizacin de los intercambios y relaciones, al poner en comunicacin a amplios sectores de ciudadanos residentes en espacios geogrficos muy distantes entre s. Los espacios nacionales se han visto superados por las tecnologas de la informacin que no tienen fronteras: informaciones polticas, militares, econmicas especialmente financieras, sociales, empresariales, etc. se intercambian y se transmiten cada da por todo el mundo, de manera que nuestra vida est condicionada en cada momento por lo que est sucediendo a miles de kilmetros de distancia. Cualquier acontecimiento poltico o econmico ocurrido en un pas puede tener una repercusin importante en la actividad econmica de otras naciones. La subida de los tipos de inters en Estados Unidos, por ejemplo, afecta al precio del dinero en Europa y, consiguientemente, a la liquidez monetaria de los ciudadanos, y por tanto, a sus posibilidades de consumo y bienestar.

OBDULIA ESTRADA ESPARZA

1.2 Elementos de un sistema computacional


El manejo de la computadora, requiere de conocer sus partes y la funcin especfica a cada una de ellas.

Unidad Central de Procesos (UCP) Es la parte ms importante de la computadora, en ella se realizan todos los procesos de la informacin. La UCP est estructurada por un circuito integrado llamado microprocesador, el cual vara en las diferentes marcas de computadoras.

La UCP se divide en dos unidades: Unidad Aritmtica Lgica (UAL).- Es la parte del computador encargada de realizar las: operaciones aritmticas y lgicas, as como comparaciones entre datos. Unidad de Control (UC).- Se le denomina tambin la parte inteligente del microprocesador, se encarga de distribuir cada uno de los procesos al rea correspondiente para su transformacin.

Dispositivos de entrada (DE) Los dispositivos de entrada son aquellos al travs de los cuales se mandan datos a la unidad central de procesos, por lo que su funcin es eminentemente emisora. Algunos de los dispositivos de entrada ms conocidos son el teclado, el manejador de discos magnticos, la reproductora de cinta magntica, el ratn, el digitalizador (scanner), el lector ptico de cdigo de barras y el lpiz ptico entre otros. Dispositivos de salida (DS) Los dispositivos de salida son aquellos que reciben informacin de la computadora, su funcin es eminentemente receptora y por ende estn imposibilitados para enviar informacin. Entre los dispositivos de salida ms conocidos estn: la impresora (matriz, cadena, margarita, lser o de chorro de tinta), el delineador (plotter), la grabadora de cinta magntica o de discos magnticos y la pantalla o monitor.

OBDULIA ESTRADA ESPARZA

Memorias Son los dispositivos mediante los cuales se almacenan datos. En las memorias se deposita y queda disponible gran cantidad de informacin, instrucciones que han de ser ejecutadas por los diferentes sistemas de la computadora. En el diagrama de la computadora se muestra al travs de la direccin de las flechas que las memorias pueden emitir o recibir la informacin. Las memorias son las siguientes: Memoria RAM (Random Acces Memory) Es la memoria con la cual el usuario proporciona las rdenes para acceder y programar a la computadora. Es de tipo voltil, o sea, la informacin que se le proporciona, se pierde cuando se apaga la computadora. Su acceso es aleatorio, esto indica que los datos no tienen un orden determinado, aunque se pueden pedir almacenar en forma indistinta. Memoria NVRAM (No Volatil Random Acces Memory) similar a la memoria RAM, se caracteriza por tener una batera que acta sobre la misma memoria y de esta manera se mantiene la informacin. Memoria SAM (Serial Access Memory). En sta memoria los datos para trabajar en la computadora se encuentran seriados, son utilizados para la lectura o escritura de documentos, en forma de serie de uno en uno. Esto indica que el orden de almacenamiento y salida de la informacin debe ser el mismo. Memoria ROM (Read Only Memory). - En esta memoria estn almacenados los programas que hacen trabajar a la computadora y normalmente se graban y protegen desde su fabricacin. Es de lectura exclusiva por lo que no se puede escribir en ella. Memoria PROM (Programmable Read Only Memory). - Esta memoria se caracteriza por programarse una sola vez, su circuito integrado est hecho para aceptar la informacin e inmediatamente cerrarse. A esta memoria solo se accede exclusivamente para su lectura. Memoria EPROM (Eraser Programmable Read Only Memory). - Esta memoria trabaja Como la memoria PROM, se diferencia por que su informacin puede ser modificada mediante UN aparato que emite De rayos ultravioleta. Memoria EEPROM (Eraser Electrical Programmable Read Only Memory).- Esta memoria tambin se programa como la memoria PROM, los datos pueden alterarse por medio de flujos elctricos.

OBDULIA ESTRADA ESPARZA

Memorias auxiliares (secundarias) Las memoria auxiliares mantienen de manera permanente los datos que forman parte del sistema automatizado de la computadora -de una manera contraria a la memoria central que contiene datos y programas de manera temporal (memorias voltiles) tiles para datos intermediarios necesarios por la computadora para realizar un clculo especfico- se encuentran bajo la forma de cintas, discos duros, cassettes, cintas magnticas en cartuchos o discos flexibles, entre otras.

Teclado de la computadora El teclado de una computadora es el dispositivo de entrada ms usado, de acuerdo a la marca y el modelo de la computadora se presentan algunas variaciones, en esta parte se explicar, a grandes rasgos, el teclado de una computadora personal (PC). El teclado de una PC de acuerdo a las funciones de las diversas teclas se divide para su estudio en cuatro partes, que son: teclado de funciones, teclado alfanumrico, teclado de edicin y teclado numrico.

OBDULIA ESTRADA ESPARZA

1.2.1 Hardware.
Hardware es la parte fsica de un computador y ms ampliamente de cualquier dispositivo electrnico. El trmino proviene del ingls y es definido por la RAE como el conjunto de elementos materiales que conforman una computadora , sin embargo, es usual que sea utilizado en una forma ms amplia, generalmente para describir componentes fsicos de una tecnologa, as el hardware puede ser de un equipo militar importante, un equipo electrnico, un equipo informtico o un robot.

En informtica tambin se aplica a los perifricos de una computadora tales como el disco duro, CD-ROM, disquetera (floppy), etc... En dicho conjunto se incluyen los dispositivos electrnicos y electromecnicos, circuitos, cables, armarios o cajas, perifricos de todo tipo y cualquier otro elemento fsico involucrado.

El hardware se refiere a todos los componentes fsicos (que se pueden tocar), en el caso de una computadora personal seran los discos, unidades de disco, monitor, teclado, la placa base, el microprocesador, tc. En cambio, el software es intangible, existe como informacin, ideas, conceptos, smbolos, pero no ocupa un espacio fsico, se podra decir que no tiene sustancia. Una buena metfora sera un libro: las pginas y la tinta son el hardware, mientras que las palabras, oraciones, prrafos y el significado del texto (informacin) son el software. Una computadora sin software sera tan intil como un libro con pginas en blanco.

Se clasifica generalmente en bsico y complementario, entendiendo por bsico todo aquel dispositivo necesario para iniciar el funcionamiento de la computadora, y el complementario, como su nombre indica, sirve para realizar funciones especficas (ms all de las bsicas) no estrictamente necesarias para el funcionamiento de la computadora. Existen 2 tipos de categoras importantes en el campo del "Hardware". Por un lado, el Bsico, que hace referencia a las herramientas indispensables para correr una PC, y por otro lado, est el "Hardware Complementario", que distingue a aquellos extras que uno puede sumar a la mquina, para jugar e ir ms lejos de sus posibilidades originales.

OBDULIA ESTRADA ESPARZA

Las computadoras son aparatos electrnicos capaces de interpretar y ejecutar instrucciones programadas que consisten en operaciones aritmetilgicas y de entrada/salida; reciben entradas (datos para su procesamiento), producen salidas (resultados del procesamiento), procesan y almacenan informacin.

Todo sistema informtico tiene componentes hardware dedicados a alguna de estas funciones:

Perifricos de entrada Perifricos de salida Perifricos de entrada/salida Memoria Unidad central de procesamiento

OBDULIA ESTRADA ESPARZA

1.2.2 Software y Firmware.


Software: de operaciones, de traducciones y aplicacin. Firmware: definicin, ventajas y desventajas

Software de aplicaciones: El software de aplicacin esta diseado y escrito para realizar tareas personales, empresariales como el procesamiento de nminas, la administracin de los recursos humanos o el control de inventarios. Todas stas aplicaciones procesan datos (recepcin de materiales) y generan informacin (registros de nmina) para el usuario. Sistemas Operativos (SO) es en s mismo un programa de computadora. Sin embargo, es un programa muy especial, quiz el ms complejo e importante en una computadora.

El SO despierta a la computadora y hace que reconozca a la CPU, la memoria, el teclado, el sistema de vdeo y las unidades de disco. Adems, proporciona la facilidad para que los usuarios se comuniquen con computadora y sirve de plataforma a partir de la cual se corran programas de aplicacin. Cuando enciendes una computadora, lo primero que sta hace es llevar a cabo un autodiagnstico llamado autoprueba de encendido ( power on self test, POST). Durante la post, la computadora identifica su memoria, sus discos, su teclado, su sistema de vdeo y cualquier otro dispositivo conectado a ella. Lo siguiente que la computadora hace es buscar un SO para arrancar (boot).

El Software de operacin algunas ocasiones tambin denominado Software de base consiste en un software que sirve para controlar e interactuar con el sistema, proporcionando control sobre el hardware y dando soporte a otros programas. En contraposicin del llamado Software de Aplicacin. Ejemplos de software del sistema son sistema operativo, sistema operativo de red, compiladores, Antivirus, libreras tales como OpenGL (para la aceleracin grfica), PNG para el sistema grfico o demonios que controlan la temperatura, la velocidad del disco duro (como hdparm) o la frecuencia del procesador como por ejemplo cpudyn.

OBDULIA ESTRADA ESPARZA

El software de sistema realiza tareas como la transferencia de datos entre la memoria RAM y los dispositivos de almacenamiento (disco rgido, unidades de discos pticos, etc), o bien puede realizar la operacin de renderizado de texto en una pantalla. Clases de software de sistema pueden ser cargadores de programas, sistemas operativos, controladores de dispositivos, herramientas de programacin, compiladores, ensambladores, enlazadores, y programas utilitarios.

Firmware o Programacin en Firme, es un bloque de instrucciones de programa para propsitos especficos, grabado en una memoria tipo ROM, que establece la lgica de ms bajo nivel que controla los circuitos electrnicos de un dispositivo de cualquier tipo. Al estar integrado en la electrnica del dispositivo es en parte hardware, pero tambin es software, ya que proporciona lgica y se dispone en algn tipo de lenguaje de programacin. Funcionalmente, el firmware es el intermediario (interfaz) entre las rdenes externas que recibe el dispositivo y su electrnica, ya que es el encargado de controlar a sta ltima para ejecutar correctamente dichas rdenes externas(...) Encontramos Firmware en memorias ROM de los sistemas de diversos dispositivos perifricos, como en monitores de video, unidades de disco, impresoras, etc., pero tambin en los propios microprocesadores, chips de memoria principal y en general en cualquier circuito integrado. Muchos de los Firmwares almacenados en ROM estn protegidos por Derechos de Autor. El programa BIOS de una computadora es un firmware cuyo propsito es activar una mquina desde su encendido y preparar el entorno para la instalacin de un Sistema Operativo complejo, as como responder a otros eventos externos (botones de pulsacin humana) y al intercambio de rdenes entre distintos componentes de la computadora. En un microprocesador el firmware es el que recibe las instrucciones de los programas y las ejecuta en la compleja circuitera del mismo, emitiendo rdenes a otros dispositivos del sistema.

OBDULIA ESTRADA ESPARZA

1.3 Clasificacin de los sistemas operativos:


Clasificacin de los sistemas operativos: la familia de Windows, Arquitectura Macintosh, Unx y Linux. Qu es un Sistema Operativo ?. Desde su creacin, las computadoras digitales han utilizado un sistema de codificacin de instrucciones en sistema de numeracin binaria, es decir con los 0S. Esto se debe a que los circuitos integrados funcionan con este principio, es decir, hay corriente o no hay corriente. En el origen de la historia de las computadoras ( hace unos cuarenta aos), los sistemas operativos no existan y la introduccin de un programa para ser ejecutado se converta en un increble esfuerzo que solo poda ser llevado a cabo por muy pocos expertos. Esto hacia que las computadoras fueran muy complicadas de usar y que se requiriera tener altos conocimientos tcnicos para operarlas. Era tan complejo su manejo, que en algunos casos el resultado llegaba a ser desastroso. Adems, el tiempo requerido para introducir un programa en aquellas grandes mquinas de lento proceso superaba por mucho el de ejecucin y resultaba poco provechosa la utilizacin de computadoras para resolucin de problemas prcticos. Se buscaron medios ms elaborados para manipular la computadora, pero que a su vez simplificaran la labor del operador o el usuario. Es entonces cuando surge la idea de crear un medio para que el usuario pueda operar la computadora con un entorno, lenguaje y operacin bien definido para hacer un verdadero uso y explotacin de esta. Surgen los sistemas operativos. Un sistema operativo es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar, codificar y emitir las ordenes al procesador central para que este realice las tareas necesarias y especificas para completar una orden. El sistema operativo, es el instrumento indispensable para hacer de la computadora un objeto til. Bajo este nombre se agrupan todos aquellos programas que permiten a los usuarios la utilizacin de este enredo de cables y circuitos, que de otra manera serian difciles de controlar. Un sistema operativo se define como un conjunto de procedimientos manuales y automticos, que permiten a un grupo de usuarios compartir una instalacin de computadora eficazmente.

OBDULIA ESTRADA ESPARZA

Interfaz de Lnea de Comandos. La forma de interfaz entre el sistema operativo y el usuario en la que este escribe los comandos utilizando un lenguaje de comandos especial. Los sistemas con interfaces de lneas de comandos se consideran ms difciles de aprender y utilizar que los de las interfaces grficas. Sin embargo, los sistemas basados en comandos son por lo general programables, lo que les otorga una flexibilidad que no tienen los sistemas basados en grficos carentes de una interfaz de programacin. Interfaz Grfica del Usuario. Es el tipo de visualizacin que permite al usuario elegir comandos, iniciar programas y ver listas de archivos y otras opciones utilizando las representaciones visuales (iconos) y las listas de elementos del men. Las selecciones pueden activarse bien a travs del teclado o con el mouse. Para los autores de aplicaciones, las interfaces grficas de usuario ofrecen un entorno que se encarga de la comunicacin con el ordenador o computadora. Esto hace que el programador pueda concentrarse en la funcionalidad, ya que no esta sujeto a los detalles de la visualizacin ni a la entrada a travs del mouse o el teclado. Tambin permite a los programadores crear programas que realicen de la misma forma las tareas ms frecuentes, como guardar un archivo, porque la interfaz proporciona mecanismos estndar de control como ventanas y cuadros de dilogo. Otra ventaja es que las aplicaciones escritas para una interfaz grfica de usuario son independientes de los dispositivos: a medida que la interfaz cambia para permitir el uso de nuevos dispositivos de entrada y salida, como un monitor de pantalla grande o un dispositivo ptico de almacenamiento, las aplicaciones pueden utilizarlos sin necesidad de cambios. Funciones de los Sistemas Operativos. Interpreta los comandos que permiten al usuario comunicarse con el ordenador. Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el mouse. Organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnticas. Gestiona los errores de hardware y la prdida de datos.

OBDULIA ESTRADA ESPARZA

Servir de base para la creacin del software logrando que equipos de marcas distintas funcionen de manera anloga, salvando las diferencias existentes entre ambos. Configura el entorno para el uso del software y los perifricos; dependiendo del tipo de mquina que se emplea, debe establecerse en forma lgica la disposicin y caractersticas del equipo. Como por ejemplo, una microcomputadora tiene fsicamente dos unidades de disco, puede simular el uso de otras unidades de disco, que pueden ser virtuales utilizando parte de la memoria principal para tal fin. En caso de estar conectado a una red, el sistema operativo se convierte en la plataforma de trabajo de los usuarios y es este quien controla los elementos o recursos que comparten. De igual forma, provee de proteccin a la informacin que almacena. Clasificacin de los Sistemas Operativos. Con el paso del tiempo, los Sistemas Operativos fueron clasificndose de diferentes maneras, dependiendo del uso o de la aplicacin que se les daba. A continuacin se mostrarn diversos tipos de Sistemas Operativos que existen en la actualidad, con algunas de sus caractersticas: Sistemas Operativos de multiprogramacin (o Sistemas Operativos de multitarea). Es el modo de funcionamiento disponible en algunos sistemas operativos, mediante el cual una computadora procesa varias tareas al mismo tiempo. Existen varios tipos de multitareas. La conmutacin de contextos (context Switching) es un tipo muy simple de multitarea en el que dos o ms aplicaciones se cargan al mismo tiempo, pero en el que solo se esta procesando la aplicacin que se encuentra en primer plano (la que ve el usuario). Para activar otra tarea que se encuentre en segundo plano, el usuario debe traer al primer plano la ventana o pantalla que contenga esa aplicacin. En la multitarea cooperativa, la que se utiliza en el sistema operativo Macintosh, las tareas en segundo plano reciben tiempo de procesado durante los tiempos muertos de la tarea que se encuentra en primer plano (por ejemplo, cuando esta aplicacin esta esperando informacin del usuario), y siempre que esta aplicacin lo permita. En los sistemas multitarea de tiempo compartido, como OS/2, cada tarea recibe la atencin del microprocesador durante una fraccin de segundo. Para mantener el sistema en orden, cada tarea recibe un nivel de prioridad o se procesa en orden secuencial. Dado que el sentido temporal del usuario es mucho ms lento que la velocidad de procesamiento del ordenador, las operaciones de multitarea en tiempo compartido parecen ser simultneas.

OBDULIA ESTRADA ESPARZA

Se distinguen por sus habilidades para poder soportar la ejecucin de dos o ms trabajos activos (que se estn ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento (UCP) siempre tenga alguna tarea que ejecutar, aprovechando al mximo su utilizacin. Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno est usando el procesador, o un procesador distinto, es decir, involucra mquinas con ms de una UCP. Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MACOS, OS/2, soportan la multitarea.

Las caractersticas de un Sistema Operativo de multiprogramacin o multitarea son las siguientes: Mejora productividad del sistema y utilizacin de recursos. Multiplexa recursos entre varios programas. Generalmente soportan mltiples usuarios (multiusuarios). Proporcionan facilidades para mantener el entorno de usuarios individuales. Requieren validacin de usuario para seguridad y proteccin. Proporcionan contabilidad del uso de los recursos por parte de los usuarios. Multitarea sin soporte multiusuario se encuentra en algunos computadores personales o en sistemas de tiempo real. Sistemas multiprocesadores son sistemas multitareas por definicin ya que soportan la ejecucin simultnea de mltiples tareas sobre diferentes procesadores.

En general, los sistemas de multiprogramacin se caracterizan por tener mltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos perifricos.

OBDULIA ESTRADA ESPARZA

Sistema Operativo Monotareas. Los sistemas operativos monotareas son ms primitivos y es todo lo contrario al visto anteriormente, es decir, solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una. Por ejemplo cuando la computadora esta imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresin. Sistema Operativo Monousuario. Los sistemas monousuarios son aquellos que nada ms puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicacin que se este ejecutando. Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se esta utilizando, esto quiere decir, que las instrucciones que se dan, son procesadas de inmediato; ya que existe un solo usuario. Y estn orientados principalmente por los microcomputadores. Sistema Operativo Multiusuario. Es todo lo contrario a monousuario; y en esta categora se encuentran todos los sistemas que cumplen simultneamente las necesidades de dos o ms usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes. En otras palabras consiste en el fraccionamiento del tiempo (timesharing). Sistemas Operativos por lotes. Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interaccin entre los usuarios y los programas en ejecucin. Se renen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o ms trabajos como sucede en el procesamiento en serie. Estos sistemas son de los ms tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas. Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecucin muy alto, porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuenciabilidad de la ejecucin de los trabajos. Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual est orientado a procesamiento cientfico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento acadmico.

OBDULIA ESTRADA ESPARZA

Algunas otras caractersticas con que cuentan los Sistemas Operativos por lotes son: Requiere que el programa, datos y rdenes al sistema sean remitidos todos juntos en forma de lote. Permiten poca o ninguna interaccin usuario/programa en ejecucin. Mayor potencial de utilizacin de recursos que procesamiento serial simple en sistemas multiusuarios. No conveniente para desarrollo de programas por bajo tiempo de retorno y depuracin fuera de lnea. Conveniente para programas de largos tiempos de ejecucin (ej, anlisis estadsticos, nminas de personal, etc.). Se encuentra en muchos computadores procesamiento serial. personales combinados con

Planificacin del procesador sencilla, tpicamente procesados en orden de llegada. Planificacin de memoria sencilla, generalmente se divide en dos: parte residente del S.O. y programas transitorios. No requieren gestin crtica de dispositivos en el tiempo. Suelen proporcionar gestin sencilla de manejo de archivos: se requiere poca proteccin y ningn control de concurrencia para el acceso. Sistemas Operativos de tiempo real. Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, estn subutilizados sus recursos con la finalidad de prestar atencin a los procesos en el momento que lo requieran. se utilizan en entornos donde son procesados un gran nmero de sucesos o eventos. Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy especficas como control de trfico areo, bolsas de valores, control de refineras, control de laminadores. Tambin en el ramo automovilstico y de la electrnica de consumo, las aplicaciones de tiempo real estn creciendo muy rpidamente. Otros campos de aplicacin de los Sistemas Operativos de tiempo real son los siguientes:

OBDULIA ESTRADA ESPARZA

Control de trenes. Telecomunicaciones. Sistemas de fabricacin integrada. Produccin y distribucin de energa elctrica. Control de edificios. Sistemas multimedia. Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra. Los Sistemas Operativos de tiempo real, cuentan con las siguientes caractersticas: Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la mayora externos al sistema computacional, en breve tiempo o dentro de ciertos plazos. Se utilizan en control industrial, conmutacin telefnica, control de vuelo, simulaciones en tiempo real., aplicaciones militares, etc. Objetivo es proporcionar rpidos tiempos de respuesta. Procesa rfagas de miles de interrupciones por segundo sin perder un solo suceso. Proceso se activa tras ocurrencia de suceso, mediante interrupcin. Proceso de mayor prioridad expropia recursos. Por tanto generalmente se utiliza planificacin expropiativa basada en prioridades. Gestin de memoria menos exigente que tiempo compartido, usualmente procesos son residentes permanentes en memoria. Poblacin de procesos esttica en gran medida. Poco movimiento de programas entre almacenamiento secundario y memoria. Gestin de archivos se orienta ms a velocidad de acceso que a utilizacin eficiente del recurso.

OBDULIA ESTRADA ESPARZA

Sistemas Operativos de tiempo compartido. Permiten la simulacin de que el sistema y sus recursos son todos para cada usuario. El usuario hace una peticin a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecer en la terminal del usuario. Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusin de que tiene el sistema dedicado para s mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administracin de memoria principal y secundaria. Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10. Caractersticas de los Sistemas Operativos de tiempo compartido: Populares representantes de sistemas multiprogramados multiusuario, ej: sistemas de diseo asistido por computador, procesamiento de texto, etc. Dan la ilusin de que cada usuario tiene una mquina para s. Mayora utilizan algoritmo de reparto circular. Programas se ejecutan con prioridad rotatoria que se incrementa con la espera y disminuye despus de concedido el servicio. Evitan monopolizacin del sistema asignando tiempos de procesador (time slot). Gestin de memoria proporciona proteccin a programas residentes. Gestin de archivo debe proporcionar proteccin y control de acceso debido a que pueden existir mltiples usuarios accesando un mismo archivos. Sistemas Operativos distribuidos. Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores est en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas bsicos de stos. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema dbilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.

OBDULIA ESTRADA ESPARZA

Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo. Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc. Caractersticas de los Sistemas Operativos distribuidos: Coleccin de sistemas autnomos capaces de comunicacin y cooperacin mediante interconexiones hardware y software . Gobierna operacin de un S.C. y proporciona abstraccin de mquina virtual a los usuarios. Objetivo clave es la transparencia. Generalmente proporcionan medios para la comparticin global de recursos. Servicios aadidos: denominacin global, sistemas de archivos distribuidos, facilidades para distribucin de clculos (a travs de comunicacin de procesos internodos, llamadas a procedimientos remotos, etc.). Sistemas Operativos de red. Son aquellos sistemas que mantienen a dos o ms computadoras unidas atravs de algn medio de comunicacin (fsico o no), con el objetivo primordial de poder compartir los diferentes recursos y la informacin del sistema. El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware. Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic. Sistemas Operativos paralelos. En estos tipos de Sistemas Operativos se pretende que cuando existan dos o ms procesos que compitan por algn recurso se puedan realizar o ejecutar al mismo tiempo. En UNIX existe tambin la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). As, en lugar de esperar a que el proceso termine de ejecutarse (como lo hara normalmente), regresa a atender al usuario inmediatamente despus de haber creado el proceso.

OBDULIA ESTRADA ESPARZA

Ejemplos de estos tipos de Sistemas Operativos estn: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM.

Conclusin: Luego de haber investigado y analizado se puede ver que se han desarrollado varios tipos de sistemas operativos con diferentes interfaces y categoras. Pero hemos podido observar que todos los sistemas operativos han sufrido cambios por parte de los programadores, y siguen evolucionando. Los sistemas operativos empleados normalmente son UNIX, Macintosh OS, MSDOS, OS/2, Windows 95 y Windows NT. El UNIX y sus clones permiten mltiples tareas y mltiples usuarios. Otros SO multiusuario y multitarea son OS/2, desarrollado inicialmente por Microsoft e IBM, Windows NT y Win95 desarrollados por Microsoft. El SO multitarea de Apple se denomina Macintosh OS. El MS-DOS es un SO popular entre los usuarios de PCs pero solo permite un usuario y una tarea. Los sistemas operativos han ido evolucionando a medida de las necesidades que se fueron generando, cada sistema operativo tiene un fin determinado que es la de realizar tareas segn el objetivo a lograr, dependiendo de lo que necesite el o los usuarios. La mayora de los sistemas operativos de ultima generacin tienden a, atender un gran numero de usuarios, y que los procesos a realizar demoren en un mnimo de tiempo.

OBDULIA ESTRADA ESPARZA

1.4 Paquetera de software: Hoja de clculo y modelos de bases de datos.


Hoja de clculo.

Una hoja de clculo es un programa que permite manipular nmeros dispuestos en forma de tablas. Habitualmente es posible realizar clculos complejos con frmulas y funciones y dibujar distintos tipos de grficas.

Un claro ejemplo es Excel. Descripcin de su manipulacin Debido a la versatilidad de las hojas de clculo modernas, se utilizan a veces para hacer pequeas base de datos, informes, y otros usos. Las operaciones ms frecuentes se basan en clculos entre celdas, las cuales son referenciadas relativamente mediante la letra de la columna y el nmero de la fila, por ejemplo =B1*C1. Es tambin habitual el uso de la referencia absoluta anteponiendo el signo $ a la posicin a fijar, por ejemplo, =B$1*$C$1 ($1 fija la fila y $C fija la columna en el caso de copiar o cortar esta celda a otra posicin) es una hoja k te hace las cosas

Base de datos. Es un conjunto de datos que pertenecen al mismo contexto almacenados sistemticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayora por documentos y textos impresos en papel e indexados para su consulta. Modelos de bases de datos Un modelo de datos es bsicamente una descripcin de algo conocido como contenedor de datos (algo en donde se guarda la informacin), as como de los mtodos para almacenar y recuperar informacin de esos contenedores. Los modelos de datos no son cosas fsicas: son abstracciones que permiten la implementacin de un sistema eficiente de base de datos; por lo general se refieren a algoritmos, y conceptos matemticos. Bases de datos jerrquicas stas son bases de datos que almacenan su informacin en una estructura jerrquica. Las bases de datos jerrquicas son especialmente tiles en el caso de aplicaciones que manejan un gran volumen de informacin y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento.

OBDULIA ESTRADA ESPARZA

Base de datos de red Se permite que un mismo nodo tenga varios padres, ofrece una solucin eficiente al problema de redundancia de datos. Base de datos relacional Modela problemas reales y administra datos dinmicamente. En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia. La informacin puede ser recuperada o almacenada mediante consultas que ofrecen una amplia flexibilidad y poder para administrar la informacin.

El lenguaje ms habitual para construir las consultas a bases de datos relacionales es SQL (Lenguaje Estructurado de Consultas),

Bases de datos orientadas a objetos Este modelo trata de almacenar en la base de datos los objetos completos (estado y comportamiento).

OBDULIA ESTRADA ESPARZA

UNIDAD II
DESARROLLO DE LA LOGICA ALGORITMICA 2.1. METODOLOGA PARA LA SOLUCIN DE PROBLEMAS.

Metodologa para la resolucin de problemasDefinicin del Problema. Esta fase est dada por el enunciado del problema, el cual requiere una definicin clara y precisa. Es importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa. Anlisis del Problema Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir:

Los datos de entrada (inicio). Cual es la informacin que se desea producir (salida) Los mtodos y frmulas que se necesitan para procesar los datos. Una recomendacin muy practica es el que nos pongamos en el lugar de la computadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados.

2.2 METODOLOGA PARA EL DISEO DE SOFTWARE: TOP DOWN, BOTTOM UP, MODULAR Y PROGRAMACIN ESTRUCTURADA.

Qu hay que saber para construir o elegir una metodologa?

La metodologa debe ajustarse a los objetivos 2. La metodologa debe cubrir el ciclo entero de desarrollo de software. 3. La metodologa debe integrar las distintas fases del ciclo de desarrollo

OBDULIA ESTRADA ESPARZA

4. La metodologa debe incluir la realizacin de validaciones 5. La metodologa debe soportar la determinacin de la exactitud del sistema a travs del ciclo de desarrollo. 6. La metodologa debe ser la base de una comunicacin efectiva. 7. La metodologa debe funcionar en un entorno dinmico orientado al usuario 8. La metodologa debe especificar claramente los responsables de resultados 9. La metodologa debe poder emplearse en un entorno amplio de proyectos software 10. La metodologa se debe de poder ensear 11. La metodologa debe estar soportada por herramientas CASE 12. La metodologa debe soportar la eventual evolucin del sistema 13. La metodologa debe contener actividades conducentes a mejorar el proceso de desarrollo de software.

Programacin modular o top down

Esta metodologa, conocida como modularizacin diseo Top Down, es una de las tcnicas ms importantes para lograr un buen diseo de programa. La programacin modular es uno de los mtodos de diseo ms flexibles y potentes para mejorar la productividad de un programa. La de scomposicin de un programa en mdulos independientes ms simples se conoce tambin como el mtodo de divide y vencers". Se disea cada mdulo con independencia de los dems y, siguiendo un mtodo descendente, se llega hasta la descomposicin final del problema en mdulos en forma jerrquica.

OBDULIA ESTRADA ESPARZA

En consecuencia, el programa se divide en mdulos (partes independientes), cada uno de los cuales ejecuta una nica actividad o tarea.

A continuacin se presenta la sintaxis a utilizar para la definicin de mdulos:

proceso nombre del mdulo comenzar { acciones a realizar dentro del mdulo } fin El esquema general de un programa que utilice mdulos y variables siguiente: programa nombre del programa procesos {indicar aqu TODOS los procesos a utilizar proceso nombre del proceso comenzar { acciones a realizar dentro del proceso } fin variables { declarar aqu las variables del programa } comenzar { acciones del programa principal } fin

OBDULIA ESTRADA ESPARZA

Programacin estructurada

La programacin estructurada es una forma de escribir programacin de computadora de forma clara, para ello utiliza nicamente tres estructuras: secuencial, selectiva e iterativa; siendo innecesario y no permitindose el uso de la instruccin o instrucciones de transferencia incondicional ( GOTO ). Hoy en da las aplicaciones informticas son mucho ms ambiciosas que las necesidades de programacin existentes en los aos 60, principalmente debido a las aplicaciones grficas, por lo que las tcnicas de programacin estructurada no son suficientes lo que ha llevado al desarrollo de nuevas tcnicas tales como la programacin orientada o objetos y el desarrollo de entornos de programacin que facilitan la programacin de grandes aplicaciones.

Ventajas de la programacin estructurada

Con la programacin estructurada, elaborar programas de computador sigue siendo una labor que demanda esfuerzo, creatividad, habilidad y cuidado. Sin embargo, con este estilo podemos obtener las siguientes ventajas:

1. Los programas son ms fciles de entender, ya que pueden ser ledo de forma secuencial, sin necesidad de hacer seguimiento a saltos de lnea (GOTO) dentro de los bloques de cdigo para entender la lgica. 2. La estructura del programa es clara puesto que las instrucciones estn ms ligadas o relacionadas entre s. 3. Reduccin del esfuerzo en las pruebas. El seguimiento de los fallos o errores del programa ("debugging") se facilita debido a la estructura ms visible, por lo que los errores se pueden detectar y corregir ms fcilmente. 4. Reduccin de los costos de mantenimiento de los programas. 5. Programas ms sencillos y ms rpidos (ya que es ms fcil su optimizacin). 6. Los bloques de cdigo son auto explicativos, lo que facilita a la documentacin.

OBDULIA ESTRADA ESPARZA

7. Los GOTO se reservan para construir las instrucciones bsicas (seleccin e iteracin)

Inconvenientes de la programacin estructurada

El principal inconveniente de este mtodo de programacin, es que se obtiene un nico bloque de programa, que cuando se hace demasiado grande puede resultar problemtico su manejo, esto se resuelve empleando la programacin modular, definiendo mdulos interdependientes programados y compilados por separado. Un mtodo un poco ms sofisticado es la programacin por capas, en la que los mdulos tienen una estructura jerrquica muy definida y se denominan capas.

2.3. DEFINICIN DE LENGUAJES ALGORTMICOS.

Definicin de Algoritmo.

"Un algoritmo se define como un mtodo que se realiza paso a paso para solucionar un problema que termina en un nmero finito de pasos".

Las caractersticas fundamentales que debe cumplir todo algoritmo son:

Debe ser preciso. e indicar el orden de realizacin de cada paso. Debe ser definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. Debe ser finito. Si se sigue un algoritmo, se debe terminar en algn momento ; o sea debe tener un nmero finito de pasos.

OBDULIA ESTRADA ESPARZA

La definicin de un algoritmo debe describir tres partes : Entrada, Proceso y Salida.

Disear un algoritmo para cambiar una llanta a un coche.

Inicio. Traer gato. Levantar el coche con el gato. Aflojar tornillos de las llantas. Sacar los tornillos de las llantas. Quitar la llanta. Poner la llanta de repuesto. Poner los tornillos. Apretar los tornillos. Bajar el gato. Fin.

Definicin de Lenguajes Algortmicos.

Los algoritmos pueden describirse utilizando diversos lenguajes. Cada uno de estos lenguajes permiten describir los pasos con mayor o menor detalle.

La clasificacin de los lenguajes para algoritmos puede enunciarse de la siguiente manera:

OBDULIA ESTRADA ESPARZA

Lenguaje Natural. Lenguaje de Diagrama de Flujo. Lenguaje Natural de Programacin. Lenguaje de Programacin de Algoritmos.

Lenguaje Natural.

Es aqul que describe en espaol, para nuestro caso, los pasos a seguir utilizando un vocabulario cotidiano. Se le conoce como lenguaje jerga cuando se utilizan trminos especializados de una determinada ciencia, profesin o grupo.

Lenguaje de Diagrama de Flujo.

Es aqul que se vale de diversos smbolos para representar las ideas o acciones a desarrollar. Es til para organizar las acciones o pasos de un algoritmo pero requiere de etapas posteriores para implementarse en un sistema de cmputo.

Lenguaje Natural de Programacin.

Son aqullos que estn orientados a la solucin de problemas que se definen de una manera precisa. Generalmente son aplicados para la elaboracin de frmulas o mtodos cientficos.

El lenguaje natural tiene las siguientes caractersticas:

Evita la ambigedad (algo confuso que se puede interpretar de varias maneras).

OBDULIA ESTRADA ESPARZA

Son precisos y bien definidos. Utilizan trminos familiares al sentido comn. Elimina instrucciones innecesarias.

Diagrama de flujo

Un diagrama de flujo es la forma ms tradicional de especificar los detalles algortmicos de un proceso. Se utiliza principalmente en programacin, economa y procesos industriales; estos diagramas utilizan una serie de smbolos con significados especiales. Son la representacin grfica de los pasos de un proceso, que se realiza para entenderlo mejor. Son modelos tecnolgicos utilizados para comprender los rudimentos de la programacin lineal.

Flecha. Indica el sentido y trayectoria del proceso de informacin o tarea.

Rectngulo. Se usa para representar un evento o proceso determinado. ste es controlado dentro del diagrama de flujo en que se encuentra. Es el smbolo ms comnmente utilizado. Se usa para representar un evento que ocurre de forma automtica y del cual generalmente se sigue una secuencia determinada. Rombo. Se utiliza para representar una condicin. Normalmente el flujo de informacin entra por arriba y sale por un lado si la condicin se cumple o sale por el lado opuesto si la condicin no se cumple.el rombo adems especifica que hay una bifurcacin Crculo. Representa un punto de conexin entre procesos. Se utiliza cuando es necesario dividir un diagrama de flujo en varias partes, por ejemplo por razones de espacio o simplicidad. Una referencia debe darse dentro para distinguirlo de otros. La mayora de las veces se utilizan nmeros en los mismos.

Pseudocdigo.

OBDULIA ESTRADA ESPARZA

Es un lenguaje de especificacin de algoritmos y no puede ser ejecutado por una computadora, la ventaja del pseudocdigo es que el programador se puede concentrar en la lgica y en las estructuras de control y no preocuparse de las reglas de un lenguaje especfico. Es fcil de modificar y puede ser rpidamente traducido a un lenguaje de programacin.Representa acciones sucesivas en un lenguaje similar al humano.

Para ejemplificar los problemas a resolver o para clarificar los conceptos, se usarn herramientas comunes y familiares para los programadores, estas herramientas son: pseudocdigo y diagramas de flujo. En esta seccin se detallarn las reglas del pseudocdigo que se utiliza en las diferentes unidades de este material.

Especificar el nombre del algoritmo ALGORITMO Ejemplo Es un elemento meramente informativo para otra persona que no sea el creador del pseudocdigo

Para definir las variables a utilizar

VARIABLES. Se deben especificar las variables a utilizar as como su tipo (entero, alfanumrico, etctera). Esto sirve para familiarizarse con la creacin de variables e ir creando una estandarizacin propia de cada programador. Ejemplo: VARIABLES Num, Suma de tipo entero En los casos anteriores se usan maysculas para identificar el nombre del algoritmo y el o los nombres de las variables a utilizar.

Especificar donde comienza el cuerpo del algoritmo con la palabra Inicio

OBDULIA ESTRADA ESPARZA

Es muy importante definir donde comienzan las instrucciones del algoritmo, para que el programador sepa donde debe empezar a idear la forma en que trabajar el programa.

Especificar donde termina el cuerpo del algoritmo con la palabra Fin Indicar donde termina el cuerpo del algoritmo facilita la lectura del mismo.

Ejemplo ALGORITMO Suma VARIABLES Num, Suma, Cont de tipo entero INICIO Cuerpo del algoritmo FIN

Representacin de Ciclos Para representar un ciclo, hemos usado la palabra Inicio para indicar el inicio del ciclo y Fin para representar el fin del ciclo. Tambin se representaron ciclos con las palabras Desde y Hasta

ALGORITMO Suma VARIABLES Num, Suma de tipo entero INICIO Desde Cont = 1 Hasta Cont = 10 Incrementar Cont en uno FIN Representacin de Decisiones Para representar decisiones se usaron las palabras Si, Si No

OBDULIA ESTRADA ESPARZA

ALGORITMO Suma VARIABLES Num, Suma de tipo entero INICIO Si Cont < 10 Entonces Incrementar Cont en uno ALGORITMO Suma VARIABLES Num, Suma de tipo entero INICIO Desde Cont = 1 Hasta Cont = 10 Incrementar Cont en uno

Salir FIN Notas: 1.-Es muy importante tomar en cuenta la indentacin, esto har ms claro nuestro pseudocdigo. 2.-Cada programador fija sus reglas y estndares para la creacin de pseudocdigo, los creadores de este material trataron de igualarlo lo ms posible al lenguaje natural para que las personas que estn empezando a familiarizarse con estas herramientas lograran una mejor comprensin del mismo. 3.-Un buen programador hace uso de estas herramientas como apoyo en la creacin, mantenimiento y documentacin de sus programas.

2.3.2 IMPLEMENTACION DE ALGORITMOS SECUENCIALES (UTLIZANDO NOTACION ALGEBRAICA)

OBDULIA ESTRADA ESPARZA

Seguramente muchas veces has escuchado la palabra algoritmo, pero nunca has sabido cual es su definicin. Pues bien un algoritmo es un conjunto finito de instrucciones o pasos que sirven para ejecutar una tarea o resolver un problema. De un modo ms formal, un algoritmo es una secuencia finita de operaciones realizables, no ambiguas, cuya ejecucin da una solucin de un problema. Los algoritmos no se implementan slo como programas, algunas veces en una red neuronal biolgica (por ejemplo, el cerebro humano implementa la aritmtica bsica o, incluso, una rata sigue un algoritmo para conseguir comida), tambin en circuitos elctricos, en instalaciones industriales o maquinaria pesada. Se puede decir en pocas palabras que nuestra vida es un ejemplo de algoritmo, pues al desarrollar nuestros quehacer diarios desarrollamos una serie de pasos ordenados, as podremos quedar satisfechos con los resultados. El ingreso de la notacin algebraica en el desarrollo de algoritmos logr un gran avance para los programadores ya que fue una forma mas tangible de desarrollar sus programas, por medio de la lgica. Pues este se basa en un mtodo que simplifica las relaciones entre los casos, el la logaritmia se usan ciertos tipos de cuadros para identificar su comportamiento. 2.4 PRUEBA Y DEPURACION

Prueba y Depuracin

La Prueba se realiza tras la compilacin.Si tras la compilacin se presentan errores (errores de compilacin) en el programa fuente, es preciso volver a editar el programa, corregir los errores y compilar de nuevo, este proceso se repite hasta que no se producen errores. De esta manera se obtiene el programa objeto, que todava no es ejecutable directamente, pero si no contiene errores se debe instruir al sistema para que realice la fase de montaje o enlace del programa objeto con las libreras del programa del compilador; este proceso de montaje produce un programa ejecutable.

OBDULIA ESTRADA ESPARZA

La Depuracin es el proceso de encontrar los errores del programa y corregir o eliminar dichos errores.Cuando se ejecuta un programa, se pueden producir tres tipos de errores:

1.- Errores de compilacin. Se producen normalmente por un uso incorrecto de las reglas del lenguaje de programacin y suelen ser errores de sintaxis, por lo tanto la computadora no puede comprender la instruccin, y obviamente no se obtendr el programa objeto, y el compilador imprimir una lista de todos los errores encontrados durante la compilacin.

2.- Errores de ejecucin. Estos errores se producen por instrucciones que las computadoras pueden comprender, pero no ejecutar. Ejemplos de stos son: una divisin por cero, y races cuadradas de nmeros negativos; por lo que en este caso se detiene la ejecucin del programa y se imprime un mensaje de error.

3.- Errores lgicos. Se producen en la lgica del programa y la fuente del error suele ser el diseo del algoritmo. Estos errores son los ms difciles de detectar, ya que el programa puede funcionar y no producir errores de compilacin ni ejecucin, y solo puede detectarse cuando se advierte un error por la obtencin de resultados incorrectos.

En este caso se debe volver a la fase del diseo del algoritmo, modificarlo, cambiar el programa fuente, compilar y ejecutar una vez ms.

OBDULIA ESTRADA ESPARZA

UNIDAD III. CONOCIMIENTO DE PROGRAMACIN Y UN LENGUAJE ESTRUCTURADO

3.1 INTRODUCCION A LA PROGRAMACION A principios de la dcada de los ochenta llegaban a los hogares de los usuarios los primeros microordenadores. Mquinas casi olvidadas, como los Sinclair ZX-81, o como el mtico Sinclair ZX-Spectrum, el Amstrad CPC-464, etc. Todos estos equipos tenan un punto en comn: el nico software con que se entregaban era, por regla general, un sencillo intrprete de lenguaje BASIC. Cuando el usuario conectaba su ordenador, no encontraba un entorno grfico, en su lugar encontraba una pantalla con una lnea de comandos, esperando a recibir rdenes. Cuando se consegua combinar varias rdenes consecutivas, obtenindose un resultado satisfactorio, ya se saba programar. En cierto sentido programar es, por lo tanto, ensear a una mquina a hacer algo. 3.1.1 DEFINICION DE PROGRAMA Es un conjunto de instrucciones u ordenes basadas en un lenguaje de programacin que una computadora interpreta para resolver un problema o una funcin Especifica: Es la relacin ordenada de actividades, en informtica se le conoce como la serie codificada de instrucciones. Redaccin de un algoritmo en un lenguaje de programacin. Conjunto de instrucciones ordenadas correctamente que permiten realizar una tarea o trabajo especfico. Toda secuencia de instrucciones o indicaciones destinadas a ser utilizadas, directa o indirectamente, en un sistema informtico para realizar una funcin o una tarea o para obtener un resultado determinado, cualquiera que fuere su forma de expresin y fijacin. Conjunto secuenciado de instrucciones que quedan escritas en un lenguaje determinado con unos fines especficos. Aunque en el lenguaje comn con frecuencia se denomina programa al sistema operativo, la diferencia estriba, precisamente, en la especificidad de aqul frente al carcter de gestin global de ste. La palabra software engloba ambos.

OBDULIA ESTRADA ESPARZA

3.1.2 DEFINICION DE PROGRAMACION

Se conoce como programacin de computadores a la implementacin de un algoritmo en un determinado lenguaje de programacin, conformando un programa. Mientras que un algoritmo se ejecuta en una mquina abstracta que no tiene limitaciones de memoria tiempo, un programa se ejecuta en una mquina real, que s tiene esas limitaciones. El lenguaje de programacin puede ser de alto nivel, medio nivel o bajo nivel, en funcin del grado de abstraccin.

3.1.3 DEFINICION DEL LENGUAJE DE PROGRAMACION

Es aquel elemento dentro de la informtica que nos permite crear programas mediante un conjunto de instrucciones, operadores y reglas de sintaxis; que pone a disposicin del programador para que este pueda comunicarse con los dispositivos hardware y software existentes.

3.2 INTRODUCCION Y ORIGENES DEL LENGUAJE

Desde algunos puntos de vista, la historia de la teora de lenguajes de programacin precede incluso al desarrollo de los propios lenguajes de programacin. El clculo lambda, desarrollado por Alonzo Church, Max HL. Solis Villareal y Stephen Cole Kleene en la dcada de 1930, es considerado ser uno de los primeros lenguajes de programacin del mundo, incluso pese a que tena intencin de modelar la computacin ms que ser un medio para que los programadores describan algoritmos para un sistema informtico. Muchos lenguajes de programacin funcional se han caracterizado por proveer una "fina apariencia" al clculo lambda [1], y muchos se describen en sus trminos.

OBDULIA ESTRADA ESPARZA

El primer lenguaje de programacin (como tal) que se propuso fue Plankalkl, que fue diseado por Konrad Zuse en los aos 40, pero no fue conocido pblicamente hasta 1972 (y no implementado hasta 2000, cinco aos despus de la muerte de Zuse).El primer lenguaje de programacin ampliamente conocido y exitoso fue Fortran, Desarrollado entre 1954 y 1957 por un equipo de investigadores en IBM liberados por John Backus. El xito de FORTRAN condujo a la creacin de un comit de cientficos para desarrollar Un lenguaje de programacin "universal"; el resultado de Su esfuerzo fue ALGOL 58.

Separadamente, John McCarthy del MIT desarroll el Lenguaje de programacin Lisp (basado en el clculo Lambda), el primer lenguaje con orgenes acadmicos en Conseguir el xito. Con el triunfo de estos esfuerzos iniciales, los lenguajes de programacin se convirtieron en un tema candente en la investigacin en la dcada de 1960 y en adelante.

Algunos otros eventos claves en la historia de la teora de lenguajes de programacin desde entonces:

En la dcada de 1950, Noam Chomsky desarroll la Jerarqua de Chomsky en el campo de la lingstica; un descubrimiento que impact directamente a la teora de Lenguajes de programacin y otras ramas de la informtica.

En la dcada de 1960, el lenguaje Simula fue desarrollado por Ole-Johan Dahl y Kristen Nygaard; muchos consideran que es el primero lenguaje orientado a objetos; Simula tambin introdujo el concepto de corrutinas.

Durante 1970:

Un pequeo equipo de cientfico en Xerox PARC Encabezado por Alan Kay elaboran Smalltalk, un Lenguaje orientado a objetos muy conocido por su Novedoso (hasta ese momento desconocido) entorno de desarrollo.

OBDULIA ESTRADA ESPARZA

Sussman y Steele desarrollan el lenguaje de programacin Scheme, un dialecto de Lisp que Incorpora mbitos lxicos, un espacio de nombres unificado, y elementos del modelo Actor incluyendo continuaciones de primera clase.

Backus, en la conferencia del Premio Turing de 1977, asedi el estado actual de los lenguajes industriales y propuso una nueva clase de lenguajes de programacin ahora conocidos como lenguajes de programacin funcional.

La aparicin del process calculi, como el clculo de sistemas comunicantes de Robin Milner, y el modelo de Comunicacin secuencial de procesos de C. A. R. Hoare, as como modelos similar de concurrencia como el Modelo Actor de Carl Hewitt.

La aplicacin de la teora de tipos como una disciplina a los lenguajes de programacin, liderada por Milner; esta aplicacin ha conducido a un tremendo avance en la teora de tipos en cuestin de aos.

En la deada de 1990:

Philip Wadler introdujo el uso de monads para estructurar programas escritos en lenguajes de Programacin funcional.

OBDULIA ESTRADA ESPARZA

3.3 ESTRUCTURA BASICA DE UN PROGRAMA

La estructura exacta de un programa depende del lenguaje que utilicemos y el entorno en el cual lo creemos. Sin embargo, hay algunos principios generales:

Un cargador - Todo programa necesita ser cargado en la memoria por el sistema operativo. De esto se encarga el intrprete.

Definicin de los datos - La mayora de los programas operan con datos y por lo tanto en el cdigo fuente debemos definir que tipo de datos vamos a utilizar en el programa. Esto se realiza de manera diferente en los distintos lenguajes. Todos los lenguajes que usaremos tienen la posibilidad de crear una nueva definicin de datos simplemente al utilizar los datos. Veremos esto en la prxima seccin.

Instrucciones - Son la parte central del programa. Las instrucciones manipulan los datos que hemos definido, realizan clculos, muestran los resultados, etc.

La mayora de los programas siguen una de dos estructuras:

Programas de lotes

Estos se ejecutan tpicamente desde una lnea de comando o automticamente desde otra aplicacin (tipo scheduler) y tienden al siguiente patrn:

OBDULIA ESTRADA ESPARZA

Inicializacin interna de los datos Lectura de los datos ingresados Procesamiento de los datos Visualizacin o ejecucin de los resultados

Programas controlados por eventos.

La mayor parte de las interfaces grficas (y los sistemas de control presentes en un horno a microondas o una cmara por ejemplo) responden a eventos. Esto significa que el Sistema Operativo enva un evento al programa y este los responde tan pronto como estos le llegan. Los eventos incluyen acciones del usuario como apretar una tecla, mover el mouse, etc, y operaciones propias del sistema operativo tales como la actualizacin del reloj, el refresco de la pantalla, etc.

Los programas controlados por eventos son generalmente as:

Inicializacin interna de los datos Espera de los eventos Identificacin de los eventos y actuacin en consecuencia

Caractersticas comunes a todos los programas

Hace tiempo Edsgar Dijkstra desarroll el concepto de la programacin estructurada. Esto significa que todos los programas pueden estructurarse de las siguientes cuatro formas:

OBDULIA ESTRADA ESPARZA

Secuencias de instrucciones Bucles Bifurcaciones Mdulos

Adems de estas estructuras los programas necesitan otras caractersticas que los hacen tiles:

Datos Operaciones (sumar, restar, comparar, etc.) Capacidad de Entrada/Salida (para mostrar resultados)

Una vez que se comprende cmo un lenguaje particular implementa estos conceptos, uno est preparado para escribir un programa en ese lenguaje.

3.4. DATOS

El dato (del latn datum), es una representacin simblica (numrica, alfabtica, etc.), atributo o caracterstica de una entidad. El dato no tiene valor semntico (sentido) en s mismo, pero convenientemente tratado (procesado) se puede utilizar en la realizacin de clculos o toma de decisiones. Es de empleo muy comn en el mbito informtico.

En programacin un dato es la expresin general que Describe las caractersticas de las entidades sobre las cuales opera un algoritmo.

OBDULIA ESTRADA ESPARZA

Un dato por s mismo no constituye informacin, es el procesador de los datos lo que nos proporciona Informacin.

3.4.1 TIPOS DE DATOS

Existen muchas clasificaciones para los tipos de datos, y dependiendo de la fuente que mires, te mostrarn una u otra. A continuacin tienes una de las posibles clasificaciones:

Tipos estticos

Casi todos los tipos de datos son estticos, la excepcin son los punteros y no se tratarn debido a su complejidad. Que un tipo de datos sea esttico quiere decir que el tamao que ocupa en memoria no puede variar durante la ejecucin del programa. Es decir, una vez declarada una variable de un tipo determinado, a sta se le asigna un trozo de memoria fijo, y este trozo no se podr aumentar ni disminuir.

Tipos dinmicos

Dentro de esta categora entra solamente el tipo puntero. Este tipo te permite tener un mayor control sobre la gestin de memoria en tus programas. Con ellos puedes manejar el tamao de tus variables en tiempo de ejecucin, o sea, cuando el programa se est ejecutando.

Los punteros quizs sean el concepto ms complejo a la hora de aprender un lenguaje de programacin, sobre todo si es el primero que aprendes. Debido a esto, no lo trataremos.

OBDULIA ESTRADA ESPARZA

Adems, lenguajes que estn muy de moda (por ejemplo Java) no permiten al programador trabajar con punteros.

Tipos simples

Como su nombre indica son los tipos bsicos en Pascal. Son los ms sencillos y los ms fciles de aprender. Por todo esto, sern en los que nos centremos. Los tipos simples ms bsicos son: entero, lgico, carcter y real. Y la mayora de los lenguajes de programacin los soportan, no como ocurre con los estructurados que pueden variar de un lenguaje a otro.

Tipos estructurados

Mientras que una variable de un tipo simple slo referencia a un elemento, los estructurados se refieren a colecciones de elementos. Las colecciones de elementos que aparecen al hablar de tipos estructurados son muy variadas: tenemos colecciones ordenadas que se representan mediante el tipo array, colecciones sin orden mediante el tipo conjunto, e incluso colecciones que contienen otros tipos, son los llamados registros.

Tipos ordinales

Dentro de los tipos simples, los ordinales son los ms abundantes. De un tipo se dice que es ordinal porque el conjunto de valores que representa se puede contar, es decir, podemos establecer una relacin uno a uno entre sus elementos y el conjunto de los nmeros naturales. Dentro de los tipos simples ordinales, los ms importantes son:

El tipo entero (integer) El tipo lgico (boolean)

OBDULIA ESTRADA ESPARZA

El tipo carcter (char)

Tipos no-ordinales

Simplificando, podramos reducir los tipos simples no-ordinales al tipo real. Este tipo nos sirve para declarar variables que pueden tomar valores dentro del conjunto de los nmeros reales.

A diferencia de los tipos ordinales, los no-ordinales no se pueden contar. No se puede establecer una relacin uno a uno entre ellos y los nmero naturales. Dicho de otra forma, para que un conjunto se considere ordinal se tiene que poder calcular la posicin, el anterior elemento y el siguiente de un elemento cualquiera del conjunto.Cul es el sucesor de 5.12? Ser 5.13, o 5.120, o 5.121, ...

Despus de ver una de las posibles clasificaciones para los tipos de datos, pasemos a ver los que nos interesan: los tipos simples. Realmente de los tipos simples veremos los ms bsicos, que son: integer, boolean, char y real. Adems, tambin hablaremos un poco de las cadenas de caracteres, los llamados strings.

nota: a continuacin slo se comentar qu es cada tipo, no se explicar su declaracin, esto puedes verlo si vas a la seccin correspondiente.

El tipo integer (entero)

Como ya habrs ledo el tipo de datos entero es un tipo simple, y dentro de estos, es ordinal.

Al declarar una variable de tipo entero, ests creando una variable numrica que puede tomar valores positivos o negativos, y sin parte decimal.

OBDULIA ESTRADA ESPARZA

Este tipo de variables, puedes utilizarlas en asignaciones, comparaciones, expresiones aritmticas, etc. Algunos de los papeles ms comunes que desarrollan son:

Controlar un bucle . Usarlas como contador, incrementando su valor cuando sucede algo. Realizar operaciones enteras, es decir, sin parte decimal Y muchas ms...

El tipo boolean (lgico)

El tipo de datos lgico es el que te permite usar variables que disponen slo de dos posibles valores: cierto o falso. Debido a esto, su utilidad salta a la vista, y no es otra que variables de chequeo. Nos sirven para mantener el estado de un objeto mediante dos valores:

si/no cierto/falso funciona/no funciona on/off etc.

OBDULIA ESTRADA ESPARZA

El tipo real (real)

Como ya has visto, Pascal soporta el conjunto entero de nmeros. Pero no es el nico, tambin te permite trabajar con nmeros pertenecientes al conjunto real. El tipo de datos real es el que se corresponde con los nmeros reales. Este es un tipo importante para los clculos. Por ejemplo en los estadsticos, ya que se caracterizan por tratar fundamentalmente con valores decimales.

nota: Aunque pueda que ests acostumbrado a escribir con coma los decimales, te advierto que en Pascal y en todos los lenguajes de programacin se escribe con un punto. Por ejemplo: 3.1416

Los tipos char y string (carcter y cadena)

Con el tipo carcter puedes tener objetos que representen una letra, un nmero, etc. Es decir, puedes usar variables o constantes que representen un valor alfanumrico. Pero ojo, cada variable slo podr almacenar un carcter. Sin embargo, con las cadenas de caracteres (strings) puedes contener en una sla variable ms de un carcter. Por ejemplo, puedes tener en una variable tu nombre.

3.4.2 IDENTIFICADORES

En los lenguajes informticos, los identificadores son elementos textuales (tambin llamados smbolos) que nombran entidades del lenguaje. Algunas de las de entidades que un identificador puede denotar son las variables, las constantes, los tipos de dato, las etiquetas, las subrutinas, los paquetes y las subrutinas (procedimientos y funciones).

OBDULIA ESTRADA ESPARZA

En muchos lenguajes algunas secuencias tienen la forma lxica de un identificador pero son conocidos como palabras clave (o palabras reservadas). Lo habitual es que si un identificador se corresponde con una palabra clave o reservada, ste ya no pueda utilizarse para referirse a otro tipo de entidades como variables o constantes (en unos pocos lenguajes, como PL/1, esta distincin no est del todo clara).

3.4.3 ALMACENAMIENTO, DIRECCIONAMIENTO Y REPRESENTACIN EN MEMORIA.

ALMACENAMIENTO:

Hay dos clases, almacenamiento primario, que son los que usa la CPU directamente (memoria principal, memoria cach, etc) y el almacenamiento secundario, a los cuales la CPU no accede directamente, sino que deben almacenarse previamente en uno primario. Son de almacenamiento secundario los discos magnticos, pticos, cintas magnticas, tambores magnticos, etc.El almacenamiento de datos puede usarse tambin para copias de seguridad, ver backup.Con el correr de los aos, el almacenamiento de datos informticos ha ido bajando de precio. Por ejemplo, 1 GB de memoria en 1956 costaba 8,2 millones de dlares. En 1980, 184 mil dlares; en 1990 eran 5.200 dlares; en 2000 eran 12 dlares, y en 2006 fueron 1,2 dlares.

DIRECCIONAMIENTO

Los llamados Modos de direccionamiento son las diferentes maneras de especificar en informtica un operando dentro de una instruccin (lenguaje ensamblador). Cmo se especifican e interpretan las direcciones de memoria segn las instrucciones. Pueden ser:

OBDULIA ESTRADA ESPARZA

Inmediato: En la instruccin est incluido directamente el operando.

Directo: El campo de operando en la instruccin contiene la direccin en memoria donde se encuentra el operando.

Indirecto: El campo de operando contiene una direccin de memoria, en la que se encuentra la direccin efectiva del operando.

Absoluto: El campo de operando contiene una direccin en memoria, en la que se encuentra la instruccin.

De registro: Sirve para especificar operandos que estn en registros.

Indirecto mediante registros: El campo de operando de la instruccin contiene un identificador de registro en el que se encuentra la direccin efectiva del operando.

De desplazamiento: Combina el modo directo e indirecto mediante registros

De pila: Se utiliza cuando el operando est en memoria y en la cabecera de la Pila.

REPRESENTACION DE MEMORIA

Podemos representar a las colas de dos formas :

Como arreglos Como listas ordenadas

OBDULIA ESTRADA ESPARZA

En esta unidad trataremos a las colas como arreglos de elementos, en donde debemos definir el tamao de la cola y dos apuntadores, uno para accesar el primer elemento de la lista y otro que guarde el ltimo.

En lo sucesivo, al apuntador del primer elemento lo llamaremos F, al de el ltimo elemento A y MAXIMO para definir el nmero mximo de elementos en la cola.

COLA (DEFINICION)

Una cola es una estructura de almacenamiento, donde la podemos considerar como una lista de elementos, en la que stos van a ser insertados por un extremo y sern extrados por otro. Las colas son estructuras de tipo FIFO (first-in, firstout), ya que el primer elemento en entrar a la cola ser el primero en salir de ella. Existen muchsimos ejemplos de colas en la vida real, como por ejemplo: personas esperando en un telfono pblico, nios esperando para subir a un juego mecnico, estudiantes esperando para subir a un camin escolar, etc.

3.4.4 PROPOSICIN DE ASIGNACIN.

La forma de una proposicin de asignacin es: a = b donde b es una expresin permitida, y a es el nombre de la variable donde se dejar el valor resultante de evaluar b. Por expresin permitida se entiende a aquella expresin matemtica que ocupa las operaciones y funciones nombradas como existentes, y escritas de la forma que para ellas se seala, respetando as la sintaxis en cada instruccin. El signo igual, " = ", de a = b tiene el sentido de asignar a la variable a el valor que resulte de evaluar la expresin permitida b. Es decir, a = b. Que no es la misma definicin usada en matemticas para el signo: = .

OBDULIA ESTRADA ESPARZA

El computador, al ejecutar una proposicin de asignacin evala la expresin del lado derecho del signo igual con los valores que en ese momento tengan las variables ah ocupadas. As, la expresin entregar valores probablemente distintos en las diversas ocasiones que por programa se evale esa expresin. Las siguientes son proposiciones de asignacin correctas, A = 2.5 TO = 1 + XT I = I + 1 Y no son correctas las siguientes:

A + B = C 20 = 16.2 + 3.8 AL = (AT+3.4) / 110.302

3.5. OPERADORES, OPERANDOS Y EXPRESIONES

OPERADORES.

En todos los lenguajes de programacin se utilizan operadores para efectuar operaciones aritmticas.Combinando las variables y constantes en expresiones aritmticas por medio de funciones adecuadas. Una expresin es un conjunto de datos o funciones unidos por operadores aritmticos, los cuales son: SUMA, RESTA, MULTIPLICACION, DIVISION, EXPONENCIAL Y MODULO.

OPERADOR LOGICO

En ocasiones en los programas se necesitan realizar comparaciones entre distintos valores, esto se realiza utilizando los operadores relaciones, los cuales son: Mayor que, menor que, menor igual que, mayor igual que, igual a, distinto a o diferente de.

OBDULIA ESTRADA ESPARZA

OPERANDO.

Referente a la parte de la instruccin de lenguaje mquina de la computadora que designa la direccin de los datos con los que se debe operar.

EXPRESIONES.

Las expresiones son combinaciones de constantes, variables, smbolos de operacin, parntesis y nombres de funciones especiales. Por ejemplo: a + (b + 3) / c

Cada expresin toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecucin de las operaciones indicadas. Una expresin consta de operadores y operandos. Segn sea el tipo de datos que manipulan, se clasifican las expresiones en: Aritmticas, Relacionales ,Lgicas

3.5.1 PRIORIDAD DE OPERADORES, EVALUACIN DE EXPRESIONES

Prioridad

Se llama prioridad al orden en el que se evala una expresin. 4D tiene una estricta prioridad izquierda-a-derecha. Por ejemplo: 3+4*5 devuelve 35 porque la expresin es evaluada como 3+4, dando 7, el cul es multiplicado por 5, resultando 35. Se pueden utilizar parntesis para cambiar la prioridad izquierda-aderecha. Por ejemplo: 3+(4*5) devuelve 23 porque se evala primero la expresin (4*5), por estar entre parntesis. El resultado es 20, lo cual es aadido el 3, dando el resultado final 23.

OBDULIA ESTRADA ESPARZA

Se pueden insertar parntesis dentro de otros grupos de parntesis. Es necesario asegurarse de que cada parntesis izquierdo tiene su correspondiente derecho. La falta o el uso incorrecto de los parntesis puede provocar resultados inesperados o expresiones no vlidas.

EVALUACIN DE EXPRESIONES

Cuando en una expresin concurre mas de una operacin, los parntesis indicarn prioridad, es decir, la operacin encerrada entre parntesis se realizar en primer lugar. Adems, algunos operadores tendrn preferencia sobre otros. Por ejemplo, en la operacin a + b / c, primero se realizar b / c y posteriormente se le sumar a. En caso de que el programador quiera que se sume primero a y b para posteriormente dividir por c, tendramos que hacer (a + b) / c. Si todos los operadores de una expresin tienen la misma prioridad, la operacin se har de izquierda a derecha, salvo cuando tengamos exponenciales, en tal caso, el orden ser de derecha a izquierda, por ejemplo, al hacer 2**3**2 resulta el valor 2**9 = 512

3.6. PROCESO DE CREACIN DE UN EJECUTABLE

En Java, en principio, no se pueden crear autoejecutables ya que este es un lenguaje multiplataforma y los archivos autoejecutables son dependientes de la plataforma. Esto provoca que tengamos que usar la consola para ejecutar nuestros programas; lo que supone un gran inconveniente para usuarios sobre todo acostumbrados a los entornos grficos. Existen varias soluciones para este asunto. Aqu se explican tres de ellas. La primera es la de crear ejecutables dependientes de la plataforma ; la segunda permite hacer ms fcil la ejecucin en cada plataforma sin impedir su ejecucin en otra plataforma; la tercera es vlida para cualquier plataforma y aporta otras muchas posibilidades. Podemos crear un ejecutable de la plataforma de varias maneras: Podemos usar traducir el cdigo java a cdigo C con Toba o J2C. De esta forma slo nos queda compilar el cdigo C para crear el ejecutable.

OBDULIA ESTRADA ESPARZA

Toba es un proyecto libre cuyo desarrollo ha quedado estancado cuando Java iba por la versin 1.1, pero podemos descargarlo todava desde su pgina web. J2C lo puedes encontrar aqu (creo; cuando veas la pgina sabrs el porqu de mis dudas), Existe un compilador que adems de permitirnos, como cualquier otro compilador, crear bytecodes a partir de ficheros .java, nos da la posibilidad de compilar el fuente (archivos .java) para obtener un ejecutable de la plataforma y tambin permite crear un ejecutable de la plataforma a partir del bytecode. De esta forma el cdigo obtenido es mucho ms rpido. El programa se llama GJC y forma parte la familia de compiladores GCC del proyecto GNU que se desarrolla bajo la GPL (General Public License). Si lo que queremos es crear un archivo ejecutable .exe (para plataforma Windows) y prescindir de la cualidad de multiplataforma de este lenguaje, lo que hay que hacer es conseguir un programa que realice esta tarea. Esto lo hacen algunas IDEs y el programa Jto Exe. Al crear un .exe lo que hacemos es sustituir los archivos de clase de Java, al contrario que la siguiente opcin que complementa y no sustituye.

En particular el programa Jto Exe necesita de la mquina virtual de Java para poder ejecutar el programa de modo seguiremos necesitando instalar la JVM al contrario que las dos opciones anteriores

OBDULIA ESTRADA ESPARZA

UNIDAD IV. FUNCIONES

4.1. FUNCIONES.

Es posible definir funciones con un nmero variable de argumentos. O bien tambien se puede definir una funcin con un nmero variable de argumentos, sin ms que aadir un argumento final al que se le asigna una lista con todos los argumentos adicionales. 4.1.1 DEFINICIN DE FUNCIONES. Funciones estndar. Las funciones estandar se dividen en grupos, todas las funciones que pertenecen al mismo grupo estan declaradas en el archivo de cabecera.

Para incluir alguna funcin perteneciente a estas cabeceras debemos escribir lneas de cdigo como se muestra de ejemplo: #include

4.2. ENTRADA Y SALIDA DE DATOS.

Proporciona un mtodo para transferir informacin entre dispositivos de (E/S) de almacenamiento interno y de (E/S) externas. Los perifricos conectados a una computadora necesitan enlac de comunicacin especial para funcionar como una interfaces con la unidad de procesamiento central.

El propsito del enlace de comunicacin es resolver las diferencias que existen en la computadora central y de cada perifrico. Se llama interfaces porque se comunica tanto con el canal del procesador como con el dispositivo perifrico.

OBDULIA ESTRADA ESPARZA

4.3. FUNCIONES DEFINIDAS POR EL USUARIO.

Algunos objetos permiten especificar funciones que sern evaluadas durante la renderizacin para determinar la superficie de estos objetos. En este aspecto las funciones son bastante diferentes de las macros, que se evalan durante el tiempo de anlisis pero no afectan de ninguna otra manera a la renderizacin. Adicionalmente, se puede llamar a estas funciones en cualquier lugar en el que se permita utilizar una funcin en coma flotante, incluso durante el anlisis. La sintaxis es idntica a las expresiones en coma flotante, sin embargo slo pueden usarse funciones en coma flotante que se apliquen a valores en coma flotante Estas se pueden invocar en consultas o en otras instrucciones o expresiones, como columnas calculadas o expresiones de cadena. Las funciones con valores escalares se pueden ejecutar mediante la instruccin EXECUTE.

4.3.1 PASE POR VALOR

El pase por valor significa que al compilar la funcin y el cdigo que llama a la funcin, sta recibe una copia de los valores de los parmetros que se le pasan como argumentos. Las variables reales no se pasan a la funcin, slo copias de su valor.

Cuando una funcin debe modificar el valor de la variable pasada como parmetro y que esta modificacin retorne a la funcin llamadora, se debe pasar el parmetro por referencia. En este mtodo, el compilador no pasa una copia del valor del argumento; en su lugar, pasa una referencia, que indica a la funcin dnde existe la variable en memoria

4.3.2 PASE POR REFERENCIA

La referencia que una funcin recibe es la direccin de la variable. Es decir, pasar un argumento por referencia es, simplemente, indicarle al compilador que pase la direccin del argumento.

OBDULIA ESTRADA ESPARZA

Por defecto, los parmetros de una funcin se pasan por valor (de manera que si cambias el valor del argumento dentro de la funcin, no se ve modificado fuera de ella). Si deseas permitir a una funcin modificar sus parmetros, debes pasarlos por referencia.

4.4 PUNTEROS

Un puntero (o apuntador) es una variable manipulable que referencia una regin de memoria; en otras palabras es una variable cuyo valor es una direccin de memoria. Si se tiene una variable ' p ' de tipo puntero que contiene una direccin de memoria en la que se encuentra almacenado un valor ' v ' se dice que p apunta a v. Los punteros son de amplia utilizacin en programacin y casi todos los lenguajes permiten la manipulacin de los mismos. La razn de ser principal de los punteros reside en manejar datos alojados en la zona de memoria dinmica (aunque tambin se pueden manipular objetos en la zona esttica), bien sean datos elementales, estructuras (struct en C) u objetos pertenecientes a una clase (en lenguajes Orientados a Objetos).

4.4.2 PASO DE VARIABLE

Establece una variable local o global para un valor especificado. Si no existe una variable, este paso de guin crear una. Un nombre de variable tiene las mismas restricciones de nomenclatura que un nombre de campo. Las variables locales y globales se pueden crear y utilizar en clculos. Una variable local slo se puede utilizar en pasos de guin en el guin que se ejecuta actualmente. El valor de una variable local se borra cuando se sale del guin. Una variable global se puede utilizar en un clculo o guin en cualquier parte de un archivo, por ejemplo, otros guiones o ruta de archivo. El valor de una variable global no se borra hasta que se cierra el archivo. Las variables locales y globales (o incluso dos variables locales en guiones diferentes) pueden tener el mismo nombre pero se consideran como variables distintas y pueden almacenar valores distintos.

OBDULIA ESTRADA ESPARZA

UNIDAD V. ESTRUCTURA SELECTIVA

Las estructuras selectivas se utilizan para tomar decisiones lgicas; de ah que se suelan denominar tambin estructuras de decisin o alternativas.

En las estructuras selectivas se evala una condicin y en funcin del resultado de la misma se realiza un opcin u otra. Las condiciones se especifican usando expresiones lgicas. La representacin de una estructura selectiva se hace con palabras en pseudocdigo (if, then, else o bien en espaol si, entonces, sino), con una figura geomtrica en forma de rombo o bien con un tringulo en el interior de una caja rectangular.

Estructuras de Control

Por lo regular en un programa los enunciados son ejecutados uno despus del otro, en el ordn en que aparecen escritos. Esto se conoce como ejecucin secuencial. Sin embargo, existen enunciados que le permiten al programador especificar que el enunciado siguiente a ejecutar pueda ser otro diferente al que sigue en secuencia. Esto se conoce como transferencia de control.

Las estructuras selectivas o alternativas pueden ser:

simples dobles mltiples

OBDULIA ESTRADA ESPARZA

5.1ESTRUCTURA DE SELECCIN SIMPLE.

Se identifican porque estn compuestos nicamente de una condicin. La estructura si - entonces evala la condicin y en tal caso: Si la condicin es verdadera, entonces ejecuta la accin Si (o acciones si son varias). Si la condicin es falsa, entonces no se hace nada. Espaol Ingls Si If Entonces then fin_si endif Ejemplo 1. Construir un algoritmo tal, que dado como dato la calificacin de un alumno en un examen, escriba Aprobado en caso que esa calificacin fuese mayor que 8. Salidas: mensaje de aprobado si se cumple la condicin. Entradas: calificacin Datos adicionales: un alumno aprueba si la calificacin es mayor que 8 Variables: Cal = calificacin Algoritmo: Inicio Leer (cal) Si cal > 8 entonces Escribir (aprobado) Fin_si Fin

//Este programa al dar tu edad te dice si eres mayor o menor de edad sencillo pero ayuda. //Para este programa se utiliza la sentencia if(condicion) o en Pseudocodigo Si(condicion) y else o sino. import javax.swing.J Option Pane; class ifcondicional{ public static void main(String args[]){ //Declaracion de variables //Variable tipo cadena String a; //Variable Tipo entero. int edad; //En esta parte del programa se pide al usuario que nos de su edad

OBDULIA ESTRADA ESPARZA

a=J Option Pane.showInputDialog(Introduce Tu Edad:); edad=Integer.parseInt(a); //En esta parte se utiliza la sentencia if con la condicion de si la edad es mayor o igual a 18 se imprimera el msn eres mayor de edad, if(edad>=18){ System.out.println(Eres Mayor De Edad); } //Else solo se ejecutara cuando la edad se menor a 18 y la condicion anterios no se cumpla else{ System.out.println(Eres Menor De Edad);

} } } //Espero que le entiendan copien tal como esta y ejecutenlo en jgrasp o en su compilador.

La estructura de seleccin simple evala una condicin, si sta es verdadera ejecuta una o varias instrucciones, si es falsa continua la ejecucin normal del programa.

La representacin grfica de la estructura de seleccin simple es:

OBDULIA ESTRADA ESPARZA

Expresin Booleana

Instrucciones

Verdadero

Falso

El pseudocdigo correspondiente es (en espaol):

Si entonces

fin_si

En ingles:

If then

end_if

La estructura de seleccin simple se codifica en Visual Basic tal y como se muestra a continuacin: If Then

OBDULIA ESTRADA ESPARZA

End if No es fcil definir el concepto de programacin estructurada, pero se podra considerar como un conjunto de tcnicas que, utilizadas en el diseo de un programa, facilitan la escritura, lectura y seguimiento del mismo. Siempre se ha considerado a la sentencia IR A (GOTO) el principal impedimento de la programacin estructurada. De hecho, ya se expresaba en estos trminos el profesor Edgar Dijkstra, considerado el padre de la programacin estructurada en su libro "Goto Statement Considered Harmful". En 1966, Bhm y Jacopini demostraron que un programa se puede escribir utilizando tan slo tres tipos de estructuras de programacin: Secuenciales Selectivas Iterativas La estructura secuencial ya se estudi en el epgrafe anterior. Se analizarn ahora las estructuras selectivas (bifurcativas condicionadas) y las iterativas.

ESTRUCTURAS SELECTIVAS

En muchas ocasiones, las circunstancias que nos rodean condicionan la forma en que debemos actuar. Desde el punto de vista de programacin ocurre algo similar, y, segn se cumpla o no una determinada condicin, ser necesario actuar de una u otra manera. Las estructuras de programacin que nos permiten tomar este tipo de decisiones son las estructuras selectivas, que pueden ver a su vez de tres tipos:

OBDULIA ESTRADA ESPARZA

Simples Dobles Mltiples Simples: ejecutan una secuencia de acciones slo si se cumple una determinada condicin.

Sintaxis - Pseudocdigo: SI ENTONCES Accin 1 : Accin n fin-SI La forma de representar esta estructura en diagramas de flujos y diagramas N/S se encuentra en las figuras siguientes.

Ejemplo:

Introducir 100 nmeros por teclado, de forma que el ordenador nos avise cuando introducimos un nmero par, y nos muestre al final del proceso el total de nmeros pares introducidos.

Algoritmos Pares Var H : entero CC : entero C : entero N : entero Inicio H = 0 CC = 0 C = 0 Etq: CC = CC + 1 Leer (N) H = N MOD 2 SI H = 0 ENTONCES escribir ("detectado nmero par") C = C + 1

OBDULIA ESTRADA ESPARZA

fin-SI SI CC < 100 ENTONCES

fin-SI escribir ("Han sido detectados", C," nmeros pares") Fin Veamos el diagrama de flujo correspondiente a este algoritmo:

5.2ESTRUCTURA SELECTIVA DOBLE:

En las estructuras selectivas simples se ejecutaban una serie de acciones slo en el caso de que se cumpliese una condicin. Una vez terminada la ejecucin de tales acciones, se continuaba con el flujo natural del programa, que es el proceso que se hubiera seguido en caso de no satisfacerse la condicin. En cambio, en la estructura selectiva doble, si se cumple la condicin se ejecutan un conjunto de acciones, mientras que si no se cumple, se ejecuta otro conjunto de acciones diferentes. Resulta, por tanto, imposible que se ejecuten ambos conjuntos en secuencia, uno tras otro.

Sintaxis - Pseudocdigo: SI ENTONCES accin 1a accin 2a : accin na SI NO accin 1b accin 2b : accin nb fin-SI

OBDULIA ESTRADA ESPARZA

La sintaxis correspondiente al diagrama de flujo y N/S son como sigue:

Ejemplo:

Realizar pseudocdigo y diagrama de flujo de un programa que calcule el precio de la entrada de una persona a un parque de atracciones, sabiendo que:

Los nios < 15 aos pagan 50 pesetas. Las personas >= 15 aos pagan 150 pesetas. Al calcular un precio, el algoritmo pregunta si hay ms clientes. En caso afirmativo repetimos el proceso. En caso contrario, abandonamos el programa.

Anlisis:

El proceso es el siguiente:

Recoger la edad de cliente. Si la edad < 15, establecer precio en 50 Ptas. Si la edad >= 15, establecer precio en 150 Ptas. Esperar a que el usuario diga si quiere continuar con el programa. En caso afirmativo repetir el proceso. En caso contrario abandonar el programa.

Pseudocdigo:

Algoritmo Parque

OBDULIA ESTRADA ESPARZA

Var Edad: entero Precio: entero Res: cadena Inicio Eti1: leer (edad) Si Edad < 15 Entonces Precio = 50 si-no Precio = 150 Fin-si Escribir (precio) Escribir ("Hay ms clientes (Si/No)? ") Leer (Res) Si (Res = "Si") Entonces IR A Eti1; Fin-si Fin

El diagrama de flujo correspondiente a este pseudocdigo se encuentra en la siguiente figura:

5.2ESTRUCTURAS SELECTIVAS ANIDADAS

La estructura selectiva es anidada cuando dentro de alguna accin de sta, se encuentra otra estructura selectiva y la(s) accin(es) de esta puede contener otra selectiva y esta otra ms; es decir cuando despus de una decisin se debe tomar otra, despus otra y as sucesivamente.

OBDULIA ESTRADA ESPARZA

5.3ESTRUCTURAS SELECTIVAS MLTIPLES:

Las estructuras selectivas estudiadas hasta el momento nos permiten evaluar la condicin en resultado booleano exclusivamente (si/no). Sin embargo, hay ocasiones en que la gama de opciones es mucho ms amplia. Por ejemplo, consideremos el caso de un local comercial de ordenadores y perifricos, donde cada perifrico y cada ordenador tendran un precio determinado. Un hipottico programa que controlase las ventas y facilitase los precios, debera preguntar qu perifrico se va a comprar. Segn de qu perifrico se tratase, establecera el precio correspondiente. Como se puede observar, si tal establecimiento vende ordenadores, impresoras, mdems y ratones, el abanico de posibilidades se ha ampliado de dos a cuatro. Existe una estructura selectiva que permite trabajar con ms de dos elementos susceptibles de ser seleccionados. Se conoce como estructura selectiva mltiple y su formato es el siguiente: Segn hacer valor1: accin 1a accin 2a : accin na valor2: accin 1b accin 2b : accin nb ... valorn: accin 1z accin 2z : accin nz cualquier otro: accin 1 : accin n fin-segn

La representacin de la estructura SEGN-SEA en diagrama de flujo y N/S, es como sigue:

OBDULIA ESTRADA ESPARZA

Ejemplo: Imaginemos un sistema informtico, al que, por razones de seguridad, slo tienen acceso cuatro personas: Eva, Juan, Pedro y Mara. Imaginemos tambin que cada una de estas cuatro personas puede realizar una serie de acciones sobre el sistema, aunque tienen otras restringidas en funcin de su cargo. Establezcamos la jerarqua en cuatro niveles segn la siguiente tabla: Realizar el algoritmo que permita la entrada al sistema slo a los usuarios autorizados y en el nivel que les corresponde. Algoritmo Seguridad Var nombre: cadena nivel: entero Inicio Eti1: leer ("nombre") segn-sea nombre hacer "Eva": nivel = 1 "Mara": nivel = 4 "Juan": nivel = 2 "Pedro": nivel = 3 cualquier otra: escribir ("acceso denegado") ir a Eti1 fin-segn segn-sea nivel hacer 1: acceso libre 2: acceso con X restricciones 3: acceso con Y restricciones 4: acceso con Z restricciones fin-segn fin Si este algoritmo fuese un programa real de control de acceso, en aquellos lugares donde encontramos los accesos libre o con restriccin X, iran las rdenes que permiten la entrada real al sistema. Esta segunda estructura del tipo SEGN-SEA podra considerarse la "llave" que abre el cerrojo del sistema. El lector podr observar que en el segundo SEGN-SEA no aparece la opcin cualquier-otra. La explicacin es muy simple. La variable que acta como condicin del segundo SEGN-SEA, slo se trata a lo largo del algoritmo en las acciones del primer SEGN-SEA, con lo cual estamos seguros de que si el programa llega al segundo SEGN-SEA, NIVEL slo puede valer 1, 2, 3 4 y no existe otro valor posible.

OBDULIA ESTRADA ESPARZA

UNIDAD VI. ESTRUCTURAS DE REPETICION.

Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo, existen tareas ms complejas que no pueden ser resueltas empleando un esquema tan sencillo, en ocasiones es necesario repetir una misma accin un nmero determinado de veces o evaluar una expresin y realizar acciones diferentes en base al resultado de dicha evaluacin.

Para resolver estas situaciones existen las denominadas estructuras de control que poseen las siguientes caractersticas:

Una estructura de control tiene un nico punto de entrada y un nico punto de salida. Una estructura de control se compone de sentencias o de otras estructuras de control.

Tales caractersticas permiten desarrollar de forma muy flexible todo tipo de algoritmos an cuando slo existen tres tipos fundamentales de estructuras de control:

Secuencial. Alternativa. Repetitiva.

A lo largo de esta leccin se presentarn las distintas estructuras de control, la forma de representarlas en la notacin algortmica y las correspondientes sentencias FORTRAN para poder utilizarlas en nuestros programas.

OBDULIA ESTRADA ESPARZA

Estructura repetitiva.

La estructura repetitiva o iterativa permite, como su propio nombre indica, repetir una accin (o grupo de acciones); dicha repeticin puede llevarse a cabo un nmero prefijado de veces o depender de la evaluacin de una expresin lgica. Existen tres tipos de estructuras repetitivas: desde-hasta, mientras y repetir-hasta.

6.1 REPETIR MIENTRAS. En la solucin de algunos problemas es necesario ejecutar repetidas veces una instruccin o un conjunto de instrucciones. El nmero de repeticiones se conoce con anterioridad, mientras que en otras depende de clculos o estados de variables que se dan dentro de la solucin del problema. Para solucionar este tipo de problemas se utiliza un tipo de estructuras a las que se conocen como estructuras de repeticin, bucles o ciclos. Un ciclo consiste en un grupo de acciones que se ejecutan repetidas veces dependiendo del cumplimiento de una condicin. Ciclo Mientras.- Este ciclo consiste en un conjunto de instrucciones que se repiten mientras se cumpla una condicin. De igual manera que en los condicionales, la condicin es evaluada y retorna un valor lgico, que puede ser verdadero o falso. En el caso del ciclo mientras las instrucciones contenidas en la estructura de repeticin se ejecutarn solamente si al evaluar la condicin se genera un valor verdadero; es decir, si la condicin se cumple; en caso contrario, se ejecutar la instruccin que aparece despus de Fin mientras. A diferencia de otros ciclos, el ciclo mientras comienza evaluando la expresin condicional, si el resultado es verdadero se ejecutarn las instrucciones que estn entre el mientras y el fin mientras, al encontrarse la lnea fin mientras se volver a evaluar la condicin, si se cumple se ejecutarn nuevamente las instrucciones y as sucesivamente hasta que la condicin deje de cumplirse, en cuyo caso, el control del programa pasa a la lnea que aparece despus de fin mientras. Si en la primera pasada por el ciclo mientras la condicin no se cumple las instrucciones que estn dentro del ciclo no se ejecutarn ni una sola vez. En diagrama de Chapin (N-S), esta estructura tiene la presentacin:

OBDULIA ESTRADA ESPARZA

Ejemplos: 1. Un algoritmo para mostrar los nmeros del 1 al 10. Definicin del problema Mostrar listado de nmeros de 1 a 10. Anlisis del problema Datos de entrada: ninguno Datos de salida: nmero Proceso: ninguno Diseo de la solucin Este es un algoritmo muy trivial pero permite revisar la aplicacin de la estructura de repeticin Mientras. Lo primero a tener en cuenta es la declaracin e inicializacin de la variable: num = 1. En este caso no solo se est declarando una variable de tipo entero, sino tambin se est asignando un valor inicial, que ser el primer nmero mostrado. La condicin o expresin relacional con la cual se implementa el ciclo es num <= 10, dado que num inicia en 1, la primera vez que se encuentra la instruccin mientras, la expresin es verdadera, por tanto se ejecutan las instrucciones que aparecen al interior del ciclo. Despus de haber mostrado el contenido de la variable num, ste cambia, se incrementa en 1. 2. Leer n nmeros y encontrar el valor promedio, el mayor y el menor. Definicin del problema Encontrar el promedio, el mayor y el menor de varios nmeros Anlisis del problema Para solucionar este problema, lo primero que hay que plantear es cmo se sabr cuando terminar la lectura de datos, ya que no se especifica la cantidad de nmeros que sern ingresados y en el planteamiento del problema no se da ninguna condicin que permita saber cuando terminar el ciclo. Este tipo de problemas es muy comn. Hay dos formas de abordar este ejercicio, la primera consiste en preguntar al usuario con cuantos nmeros desea trabajar y guardar dicho valor en una variable que se utilizar para establecer el ciclo. La segunda consiste en preguntar despus de leer cada dato, si se desea ingresar otro. En este ejercicio se utilizar la primera estrategia. Datos de entrada: cantidad de nmeros, nmero Datos de salida: promedio, mayor y menor Procesos: suma = suma + nmero promedio = suma / cantidad de nmeros Diseo de la solucin 3. La serie Fibonacci comienza con los nmeros: 0, 1, 1, 2, 3, 5, 8, 13, 21, Se requiere un algoritmo para generar los primeros 10 nmeros. Definicin del problema Generar los 10 primeros nmeros de la serie fibonacci Anlisis del problema La serie fibonacci se genera a partir de dos valores iniciales que son el 0 y el 1, que al sumarse dan como resultado 1. El siguiente nmero se obtiene sumando el ltimo nmero obtenido con el anterior, en este caso 1 + 1 = 2, luego ser 2 + 1 = 3 y as sucesivamente. Datos de entrada: ninguno Datos de salida: serie fibonacci Procesos: a = 0 b = 1 f = a + b Diseo de la solucin

OBDULIA ESTRADA ESPARZA

6.2 REPETIR...HASTA. Una variante de la sentencia mientras, es la sentencia repetir. Una de las caractersticas de la sentencia mientras es que la condicin lgica se evala al principio de cada iteracin. En particular, si la condicin es falsa cuando la sentencia comienza, entonces el bucle no se ejecuta nunca. La sentencia repetir-hasta especifica un bucle condicional que se repite hasta que la condicin se hace verdadera. Despus de cada iteracin el cuerpo del bucle evala la condicin. Si la condicin es verdadera, el bucle se termina y se sale de el, ejecutndose la siguiente sentencia. Si la condicin es falsa el bucle se repite. El pseudocdigo es el siguiente: Repetir.Sentencias.Hasta (expresin lgica).

Ejemplo: Volvamos a realizar el ejemplo anterior, donde se desea obtener la suma de tres nmeros ingresados por el usuario. Para acortar, solo colocar la parte donde se efecta la suma: Escribir ("Cuntos nmeros desea ingresar")leer (Total_num)contador <-- 0suma <-- 0repetir leer (nm.) suma <-- suma + numero contador <-- contador + 1hasta (contador = Total_num). En un bucle repeat...until, primero se ejecuta el bloque de instrucciones y, despus, se evala la condicin. En el caso de que sta sea falsa, se vuelve a ejecutar el bloque de instrucciones. Y as sucesivamente, hasta que, la condicin sea verdadera.Por consiguiente, cuando el flujo de un programa llega a un bucle repeat...until, existen dos posibilidades: Se ejecuta el bloque de instrucciones y, despus, si la condicin se evala a verdadera, el bloque de instrucciones no se vuelve a ejecutar, de manera que, el bucle repeat...until finaliza, habiendo realizado una sola iteracin.

OBDULIA ESTRADA ESPARZA

Se ejecuta el bloque de instrucciones y, a continuacin, si la condicin se evala a falsa, el bloque de instrucciones se vuelve a ejecutar. Y as sucesivamente, hasta que la condicin sea verdadera. El de un bucle repeat...until puede ejecutarse una o ms veces (iteraciones). Tambin hay que prevenir que el bucle no sea infinito.Una instruccin repetitiva repeat...until permite ejecutar repetidamente (una o ms veces) un bloque de instrucciones, hasta que, una determinada condicin sea verdadera.Ejemplo 1: De modo que, utilizando un bucle repeat...until, 3.1 Repetitiva mientras, se puede resolver con el cdigo: program EJE13101;uses Crt;var Contador : Integer;begin ClrScr; GotoXY( 4, 2 ); Contador := 1; { Inicializacion del contador } repeat Write( Contador, ' ' ); { Salida } Contador := Contador + 1; { Incremento } until Contador > 10; { Condicion }end.

Programa (.PAS): El bucle repeat...until puede iterar una o ms veces, por tanto, cuando un bloque de instrucciones debe iterar al menos una vez, es mejor utilizar un bucle repeat...until que un bucle while.

6.3 REPETIR DESDE.

La estructura repetitiva desde (for) es aquella en que el nmero de iteraciones (repeticiones) del bucle se conoce de antemano y por ello no se precisa poner ninguna condicin de salida para detener el bucle. En su lugar, un contador cuenta el nmero de iteraciones fijadas y se termina cuando llega al valor final. La estructura for sirve para repetir un cdigo dependiendo de un contador. Un ejemplo:int contador;for (contador = 1; contador<=10; contador++){ printf(Repeticin numero %d\n, contador);};Primero se crea la variable contador de tipo entero (ser la variable de control en el for). Luego se ejecuta la estructura for iniciando la variable contador en 1. Luego se verifica que se cumple la condicin contador<=10 y se ejecuta el bloque dentro de la estructura, o sea, imprime en pantalla Repeticin nmero 1.Luego la variable contador es incrementada en uno con la expresin contador++ y el ciclo se inicia otra vez. La variable contador ahora vale 2, por lo tanto se verifica la condicin y se vuelve a

OBDULIA ESTRADA ESPARZA

ejecutar el cdigo. Este proceso se ejecuta hasta que contador toma el nmero 11 y la condicin se hace falsa y no ejecuta el bloque. Este cdigo imprimir en pantalla lo siguiente: Repeticin numero 1Repeticin numero 2Repeticin numero 3Repeticin numero 4Repeticin numero 5Repeticin numero 6Repeticin numero 7Repeticin numero 8Repeticin numero 9 Repeticin numero 10 Las tres expresiones que componen la estructura for en C son opcionales, por lo tanto se pueden omitir en ciertos casos. Si se omite la primera (la inicializacin de la variable de control), significa que la variable se inicializa en otra parte del programa. Si se omite la segunda expresin, la estructura for entrara en un ciclo infinito, lo cual es considerado un error. Si se omite la tercera expresin significa que la variable de control es calculada dentro del bloque de for.La tercera expresin puede ser tanto un incremento como un decremento en uno o ms. Tambin puede ser ms compleja agregando ms instrucciones con el uso de la coma. Por ejemplo:for (contador = 1; contador<=10; suma += contador, contador += 2)La tercera expresin no slo suma contador de dos en dos sino que adems en cada repeticin ejecuta la operacin suma += contador.ndice - Anterior: Estructura de repeticin while - Siguiente: Estructura de repeticin do-while El funcionamiento de la estructura es el siguiente: En primer lugar, se asigna a la variable ndice el valor de inicio. El bucle se ejecuta mientras ndice no alcance el valor de fin. En cada iteracin el valor de ndice es incrementado segn el paso indicado y se ejecuta la accin o grupo de acciones encerrados en el bucle. En caso de que no se indique ningn paso el que se emplear ser +1.

1. Las estructuras de control permiten alterar el flujo secuencial de los algoritmos que hemos visto hasta el momento.

2. Una estructura de control: Tiene un nico punto de entrada y un nico punto de salida. Se compone de sentencias o de otras estructuras de control.

OBDULIA ESTRADA ESPARZA

3. Existen tres tipos fundamentales de estructuras de control: Secuencial. Alternativa. Repetitiva.

4. La estructura secuencial es una lista consecutiva de acciones donde el orden de aparicin indica el orden de ejecucin.

5. La estructura alternativa se presenta en tres formas: Simple. Doble. Multialternativa.

6. La estructura alternativa simple permite evaluar una expresin lgica y ejecutar una accin si dicha expresin es cierta.

7. La estructura alternativa doble permite evaluar una expresin lgica y ejecutar una accin si dicha expresin es cierta y otra accin si dicha expresin es falsa.

8. La estructura multialternativa consiste en una expresin selectora que puede tomar n valores diferentes y ejecuta una accin diferente por cada posible valor de la expresin selectora.

9. La estructura repetitiva se presenta en tres formas: Estructura desde-hasta Estructura mientras

OBDULIA ESTRADA ESPARZA

Estructura repetir-hasta

10. La estructura desde-hasta permite repetir la ejecucin de una accin un nmero determinado de veces.

11. La estructura mientras repite una accin mientras una expresin lgica sea cierta; esta estructura puede ejecutarse 0 ms veces.

12. La estructura repetir-hasta repite una accin hasta que una expresin lgica sea cierta; esta estructura siempre se ejecuta 1 vez al menos y no existe en el lenguaje FORTRAN aunque aparece en otros lenguajes de programacin.

OBDULIA ESTRADA ESPARZA

UNIDAD VII. ARREGLOS

7.1 ARREGLO UNIDIMENSIONALES Un arreglo unidimensional es un tipo de datos estructurado que est formado de una coleccin finita y ordenada de datos del mismo tipo. Es la estructura natural para modelar listas de elementos iguales. El tipo de acceso a los arreglos unidimensionales es el acceso directo, es decir, podemos acceder a cualquier elemento del arreglo sin tener que consultar a elementos anteriores o posteriores, esto mediante el uso de un ndice para cada elemento del arreglo que nos da su posicin relativa. Para implementar arreglos unidimensionales se debe reservar espacio en memoria, y se debe proporcionar la direccin base del arreglo, la cota superior y la inferior. REPRESENTACION EN MEMORIA Los arreglos se representan en memoria de la forma siguiente: x : array[1..5] of integer Para establecer el rango del arreglo (nmero total de elementos) que componen el arreglo se utiliza la siguiente formula: RANGO = Ls - (Li+1) donde: ls = Lmite superior del arreglo li = Lmite inferior del arreglo Para calcular la direccin de memoria de un elemento dentro de un arreglo se usa la siguiente formula: A[i] = base(A) + [(i-li) * w] donde : A = Identificador nico del arreglo

OBDULIA ESTRADA ESPARZA

i = Indice del elemento li = Lmite inferior w = Nmero de bytes tipo componente

Si el arreglo en el cual estamos trabajando tiene un ndice numerativo utilizaremos las siguientes frmulas: RANGO = ord (ls) - (ord (li)+1) A[i] = base (A) + [ord (i) - ord (li) * w]

7.1.1 CONCEPTOS BSICOS

Un arreglo unidimensional tiene una sola dimensin. En C#, la dimensin se maneja por medio de un par de corchetes. A los arreglos de una dimensin tambin se les llama listas.

7.1.2 OPERACIONES ,APLICACIONES OPERACIONES Para manejar un arreglo, las operaciones a efectuarse son: Declaracin del arreglo, Creacin del arreglo, Inicializacin de de los elementos del arreglo, y Acceso a los elementos del arreglo. A continuacin describiremos cada una de estas operaciones, en C#.

OBDULIA ESTRADA ESPARZA

Declaracin. La declaracin de un arreglo unidimensional consiste en establecer las caractersticas del arreglo y sus elementos, por medio de la siguiente sintaxis: [ ] <> ; Donde: Tipo. indica el tipo correspondiente a los elementos del arreglo , Identificador. es el nombre del arreglo, y el par de corchetes, [ ], representa la dimensin del arreglo y encierra un nmero entero que corresponde al nmero de elementos del arreglo. Ejemplos: int [ ] a ; float [ ] distancia ; Artculo [ ] art = new Artculo[ 3]; Observe que, en la declaracin, el espacio entre los corchetes est vaco. Esto se debe a que, durante dicha operacin, no se reserva espacio en la memoria. Creacin. La creacin de un arreglo unidimensional consiste en reservar espacio de memoria para todos sus elementos, utilizando la siguiente sintaxis: <> = new [ tamao ] ; Donde: New. es el operador para gestionar espacio de memoria, en tiempo de ejecucin, Tamao. es un nmero entero que representa el nmero de elementos del arreglo.

Ejemplos: a = new int [10] ; // Se crea el arreglo a , con 10 elementos de tipo entero. distancia = new float[ 5] ; // Se crea el arreglo distancia , con 5 elementos de punto flotante y precisin sencilla .Artculo [] art = new Artculo[3];

OBDULIA ESTRADA ESPARZA

Artculo [ ] art = new Artculo[ 3]; // Se crean 3 referencias a objetos de la clase Artculo art[0]= new Artculo(); // Se crea el primer objeto del arreglo art art[1]= new Artculo(); // Se crea el segundo objeto del arreglo art art[2]= new Artculo(); // Se crea el tercer objeto del arreglo art

Las dos primeras operaciones de declaracin y creacin anteriores se pueden agrupar en una sola instruccin, como se muestra enseguida: int [ ] a = new int [10] ; float [ ] distancia = new float[5] ;

Inicializacin. Un arreglo es un objeto que,cuando es creado por el compilador, se le asignan automticamente valores iniciales predeterminados a cada uno de sus elementos, de acuerdo a los siguientes criterios: Si el tipo del arreglo es numrico, a sus elementos se les asigna el valor cero. Si el tipo del arreglo es char, a sus elementos se les asigna el valor '\u0000'. Si el tipo del arreglo es bool, a sus elementos se les asigna el valor false. Si el tipo del arreglo es una clase, a sus elementos se les asigna el valor null. Cuando se requiere asignar valores iniciales diferentes de los predeterminados, es posible agrupar las operaciones de declaracin, creacin e inicializacin en una sola instruccin, por ejemplo: int [ ] a = { 1, 0,4,-6, 2,9, 23,455, 90,35 }; float [ ] distancia = { 2.50F, 286.45F, 46.75F, 30.62F, 93.00F }; string [ ] pato = { "Hugo", "Paco", "Lus" };

OBDULIA ESTRADA ESPARZA

Acceso. Se puede acceder a los valores de los elementos de un arreglo a travs del nombre del arreglo y un subndice. El subndice debe escribirse entre corchetes y representa la posicin del elemento en el arreglo. As, podemos referirnos a un elemento del arreglo escribiendo el nombre del arreglo y el subndice del elemento entre corchetes. Los valores de los subndices empiezan en cero para el primer elemento, hasta el tamao del arreglo menos uno. Ejemplo: float [ ] distancia = new float[5] ; // Crea el arreglo distancia con 5 elementos. float x = 25F, y = 10F ; // Crea dos variables de punto flotante y precisin sencilla. distancia[0] = x + y ; // El valor asignado al primer elemento es 35. distancia[1] = ++distancia[0] ; // Asigna 36 al segundo elemento. distancia[2] = distancia[1] distancia[0] + 4 ; // Asigna 5 al tercer elemento. distancia[3] = distancia[2]-- ; // Asigna 5 al cuarto elemento // y disminuye en 1 el valor del tercero. distancia[4] = distancia[3] * distancia[2] ; // Asigna 20 al quinto elemento. y = distancia[4] ; // Asigna a y el valor almacenado en el quinto elemento.

APLICACIONEAS Listas. Resolvamos el problema de manejar dos listas: una con los nombres de un grupo de alumnos y otra con una calificacin para cada uno de los alumnos. Primero se debern leer los nombres de los alumnos y la calificacin que corresponde a cada uno de ellos y despus habr que desplegar dos columnas: una con los nombres de los alumnos y la otra con sus respectivas calificaciones.

La lectura debe lucir de manera similar a la siguiente: Nmero de alumnos: 30 Nombre [0] : Calificacin[0] : Nombre [1] : Calificacin[1] :

OBDULIA ESTRADA ESPARZA

Nombre [2] : Calificacin[2] : ...... Nombre [29] : Calificacin[29] : El despliegue en el monitor lucira as: No. Nombre Calif. 1 Hugo 100 2 Paco 90 3 Lus 95 ...

... 30 Donald 70 El siguiente cdigo corresponde a un programa que resuelve el problema. // Lista.cs : Lee una lista de nombres y calificaciones correspondientes a un grupo de

OBDULIA ESTRADA ESPARZA

// alumnos de una materia. using System;using C = System.Console; public class Lista{ public static void Main() { int nAlumnos; C.Write("Nmero de alumnos: "); nAlumnos = Convert.ToInt32(C.ReadLine()); string [ ] alumnos = new string[nAlumnos]; //Crea el arreglo de //alumnos. int [ ] calif = new int [nAlumnos]; // Crea el arreglo de calificaciones. // Lee los elementos de los dos arreglos. for(int i = 0; i < nAlumnos ; i++){ C.Write("Nombre del alumno [" + i + "] : ");alumnos[i] = C.ReadLine( ); C.Write("Calificacin [" + i + "] : ");calif[i] = Convert.ToInt32(C.ReadLine( )); } // Despliega los valores de los dos arreglos. C.WriteLine("No. Nombre Calif."); for(int i = 0 ; i < nAlumnos ; i++){ C.Write(" " + (i+1) + ".- " + alumnos[ i] );C.WriteLine(" " + calif[i] ); } } }

Vectores.

OBDULIA ESTRADA ESPARZA

Otra de las aplicaciones de los arreglos es el manejo de vectores. En Fsica, los vectores sirven para representar velocidades, aceleraciones, etc. Podemos representar a un vector como un segmento de recta dirigida que tiene magnitud, orientacin y sentido. En un espacio tridimensional, un vector puede expresarse por medio de tres componentes sobre los ejes cartesianos. Cada componente puede, a su vez, expresarse en funcin de los vectores unitarios i, j, k ,que se ubican en los ejes x, y, z, respectivamente. Por ejemplo , un vector v1 puede representarse en funcin de sus componentes como: v1 = 20i + 15j + 35k Si tenemos otro vector, v2 = -5i + 40j + 25k

La suma de los dos vectores sera: s = v1+v2 = (20-5)i +(15+40)j+(35+25)k s = 15i + 55j + 60k Un segmento del programa para este ejemplo sera: double v1[ ] = new double[3];double v2[ ] = new double[3];double s[ ] = new double[3]; v1[0] = 20;v1[1] = 15;v1[2] = 35; v2[0] = -5;v2[1] = 40;v2[2] = 25; for(int i=0; i < 3 ; i++){ s[ i ] = v1[ i ] + v2[ i ] ; } 7.2 ARREGLO BIDIMENSIONALES

OBDULIA ESTRADA ESPARZA

Este tipo de arreglos al igual que los anteriores es un tipo de dato estructurado, finito ordenado y homogneo. El acceso a ellos tambin es en forma directa por medio de un par de ndices. Los arreglos bidimensionales se usan para representar datos que pueden verse como una tabla con filas y columnas. La primera dimensin del arreglo representa las columnas, cada elemento contiene un valor y cada dimensin representa una relacin La representacin en memoria se realiza de dos formas : almacenamiento por columnas o por renglones. Para determinar el nmero total de elementos en un arreglo bidimensional usaremos las siguientes frmulas: RANGO DE RENGLONES (R1) = Ls1 - (Li1+1) RANGO DE COLUMNAS (R2) = Ls2 - (Li2+1) No. TOTAL DE COMPONENTES = R1 * R2 REPRESENTACION EN MEMORIA POR COLUMNAS x : array [1..5,1..7] of integer Para calcular la direccin de memoria de un elemento se usan la siguiente formula: A[i,j] = base (A) + [((j - li2) R1 + (i + li1))*w] REPRESENTACION EN MEMORIA POR RENGLONES x : array [1..5,1..7] of integer Para calcular la direccin de memoria de un elemento se usan la siguiente formula: A[i,j] = base (A) + [((i - li1) R2 + (j + li2))*w] donde: i = Indice del rengln a calcular j = Indice de la columna a calcular li1 = Lmite inferior de renglones li2 = Lmite inferior de columnas

OBDULIA ESTRADA ESPARZA

w = Nmero de bytes tipo componente

7.3 CONCEPTOS BSICOS

Un arreglo bidimensional tiene dos dimensiones y es un caso particular de los arreglos multidimensionales. En C#, las dimensiones se manejan por medio de un par de corchetes, dentro de los que se escriben, separados por comas, los valores de las dos dimensiones.

7.4 OPERACIONES

Para manejar un arreglo, las operaciones a efectuarse son:

Declaracin del arreglo, Creacin del arreglo, Inicializacin de de los elementos del arreglo, y Acceso a los elementos del arreglo.

A continuacin describiremos cada una de estas operaciones, en C#.

Declaracin. La declaracin de un arreglo consiste en establecer las caractersticas del arreglo y sus elementos, por medio de la siguiente sintaxis:

OBDULIA ESTRADA ESPARZA

[ , ] <> ; Donde: tipo indica el tipo correspondiente a los elementos del arreglo , identificador es el nombre del arreglo, y el par de corchetes y la coma, [ , ], representan las dimensiones del arreglo y encierra dos nmeros enteros, cuyo producto corresponde al nmero de elementos del arreglo. Ejemplos: double [ , ] matriz ; int [ , ] ubicacin ; Rama [ , ] rbol; // Rama es una clase. Observe que, en la declaracin, el espacio entre los corchetes est vaco. Esto se debe a que, durante dicha operacin, no se reserva espacio en la memoria.

Creacin. La creacin de un arreglo bidimensional consiste en reservar espacio en la memoria para todos sus elementos, utilizando la siguiente sintaxis: <> = new [ dim1, dim2 ] ; Donde: new es el operador para gestionar espacio de memoria, en tiempo de ejecucin, dim1 y dim2 son valores enteros que representan las dimensioes del arreglo. El tamao del arreglo es el resultado de multiplicar los valores de las dimensiones y representa el nmero de elementos del arreglo. Ejemplos: matriz = new double [2, 3] ; // Se crea el arreglo matriz, con 6 elementos de tipo //punto flotante y precicin doble . ubicacin = new int[ 4,2] ; // Se crea el arreglo ubicacin, con 8 elementos de

OBDULIA ESTRADA ESPARZA

//tipo entero de 32 bits . rbol = new Rama[5,2] ; // Se crea el arreglo arbol, con 10 objetos //de la clase Rama. Las operaciones de declaracin y creacin anteriores se pueden agrupar en una sola instruccin, como se muestra enseguida: double [ , ] matriz = new double [2,3] ; int [ , ] ubicacin = new int[4, 2] ; Rama [ , ] alumno = new Rama[5,2] ;

Inicializacin. Un arreglo es un objeto que,cuando es creado por el compilador, se le asignan automticamente valores iniciales predeterminados a cada uno de sus elementos, de acuerdo a los siguientes criterios: Si el tipo del arreglo es numrico, a sus elementos se les asigna el valor cero. Si el tipo del arreglo es char, a sus elementos se les asigna el valor '\u0000'. Si el tipo del arreglo es bool, a sus elementos se les asigna el valor false. Si el tipo del arreglo es una clase, a sus elementos se les asigna el valor null. Cuando se requiere asignar valores iniciales diferentes de los predeterminados, es posible agrupar las operaciones de declaracin, creacin e inicializacin en una sola instruccin, por ejemplo:

double [ , ] matriz = { {1.5, 0, 4, -6.5, 2 } , {2.3, 9, 3.5, 4.8, 6.2} }; int [ , ] ubicacin = { {2, 4} , {6, 8} , {9, 10}, {5 , 1}}; string [ , ] funcionario = { {"Hugo", "jefe"} , { "Paco", "operador "}, { "Lus","ayudante"} };

OBDULIA ESTRADA ESPARZA

Acceso. Se puede acceder a los valores de los elementos de un arreglo bidimensional a travs del nombre del arreglo y dos subndices. Los subndices deben escribirse entre corchetes y representa la posicin del elemento en el arreglo. As, podemos referirnos a un elemento del arreglo escribiendo el nombre del arreglo y los subndices del elemento entre corchetes. Los valores de los subndices empiezan en cero para el primer elemento, hasta el tamao del arreglo menos uno. Ejemplo: int [ , ] posicin = new int[5, 10] ; // Crea el arreglo posicin , con 50 elementos de tipo entero. int x;posicin[ 3, 5] = 3 ; x = posicin[ 3, 5] ;

7.5 APLICACIONES

Matrices. Una matriz es un arreglo rectangular de dos dimensiones, donde el acomodo de los elementos est dispuesto en renglones y columnas. Ejemplo 1: Se debe controlar la ubicacin de los asistentes a una sala de conferencias por medio de un gafete que tiene escrito el nombre del asistente, la fila y la columna donde se ubica su asiento. El siguiente segmento bidimensionales. de cdigo muestra la solucin con arreglos

string [ , ] asistente = new string[10,12] ;

OBDULIA ESTRADA ESPARZA

// Inicializa los valores de los nombres con cadenas vacas. for(int i=0 ; i < 10 ; i++ ) // Controla la fila. for(int j=0 ; j < 12 ; j++ ) // Controla la columna. asistente[ i , j ] = " " ; // Captura los nombres de todos los asistentes y les asigna sus asientos, // en el orden en que van llegando. for(int i=0 ; i < 10 ; i++ ) // Controla la fila. for(int j=0 ; j < 12 ; j++ ) // Controla la columna. asistente[ i , j ] = System.Console.ReadLine( ); // Despliega los nombres de todos los asistentes. for(int i=0 ; i < 10 ; i++ ) // Controla la fila. for(int j=0 ; j < 12 ; j++ ) // Controla la columna. System.Console.WriteLine( asistente[ i , j ] );

Ejemplo 2 : Dadas la matriz A : 10 8 29 15 62 43 16 13

OBDULIA ESTRADA ESPARZA

21 78 57 25 30 44 17 y la matriz B : 20 66 31 42 50 92 85 74 69 45 35 61 15 54 12 Elaborar un programa en C# para obtener la suma de ambas matrices: S=A+B

OBDULIA ESTRADA ESPARZA

// SumMatrices.cs : Suma dos matrices de 3 renglones y 5 columnas.

using System; class Matriz{ public static void Main( ) { double [ , ] A = new double [3,5] ; double [ , ] B = new double [3, 5] ; double [ , ] S = new double [3, 5] ; int i, j ; // Lectura de valores para los elementos de A. for( i = 0 ; i < 3 ; i++ ) for( j = 0 ; j < 5 ; j++) A[ i , j ] = Convert.ToDouble(Console.ReadLine( )); // Lectura de valores para los elementos de B. for( i = 0 ; i < 3 ; i++ ) for( j = 0 ; j < 5 ; j++) B[ i , j ] = Convert.ToDouble(Console.ReadLine( )) ;

// Suma y despliegue de la matriz resultado. for( i = 0 ; i < 3 ; i++ ) { for( j = 0 ; j < 5 ; j++) { S[ i , j ] = A[ i , j ] + B[ i , j ] ; Console.Write(" " + S[ i , j ] ) ; } Console.WriteLine( ) ; } } }

7.6 REGISTROS

Los registros del procesador se emplean para controlar instrucciones en ejecucin, manejar direccionamiento de memoria y proporcionar capacidad aritmtica. Los registros son espacios fsicos dentro del microprocesador con capacidad de 4 bits hasta 64 bits dependiendo del microprocesador que se emplee. Los registros son direccionables por medio de una vieta, que es una direccin de memoria. Los bits, por conveniencia, se numeran de derecha a izquierda (15,14,13. 3,2,1,0), los registros estn divididos en seis grupos los cuales tienen un fin especifico. Los registros se dividen en:

Registros de segmento

OBDULIA ESTRADA ESPARZA

Registros de apuntadores de instrucciones Registros apuntadores Registros de propsitos generales Registro ndice Registro de bandera.

REGISTROS DE SEGMENTO. Un registro de segmento se utiliza para alinear en un limite de prrafo o dicho de otra forma codifica la direccin de inicio de cada segmento y su direccin en un registro de segmento supone cuatro bits 0 a su derecha. Un registro de segmento tiene 16 bits de longitud y facilita un rea de memoria para direccionamientos conocidos como el segmento actual. Los registros de segmento son:

Registro CS Registro DS Registro SS Registro ES Registro FS y GS

Registro CS. El DOS almacena la direccin inicial del segmento de cdigo de un programa en el registro CS. Esta direccin de segmento, mas un valor de desplazamiento en el registro de apuntado de instruccin (IP), indica la direccin de una instruccin que es buscada para s ejecucin. Para propsito de programacin normal, no e necesita referenciar el registro CS.

Registro DS.

OBDULIA ESTRADA ESPARZA

La direccin inicial de un segmento de datos de programa es almacenada en el registro DS. En trminos sencillos, esta direccin, mas un valor de desplazamiento en una instruccin, genera una referencia a la localidad de un bytes especifico en el segmento de datos.

Registro SS. El registro SS permite la colocacin en memoria de una pila, para almacenamiento temporal de direcciones y datos. El DOS almacena la direccin de inicio del segmento de pila de un programa en el registro SS. Esta direccin de segmento, ms un valor de desplazamiento en el registro del apuntador de la pila (SP), indica la palabra actual en la pila que est siendo direccionada. Para propsitos de programacin normal, no se necesita referenciar el registro SS.

Registro ES Algunas operaciones con cadenas de caracteres (datos de caracteres) utilizan el registro esta de segmento para manejar el direccionamiento de memoria. En este contexto, el registro ES esta asociado con el registro DI (ndice). Un programa que requiere el uso del registro ES puede inicializarlo con una direccin apropiada. Registros FS y GS. Son registros extra de segmento en los procesadores 80386y posteriores a estos procesadores.

REGISTRO APUNTADOR DE INSTRUCCIONES (IP) El registro apuntador de instrucciones (IP) de 16 bits contiene el desplazamiento de direccin de la siguiente instruccin que se ejecuta. El registro IP esta asociado con el registro CS en el sentido de que el IP indica la instruccin actual dentro del segmento de cdigo que se esta ejecutando actualmente.En el ejemplo siguiente, el registro CS contiene 25A4[0]H y el IP contiene 412H. Para encontrar la siguiente instruccin que ser ejecutada el procesados combina las direcciones en el CS y el IP as:Segmento de direccin en el registro CS: 25A40H Desplazamiento de direccin en el registro IP: + 412HDireccin de la siguiente instruccin: 25E52H

OBDULIA ESTRADA ESPARZA

REGISTROS APUNTADORES.

Los registros apuntadores estn asociados con el registro SS y permiten al procesador accesar datos en el segmento de pila los registros apuntadores son dos: El registro SP El registro BP

Registro SP. El apuntador de pila IP de 16 bits esta asociado con el registro SS y proporciona un valor de desplazamiento que se refiere a la palabra actual que esta siendo procesada en la pila.El ejemplo siguiente el registro SS contiene la direccin de segmento 27B3[0]H y el SP el desplazamiento 312H Para encontrar la palabra actual que esta siendo procesada en la pila el microprocesador combina las direcciones en el SS y el PP:Direccin de segmento en el registro SS: 27B30HDesplazamiento en el registro SP: + 312HDireccin en la Pila: 27E42H 27B3[0]H 312HDireccin del segmento SS Desplazamiento del SP

Registro BP.

El registro BP de 16 bits facilita la referencia de parmetros, los cuales son datos y direcciones transmitidos va lapida.

REGISTROS DE PROPSITOS GENERALES. Los registros de propsitos generales AX, BX, CX y DX son los caballos de batalla o las herramientas del sistema. Son los nicos en el sentido de que se puede direccionarlos como una palabra o como una parte de un byte. El ultimo byte de la izquierda es la parte "alta", y el ultimo byte de la derecha es la parte "baja" por ejemplo, el registro CX consta de una parte CH (alta) y una parte CL (baja), y usted puede referirse a cualquier parte por si nombre. as instrucciones siguientes mueven ceros a los registros CX, CH y CL respectivamente.

OBDULIA ESTRADA ESPARZA

Mov CX, 00Mov CH, 00Mov CL, 00 Los procesadores 80386 y posteriores permiten el uso de todos registros de propsito general, mas versiones de 32 bits; EAX, EBX y EDCX.

Registros AX. El registro AX, el acumulador principal, es utilizado para operaciones que implican entrada/salida y la mayor parte de la aritmtica. Por ejemplo, las instrucciones para multiplicar, dividir y traducir suponen el uso del AX. Tambin, algunas operaciones generan cdigo ms eficientes si se refiere al AX en lugar de los otros registros.

Registro BX. El BX es conocido como el registro base ya que es el nico registro de propsitos generales que pueden ser unos ndices para direccionamiento indexado. Tambin es comn emplear al BX para clculos.

Registro CX. El CX es conocido como el registro contador. Puede contener un valor para controlar el nmero de veces que un ciclo se repite o un valor para corrimiento de bits, hacia la derecha o hacia la izquierda. El CX tambin es usado para muchos clculos.

Registro DX. El DX es conocido como el registro de datos. Algunas operaciones de entrada/salida requieren su uso, y las operaciones de multiplicacin y divisin con cifras grandes suponen al DX y al AX trabajando juntos. Puede usar los registros de propsitos para suma y resta de cifras de 8, 16, 32 bits.

REGISTRO NDICE. Los registros SI y DI estn disponibles para direccionamientos indexados y para sumas y restas. Que son la operaciones de punta.

OBDULIA ESTRADA ESPARZA

Registro SI El registro ndice de 16 bits es requerido por algunas operaciones con cadenas (de caracteres). En este contexto, el SI est asociado con el registro DS. Los procesadores 80386 y posteriores permiten el uso de un registro ampliado a 32 bits, el ESI.

Registro DI. El registro ndice destino tambin es requerido por algunas operaciones con cadenas de caracteres. En este contexto, el Di est asociado con el registro ES. Los procesadores 80386 y posteriores permiten el uso de un registro ampliado a 32 bits, el EDI.

REGISTRO DE BANDERA. Los registros de banderas sirven parar indicar el estado actual de la maquina y el resultado del procesamiento, Cuando algunas instrucciones piden comparaciones o clculos aritmticos cambian el estado de las banderas.Las banderas estn en el registro de banderas en las siguientes posiciones:bits 15 14 13 12 11 10 9 8 7 6 54321

Bandera

Las banderas mas comunes son las siguientes: OF (Over flow flag, desbordamiento). Indica el desbordamiento de un bit de orden alto (mas a la izquierda) despus de una operacin aritmtica. DF (Direction flag, Direccion). Designa la direccin hacia la izquierda o hacia la derecha para mover o comparar cadenas de caracteres. IF (Interruption flag, Interrupcion).

OBDULIA ESTRADA ESPARZA

Indica que una interrupcin externa, como la entrada desde el teclado sea procesada o ignorada. TF (Trap flag, Trampa). Examina el efecto de una instruccin sobre los registros y la memoria. Los programas depuradores como DEBUG, activan esta bandera de manera que pueda avanzar en la ejecucin de una sola interrupcin a un tiempo. SF (Sign flag, Signo). Contiene el signo resultante de una operacin aritmtica (0=positivo y 1= negativo).ZF (Zero flag, Zero). Indica el resultado de una operacin aritmtica o de comparacin (0= resultado diferente de cero y 1=resultado igual a cero). AF (Auxiliary carry flag, Acarreo auxiliar). Contiene un acarreo externo del bit 3 en un dato de 8 bits, para aritmtica especializada PF (Parity flag, Paridad). Indica paridad par o impar de una operacin en datos de ocho bits de bajo orden (mas a la derecha). CF (Carry flag, Acarreo). Contiene el acarreo de orden mas alto (mas a la izquierda) despus de una operacin aritmtica; tambin lleva el contenido del ultimo bit en una operacin de corrimiento o rotacin.

7.7 ARCHIVOS

Un archivo informtico es un conjunto de informacin que se almacena en algn medio de escritura que permita ser ledo o accedido por una computadora. Un archivo es identificado por un nombre y la descripcin de la carpeta o directorio que lo contiene. Los archivos informticos se llaman as porque son los equivalentes digitales de los archivos en tarjetas, papel o microfichas del entorno de oficina tradicional. Los archivos informticos facilitan una manera de organizar

OBDULIA ESTRADA ESPARZA

los recursos usados para almacenar permanentemente informacin dentro de un computador.

CONTENIDO DE LOS ARCHIVOS

En lo que concierne al sistema operativo, un archivo es, en la mayora de los casos, simplemente un flujo unidimensional de bytes (nmeros enteros en el intervalo de 0 a 255), que es tratado por el sistema operativo como una nica unidad lgica. Un archivo de datos informtico normalmente tiene un tamao, que generalmente se expresa en bytes; en todos los sistemas operativos modernos, el tamao puede ser cualquier nmero entero no negativo de bytes hasta un mximo dependiente del sistema. Depende del software que se ejecuta en la computadora el interpretar esta simplsima estructura bsica como por ejemplo un programa, un texto o una imagen, basndose en su nombre y contenido. Los tipos especiales de archivos, como los nodos de dispositivo que representan simblicamente partes del hardware, no consisten en un flujo de bytes y no tienen tamao de archivo. La informacin de un archivo informtico normalmente consiste de paquetes ms pequeos de informacin (a menudo llamados registros o lneas) que son individualmente diferentes pero que comparten algn rasgo en comn. Por ejemplo, un archivo de nminas puede contener informacin sobre todos los empleados de una empresa y los detalles de su nmina; cada registro del archivo de nminas se refiere nicamente a un empleado, y todos los registros tienen la caracterstica comn de estar relacionados con las nminas-esto es muy similar a colocar toda la informacin sobre nminas en un archivador concreto en una oficina que no tenga ninguna computadora. Un archivo de texto puede contener lneas de texto, correspondientes a lneas impresas en una hoja de papel. La manera en que se agrupa la informacin en un archivo depende completamente de la persona que disee el archivo. Esto ha conducido a una pltora de estructuras de archivo ms o menos estandarizadas para todos los propsitos imaginables, desde los ms simples a los ms complejos. La mayora de los archivos informticos son usados por programas de computadora. Estos programas crean, modifican y borran archivos para su propio uso bajo demanda. Los programadores que crean los programas deciden qu archivos necesitan, cmo se van a usar, y (a menudo) sus nombres.

OBDULIA ESTRADA ESPARZA

En algunos casos, los programas de computadora manipulan los archivos que se hacen visibles al usuario de la computadora. Por ejemplo, en un programa de procesamiento de texto, el usuario manipula archivos-documento a los que l mismo da nombre. El contenido del archivo-documento est organizado de una manera que el programa de procesamiento de texto entiende, pero el usuario elige el nombre y la ubicacin del archivo, y proporciona la informacin (como palabras y texto) que se almacenar en el archivo. Muchas aplicaciones empaquetan todos sus archivos de datos en un nico archivo, usando marcadores internos para discernir los diferentes tipo de informacin que contienen. Los archivos de datos usados por juegos como Doom y Quake son ejemplos de esto. Los archivos de una computadora se pueden crear, mover, modificar, aumentar, reducir y borrar. En la mayora de los casos, los programas de computadora que se ejecutan en la computadora se encargan de estas operaciones, pero el usuario de una computadora tambin puede manipular los archivos si es necesario. Por ejemplo, los archivos de Microsoft Office Word son normalmente creados y modificados por el programa Microsoft Word en respuesta a las rdenes del usuario, pero el usuario tambin puede mover, renombrar o borrar estos archivos directamente usando un programa gestor de archivos como Windows Explorer (en computadoras con sistema operativo Windows).

IDENTIFICACIN Y ORGANIZACIN DE ARCHIVOS

Los archivos y carpetas se organizan jerrquicamente. En los sistemas informticos modernos, los archivos siempre tienen nombres. Los archivos se ubican en directorios. El nombre de un archivo debe ser nico en ese directorio. En otras palabras, no puede haber dos archivos con el mismo nombre en el mismo directorio. El nombre de un archivo y la ruta al directorio del archivo lo identifica de manera unvoca entre todos los dems archivos del sistema informtico -no puede haber dos archivos con el mismo nombre y ruta-. El aspecto del nombre depende del tipo de sistema informtico que se use. Las primeras computadoras slo permitan unas pocas letras o dgitos en el nombre de un archivo, pero las computadoras modernas permiten nombres largos que contengan casi cualquier combinacin de letras unicode y dgitos unicode, haciendo ms fcil entender el propsito de un

OBDULIA ESTRADA ESPARZA

archivo de un vistazo. Algunos sistemas informticos permiten nombres de archivo que contengan espacios; otros no. La distincin entre maysculas y minsculas en los nombres de archivo est determinada por el sistemas de archivos. Los sistemas de archivos Unix distinguen normalmente entre maysculas y minsculas, y permiten a las aplicaciones a nivel de usuario crear archivos cuyos nombres difieran solamente en si los caracteres estn en maysculas o minsculas. Microsoft Windows reconoce varios sistemas de archivos, cada uno con diferentes polticas en cuanto a la distincin entre maysculas y minsculas. El popular antiguo sistema de archivos FAT puede tener varios archivos cuyos nombres difieran nicamente en las maysculas y minsculas si el usuario utiliza un editor de discos para editar los nombres de archivo en las entradas de directorio. Las aplicaciones de usuario, sin embargo, normalmente no permitirn al usuario crear varios archivos con el mismo nombre pero con diferentes letras en maysculas y minsculas. La mayora de las computadoras organizan los archivos en jerarquas llamadas carpetas, directorios o catlogos. (El concepto es el mismo independientemente de la terminologa usada.) Cada carpeta puede contener un nmero arbitrario de archivos, y tambin puede contener otras carpetas. Las otras carpetas pueden contener todava ms archivos y carpetas, y as sucesivamente, construyndose un estructura en rbol en la que una carpeta raz (el nombre vara de una computadora a otra) puede contener cualquier nmero de niveles de otras carpetas y archivos. A las carpetas se les puede dar nombre exactamente igual que a los archivos (excepto para la carpeta raz, que a menudo no tiene nombre). El uso de carpetas hace ms fcil organizar los archivos de una manera lgica. Cuando una computadora permite el uso de carpetas, cada archivo y carpeta no slo tiene un nombre propio, sino tambin una ruta, que identifica la carpeta o carpetas en las que reside un archivo o carpeta. En la ruta, se emplea algn tipo de carcter especial -como una barra- para separar los nombres de los archivos y carpetas. Por ejemplo, en la ilustracin mostrada en este artculo, la ruta /Payroll/Salaries/Managers identifica unvocamente un archivo llamado Managers que est en una carpeta llamada Salaries que a su vez est contenida en una carpeta llamada Payroll. En este ejemplo, los nombres de las carpetas y archivos estn separados por barras; la superior o carpeta raz no tiene nombre, y por ello la ruta comienza con una barra (si la carpeta raz tuviera nombre, precedera a esta primera barra). Muchos (pero no todos) sistemas informticos usan extensiones en los nombres de archivo para ayudar a identificar qu contienen. En computadoras Windows, las extensiones consisten en un punto al final del nombre del archivo, seguido de unas pocas letras para identificar el tipo de archivo. Una extensin .txt identifica un

OBDULIA ESTRADA ESPARZA

archivo de texto; la extensin .doc identifica cualquier tipo de documento o documentacin, comnmente en el formato de archivo de Microsoft Office Word; etc. Incluso cuando se utilizan extensiones en un sistema informtico, el grado con el que un sistema informtico los reconoce y trata puede variar; en algunos sistemas son obligatorios, mientras que en otros sistemas se ignoran completamente si estn presentes.

PROTECCIN DE ARCHIVOS

Muchos sistemas informticos modernos proporcionan mtodos para proteger los archivos frente a daos accidentales o intencionados. Las computadoras que permiten varios usuarios implementan permisos sobre archivos para controlar quin puede o no modificar, borrar o crear archivos y carpetas. A un usuario dado se le puede conceder solamente permiso para modificar un archivo o carpeta, pero no para borrarlo; o a un usuario se le puede conceder permiso para crear archivos o carpetas, pero no para borrarlos. Los permisos tambin se pueden usar para permitir que solamente ciertos usuarios vean el contenido de un archivo o carpeta. Los permisos protegen de la manipulacin no autorizada o destruccin de la informacin de los archivos, y mantienen la informacin privada confidencial impidiendo que los usuarios no autorizados vean ciertos archivos. Otro mecanismo de proteccin implementado en muchas computadoras es una marca de slo lectura. Cuando esta marca est activada en un archivo (lo que puede ser realizado por un programa de computadora o por un usuario humano), el archivo puede ser examinado, pero no puede ser modificado. Esta marca es til para informacin crtica que no debe ser modificada o borrada, como archivos especiales que son usados solamente por partes internas del sistema informtico. Algunos sistemas incluyen tambin una marca oculta para hacer que ciertos archivos sean invisibles; esta marca la usa el sistema informtico para ocultar archivos de sistema esenciales que los usuarios nunca deben modificar.

PROTECCIN LEGAL DE DATOS DE ARCHIVOS

La proteccin de datos personales y velar por la privacidad de la informacin es un tema de suma importancia a nivel de empresas y de pases. El mal uso de informacin personal puede constituir un delito.

OBDULIA ESTRADA ESPARZA

Algunos pases han creado organismos que se encargan del tema y de legislar respecto del acceso, uso y confidencialidad de los datos.

ALMACENAMIENTO DE ARCHIVOS

En trminos fsicos, la mayora de los archivos informticos se almacenan en discos duros -discos magnticos que giran dentro de una computadora que pueden registrar informacin indefinidamente-. Los discos duros permiten acceso casi instantneo a los archivos informticos. En computadoras muy grandes, algunos archivos informticos pueden almacenarse en cinta magntica. Los archivos tambin se pueden almacenar en otros medios en algunos casos, como discos compactos grabables, unidades Zip, memorias transportables USB, etc.

RESPALDO DE ARCHIVOS

Cuando los archivos informticos contienen informacin que es extremadamente importante, se usa un proceso de respaldo (back-up) para protegerse contra desastres que podran destruir los archivos. Hacer copias de respaldo de archivos significa simplemente hacer copias de los archivos en una ubicacin separada de modo que se puedan restaurar si le pasara algo a la computadora, o si fueran borrados accidentalmente. Hay muchas maneras de hacer copias de respaldo de archivos. La mayora de los sistemas informticos proporcionan utilidades para ayudar en el proceso de respaldo, que puede llegar a consumir mucho tiempo si hay muchos archivos a salvaguardar. Copiar los archivos a otro disco duro en la misma computadora protege contra el fallo de un disco, pero si es necesario protegerse contra el fallo o destruccin de la computadora entera, entonces de deben hacer copias de los archivos en otro medio que puede sacarse de la computadora y almacenarse en una ubicacin distante y segura.

OBDULIA ESTRADA ESPARZA

SISTEMAS DE ARCHIVOS Y GESTORES DE ARCHIVOS

Artculo principal: Sistema de archivos La manera en que una computadora organiza, da nombre, almacena y manipula los archivos se denomina globalmente como su sistema de archivos. Todas las computadoras tienen al menos un sistema de archivos; algunas computadoras permiten usar varios sistemas de archivos diferentes. Por ejemplo, en las computadoras Windows ms recientes, se reconocen los antiguos sistemas de archivos FAT y FAT32 de las versiones antiguas de Windows, adems del sistema de archivos NTFS que es el sistema de archivos normal en las versiones recientes de Windows. NTFS no es ms moderno que FAT32; ha existido desde que Windows NT se public en 1993. Cada sistema de archivos tiene sus propias ventajas y desventajas. La FAT estndar solamente permite nombres de archivo de ocho bytes (o ocho caracteres de solo 1 byte) (ms una extensin de tres bytes/caracteres) sin espacios, por ejemplo, mientras que NTFS permite nombres mucho ms largos que pueden contener espacios, y tener varias letras unicode. Puede llamar a un archivo Registros de nminas en NTFS, mientras que en FAT estara limitado a algo como nominas.dat (salvo que estuviera usando VFAT, una extensin de FAT que permite nombres de archivo largos). Los programas gestores o administradores de archivos son utilidades que le permiten manipular archivos directamente. Le permiten mover, crear, borrar y renombrar archivos y carpetas, aunque no le permiten realmente leer el contenido de un archivo o almacenar informacin en l. Cada sistema informtico proporciona al menos un programa gestor de archivos para su sistema de archivos nativo. En Windows, el gestor de archivos usado ms comnmente es Windows Explorer.

También podría gustarte