Ciencia que estudia el tratamiento automtico de la informacin en computadoras, dispositivos electrnicos
y sistemas informticos. Proviene del francs informatique. Form una conjuncin entre las palabras "information" y "automatique". La informtica se basa en mltiples ciencias como la matemtica, la f!sica, la electrnica, etc. SISTEMA: Definicin "n sistema es un conjunto de partes o elementos or#ani$adas y relacionadas que interactan entre s! para lo#rar un objetivo. Los sistemas reciben %entrada& datos, ener#!a o materia del ambiente y proveen %salida& informacin, ener#!a o materia. "n sistema puede ser f!sico o concreto %una computadora, un televisor, un 'umano& o puede ser abstracto o conceptual %un soft(are& Cada sistema e)iste dentro de otro ms #rande, por lo tanto un sistema puede estar formado por subsistemas y partes, y a la ve$ puede ser parte de un supersistema. Los sistemas tienen l!mites o fronteras, que los diferencian del ambiente. *se l!mite puede ser f!sico %el #abinete de una computadora& o conceptual. +i 'ay al#n intercambio entre el sistema y el ambiente a travs de ese l!mite, el sistema es abierto, de lo contrario, el sistema es cerrado. *l ambiente es el medio en e)terno que envuelve f!sica o conceptualmente a un sistema. *l sistema tiene interaccin con el ambiente, del cual recibe entradas y al cual se le devuelven salidas. *l ambiente tambin puede ser una amena$a para el sistema. "n #rupo de elementos no constituye un sistema si no 'ay una relacin e interaccin, que de la idea de un "todo" con un propsito %ver 'olismo y siner#!a&. ANALISIS DE SISTEMAS *s un conjunto o disposicin de procedimientos o pro#ramas relacionados de manera que juntos forman una sola unidad. "n conjunto de 'ec'os, principios y re#las clasificadas y dispuestas de manera ordenada mostrando un plan l#ico en la unin de las partes. "n mtodo, plan o procedimiento de clasificacin para 'acer al#o. ,ambin es un conjunto o arre#lo de elementos para reali$ar un objetivo predefinido en el procesamiento de la -nformacin. *sto se lleva a cabo teniendo en cuenta ciertos principios. Debe presentarse y entenderse el dominio de la informacin de un problema. Defina las funciones que debe realizar el Software. Represente el comportamiento del software a consecuencias de acontecimientos externos. Divida en forma jerrquica los modelos que representan la informacin, funciones y comportamiento. *l proceso debe partir desde la informacin esencial 'asta el detalle de la -mplementacin. a funcin del !nlisis puede ser dar soporte a las actividades de un ne"ocio, o desarrollar un producto que pueda venderse para "enerar beneficios. #ara conse"uir este objetivo, un Sistema basado en computadoras $ace uso de seis %&' elementos fundamentales( Software, que son #ro"ramas de computadora, con estructuras de datos y su documentacin que $acen efectiva la lo")stica metodolo")a o controles de requerimientos del #ro"rama. *ardware, dispositivos electrnicos y electromecnicos, que proporcionan capacidad de clculos y funciones rpidas, exactas y efectivas %+omputadoras, +ensores, maquinarias, bombas, lectores, etc.', que proporcionan una funcin externa dentro de los Sistemas. #ersonal, son los operadores o usuarios directos de las $erramientas del Sistema. ,ase de Datos, una "ran coleccin de informaciones or"anizadas y enlazadas al Sistema a las que se accede por medio del Software. /l#oritmos y Pro#ramas Cap.0 0 Documentacin, -anuales, formularios, y otra informacin descriptiva que detalla o da instrucciones sobre el empleo y operacin del #ro"rama. #rocedimientos, o pasos que definen el uso especifico de cada uno de los elementos o componentes del Sistema y las re"las de su manejo y mantenimiento. ALGORITMO: Definicin *s un conjunto preescrito de instrucciones o re#las bien definidas, ordenadas y finitas que permite reali$ar una actividad mediante pasos sucesivos que no #eneren dudas a quien deba reali$ar dic'a actividad. 1ados un estado inicial y una entrada, si#uiendo los pasos sucesivos se lle#a a un estado final y se obtiene una solucin. PROGRAMA: Definicin "n pro#rama es un conjunto de instrucciones u ordenes basadas en un len#uaje de pro#ramacin que una computadora interpreta para resolver un problema o una funcin especifica. 2eneralmente es la transformacin de un al#oritmo que se quiere representar3implementar3resolver en una computadora. *l proceso que permite transformar un al#oritmo en un pro#rama se denomina C41-F-C/C-56. Para reali$ar la codificacin es necesario dominar un +4F,7/8* llamado L*62"/9* 1* P8428/:/C-56. L*62"/9* 1* P8428/:/C-56. 1efinicin Len#uaje artificial que puede ser usado para controlar el comportamiento de una mquina, especialmente una computadora. *stos se componen de un conjunto de re#las sintcticas y semnticas que permiten e)presar instrucciones que lue#o sern interpretadas. 1ebe distin#uirse de ;len#uaje informtico<, que es una definicin ms amplia, puesto estos incluyen otros len#uajes como son el =,:L o P1F que dan formato a un te)to y no es pro#ramacin en s! misma. *l pro#ramador es el encar#ado de utili$ar un len#uaje de pro#ramacin para crear un conjunto de instrucciones que, al final, constituir un pro#rama o subpro#rama informtico. Los len#uajes de pro#ramacin pueden clasificarse se#n el paradi#ma que usan en. procedimentales, orientados a objetos, funcionales, l#icos, '!bridos, etc. +on ejemplos de len#uajes de pro#ramacin. p'p, prolo#, /+P, /ction+cript, ada, pyt'on, pascal, c, basic, 9/>/, 9ava+cript, 8uby, etc. CL/+-F-C/C-56 1* L4+ L*62"/9*+ 1* P8428/:/C-56 *l ordenador slo entiende un len#uaje conocido como cdi#o binario o cdi#o mquina, consistente en ceros y unos. *s decir, slo utili$a ? y 0 para codificar cualquier accin. Los len#uajes ms pr)imos a la arquitectura 'ard(are se denominan len#uajes de bajo nivel y los que se encuentran ms cercanos a los pro#ramadores y usuarios se denominan len#uajes de alto nivel. Lenguajes de baj ni!e" +on len#uajes totalmente dependientes de la mquina, es decir que el pro#rama que se reali$a con este tipo de len#uajes no se pueden mi#rar o utili$ar en otras maquinas. /l estar prcticamente dise@ados a medida del 'ard(are, aprovec'an al m)imo las caracter!sticas del mismo. 1entro de este #rupo se encuentran. *l len#uaje maquina. este len#uaje ordena a la mquina las operaciones fundamentales para su funcionamiento. Consiste en la combinacin de ?As y 0As para formar las ordenes entendibles por el 'ard(are de la maquina. /l#oritmos y Pro#ramas Cap.0 B *ste len#uaje es muc'o ms rpido que los len#uajes de alto nivel. La desventaja es que son bastantes dif!ciles de manejar y usar, adems de tener cdi#os fuente enormes donde encontrar un fallo es casi imposible. *l len#uaje ensamblador es un derivado del len#uaje maquina y esta formado por abreviaturas de letras y nmeros llamadas mnemotcnicos. Con la aparicin de este len#uaje se crearon los pro#ramas traductores para poder pasar los pro#ramas escritos en len#uaje ensamblador a len#uaje mquina. Como ventaja con respecto al cdi#o mquina es que los cdi#os fuentes eran ms cortos y los pro#ramas creados ocupaban menos memoria. Las desventajas de este len#uaje si#uen siendo prcticamente las mismas que las del len#uaje ensamblador, a@adiendo la dificultad de tener que aprender un nuevo len#uaje dif!cil de probar y mantener. Lenguajes de a"# ni!e" +on aquellos que se encuentran ms cercanos al len#uaje natural que al len#uaje mquina. *stn diri#idos a solucionar problemas mediante el uso de *11As. N#a: *11As son las abreviaturas de *structuras 1inmicas de 1atos, al#o muy utili$ado en todos los len#uajes de pro#ramacin. +on estructuras que pueden cambiar de tama@o durante la ejecucin del pro#rama. 6os permiten crear estructuras de datos que se adapten a las necesidades reales de un pro#rama. +e tratan de len#uajes independientes de la arquitectura del ordenador. Por lo que, en principio, un pro#rama escrito en un len#uaje de alto nivel, lo puedes mi#rar de una mquina a otra sin nin#n tipo de problema. *stos len#uajes permiten al pro#ramador olvidarse por completo del funcionamiento interno de la maquina3s para la que estn dise@ando el pro#rama. ,an solo necesitan un traductor que entiendan el cdi#o fuente como las caracter!sticas de la maquina. +uelen usar tipos de datos para la pro#ramacin y 'ay len#uajes de propsito #eneral %cualquier tipo de aplicacin& y de propsito especifico %como F48,8/6 para trabajos cient!ficos&. Lenguajes de Medi ni!e" +e trata de un termino no aceptado por todos, pero que se#uramente 'abrs o!do. *stos len#uajes se encuentran en un punto medio entre los dos anteriores. 1entro de estos len#uajes podr!a situarse C ya que puede acceder a los re#istros del sistema, trabajar con direcciones de memoria, todas ellas caracter!sticas de len#uajes de bajo nivel y a la ve$ reali$ar operaciones de alto nivel. C4:P-L/148*+ * -6,C8P8*,*+ *)isten dos tipos principales de traductores de los len#uajes de pro#ramacin de alto nivel. Compilador e intrprete. *)isten dos tipos principales de traductores de los len#uajes de pro#ramacin de alto nivel. C$%i"ad&, que anali$a el pro#rama fuente y lo traduce a otro equivalente escrito en otro len#uaje %por ejemplo, en el len#uaje de la mquina&. +u accin equivale a la de un traductor 'umano, que toma un libro y produce otro equivalente escrito en otra len#ua. In#'&%&e#e, que anali$a el pro#rama fuente y lo ejecuta directamente, sin #enerar nin#n cdi#o equivalente. +u accin equivale a la de un intrprete 'umano, que traduce las frases que oye sobre la marc'a, sin producir nin#n escrito permanente. -ntrpretes y compiladores tienen diversas ventajas e inconvenientes que los 'acen complementarios. "n intrprete facilita la bsqueda de errores, pues la ejecucin de un pro#rama puede interrumpirse en cualquier momento para estudiar el entorno %valores de las variables, etc.&. /dems, el pro#rama puede modificarse sobre la marc'a, sin necesidad de volver a comen$ar la ejecucin. /l#oritmos y Pro#ramas Cap.0 D "n compilador suele #enerar pro#ramas ms rpidos y eficientes, ya que el anlisis del len#uaje fuente se 'ace una sola ve$, durante la #eneracin del pro#rama equivalente. *n cambio, un intrprete se ve obli#ado #eneralmente a anali$ar cada instruccin tantas veces como se ejecute %incluso miles o millones de veces&. "n intrprete permite utili$ar funciones y operadores ms potentes, como por ejemplo ejecutar cdi#o contenido en una variable en forma de cadenas de caracteres. "sualmente, este tipo de instrucciones es imposible de tratar por medio de compiladores. Los len#uajes que incluyen este tipo de operadores y que, por tanto, e)i#en un intrprete, se llaman interpretativos. Los len#uajes compilativos, que permiten el uso de un compilador, prescinden de este tipo de operadores. A"#e&na#i!as %a&a e(%&esa& a"g&i#$s Los al#oritmos pueden ser e)presados de muc'as maneras, incluyendo al len#uaje natural, pseudocdi#o, dia#ramas de flujo y len#uajes de pro#ramacin entre otros. Las descripciones en len#uaje natural tienden a ser ambi#uas y e)tensas. *l usar pseudocdi#o y dia#ramas de flujo evita muc'as ambi#Eedades del len#uaje natural. 1ic'as e)presiones son formas ms estructuradas para representar al#oritmosF no obstante, se mantienen independientes de un len#uaje de pro#ramacin espec!fico. La descripcin de un al#oritmo usualmente se 'ace en tres niveles. Desc&i%cin de a"# ni!e". +e establece el problema, se selecciona un modelo matemtico y se e)plica el al#oritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles. Desc&i%cin f&$a". +e usa pseudocdi#o para describir la secuencia de pasos que encuentran la solucin. I$%"e$en#acin. +e muestra el al#oritmo e)presado en un len#uaje de pro#ramacin espec!fico o al#n 1ia#rama de flujo que e)presa un al#oritmo para calcular la ra!$ cuadrada de un nmero Diag&a$a de f"uj 1ia#rama de flujo que e)presa un al#oritmo para calcular la ra!$ cuadrada de un nmero Los dia#ramas de flujo son descripciones #rficas de al#oritmosF usan s!mbolos conectados con flec'as para indicar la secuencia de instrucciones y estn re#idos por -+4. Los dia#ramas de flujo son usados para representar al#oritmos peque@os, ya que abarcan muc'o espacio y su construccin es laboriosa. Por su facilidad de lectura son usados como introduccin a los al#oritmos, descripcin de un len#uaje y descripcin de procesos a personas ajenas a la computacin. /l#oritmos y Pro#ramas Cap.0 G 1ia#rama de flujo que e)presa un al#oritmo para calcular la ra!$ cuadrada de un nmero . +!mbolos del 1.F. -nicio o fin del al#oritmo Pasos, procesos o l!neas de rdenes 4peraciones de entrada y salida ,oma de decisiones y ramificacin Conector para unir el flujo a otra parte del dia#rama L!neas de flujo que conectan los s!mbolos e indican el flujo del al#oritmo. :ostrar datos o resultados Los al#oritmos pueden ser e)presados de muc'as maneras, incluyendo al len#uaje natural, pseudocdi#o, dia#ramas de flujo y len#uajes de pro#ramacin entre otros. Las descripciones en len#uaje natural tienden a ser ambi#uas y e)tensas. *l usar pseudocdi#o y dia#ramas de flujo evita muc'as ambi#Eedades del len#uaje natural. 1ic'as e)presiones son formas ms estructuradas para representar al#oritmosF no obstante, se mantienen independientes de un len#uaje de pro#ramacin espec!fico. Pseudcdig *l pseudocdi#o %falso len"uaje, el prefijo pseudo si#nifica falso& es una descripcin de alto nivel de un al#oritmo que emplea una me$cla de len#uaje natural con al#unas convenciones sintcticas propias de len#uajes de pro#ramacin, como asi#naciones, ciclos y condicionales, aunque no est re#ido por nin#n estndar. *s utili$ado para describir al#oritmos en libros y publicaciones cient!ficas, y como producto intermedio durante el desarrollo de un al#oritmo, como los dia#ramas de flujo, aunque presentan una ventaja importante sobre estos, y es que los al#oritmos descritos en pseudocdi#o requieren menos espacio para representar instrucciones complejas. *l pseudocdi#o est pensado para facilitar a las personas el entendimiento de un al#oritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementacin. Pro#ramadores diferentes suelen utili$ar convenciones distintas, que pueden estar basadas en la sinta)is de len#uajes de pro#ramacin concretos. +in embar#o, el pseudocdi#o, en #eneral, es comprensible sin necesidad de conocer o utili$ar un entorno de pro#ramacin espec!fico, y es a la ve$ suficientemente estructurado para que su implementacin se pueda 'acer directamente a partir de l. /s! el pseudodocdi#o cumple con las funciones antes mencionadas para representar al#o abstracto los protocolos son los len#uajes para la pro#ramacin. Husque fuentes ms precisas para tener mayor comprensin del tema. 2eneralmente un pseudocdi#o se e)presa con instrucciones escritas en un len#uaje natural utili$ando verbos para representar las acciones en tiempo infinitivo. %:ostrar3+umar3-n#resar3etc.& /l#oritmos y Pro#ramas Cap.0 I *l pseudolen#uaje que utili$amos para e)presar el al#oritmo est formado por rdenes elementales llamadas primitivas, pues su sola enunciacin nos da una idea de la tarea que cada una desempe@a, es decir est carente de ambi#Eedades. Caracteristicas. Las caracter!sticas fundamentales que debe cumplir todo al#oritmo son. #reciso( -mplica el tipo de rdenes que emplea el al#oritmo y el orden de reali$acin de cada uno de los pasos. Definido( +i se si#ue dos veces, se obtiene el mismo resultado. .inito( ,iene un numero determinado de pasos, implica que tiene un fin. *lementos que componen un al#oritmo +ecuencia de acciones Condicionales o +elecciones 8epetitivas e -terativas La secuencia de acciones indica un #rupo de rdenes que se representarn una a continuacin de otra e)presndolas en forma escrita una debajo de la otra. Las condicionales o de seleccin son el tipo de rdenes que permiten al al#oritmo tomar un curso de accin o camino %o flujo& de acuerdo a evaluar el resultado de una condicin previamente e)presada. Las estructuras de repeticin se dividen en 8epetitivas e -terativas. Las primeras repiten un nmero finito y determinado de veces una serie de rdenes. Las otras repiten un nmero indeterminado y finito de veces una serie de rdenes que dependen de una condicin para continuar la iteracin o no. Formato #eneral de una repeticin 8epetir n veces JJ. JJ. Formato #eneral de una iteracin /l#oritmos y Pro#ramas Cap.0 K =acer JJJ JJJ =asta condicin =acer JJJ JJJ :ientras condicin :ientras condicin =acer JJJ JJJ Fin :ientras =asta condicin =acer JJJ JJJ Fin =asta *jemplo de 8epeticin. *jemplo de -teracin. 8epetir 0? veces ,omar una rama Cortar la rama con la tijera :ientras 'aya 'ojas sobre la vereda Harrer 'oja 'acia la pala Car#ar la pala con 'ojas 1epositar el contenido de la pala en la bolsa *n ambas instrucciones se debe evitar que se #eneren ciclos infinitos o que no finalicen nunca su ejecucin. Para esto es importante definir adecuadamente la condicin de fin de repeticin3iteracin. /l#oritmos y Pro#ramas Cap.0 L