Anda di halaman 1dari 98

UNIDAD I

"NUEVAS TECNOLOGAS DE INFORMACIN"


Los sistemas modernos de computacin consisten en una gran conjuncin de elementos de circuitos (hardware) y de programacin (software) que han sido diseados para proporcionar a la computacin un ambiente productivo y hasta cierta medida agradable.

El trmino Sistema de Cmputo se utiliza para sealar lo que el usuario emplea, en lugar del trmino Computadora. En los primeros aos de la computacin, los usuarios del sistema deban interactuar ms estrechamente con el hardware real que lo que es hoy necesario, muchas funciones que deban realizar los usuarios mismos se manejan ahora por software mediante Sistemas Operativos. El sistema operativo crea un ambiente en el cual los usuarios pueden preparar programas y ejecutarlos sin tener que entrar en los detalles del hardware del sistema.

Para satisfacer el crecimiento de la demanda de medios de computacin, es que se ha desarrollado la multiprogramacin, en la cual varios usuarios emplean el sistema de forma simultnea, como Windows por ejemplo.

Un trmino fundamental de esta materia es el Programa, el cual es simplemente una secuencia de instrucciones que orienta a la Unidad de Control de Procesamiento (CPU) en el desarrollo de los clculos, el cual debe expresarse de forma que sea entendido por el CPU. Un CPU slo puede entender instrucciones que estn expresadas en trminos de su lenguaje mquina, pero esto se explicar ms adelante.

"CLASIFICACION 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 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. 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 personales combinados con procesamiento serial. 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. Figura. Trabajos ms comunes que realiza el Sistema Operativo por lotes. Sistemas Operativos de tiempo real. Los Sistemas Operativos de tiempo real son aquelos 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: 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 sisterma computacional, en breve tiempo o dentro de ciertos plazos. Se utlizan 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 utliza 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 utlizacin eficiente del recurso.

Sistemas Operativos de multiprogramacin (o Sistemas Operativos de multitarea). 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, MAC-OS, 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 inndividuales. Requieren validacin de usuario para seguridad y proteccin. Proporcionan contabilidad del uso de los recursos por parte de los usuarios.

Multitarea sin soprte 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. Sistemas Operativos de tiempo compartido.

Permiten la simulacin de que el sistema y sus recursos son todos para cada usuarios. 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 ejcutan 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. 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. Caracteristicas 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 (fisico 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. Figura. Se muestra un Sistema Operativo en red. 5. 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, sinulando 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. Ejemplos de estos tipos de Sistemas Operativos estn: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM.

FUENTE: http://www.monografias.com/trabajos5/sisop/sisop.shtml#clasi

"PAQUETERA DE SOFTWARE"

Software -tambin conocido como programtica y aplicacin informtica- es la parte lgica del ordenador, esto es, el conjunto de instrucciones (programas) que puede ejecutar el hardware para la realizacin de las tareas de computacin a las que se destina.Asi podemos decir que el software es el conjunto de instrucciones "programas" que permiten la utilizacion de un periferico (hardware) ... Probablemente la definicin ms formal de software es la atribuida a la IEEE en su estndar 729: la suma total de los programas de cmputo, procedimientos, reglas [,] documentacin y datos asociados que forman parte de las operaciones de un sistema de cmputo (Ver: IEEE Std 729-1993, IEEE Software Engineering Standard 729-1993: Glossary of Software Engineering Terminology. IEEE Computer Society Press, 1993). Bajo esta definicin el concepto de software va ms all de los programas de cmputo en sus distintas versiones: cdigo fuente,binario o cdigo ejecutable. El software se puede presentar en dos formas: el cdigo fuente escrito por personas, el cdigo objeto usualmente en la forma de archivos binarios, ejecutables directamente en una arquitectura de ordenador determinada.

Los programas que traducen el cdigo fuente de los programas en ejecutables se llaman compiladores. Programtica se divide en dos categoras principales: los sistemas operativos las aplicaciones de usuario.

Programacin o Lenguaje de programacin o Editores de texto

Compilado Algoritmo

res
o

s Aplicaciones M LCAD o Software de oficina Pro cesador de texto Ho ja de clculo Ba se de datos o Software colaborativo C digo abierto Blo g Wi kiWiki Sla shcode Nu peCode Ev erything Engine o Criptograf a Pre tty Good Privacy GN U Privacy Guard
o

Software educacional Sistema operativo


o

FUENTE: http://es.wikipedia.org/wiki/Programa_inform%C3%A1tico<

DEFINICION DE LENGUAJE DE PROGRAMACION

Un Lenguaje de Programacin es aqul que es utilizado para escribir programas de computadoras que puedan ser entendidos por ellas. Estos lenguajes se clasifican en tres grandes categoras : Lenguaje Mquina Lenguaje de Bajo nivel (ensamblador) Lenguaje de Alto nivel.

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.

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

Algoritmos Cotidianos
Se refiere a todos aqullos algoritmos que nos ayudan a resolver problemas diarios, y que los hacemos casi sin darnos cuenta de que estamos siguiendo una metodologa para resolverlos.

Algunos ejemplos son : Disear un algoritmo para cambiar una llanta a un coche.
1. Inicio. 2. Traer gato. 3. Levantar el coche con el gato. 4. Aflojar tornillos de las llantas. 5. Sacar los tornillos de las llantas. 6. Quitar la llanta. 7. Poner la llanta de repuesto. 8. Poner los tornillos. 9. Apretar los tornillos. 10. Bajar el gato. 11. Fin

Un cliente ejecuta un pedido a una fbrica. La fbrica examina en su banco de datos la ficha del cliente, si el cliente es solvente entonces la empresa acepta el pedido, en caso contrario rechazar el pedido.

Pasos del algoritmo : Inicio Leer el pedido Examinar ficha del cliente Si el cliente es solvente aceptar pedido, en caso contrario rechazar pedido

Fin

Determinar el mayor de tres nmeros enteros. Pasos del algoritmo : 1.- Comparar el primero y el segundo entero, deduciendo cul es el 2.- Comparar el mayor anterior con el tercero y deducir cul es el Este ser el resultado. mayor. mayor.

Los pasos anteriores se pueden descomponer en otros pasos ms simples en los que se denomina refinamiento del algoritmo.

1.- Obtener el primer nmero (entrada), denominado NUM1 2.- Obtener el segundo nmero (entrada), denominado NUM2 3.- Compara NUM1 con NUM2 y seleccionar el mayor ; si los dos son iguales, seleccionar NUM1. Llamar a este nmero MAYOR. 4.- Obtener el tercer nmero (entrada), y se denomina NUM3. 5.- Compara MAYOR con NUM3 y seleccionar el mayor ; si los dos enteros son iguales, seleccionar el MAYOR. Denominar a este nmero MAYOR. 6.- Presentar el valor MAYOR (salida). 7.- Fin enteros

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 : 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.

Tiene las siguientes caractersticas : Evita la ambigedad (algo confuso que se puede interpretar de varias maneras). Son precisos y bien definidos. Utilizan trminos familiares al sentido comn. Elimina instrucciones innecesarias.

Lenguaje de Programacin de Algoritmos Es aqul que se utiliza para introducir en la computadora un algoritmo especfico. Se les conoce tambin como Lenguaje de Programacin.

Lenguaje de Programacin : Es un conjunto de palabras, smbolos y reglas sintcticas mediante los cuales puede indicarse a la computadora los pasos a seguir para resolver un problema. Los lenguajes de programacin pueden clasificarse por diversos criterios, siendo el ms comn su nivel de semejanza con el lenguaje natural, y su capacidad de manejo de niveles internos de la mquina.

Los principales tipos de lenguajes utilizados son tres : Lenguaje Mquina. Lenguaje de bajo Nivel (ensamblador). Lenguajes de Alto Nivel.

Lenguaje Mquina

Son aqullos que estn escritos en lenguajes directamente inteligibles por la mquina (computadora), ya que sus instrucciones son cadenas binarias (cadenas o series de caracteres de dgitos 0 y 1) que especifican una operacin y las posiciones (direccin) de memoria implicadas en la operacin se denominan instrucciones de mquina o cdigo mquina. El cdigo mquina es el conocido cdigo binario. Las instrucciones en lenguaje mquina dependen del hardware de la computadora y, por tanto, diferirn de una computadora a otra.

Ventajas del Lenguaje Mquina Posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traduccin posterior, lo que supone una velocidad de ejecucin superior a cualquier otro lenguaje de programacin.

Desventajas del Lenguaje Mquina Dificultad y lentitud en la codificacin. Poca fiabilidad. Gran dificultad para verificar y poner a punto los programas. Los programas solo son ejecutables en el mismo procesador (CPU).

En la actualidad, las desventajas superan a las ventajas, lo que hace prcticamente no recomendables a los lenguajes mquinas.

Lenguajes de Bajo Nivel


Son ms fciles de utilizar que los lenguajes mquina, pero al igual que ellos, dependen de la mquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotcnicos. Por ejemplo, nemotcnicos tpicos de operaciones aritmticas son : en ingls : ADD, SUB, DIV, etc. ; en espaol : SUM, RES, DIV, etc.

Una instruccin tpica de suma sera : ADD M, N, P

Esta instruccin significa "sumar el contenido en la posicin de memoria M al nmero almacenado en la posicin de memoria N y situar el resultado en la posicin de memoria P" . Evidentemente es ms sencillo recordar la instruccin anterior con un nemotcnico que su equivalente en cdigo mquina. 0110 1001 1010 1011 Un programa escrito en lenguaje ensamblador, requiere de una fase de traduccin al lenguaje mquina para poder ser ejecutado directamente por la computadora. El programa original escrito en lenguaje ensamblador se denomina programa fuente y el programa traducido en lenguaje mquina se conoce como programa objeto, el cual ya es directamente entendible por la computadora.

Ventajas del lenguaje ensamblador frente al lenguaje mquina Mayor facilidad de codificacin y, en general, su velocidad de clculo.

Desventajas del lenguaje ensamblador Dependencia total de la mquina lo que impide la transportabilidad de los programas (posibilidad de ejecutar un programa en diferentes mquinas. El lenguaje ensamblador del PC es distinto del lenguaje ensamblador del Apple Machintosh.

La formacin de los programadores es ms compleja que la correspondiente a los programadores de alto nivel, ya que exige no solo las tcnicas de

programacin, sino tambin el conocimiento del interior de la mquina.

Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centran bsicamente en aplicaciones de tiempo real, control de procesos y de dispositivos electrnicos.

Lenguajes de Alto Nivel


Estos lenguajes son los ms utilizados por los programadores. Estn diseados para que las personas escriban y entiendan los programas de un modo mucho ms fcil que los lenguajes mquina y ensambladores. Un programa escrito en lenguaje de alto nivel es independiente de la mquina (las instrucciones no dependen del diseo del hardware o de una computadora en particular), por lo que estos programas son portables o transportables. Los programas escritos en lenguaje de alto nivel pueden ser ejecutados con poca o ninguna modificacin en diferentes tipos de computadoras.

Ventajas de los lenguajes de alto nivel El tiempo de formacin de los programadores es relativamente corto comparado con otros lenguajes. La escritura de programas se basa en reglas sintcticas similares a los lenguajes humanos. Nombres de las instrucciones tales como READ, WRITE, PRINT, OPEN, etc. Las modificaciones y puestas a punto de los programas son ms fciles. Reduccin del coste de los programas. Transportabilidad.

Desventajas de los lenguajes de alto nivel

Incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo. No se aprovechan los recursos internos de la mquina que se explotan mucho mejor en lenguajes mquina y ensambladores. Aumento de la ocupacin de memoria. El tiempo de ejecucin de los programas es mucho mayor.

Para una mejor compresin de este tema se definir el concepto de programa, por ser este un trmino muy utilizado en el diseo estructurado de algoritmos.

Es un conjunto de instrucciones escritas en un lenguaje de programacin que indican a la computadora la secuencia de pasos para resolver un problema.

Programa :

Historia y Aplicacin de los Lenguajes Algortmicos


Al igual que los idiomas sirven de vehculo de comunicacin entre los seres humanos, existen lenguajes que realizan la comunicacin entre los seres humanos y las computadoras. Estos lenguajes permiten expresar los programas o el conjunto de instrucciones que el operador humano desea que la computadora ejecute.

Los lenguajes de computadoras toman diferentes formas; los de las primeras computadoras, como la ENIAC y la EDSAC, se componan en el lenguaje real de las mquinas mismas. La dificultad de programar las mquinas de esta manera limitaba drsticamente su utilidad y proporcionaba un fuerte incentivo para que se desarrollaran lenguajes de programacin ms orientados hacia la expresin de soluciones con la notacin de los problemas mismos.

Los primeros lenguajes de programacin se conocieron como Lenguajes Ensambladores, un ejemplo es: TRANSCODE, desarrollado para la computadora FERUT. En los lenguajes ensambladores se define un cdigo especial llamado mnemnico para cada una de las operaciones de la mquina y se introduce una notacin especial para especificar el dato con el cual debe realizarse la operacin.

A mediados de los aos 60s aparecieron los primeros lenguajes de propsito general como FORTRAN, FORTRAN IV, ALGOL, COBOL, BASIC, PL/I, ADA, C,C++, PASCAL, etc. pero el desarrollo de nuevas tecnologas, tanto en arquitectura de computadoras como en lenguajes de programacin, contina a paso acelerado, cada vez con mayor velocidad, el panorama est cambiando de una etapa de sistemas y lenguajes especialmente desarrollados para aplicaciones individuales. Los lenguajes de programacin actuales son los conocidos como Lenguajes visuales, como por ejemplo Visual Fox, Visual Basic, Visual C .

UNIDAD II
" METODOLOGIA PARA LA SOLUCION DE PROBLEMAS POR MEDIO DE COMPUTADORAS "
A fin de resolver un problema utilizando sistemas de cmputo, debe seguirse una serie de pasos que permiten avanzar por etapas bien definidas hacia la solucin.

Estas etapas son las siguientes : Definicin del problema. Anlisis de los datos. Diseo de la solucin. Codificacin. Prueba y depuracin. Documentacin. Mantenimiento.

2.1 Definicin del problema


Est dada en s por el enunciado del problema, el cual debe ser claro y complejo. Es importante que conozcamos exactamente "que se desea obtener al final del proceso" ; mientras esto no se comprenda no puede pasarse a la siguiente etapa.

Anlisis de los datos


Para poder definir con precisin el problema se requiere que las especificaciones de entrada y salida sean descritas con detalle ya que esto es un requisito para lograr una solucin eficaz. Una vez que el problema ha sido definido y comprendido, deben analizarse los siguientes aspectos : Los resultados esperados. Los datos de entrada disponibles. Herramientas a nuestro alcance para manipular los datos y alcanzar un resultado (frmulas, tablas, accesorios diversos).

Una medida aconsejable para facilitar esta etapa consiste en colocarnos en lugar de la computadora deduciendo los elementos que necesitaremos para alcanzar el resultado.

Ejemplo 2.1 Leer el radio de un crculo y calcular e imprimir su superficie y circunferencia.

Anlisis Las entradas de datos en este problema se concentran en el radio del crculo. Dado que el radio puede tomar cualquier valor dentro del rango de los nmeros reales, el tipo de datos radio debe ser real. Las salidas sern dos variables : superficie y circunferencia que tambin sern de tio real.

Entradas : Radio del crculo (variable RADIO).

Salidas : Superficie del crculo (variable AREA).

Circunferencia del crculo (variable CIRCUNFERENCIA). Variables : RADIO, AREA, CIRCUNFERENCIA tipo real.

Diseo de la solucin
Una computadora no tiene capacidad para solucionar problemas ms que cuando se le proporcionan los sucesivos pasos a realizar, esto se refiere a la obtencin de un algoritmo que resuelva adecuadamente el problema. En caso de obtenerse varios algoritmos, seleccionar uno de ellos utilizando criterios ya conocidos. Esta etapa incluye la descripcin del algoritmo resultante en un lenguaje natural, de diagrama de flujo o natural de programacin. Como puede verse, solo se establece la metodologa para alcanzar la solucin en forma conceptual, es decir ; sin alcanzar la implementacin en el sistema de cmputo. De acuerdo al ejemplo 2.1 tenemos que la informacin proporcionada constituye su entrada y la informacin producida por el algoritmo constituye su salida. Los problemas complejos se pueden resolver ms eficazmente por la computadora cuando se dividen en subproblemas que sean ms fcil de solucionar. El problema de clculo de la longitud y superficie de un crculo se puede descomponer en subproblemas ms simples : Leer datos de entrada. Calcular superficie y longitud. Escribir resultados (datos de salida).

Codificacin
Se refiere a la obtencin de un programa definitivo que pueda ser comprensible para la mquina. Incluye una etapa que se reconoce como compilacin. Si la codificacin original se realiz en papel, previo a la compilacin deber existir un paso conocido como transcripcin.

Programa Fuente Esta escrito en un lenguaje de programacin. (pascal, C++,Visual Fox, Visual Basic, etc). Es entendible por el programador.

Programa Ejecutable Est en lenguaje mquina. Entendible por la mquina.

Prueba y depuracin
Una vez que se ha obtenido el programa ejecutable, este es sometido a prueba a fin de determinar si resuelve o no el problema planteado en forma satisfactoria. Las pruebas que se le aplican son de diversa ndole y generalmente dependen del tipo de problema que se est resolviendo. Comnmente se inicia la prueba de un programa introduciendo datos vlidos, invlidos e incongruentes y observando como reacciona en cada ocasin. El proceso de depuracin consiste en localizar los errores y corregirlos en caso de que estos existan. Si no existen errores, puede entenderse la depuracin como una etapa de refinamiento en la que se ajustan detalles para optimizar el desempeo del programa.

Documentacin
Debido a que el programa resultante en esta etapa se encuentra totalmente depurado (sin errores), se procede a la utilizacin para resolver problemas del tipo que di origen a su diseo.

En vista de que esta utilizacin no podr ser supervizada en todas las ocasiones por el programador, debe crearse un manual o gua de operacin que indique los pasos a seguir para utilizar el programa.

Mantenimiento
Se refiere a las actualizaciones que deban aplicarse al programa cuando las circunstancias as lo requieran. Este programa deber ser susceptible de ser modificado para adecuarlo a nuevas condiciones de operacin. Cualquier actualizacin o cambio en el programa deber reflejarse en su documentacin.

Tipos de Datos
Un dato se define como la expresin general que describe los objetos con los cuales opera una computadora. Los datos de entrada se transforman por el programa, despus de las etapas intermedias, en datos de salida.

Los datos se clasifican en diversas categoras, segn el tipo de mquina o del lenguaje en uso. Generalmente podemos encontrar las siguientes categoras : Numricos Lgicos Cadenas

Datos Numricos
Son aqullos que representan una cantidad o valor determinado. Su representacin se lleva a cabo en los formatos ya conocidos (enteros, punto y fracciones decimales si estas existen). Estos pueden representarse en dos formas distintas :

Tipo Numrico Entero (integer). Tipo Numrico Real (real).

Enteros
Es un conjunto finito de los nmeros enteros. Los enteros son nmeros completos, no tienen componentes fraccionarios o decimales y pueden ser negativos y positivos. Algunos ejemplos son : 37 -10 9 15.25 50

Reales
Consiste en un subconjunto de los nmeros reales. Estos nmeros siempre tienen un punto decimal y pueden ser positivos o negativos. Un nmero real consiste de un nmero entero y una parte decimal. Algunos ejemplos son : 0.52 664.32 6.579 8.0 -9.3 -47.23

Cadenas
Son los datos que representan informacin textual (palabras, frases, smbolos, etc). No representan valor alguno para efectos numricos. Pueden distinguirse porque son delimitados por apstrofes o comillas.

Se clasifica en dos categoras : Datos tipo carcter (char) Datos tipo Cadena (string)

Datos Tipo Carcter


Es un conjunto finito y ordenado de caracteres que la computadora reconoce. Un dato de este tipo contiene solo un carcter. Reconoce los siguientes caracteres : Caracteres Alfabticos (A,B,C,Z,a,b,cz) Caracteres Numricos (0,1,2,9) Caracteres Especiales (+, -, *, /, ^, . , ;, <, >, $, .)

Datos Tipo Cadena (string)


Es un sucesin de caracteres que se encuentran delimitados por una comilla (apstrofe) o dobles comillas, segn el tipo de lenguaje de programacin. La longitud de una cadena de caracteres es el nmero de ellos comprendidos entre los separadores o delimitadores. Ejemplos : Hola Mortimer 12 de octubre de 1496 Enunciado cualquiera

Los smbolos disponibles para la formulacin de caracteres y de cadenas son aqullos que se encuentran en el codigo ASCII. ASCII (American Standard Code for Information Interchange).

Nota:

Lgicos
Tambin se le denomina Booleano, es aqul dato que solo puede tomar uno de dos valores : Falso y verdadero. Se utiliza para representar las alternativas (si/no) a determinadas condiciones. Por ejemplo, cuando se pide si un valor entero sea primo, la respuesta ser verdadera o falsa, segn sea. Las categoras y tipos que se mencionaron anteriormente se conocen como Tipos Simples, puesto que no poseen una estructura compleja. En forma adicional, cada lenguaje puede proporcionar la utilizacin de Tipos Compuestos, siendo estos, datos que tienen una estructura predeterminada.

Tipos Compuestos
Entre los principales tipos compuestos se encuentran los siguientes:

a.- SUBRANGO : Son aqullos en los que se especifca con precisin el intervalo de valores vlidos para un dato. Ejemplos: 0..100 'A'..'Z' (son enumerativos de tipo entero) (son enumerativos de tipo cadena)

Los Reales no son vlidos para crear enumerativos, ya que su intervalo no est definido.

b.- ENUMERATIVOS : los valores para un dato.

Son aqullos en los que se definen individualmente

Ejemplos: (0,25,40,52) Siempre deben ponerse netre parntesis.

c.- DEFINIDOS POR EL USUARIO : Son aqullos que el programador crea para satisfacer las necesidades del programa en diseo.

Constantes y variables
Una Constante es aqulla que no cambia de valor durante la ejecucin de un programa (o comprobacin de un algoritmo en este caso). Se representa en la forma descrita para cada categora. Las Variables son aqullas que pueden modificar su valor durante la ejecucin de un programa (idem). Su representacin se da a traves de letras y smbolos generalmente numricos a los que se les asigna un valor. Ejemplos:

Constantes
36

Variables
A Nom Edad Ciudad Estatura

Numricos

450.35 0.58 'A'

Cadena

'Juan' 'La Paz' Falso Verdadero

Lgicos

Operadores y Operandos Operadores


Un operador es el smbolo que determina el tipo de operacin o relacin que habr de establecerse entre los operandos para alcanzar un resultado.

Los operadores se clasifican en tres grupos: Aritmticos. Relacionales. Lgicos.

1.- Operadores Aritmticos


Son aqullos que permiten la realizacin de clculos aritmticos. Utilizan operandos numricos y proporcionan resultados numricos.

Operador + * / Div Mod ^ Suma Resta

Operacin

Multiplicacin Divisin real Divisin entera Residuo Exponenciacin

Ejemplos: 7+3 = 10 10 Div 4 = 2 7-3 = 4 20 Mod 3 = 2 7*3 = 21 5 Mod 7 = 5 10/4= 2.5 4 ^ 2 = 16

En la expresin 7+3, los valores 7 y 3 se denominan operandos. El valor de la expresin 7+3 se conoce como resultado de la expresin.

Todos los operadores aritmticos no existen en todos los lenguajes de programacin, por ejemplo, en Fortran no existen Div y mod.

Operadores Div y Mod


El smbolo / se utiliza para la divisin real, y el operador Div representa la divisin entera. Expresin 10.5/3.0 1/4 2.0/4.0 30/30 6/8 Resultado 3.5 0.25 0.5 1.0 0.75 Expresin 10 Div 3 18 Div 2 30 Div 30 10 Mod 3 10 Mod 2 Resultado 3 9 1 1 0

Operadores Relacionales
Permiten realizar comparaciones de valores de tipo numrico o carcter. Estos operadores sirven para expresar las condiciones en los algoritmos. Proporcionan resultados lgicos.

Operador < > = <= >= <>

Significado Menor que Mayor que Igual que Menor o igual que Mayor o igual que Diferente de

El formato general para las comparaciones es: expresin1 operador de relacin expresin2

El resultado de la operacin ser Verdadero o Falso. As por ejemplo, si A=4 y B=3, entonces: A>B Es Verdadero (A-2) < (B-4) Es Falso

Los operadores de relacin se pueden aplicar a cualquiera de los cuatro tipos de datos estndar: enteros, real, lgico y carcter. A < K = Verdadero A > a = Falso MARIA < JUAN = Falso (se considera la primera letra) JAIME > JORGE = Falso

Nota: La comparacin de cadenas se rige por el cdigo ASCII.

Prioridad De Operadores Aritmticos y Relacionales


Determina el orden en que habrn de realizarse las operaciones en una expresin determinada. Para obtener la prioridad se deben conocer las siguientes reglas:

Las operaciones que estn encerradas entre parntesis se evalan primero. Si existen diferentes parntesis anidados (interiores unos a otros), las expresiones ms internas se evalan primero.

Las operaciones aritmticas dentro de una expresin suelen seguir el siguiente orden de prioridad.

Operador ^ *, /, Div

Prioridad Alta

+, -, Mod Relacionales Baja

En caso de coincidir varios operadores de igual prioridad en una expresin o subexpresin encerrada entre parntesis, el orden de prioridad en este caso es de izquierda a derecha.

Cuando se desea realizar una operacin con baja prioridad por adelantado, debe agruparse a los operandos involucrados. 4 + 12 /2 = 10 (sin agrupar) (4 + 12) /2 = 8 (con agrupador)

Ejemplo: Obtener los resultados de las expresiones: -4 * 7 + 2 ^ 3 / 4 - 5

Solucin: -4 *7 + 2 ^

Resulta: -4 * 7+ 8/4 -5 -28 + 8/4 -5 -28 + 2 - 5 -26 - 5

-31

Los parntesis tienen prioridad sobre el resto de las operaciones. A * (B+3) La constante 3 se suma primero al valor de B, despus este resultado se multiplica por el valor de A.

(A*B) +3 A y B

Se multiplican primero y a continuacin se suma 3.

A + (B/C) + D

Esta expresin equivale a A+ B/C + D

Operadores Lgicos
Son aqullos que permiten la combinacin de condiciones para formar una sola expresin lgica. Utilizan operandos lgicos y proporcionan resultados lgicos tambin.

Operador not and or xor

Relacin Negacin (No) Conjuncin (Y) Disyuncin (O) Disyuncin Exclusiva (O/SOLO)

Se obtiene Verdadero si: NOT AND OR XOR El operando es falso Ambos operandos son verdaderos Al menos un operando es verdadero Solo uno de los operandos son verdadero

X F V F V

Y F F V V

NOT(X) V F V F

NOT(Y) V V F F

X AND Y F F F V

X OR Y X XOR Y F V V V F V V F

Prioridad De Los Operadores Lgicos


Los operadores aritmticos seguan un orden especfico o de prioridad cuando existan ms de un operador en las expresiones. De modo similar los operadores lgicos y relacionales tienen un orden de prioridad. Ejemplos:

Not 4 > 6 a 4. Not (4 > 14) (1.0<x) And (x<z +7.0)

Produce un error, ya que el operador not se aplica Produce un valor verdadero. Si x vale 7 y z vale 4, se obtiene un valor falso.

Asignacin
La operacin de asignacin es el modo de darle valores a una variable. La operacin de asignacin se representa por el smbolo u operador . La operacin de asignacin se conoce como instruccin o sentencia de asignacin cuando se refiere a un lenguaje de programacin. A fin de manejar datos por medio de variables, estos pueden recibir valores determinados. El tipo de los valores que pueden recibir dependen de la declaracin previa de tales variables. En una asignacin se resuelve, primeramente la expresin (al lado derecho del smbolo de asignacin) y se asigna el resultado en la variable. El formato general de asignacin es: Nom_variable Expresin

Donde Expresin puede ser una variable o constante, operacin, funcin. Ejemplo: A 9

Significa que la variable A se le ha asignado el valor 9. La accin de asignar es destructiva, ya que el valor que tuviera la variable antes de la asignacin se pierde y se reemlaza por el nuevo valor. As en la secuencia de operaciones: A A A 30 189 9

Cuando se ejecutan, el ltimo valor que toma A ser 9, ya que los valores anteriores a este han desaparecido. Las acciones de asignacin se clasifican segn sea el tipo de expresiones : Aritmticas, Lgicas y de Caracteres.

Asignacin Aritmtica
Las expresiones en las operaciones de asignacin son aritmticas: Suma 5+10+2 Suma, es decir, 17 Se evala la expresin 5+10+2 y se asigna a la variable ser el valor que toma Suma.

Asignacin Lgica
La expresin que se evala en la operacin de asignacin es lgica. Supngase que M, N, y P son variables de tipo lgico. M N P 8<5 M o (7 <= 12) 7>6

Tras ejecutar las operaciones anteriores, las variables M,N,P toman los valores, falso, verdadero, verdadero respectivamente.

Asignacin de caracteres
La operacimn que se evala es de tipo caracter. x '3 de Mayo de 1999'

La accin de asignacin anterior asigna la cadena de caracteres '3 de Mayo de 1999' a la variable de tipo carcter x.

Entrada y Salida de Informacin


Los clculos que realizan las computadoras requieren para ser tiles la Entrada de los datos necesarios para ejecutar las operaciones que posteriormente se convertirn en resultados, es decir, Salida. Las operaciones de entrada permiten leer determinados valores y asignarlos a determinadas variables. Esta entrada se conoce como operacin de Lectura (read). Los datos de entrada se introducen al procesador mediante dispositivos de entrada (teclado, unidades de disco, etc). La salida puede aparecer en un dispositivo de salida (pantalla, impresora, etc). La operacin de salida se denomina escritura (write). En la escritura de algoritmos las acciones de lectura y escritura se representan por los formatos siguientes leer ( Nom_variable ) escribir (lista de variables de salida)

Ejemplo: Entrada

Obtener rea de un tringulo.

Frmula (A= B*h/2) Datos (Base, altura)

Proceso

Multiplicar Base y altura. Dividir resultado de la multiplicacin anterior entre dos. Mostrar resultado de divisin anterior.

Salida

Area del tringulo.

Algoritmo
Inicio leer(B) leer(h) x A B*h x/2

escribir(A) Fin

Expresiones
Las expresiones son combinaciones de constantes, variables, smbolos de operadores, parntesis y nombres de funciones especiales. Las mismas ideas son utilizadas en notacin matemtica tradicional ; por ejemplo : a + b ( b+2) Aqu los parntesis indican el orden de clculo.

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 objetos que manipulan, las expresiones se clasifican en : Aritmticas Relacionales Lgicas Carcter

El resultado de la expresin numrica es de tipo numrico ; el resultado de una expresin relacional y de una expresin lgica es de tipo lgico ; el resultado de una expresin carcter es de tipo carcter.

1.- Expresiones Aritmticas


Las expresiones aritmticas son anlogas a las frmulas matemticas. Las variables y constantes son numricas (real o entera) y las operaciones son las aritmticas.

+ -

suma resta

* / **, ^ div mod

multiplicacin divisin exponenciacin divisin entera mdulo (resto)

Los clculos que implican tipos de datos reales y enteros suelen dar normalmente resultados del mismo tipo si los operandos lo son tambin. Por ejemplo, el producto de operandos reales produce un real.

Ejemplo : 4x6 39 18 div 6 se representa por 4 * 6 se representa por 3 ^ 9 se representa por 18/6

2.- Expresiones Lgicas (booleanas)


Es una expresin que solo pueden tomar los valores de : verdadero y falso. Las expresiones lgicas se forman combinando constantes lgicas, variables lgicas y otras expresiones y otras expresiones lgicas utilizando los operadores lgicos not, and y or, y los operadores relacionales (de relacin o comparacin) =, >, <, <=, >=, <>.

UNIDAD IV "TECNICAS DE DISEO"


Con el objeto de facilitar el diseo de algoritmos y la organizacin de los diversos elementos de los que se componen se utilizan algunas tcnicas que muestran una metodologa a seguir para resolver los problemas. Estas tcnicas hacen que los programas sean ms fciles de escribir, verificar, leer y mantener. Algunas de las tcnicas ms conocidas son : Top Down (diseo descendente) Botton Up Warnier Orr

4.1 Top Down


Es una tcnica para disear que consiste en tomar el problema en forma inicial como una cuestin global y descomponerlo sucesivamente en problemas ms pequeos y por lo tanto, de solucin ms sencilla.

La descomposicin del problema original (y de las etapas subsecuentes), puede detenerse cuando los problemas resultantes alcanzan un nivel de detalle que el programador o analista pueden implementar fcilmente.

El problema se descompone en etapas o estructuras jerrquicas, de modo que se puede considerar cada estructura como dos puntos de vista : lo que hace?, y cmo lo hace ?. Si se considera un nivel n de refinamiento, las estructuras se consideran de la siguiente forma :

nivel n :

Vista desde el exterior.

"lo que hace ?"

Nivel n+1 :

Vista desde el interior.

"cmo lo hace ?"

Ejemplo de un diseo descendente (top-down ) de un control de almacn :

Botton Up

Esta tcnica consiste en partir de los detalles ms precisos del algoritmo completando suscesivamente mdulos de mayor complejidad, se recomienda cuando ya se cuenta con experiencia y ya se sabe lo que se va a hacer.

Conforme se va alcanzando el desarrollo de mdulos ms grandes se plantea como objetivo final la resolucin global del problema.

Este mtodo es el inverso del anterior y es recomendable cuando se tiene un modelo a seguir o se cuenta con amplia experiencia en la resolucin de problemas semejantes.

La tcnica de Botton Up es frecuentemente utilizada para la realizacin de pruebas a sistemas ya concluidos.

Warnier Orr
Es una tcnica que utiliza una representacin semejante a la de cuadros sinpticos para mostrar el funcionamiento y organizacin de los elementos que conforman el algoritmo.

Bsicamente, utiliza una notacin de llaves para organizar los mdulos y se auxilia en la siguiente simbologa para indicar operaciones de control.

Smbolo +

Significado OR (uno, otro o varios) XOR (uno u otro, solo uno)

(x,y)

puede hacerse tantas veces desde x hasta y

Nota :

Los diagramas Warnier Orr se leen de izquierda a derecha y de arriba hacia abajo.

Ejemplo de un diagrama de Warnier Orr, de un control de almacn

(0,n) = De cero veces a n veces (1,n) = De una vez a n veces

UNIDAD V "TENICAS PARA LA FORMULACION DE ALGORITMOS"


Las tcnicas analizadas en la unidad anterior permiten un diseo global del algoritmo, pero ocasionalmente pueden desatender detalles especficos de este.

Las tres tcnicas de formulacin de algoritmos ms populares son : Diagrama de flujo Pseudocdigo Diagramas estructurados

5.1 Diagramas de Flujo


Se basan en la utilizacin de diversos smbolos para representar operaciones especficas. Se les llama diagramas de flujo porque los smbolos utilizados se conectan por medio de flechas para indicar la secuencia de operacin. La simbologa utilizada para la elaboracin de diagramas de flujo es variable y debe ajustarse a un patrn definido previamente.

SIMBOLOGIA UTILIZADA EN LOS DIAGRAMAS DE FLUJO


Smbolo Funcin

Ejemplo: Calcular el salario neto de un trabajador en funcin del nmero de horas trabajadas, precio de la hora de trabajo y considerando unos descuentos fijos al salario bruto en concepto de impuestos (20 por 100).

Ejemplo: Realizar un diagrama de flujo que permita mostrar en pantalla un mensaje de mayora o minora de edad segn sea el caso para un nombre especfico.

Pseudocdigo
Es un lenguaje de especificacin de algoritmos. El uso de tal lenguaje hace el paso de codificacin final (esto es, la traduccin a un lenguaje de programacin) relativamente fcil.

El pseudocdigo naci como un lenguaje similar al ingls y era un medio representar bsicamente las estructuras de control de programacin estructurada. Se considera un primer borrador, dado que el pseudocdigo tiene que traducirse posteriormente a un lenguaje de programacin. Cabe sealar que el pseudocdigo no puede ser ejecutado por una computadora.

La ventaja del pseudocdigo es que en su uso en la planificacin de un programa, 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 tambin fcil modificar el pseudocdigo si se descubren errores o anomalas en la lgica del programa, adems de todo esto es fcil su traduccin a lenguajes como pascal, COBOL, C, FORTRAN o BASIC.

El pseudocdigo utiliza para representar las acciones sucesivas palabras reservadas en ingls (similares a sus homnimos en los lenguajes de programacin), tales como star,begin, end, stop, if-then-else, while, repeatuntil.etc

Secuencia
Inicio accin1 accin2

: accin n Fin

Decisin
Simple si condicin entonces accin1 accin2 : accin n Doble si condicin then accin1 accin2 : en caso contrario accin1 acci2

Iteraccin

Fija para var. Entera inicial hasta final accin1 accin2 : accin n hacer

Condicional al inicio mientras condicin accin1 accin2 : accin n hacer

Condicional al final Repetir accin1 accin2 : accin n Hasta que condicin

Seleccin
casos selector de valor1 : accin1 accin2

valor2 : accin1 accin2

valor n : accin1 accin2

Ejercicio : Se requiere preguntar dos valores, y a continuacin ofrecer un men con las operaciones bsicas (+, -, *, /). Despus de presentar el resultado se ofrecer la posibilidad de una nueva operacin.

Declaracin de variables : Real : X, Y, RESPUESTA Entero : OPCION Carcter : OP

Inicio

Repetir escribir(Primer valor : ) leer(X) escribir(Segundo valor : ) leer(Y) escribir(1) Suma ) escribir(2) Resta ) escribir(3) Multiplicacin ) escribir(4) Divisin ) escribir(Qu operacin deseas realizar ? : ) leer(OPCION) casos OPCION de 1 : RESULTADO 2 : RESULTADO 3 : RESULTADO 4 : si Y=0 entonces escribir( Error ) RESULTADO en caso contrario RESULTADO X/Y 0 X+Y X-Y X*Y

escribir (Resultado : ,RESULTADO) escribir(Deseas otro clculo : [S/N] )

leer(OP) Hasta que RES = N Fin

Ejercicio : Preguntar un nombre y repetirse en pantalla tantas veces como se desee. (preguntar cantidad de repeticiones), indicando el nmero de repeticin.

Declaracin de variables Cadena : nom entero : x, n

Inicio escribir(Nombre : ) leer(nom) escribir(Cuntas veces quieres repetirlo ? : ) leer(n) para x 1 hasta n hacer

escribir(x.- , nom) Fin

Diagramas Estructurados (nassi-schneiderman)


El diagrama N-S de Nassi-Schneiderman, tambin conocido como diagrama de Chapin, es como un diagrama de flujo en el que se omiten las flechas de unin y las cajas son contiguas. Las acciones sucesivas se escriben en cajas sucesivas, y, como en los diagramas de flujo, se pueden escribir diferentes acciones en una caja. Los Diagramas Estructurados, son una tcnica que permite formular algoritmos mediante una representacin geomtrica y de asignacin de espacios de un bloque especfico.

Un algoritmo se representa de la manera siguiente:

Una estructura condicional en N-S se representa de la siguiente manera :

Ejemplo: Se desea calcular el salario neto semanal de un trabajador en funcin del nmero de horas trabajadas y la tasa de impuestos.

Estructura Secuencial
Es aqulla en la que una accin (instruccin) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y as suscesivamente hasta el fin del proceso. La estructura secuencial tiene una entrada y una salida. Su representacin grfica es la siguiente:

ESTRUCTURA SECUENCIAL

....

DIAGRAMA N-S DE UNA ESTRUCTURA SECUENCIAL

PSEUDOCODIGO DE UNA ESTRUCTURA SECUENCIAL Inicio : : acciones : : fin

Ejemplo: Calcular el salario neto de un trabajador en funcin del nmero de horas trabajadas, precio de la hora de trabajo y considerando unos descuentos fijos al sueldo bruto en concepto de impuestos (20 por 100).

Pseudocdigo Inicio {clculo salario neto} leer nombre, horas, precio_hora salario_bruto impuestos salario_neto horas * precio 0.20 * salario_bruto salario_bruto_impuestos

escribir nombre, salario_bruto, salario_neto_bruto, salario_neto Fin

Diagrama de flujo

Diagrama N-S

Condicionales
La especificacin formal de algoritmos tiene realmente utilidad cuando el algoritmo requiere una descripcin ms complicada que una lista sencilla de instrucciones. Este es el caso cuando existen un nmero de posibles alternativas resultantes de la evaluacin de una determinada condicin. 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 la misma se realiza una opcin u otra. Las condiciones se especifcan 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 romba o bien con un tringulo en el interior de una caja rectangular.

Las estructuras selectivas o alternativas pueden ser:


Simples Mltiples

Alternativa Simple (si-entonces/if-then)

La estructura alternativa simple si-entonces (en ingls if-then o bien IFTHEN ) ejecuta una determinada accin cuando se cumple una determinada condicin. La seleccin si-entonces evala la condicin y . . . Si la condicin es verdadera, entonces ejecuta la accin S1 (o acciones caso de ser S1 una accin compuesta y constar de varias acciones).

Si la condicin es falsa, entonces no hacer nada.

A continuacin se muestra la grfica de la estructura condicional simple.

Pseudocdigo en espaol
Si <condicin> Entonces <accin S1> Fin_si

Pseudocdigo en ingls
If <condicin> then <accin S1> end_if

Diagrama N-S

Alternativas Mltiples (segn_sea, caso de / case)


Cuando existen ms de dos elecciones (alternativas) posibles, es cuando se presenta el caso de alternativas mltiples. Si el nmero de alternativas es grande puede plantear serios problemas de escritura del algoritmo y naturalmente de legibilidad. La estrucura de decisin mltiple evaluar una expresin que podr tomar n valores distintos 1,2,3,4,..n . Segn que elija uno de estos valores en la condicin, se realizara una de las n acciones, o lo que es igual, el flujo del algoritmo seguir un determinado camino entre los n posibles.

La representacin grfica se muestra a continuacin:

Diagrama de Flujo

Diagrama N-S
Modelo 1 Modelo 2

Pseudocdigo

En ingls la estructura de decisin mltiple se representa

Case expresin of [e1]: accin S1 [e2]: accin S2 : [en]: accin Sn

else accin Sx

end_case

Ejemplo: Se desea disear un algoritmo que escriba los nombres de los das de la semana en funcin del valor de una variable DIA introducida por teclado. Los das de la semana son 7; por consiguiente, el rango de valores de DIA ser 1..7, y caso de que DIA tome un valor fuera de este rango se deber producir un mensaje de error advirtiendo la situacin anmala.

Inicio Leer DIA Segn_sea DIA hacer

1: escribir('Lunes') 2: escribir('Martes') 3: escribir('Mircoles') 4: escribir('Jueves') 5: escribir('Viernes') 6: escribir('Sabado') 7: escribir('Domingo') else escribir('Error') fin_segn fin

Estructuras Repetitivas
Las estructuras que repiten una secuencia de instrucciones un nmero determinado de veces se denominan Bucles y se denomina Iteracin al hecho de repetir la ejecucin de una secuencia de acciones. Entre las estructuras repetitivas se encuentran: Mientras (while) Repetir (repeat) Desde (for)

1.- Estructura Mientras (while)


La estructura repetitiva while, es aqulla en que el cuerpo del bucle se repite mientras se cumple una determinada condicin, su representacin grfica es:

Pseudocdigo en espaol Mientras condicin hacer Accin S1 Accin S2 : accin Sn Fin_mientras

Pseudocdigo en ingls while condicin do <Acciones> : End_while

Diagrama N-S

Ejemplo: Contar los nmeros enteros positivos introducidos por teclado. Se consideran dos variables enteras NUMERO y CONTADOR (contar el nmero de enteros positivos). Se supone que se leen nmeros positivos y se detiene el bucle cuando se lee un nmero negativo o cero.

Pseudocdigo
Inicio contador 0

Leer (numero) Mientras numero > 0 hacer contador contador+1

Leer (numero) Fin_Mientras Escribir('El nmero de enteros positivos es : ', contador) Fin

Diagrama de Flujo

Representacin en N-S

UNIDAD VII "ARREGLOS"

Las variables que hemos utilizado hasta ahora nos permiten el almacenamiento de un solo valor a la vez.

Para resolver cierto tipo de problemas con datos mltiples en forma eficiente, se requiere almacenamiento en conjunto. A esta organizacin de elementos se le conoce con el nombre de arreglo.

Otra definicin de arreglo ms completa (Luis Joyanes A.), es un conjunto finito y ordenado de elementos homogneos. La propiedad "ordenado" significa que el elemento primero, segundo, terceron-simo de un arreglo puede ser identificado. Los elementos de una arreglo debern ser homogneos, es decir, del

mismo tipo de datos. Por ejemplo un arreglo puede estar compuesto de todos sus elementos de tipo cadena, otro puede tener sus elementos de tipo entero, etc.

Al tratar el tema de arreglos es necesario conocer el trmino de dimensin. Dimensin 0 1 2 3 Descripcin Un solo punto. (vector o lista) Una recta. Contiene largo. (matriz o tabla) Contiene largo y ancho. (cubo) Tiene largo, ancho y fondo.

Declaracin de un Arreglo
Nom_variable : Arreglo [dimensin] de Nom_tipo

En donde dimensin especifica : <subndice inferior> <subndice superior> En el orden : Fila, Columna, Fondo.

Ejemplo de una declaracin : 0 Dimensin : x 20 donde x, es de tipo Entero.

1 Dimensin :

5
1 2 3 4

x[2]

x : arreglo [1..4] de Enteros.

2 Dimensiones :
1 2 3 4

x[2,4]

x : arreglo [1..3, 1..4] de Enteros.

3 Dimensiones : x[1,4,2] 3

x : arreglo[1..3, 1..4, 1..2] de Enteros.

Las operaciones que se pueden realizar con arreglos durante el proceso de resolucin de un problema son : Asignacin

Lectura/Escritura Recorrido (acceso secuencial) Actualizar (aadir, borrar, insertar) Ordenacin Bsqueda

7.1 Vectores
Son aqullos de una sola dimensin, por lo que tambin son llamados arreglos Unidimensionales.

Ejemplo : Un vector de una dimensin llamado CALIF, que consta de n elementos.

calif(1)

calif(2)

calif(n2)

calif(n1)

calif(n)

El subndice o ndice de un elemento (1, 2 n) designa su posicin en la ordenacin del vector. Otras posibles notaciones del vector son : a1, a2,,an A(1), A(2),A(n) A[1], A[2],A[n] En programacin (Pascal) En matemticas y algunos lenguajes(BASIC)

Los vectores se almacenan en memoria central de la computadora en un orden adyacente. As, un vector de 50 elementos denominado NUMEROS se representa grficamente por 50 posiciones de memoria sucesivas.

Memoria
NUMEROS(1) NUMEROS(2) NUMEROS(3)
: :

Direccin x Direccin x+1 Direccin x+2

NUMEROS(50)

Direccin x+49

Cada elemento de un vector se puede procesar como si fuese una variable simple al ocupar una posicin de memoria. As : NUMEROS(25) NUMEROS y la NUMEROS(25). 75 (almacena el valor 75 en la posicin 25a del vector instruccin de salida : escribir

Declaracin
nom _arreglo = arreglo[liminf..limsup] de tipo

donde : nom_arreglo : liminf..limsup : tipo : nombre vlido del arreglo. lmites inferior y superior del rango del arreglo.

tipo de datos de los elementos del arreglo : entero, real, carcter.

NOMBRES= arreglo [1..10] de carcter Significa que NOMBRES es un arreglo (array) unidimensional de 10 elementos (1 a 10) de tipo carcter.

Asignacin
NOMBRES(8) Ana Asigna el valor Ana al elemento 8 del vector NOMBRES

Lectura/Escritura de Datos
La Lectura/Escritura de datos en un arreglo u operaciones de entrada/salida normalmente se realizan con estructuras repetitivas, aunque puede tambin hacerse con estructuras selectivas. Las instrucciones simples de lectura/escritura se representarn como : leer A escribir A leer V(5) Lectura del vector A Escritura del vector A Leer el elemento V(5) del vector V

Acceso Secuencial al Vector (recorrido)


Se puede acceder a los elementos de un vector para introducir datos (escribir) en el o bien para visualizar su contenido (leer). Estas operaciones se realizan utilizando estructuras repetitivas, cuyas variables de control (por ejemplo I) se utilizan como subndices del vector (por ejemplo, X(I). El incremento del contador del bucle producir el tratamiento sucesivo de los elementos del vector.

Ejemplo : Lectura de 15 valores enteros de un vector denominado TOTAL.

TOTAL= array [1..15] de entero desde i 1 hasta 15 hacer

leer TOTAL(i) fin _desde

Si se cambian los limite inferior y superior, por ejemplo, 5 y 12, el bucle de lectura sera : desde i 5 hasta 12 hacer

leer TOTAL(i) fin_desde

La salida o escritura de vectores se representa de un modo similar. desde i 1 hasta 15 hacer

escribir TOTAL(i) fin_desde Visualiza todo el vector completo (un elemento en cada lnea independiente).

Actualizacin de un Vector
Puede constar de tres operaciones ms elementales : a) Aadir elementos (aade un nuevo elemento al final del vector)

Un arreglo A se ha dimensionado a 6 elementos, pero solo se han asignado 4 valores a los elementos A(1), A(2), A(3), A(4), se podrn aadir dos elementos ms con una simple accin de asignacin. A(5) A(6) 15 9

b.- Insertar elementos (introduce un elemento en el interior de un vector)

Ejemplo : Se tiene un arreglo NOM de 6 elementos de nombres de personas, en orden alfabtico y se desea insertar un nuevo nombre.

{Calcular la posicin ocupada por el elemento a insertar} P {Inicializar contador de inserciones} i n. mientras i >= P hacer {transferir el elemento actual hacia abajo, a la posicin i+1} NOM(i+1) NOM(i)

{decrementar contador} i i-1 fin_mientras {Insertar el elemento en la posicin P} NOM(P) nuevo elemento

{Actualizar el contador de elementos del vector} n fin n+1

c) Borrar elementos (Elimina elementos de un vector)

Algoritmo de Borrado Inicio {se utilizar una variable auxiliar AUX, que contendr el valor del elemento que se desea borrar} AUX desde i NOM(i) j hasta N-1 hacer

{llevar elemento j+1 hacia arriba} NOM(i) fin_desde {actualizar contador de elementos} {ahora tendr un elemento menos, N-1} N Fin N-1 NOM(i+1)

Referencia a un elemento de Arreglo


variable de arreglo [subndice] Ejemplo : x x[3] 9

escribir (x[2])

? 9
1 2 3

Ejercicio : Se desea la lectura y desplegado de 5 nombres. Resuelva el problema por cada uno de los siguientes criterios : a) b) Lectura y desplegado alternados. Todas las lecturas, todos los desplegados.

a) variables : string : nom entero : x

Inicio Para x 1 hasta 5 hacer

escribir(Nombre ? ) leer(nom) escribir( La persona nmero, x, se llama : ,nom) Fin

Nota :
mltiple.

No se utilizaron arreglos porque no se requera de almacenamiento

b) variables : nom : Arreglo[1..5] de string x : Entero

Inicio para x 1 hasta 5 hacer

escribir(Dame el nombre nmero,x, ?) leer(nom[x]) para x 1 hasta 5 hacer

escribir(La persona nmero , x, se llama : ,nom[x]) Fin

Ordenacin de Arreglos
Existen diversos mtodos para ordenar los elementos de un arreglo. El ms conocido de ellos (no el mejor) es el Mtodo de la Burbuja.

El mtodo consiste en hacer un recorrido por el arreglo comparando parejas de elementos ; si estos no estn en el orden deseado, se procede a intercambiarlos.

Al finalizar el recorrido se verifica la cantidad de intercambios, si esta es 0 se asume que el arreglo est ordenado ; en caso contrario se inicia nuevamente el recorrido.

Las parejas de elementos que se comparan deben ser contiguos (elemento1 y elemento2, elemento2 y elemento3, etc). El nmero total de comparaciones es n1 (donde n es la cantidad de elementos).

Ejemplo : Se requiere la ordenacin de una lista con 5 valores enteros previamente introducidos.

Variables : LISTA : arreglo[1..5] de entero x, aux : entero cambio : boleano

Inicio Para x 1 hasta 5 hacer

escribir(Dame el valor,x, :) leer( LISTA[x]) repetir cambio falso para x 1 hasta 4 hacer

si LISTA[x] > LISTA[x+1] entonces aux LISTA[x] LISTA[x+1] aux

LISTA[x] LISTA[x+1]

cambio

verdadero fin_si_entonces

hasta cambio = falso escribir(Lista ordenada) para x 1 hasta 5 hacer

escribir(Elemento nmero,x, es,LISTA[x]) Fin

"REGISTROS"
Los archivos tambin denominados ficheros (file); es una coleccin de informacin (datos relacionados entre s), localizada o almacenada como una unidad en alguna parte de la computadora. Los archivos son el conjunto organizado de informaciones del mismo tipo, que pueden utilizarse en un mismo tratamiento; como soporte material de estas informaciones. 1.1. - INTRODUCCIN A LOS ARCHIVOS. Los archivos como coleccin de datos sirve para la entrada y salida a la computadora y son manejados con programas. Los archivos pueden ser contrastados con Arrays y registros; Lo que resulta dinmico y por esto en un registro se deben especificar los campos, l nmero de elementos de un arrays (o arreglo), el nmero de caracteres en una cadena; por esto se denotan como "Estructuras Estticas". En los archivos no se requiere de un tamao predeterminado; esto significa que se pueden hacer archivos de datos ms grandes o pequeos, segn se necesiten. Cada archivo es referenciado por su identificador (su nombre.). 1.2. - CARACTERSTICAS DE LOS ARCHIVOS Las principales caractersticas de esta estructura son: Independencia de las informaciones respecto de los programas La informacin almacenada es permanente Un archivo puede ser accedido por distintos programas en distintos momentos Gran capacidad de almacenamiento. 1.3. - CLASIFICACION DE LOS ARCHIVOS Los archivos se clasifican segn su uso en tres grupos: Permanentes o Maestros:

Estos contienen informacin que varia poco. En algunos casos es preciso actualizarlos peridicamente. De Movimientos Se cercan para actualizar los archivos maestros. Sus registros son de tres tipos: alta, bajas y modificaciones. De Maniobra o Trabajo. Tienen una vida limitada, normalmente menor que la duracin de la ejecucin de un programa. Su utilizan como auxiliares de los anteriores. 1.4. - TIPOS DE ARCHIVOS Los elementos de un archivo pueden ser de cualquier tipo, simples o estructurados o segn su funcin. 1.4.1. - SEGN SU FUNCION. Se define por: a.- Archivos Permanentes: Son aquellos cuyo registros sufren pocas o ninguna variacin a lo largo del tiempo, se dividen en: Constantes: Estn formados por registros que contienen campos fijos y campos de baja frecuencia de variacin en el tiempo. De Situacin: Son los que en cada momento contienen informacin actualizada. Histricos: Contienen informacin acumulada a lo largo del tiempo de archivos que han sufridos procesos de actualizacin o bien acumulan datos de variacin peridica en el tiempo. b.- Archivos de Movimiento Son aquellos que se utilizan conjuntamente con los maestros (constantes), y contienen algn campo comn en sus registros con aquellos, para el procesamiento de las modificaciones experimentados por los mismos. c.- Archivo de Maniobra o Transitorio Son los archivos creados auxiliares creados durante la ejecucin del programa y borrados habitualmente al terminar el mismo.

1.4.2. SEGN SUS ELEMENTOS. Los principales archivos de este tipo son: Archivo de Entrada: Una coleccin de datos localizados en un dispositivo de entrada. Archivo de Salida: Una coleccin de informacin visualizada por la computadora. Constantes: estn formados por registros que contienen campos fijos y campos de baja frecuencia de variacin en el tiempo. De Situacin: son los que en cada momento contienen informacin actualizada. Histricos: Contienen informacin acumulada a lo largo del tiempo de archivos que han sufrido procesos de actualizacin, o bien acumulan datos de variacin peridica en el tiempo. Archivos de Movimiento o Transacciones: Son aquellos que se utilizan conjuntamente con los maestros (constantes), y contienen algn campo comn en sus registros con aquellos, para el procesamiento de las modificaciones experimentados por los mismos. Archivos de Maniobra o Transitorios: Son los archivos auxiliares creados durante la ejecucin del programa y borrados habitualmente al terminar el mismo.

- SEGN SUS ELEMENTOS Los principales archivos de este tipo son: Archivo de Entrada, una coleccin de datos localizada en un dispositivo de entrada. Archivo de Salida, una coleccin de informacin visualizada por la computadora. Archivo de Programa, un programa codificado en un lenguaje especifico y localizado o almacenado en un dispositivo de almacenamiento. Archivo de Texto, una coleccin de caracteres almacenados como una unidad en un dispositivo de almacenamiento. 2. - ACCESO A LOS ARCHIVOS

Se refiere al mtodo utilizado para acceder a los registros de un archivo prescindiendo de su organizacin. Existen distintas formas de acceder a los datos: Secuenciales; los registros se leen desde el principio hasta el final del archivo, de tal forma que para leer un registro se leen todos los que preceden. Directo; cada registro puede leerse / escribirse de forma directa solo con expresar su direccin en el fichero por l numero relativo del registro o por transformaciones de la clave de registro en l numero relativo del registro a acceder. Por ndice; se accede indirectamente a los registros por su clave, mediante consulta secuenciales a una tabla que contiene la clave y la direccin relativa de cada registro, y posterior acceso directo al registro.

Dinmico; es cuando se accede a los archivos en cualquier de los modos anteriormente citados. La eleccin del mtodo esta directamente relacionada con la estructura de los registros del archivo y del soporte utilizado. 2.1. - TIPOS DE ACCESOS Acceso Secuencial. Exige el tratamiento de elemento, para esto es necesario una exploracin secuencial comenzando desde el primer momento (Pascal permite este acceso) Secuenciales: archivo de texto que debe ser ledo del principio hasta el final. Acceso Directo. Permite procesar o acceder a un elemento determinado y referencia directamente por su posicin en el soporte de almacenamiento (Turbo Pascal permite este acceso. Aleatorios: es un archivo con registros de un mismo largo. Un programa puede accesar directamente cualquier registro sin tener que leer los registros previos.

Binarios: es un archivo que lee byte por byte sin asumir ninguna estructura. Los archivos Binarios no son un nuevo tipo de archivo, pero si una nueva forma de manipular cualquier tipo de archivo. Las tcnicas de archivo binarios permiten leer o cambiar cualquier byte de un archivo. Son herramientas extremadamente potentes, pero como toda herramienta potente debe manejarse con cuidado

Entre otras caractersticas, a las tcnicas de archivo binario no les preocupa los caracteres EOF intercalados (Control+Z = Chr$(26)) que pueda tener un archivo. Ejemplo Open NombreArchivo for Binary as #NumeroArchivo. Instrucciones para manejar archivos OPEN: reserva un espacio del buffer para la data que mover entre el programa y los archivos. La estructura es: OPEN filespec FOR {Append|Binary|Input|Outuput|Random} As #filenumber Por ejemplo: OPEN "C:\Windows\AddrBook.ini" FOR Input As #1 Filespec: Es la localizacin de archivo en el que se trabajar, incluyendo usualmente el drive y path. "C:\Windows\AddrBook.ini" {Append| Binary| Input| Outuput| Random} El programador tiene que seleccionar uno. Binary y Random se utiliza para archivos binarios y aleatorios. Append, Input y Output son usados con archivos secuenciales. Un archivo secuencial no puede ser abierto para leer y escribir simultaneamente. Output es usado para escribir en el archivo. Input es usado para leer del archivo. Append es usado para colocar data al final de un archivo exitente. #filenumber: es necesario asignar un nmero al archivo. El nmero puede estar en el rango de #1 a #511 y es usado por Visual Basic para identificar el archivo. CLOSE: para cerrar un archivo. La estructura es: CLOSE #filenumber Por ejemplo: CLOSE #1 WRITE: envia data del programa al archivo secuencial. La estructura es: WRITE #filenumber, [OutputList] Por ejemplo: WRITE #1, UserName, UserCompany, SerialNumber

WRITE es la operacin opuesta al INPUT. Las expresiones en el OutputList son separadas por comas. WRITE inserta comillas y comas a la data que envia al archivo. INPUT: lee data del archivo. La estructura es: INPUT #filenumber, InputList Por ejemplo: INPUT #1, UserName, UserCompany, SerialNumber Declaracin y asignacin de archivos La declaracin de un archivo con tipo se efecta con la ayuda de las palabras reservadas file of. El procedimiento de asignacin es idntico al utilizado anteriormente. Ejemplo: Type datos = record clave : integer; nombre : string[30]; puesto : string[20]; sueldo : real; estado : boolean; {true activo,false baja lgica} end; Var archivo:file of datos; begin Assign(archivo,'empleado.dat');

SISTEMA DE MANEJO DE ARCHIVOS. Tiene las siguientes funciones: Controla los datos en almacenamiento secundario [ ] Proporciona al usuario una abstraccin de cmo se manipulan los datos internamente. [ ] Proporciona independencia de E/S con los dispositivos [ ] Soporte de comparticin, proteccin, recuperacin de archivos y posibles cadas del sistema. [ ] Transmisin de datos de memoria principal a secundaria.[ ] Los archivos de una empresa pueden almacenarse en diferentes dispositivos. Todos los archivos se pueden almacenar por medio de directorios, que no son otra cosa ms que tablas de smbolos de archivo, los directorios se pueden utilizar de dos formas: DIRECTORIO DE NIVEL NICO O DIRECTORIO PLANO Con este mtodo, se almacenan todos los archivos en un solo nivel, este mtodo en sistemas donde el volumen de archivos no es grande.[ ] DIRECTORIO JERARQUICO Los archivos son almacenados por medio de directorios, esta clasificacin se de acuerdo a la conveniencia del usuario o de la empresa. [ ] .La estructura tiene una forma de rbol con raz, este mtodo es el ms utilizado debido a que la revisin o bsqueda se realiza de forma sencilla. Para accesar a los archivos que se almacenan en un sistema jerrquico, el usuario debe indicar el o los directorios que se deben recorrer para localizar el archivo deseado, a esto se le denomina ruta de acceso del archivo. La ruta de acceso puede ser de dos formas: Ruta absoluta.- Este tipo de ruta de acceso inicia siempre con una diagonal invertida [ ] C:\Edit c:\SOS\sistemas\report.txt Ruta relativa.- Este tipo de ruta de acceso realiza la bsqueda del archivo en el directorio de trabajo actual, si el archivo no se localiza aqu, el S.O. lo buscar en los directorios especificados en el PATH de un archivo con extensin .BAT.

C:\Edit report.txt 2.2. - OPERACIONES GENERALES QUE SE REALIZAN SOBRE UN ARCHIVO. Las operaciones generales que se realizan son: Creacin. Escritura de todos sus registros. Consulta. Lectura de todos sus registros. Actualizacin. Insercin supresin o modificacin de algunos de sus registros Clasificacin. Reubicacin de los registros de tal forma que queden ordenados segn determinados criterios. Borrado. Eliminando total del archivo, dejando libre el espacio del soporte que ocupaba.

3. - ORGANIZACIN DE LOS ARCHIVOS. Los archivos se encuentran organizados lgicamente como una secuencia de registros de varias longitudes diferentes. Los archivos de registros de longitud fija: son los que almacenan la informacin en los archivos mediante un encabezado y luego se introducen uno a uno los registros ubicados en posiciones consecutivas. Los registros de longitud variable: es el almacenamiento de registros de varios tipos en un archivo y permite uno o ms campos de longitudes variables y dichos campos pueden ser repetidos. La longitud de los registros debe estar definida correctamente para poder leer y escribir de forma efectiva.

3.1. - ENFOQUES GENERALES PARA LA ORGANIZACIN DE ARCHIVOS. Los enfoques son: 1. - Enfoque de acceso secuencial: Se refiere al procesamiento de los archivos de acuerdo con el orden especifico. Ejemplo archivo secuenciales y de texto.

2. - Enfoque de acceso Directo Permite recuperar registros individuales sin leer otros registros del archivo, ejemplos archivos indizados.

3.2. - ARCHIVOS SECUENCIALES. Se refiere al procesamiento de los registros, no importa el orden en que se haga, para eso los registros estn organizados en forma de una lista y recuperarlos y procesarlos uno por uno de principio a fin. Rudimentos de los archivos Secuenciales; dependiendo del dispositivo de almacenamiento utilizado el archivo se puede mostrar el usuario como si fuera un sistema secuencial. Al finalizar un archivo secuencial se denota con una marca de fin de archivo. (End end-of-file) El usuario de un archivo secuancial puede ver los registros en un orden secuancial simple. La nica forma de recuperar registros es comenzar al principio y extraerlos en el orden contemplado. Cuestiones de programacin; la manipulacin de los archivos se hace en el contexto de la programacin en un lenguaje por procedimientos de alto nivel. Estos lenguajes tienden a expresar la manipulacin de archivos mediante subrutinas que se definen como parte del lenguaje formal o se incluyen como extensiones del lenguaje en una biblioteca estndar. La mayor parte de los lenguajes por procedimiento de alto nivel cuenta con caractersticas que ayudan a detectar la marca de fin de archivo.

3.3. -ARCHIVOS DE TEXTO. Tambin conocidos como (Slream File) son utilizados para almacenar documentos que consisten en texto; En ellos, cada registro es un solo smbolo o cdigo de control. El leer estos archivos recibimos la informacin en orden secuencial en el que aparece cuando lo vemos en un monitor.

Los archivos de texto son una secuencia de lneas separadas por marcas de fin de lnea. Rudimentos de los archivos de textos; El usuario escribe los archivos de textos mediante un procesador de palabras que le permitir almacenar la informacin pero no estrictamente en forma secuencial. El procesador tambin nos permite desplazarnos por todo el bloque de informacin y permitirnos realizar modificaciones. Mientras el usuario avance rpidamente en la lectura de registro lograra ver mas archivos. Cuestiones de programacin; Casi todos los entornos de programacin por procedimientos de alto nivel cuentan con subrutinas para manipular los archivos de texto. Estas subrutinas pueden formar parte de la definicin formal del lenguaje o que se ofrezca en biblioteca como extensiones del mismo.

3.4. - ARCHIVOS INDIZADOS. Es la aplicacin de incluir ndices en el almacenamiento de los archivos; de esta forma nos ser ms fcil buscar algn registro sin necesidad de ver todo el archivo. Un ndice en un archivo consiste en un listado de los valores del campo clave que ocurren en el archivo, junto con la posicin de registro correspondiente en el almacenamiento masivo. Fundamento de los ndices a.- La colocacin de un listado al inicio del archivo: para la identificacin del contenido. b.- La presentacin de un segundo ndice: para reflejar la informacin de cada punto principal del ndice anterior. c.- La actualizacin de los ndices: Cuando se insertan y eliminan archivos, es preciso actualizar los ndices para evitar contratiempos actualizando un archivo. d.- La organizacin de un ndice: Nos evita examinar archivo por archivo para recuperar algn registro buscado; por lo tanto ahorraramos tiempo si tenemos una adecuado organizacin de los ndices.

Cuestiones de Programacin Algunos lenguajes de alto nivel cuentan con subttulos para manipular los archivos de un registro indizado. Valindose de las subrutinas es posible escribir programas sin tener que preocuparse por la estructura real del sistema de ndices que se aplique.

3.5. - ARCHIVOS DISPERSOS. Tambin llamados (Hashed Files) representan un sistema de almacenamiento de archivos que solo ofrece acceso directo, y permiten calcular la posicin de un registro en el almacenamiento masivo. Rudimentos de los archivos dispersos. El usuario debe dividir el rea de almacenamiento asignando al archivo en varias secciones llamadas cubetas para poder ingresar los datos. La distribucin de la informacin en las cubetas es problemtica debido a que la estructura de los archivos es dispersa. Dentro de los archivos se presentan colisiones de informacin debido al agrupamiento de los registros ingresados. Cuestiones de programacin. Casi ninguno de los lenguajes de programacin por procedimientos en la actualidad ofrece implantaciones directas de archivos dispersos; esto es debido a las cuestiones dependientes de la aplicacin implicadas en el diseo de estos archivos.

4. -MEDIDAS DE UTILIZACIN DE LOS ARCHIVOS. Para utilizar un archivo debemos tener en cuenta: 1. - ndice de Volatilidad; Un archivo es voltil cuando tiene un alto porcentaje de adiciones y supresiones debido al ingreso o eliminacin de registros respecto al numero promedio de registros que haya en el archivo.

2. - ndice de Actividad; Un archivo es activo cuando tiene un alto porcentaje de utilidad sea de actualizacin o consulta en un periodo de tiempo fijo respecto al numero promedio de registro que se encuentran en el archivo. El ndice de actividad suele emplearse para saber si un archivo puede explotarse como una organizacin secuencial o relativa. Archivos de acceso directo (con tipo) Los archivos tipeados (con tipo), tambin llamados archivos binarios, contienen datos de tipo simple o estructurado, tales como integer, real , record, etc., excepto otro tipo de archivos. Los archivos con tipos estn estructurados en elementos o registros (record) cuyo tipo puede ser cualquiera. A los elementos de estos archivos se accede directamente, al no situarse stos en posiciones fsicamente consecutivas, sino en posiciones lgicas. Esta es la razn por la cual se les denomina archivos de acceso aleatorio o directo. Los elementos de los archivos aleatorios son de igual tamao y el trmino acceso directo significa que es posible acceder directamente a un elemento con solo especificar su posicin 5. - DEFINICIONES. Los ms utilizados en el desarrollo del tema son: Archivo (Fichero): Conjunto de informacin estructurada en unidades de acceso denominada registro. Registros. Estructura de datos formada por uno o ms elementos denominados "Campos" y estos pueden estar compuestos a su vez por "subcampos". Claves: Se denomina a un campo especial del registro que sirve para identificarlo Bloque: Es la cantidad de informacin que se transfiere en cada operacin de lectura o escritura sobre un archivo. Campo:

Es cada uno de los diferentes datos que constituyen un registro lgico. FUENTE: http://www.monografias.com/trabajos7/arch/arch.shtml

Anda mungkin juga menyukai