You are on page 1of 46

INSTITUTO TECNOLGICO FISCAL FRANCISCO FEBRES CORDERO

ING. CHRISTIAN CORNEJO MSc. FACILITADOR

INTRODUCCIN
La computadora no solamente es una mquina que puede realizar procesos para darnos resultados, sin que tengamos la nocin exacta de las operaciones que realiza para llegar a esos resultados. Con la computadora adems tambin podemos disear soluciones a la medida, de problemas especficos que se nos presenten, ms aun si estos involucran operaciones matemticas complejas y/o repetitivas o requirieren del manejo de un volumen muy grande de datos.

El diseo de soluciones a la medida de nuestros problemas requiere como en otras disciplinas una metodologa que nos ensee de manera gradual, la forma de llegar a estas soluciones.
A las soluciones creadas por computadora se les conoce como programas y no son ms que una serie de operaciones que realiza la computadora para llegar a un resultado, con un grupo de datos especficos. Lo anterior nos lleva a un razonamiento de que un programa nos sirve para solucionar un problema especfico.

MANEJO DE LA INFORMACIN

COMPONENTES DE UN SISTEMA COMPUTARIZADO


Un sistema computarizado est conformado generalmente por dos elementos importantes, el Hardware y Software, relacionados entre s ntimamente, a tal punto que la una no puede prescindir de la otra y viceversa

HARDWARE
Cuanto ms memoria y capacidad de almacenamiento en disco tiene un computador ms trabajo puede realizar; es decir cunto ms rpidos sean la memoria y los disco para transmitir datos e instrucciones entre ellos y el CPU ms rpido se har el trabajo. Los problemas de manejo de informacin de un usuario pueden ser traducidos a un requerimiento de hardware, para lo cual se debe considerar entre otros aspectos los siguientes: Volumen de informacin a ser procesado (tamao de los archivos o bases de datos). Nmero de usuarios que trabajan simultneamente (nmero de terminales). Velocidad de procesamiento y transferencia.

ORGANIZACIN FSICA DE UNA COMPUTADORA

PERIFRICOS DE ENTRADA
TECLADO

MOUSE Mecnico ptico Inalmbrico

ESCNER

OTROS

PERIFRICOS DE SALIDA
MONITOR CRT (Tubo de rayos catdicos) LCD (Pantalla de cristal lquido)

IMPRESORA Matricial Inyeccin de tinta Lser

PLOTTER

OTROS

Unidad de Control (UC): controla y coordina todo el flujo de informacinEsta unidad establece que instruccin se ejecutara y adems establece el orden en que lo harn. Unidad Aritmtico Lgica (ALU). Se encarga de realizar las operaciones aritmticas bsicas: suma, resta, multiplicacin, divisin y potenciacin, y operaciones lgicas tales como: mayor que. menor que, igual que, diferente, etc.

RAM (Random Access Memory) o memoria de acceso aleatorio, guarda temporalmente la informacin procesada por el computador. Adems establece l nmero de programas y la cantidad de datos que pueden procesarse al mismo tiempo. Es de naturaleza voltil, pues al apagar la computadora o cortar el fluido elctrico la informacin se pierde. Es una memoria de lectura y escritura, es decir, puede ser modificada.

ROM (Read Only Memory) o Memoria de solo lectura, es fija, predefinida y permanente. Es la que contiene las instrucciones bsicas para el arranque y funcionamiento de la computadora.

SOFTWARE
En la dcada de los 70 solamente un 1% de la poblacin podan haber descrito ligeramente el concepto de software. Hoy la mayora de los profesionales y muchas personas en general piensan en su mayora que comprenden el software. Pero lo entienden realmente?. El software son instrucciones (programas de computadoras) que cuando se ejecutan proporcionan la funcin y el rendimiento deseados. El software es un conjunto de estructuras de datos que permiten a los programas manipular adecuadamente la informacin. El software son un conjunto de documentos que describen la operacin y el uso de programas. El software, es ms difcil de especificar. Los programas deben procesar adecuadamente las transacciones de negocios de la organizacin, e incluso la mas pequea puede tener transacciones complicadas

CARACTERSTICAS DEL SOFTWARE


E software es un elemento del sistema que es lgico, en lugar de fsico. Por lo tanto tiene caractersticas considerablemente distintas a las del software. El software se desarrolla, no se fabrica en un sentido clsico El software no se estropea. La mayora del software se construye a medida.

TIPOS DE SOFTWARE
Las siguientes reas del software indican la amplitud de las aplicaciones potenciales. Software de sistemas: compiladores, editores , etc. Software de tiempo real: controla sucesos del mundo real Software de acadmicos. gestin: nominas, inventarios, procesos contables,

Software de ingeniera y cientfico: manejo de nmeros (programas CAD)

Software empotrado: aplicaciones industriales, electrnicas, etc.


Software de computadoras personales: utilitarios Software de inteligencia artificial: redes neuronales, sistemas expertos, robtica, etc.

FACTORES EN LA CALIDAD DEL SOFTWARE


La construccin de un software de calidad requiere el cumplimiento de numerosas caractersticas. Entre ellas destacamos las siguientes: Eficiencia Portabilidad

Verificabilidad
Integridad Fcil de utilizar Robustez Extensibilidad Reutilizacin Compatibilidad

ABSTRACCIN Y PROGRAMACIN
En general un programa no es mas que la descripcin abstracta de un procedimiento o fenmeno que existe o sucede en el mundo real. Frecuentemente un programa imita un comportamiento o accin humana, otras veces simula o reproduce un fenmeno fsico. Podemos determinar entonces que la relacin abstraccin y lenguajes de programacin es doble, por un lado se utiliza un lenguaje de programacin para escribir un programa que es una abstraccin del mundo real, por otro lado se utiliza el lenguaje de programacin para describir de un modo abstracto.

PROGRAMACIN
Definicin: Se la puede entender como un grupo de tcnicas (metodologas) implementadas en algn lenguaje de programacin a partir de algoritmos computacionales que permiten resolver problemas abstrados de la realidad. Programar es un arte y depende mucho de la creatividad, la experiencia, el diseo del programador para desarrollar aplicaciones que resuelvan problemas planteados

TCNICAS DE PROGRAMACIN
Las ms comunes utilizadas por los programadores son: PROGRAMACIN ESTRUCTURADA: Se utiliza desde principios de la dcada de los 70 y es uno de los mtodos ms utilizados en el campo de la programacin. La tcnica descendente o refinamiento sucesivo comienza descomponiendo el programa en piezas manejables ms pequeas conocidas como funciones (subrutinas, procedimientos, subprogramas). Un programa estructurado se construye rompiendo el programa en funciones. Esta divisin permite escribir cdigo mas claro y mantener el control sobre cada funcin.

FUNCIN PRINCIPAL FACTURA

FUNCION DE BUSQUEDA DE DATOS DEL CLIENTE

FUNCION DE BUSQUEDA DE DATOS DEL PRODUCTO

FUNCION PARA CALCULOS

FUNCION PARA OBTENER LOS DESCUENTOS

FUNCION PARA MANTENIMIENTO DEL SISTEMA

PROCEDIMIENTO DE IMPRESIN

En conclusin la programacin estructurada es una metodologa que nos permite programar en bloques de forma que los algoritmos implementados en los diferentes procedimientos puedan ser entendidos y modificados fcilmente por las personas que estn manejando el programa, propiciando una no dependencia del programador al cdigo.

PROGRAMACIN ORIENTADA A OBJETOS: Es un mtodo de implementacin en que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representa una instancia de una clase.

La programacin orientada a objetos se construye en base a objetos, los objetos de un programa se comunican entre si a travs de mensajes, permite una representacin mas directa del modelo del mundo real en el cdigo.

LENGUAJES DE PROGRAMACIN
Los lenguajes de programacin tienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada/salida, calculo, manipulacin de textos, lgica/comparacin y almacenamiento/recuperacin. Los lenguajes de programacin permiten al programador expresar la manera de procesar los datos de una forma simblica. El conjunto de instrucciones y sentencias que escribe el programador en un lenguaje de alto nivel se denominan programa fuente. Estas son traducidas a lenguaje de maquina por medio de programas llamados compiladores e interpretes. Por ejemplo cuando un programador escribe:

Ingresar (A) Ingresar (B) Calcular (C=A+B) Visualizar (La respuesta es C)

EVOLUCIN DE LOS LENGUAJES DE PROGRAMACIN Intrpretes


Lenguajes de mquina.- Son aquellos que estn escritos en lenguajes directamente entendibles por la computadora, sus instrucciones son cadenas binarias es decir combinaciones de ceros (0) y unos (1), los mismos que especifican la operacin y las direcciones de memoria. Ej.: 1010 1001 1011 Lenguajes de bajo nivel.- Conocidos tambin como lenguajes ensambladores (Assembly language), utilizan cdigos para representar las operaciones y las direcciones de los operndos. Ej.: ADD, SUB, MUL Lenguajes de nivel medio.- Se encuentran relativamente dentro de un nivel alto pero contienen manejos de un nivel bajo. Ej.: Lenguaje C
Compiladores
LENGUAJES DE ALTO NIVEL

LENGUAJES DE NIVEL MEDIO

Lenguajes de alto nivel.- Debido a las grandes dificultades que tuvo el programador con los distintos lenguajes de programacin se vieron en la necesidad de crear nuevos lenguajes que evitaran estos LENGUAJES DE MAQUINA inconvenientes y es as como surgieron. Ej.: Pascal, Basic, Java, etc..

LENGUAJES DE BAJO NIVEL

ENFOQUE DEL PROBLEMA INFORMATICO


Resolver un problema consiste primero que nada en comprender de qu trata y especificarlo lo ms formalmente posible con el propsito de eliminar la ambigedad, la inconsistencia y la incompletitud, con miras a obtener un enunciado claro, preciso, conciso y que capture todos los requerimientos. Normalmente la especificacin en lenguaje natural lleva consigo problemas de inconsistencia, ambigedad e incompletitud; es por esto necesario el valerse de lenguajes ms formales como las matemticas (lgica, teora de conjuntos, lgebra, etc.) para evitar estos problemas. Ejemplo de ambigedad: la frase Mira al hombre en el patio con un telescopio se presta a ambigedad. Utilizamos un telescopio para mirar al hombre en el patio o el hombre que miramos tiene un telescopio?.

Ejemplo de inconsistencia: Por inconsistencia entendemos que en el enunciado podamos incurrir en contradicciones. Ejemplo sobre el procesador de palabras: -Todas las lneas de texto tienen la misma longitud, indicada por el usuario. -Un cambio de lnea debe ocurrir solo despus de una palabra, a menos que el usuario pida explcitamente la divisin por slabas. La inconsistencia resulta al preguntarse Si la palabra es ms larga que la lnea? Entonces si el usuario no pide explcitamente la divisin por slabas, esta lnea tendr mayor longitud.

Ejemplo de incompletitud: Por incompletitud se entiende que no todos los trminos estn bien definidos o que no estn capturados todos los requerimientos del problema. En un manual de un procesador de palabras se encuentra la frase.
Seleccionar es el proceso de designar las reas de su documento sobre las cuales desea trabajar qu significa designar, colocar el ratn dnde? Qu significa rea? Cmo deben ser las reas? Es una sola rea? En otras palabras, se trata de encontrar una representacin del problema donde todo est dicho, sea mediante grficos, o utilizando otro lenguaje distinto al natural (ej. Las matemticas). En esta etapa interviene el proceso de abstraccin, que permite simplificar el problema, buscando modelos abstractos equivalentes y eliminando informaciones superfluas.

Lgica: Es el arte de razonar. Programacin lgica: Es el tipo de programacin en la cual las sentencias son sentencias lgicas, tales como implicaciones lgicas, proposiciones lgicas, etc. Ninguna computadora por s sola puede realizar las tareas que se le encomiendan; para que la mquina pueda trabajar es necesario que alguien le indique qu debe hacer y cmo tiene que hacerlo. El conjunto de instrucciones que componen un programa debe codificarse en un lenguaje entendible por la mquina (lenguaje o cdigo de mquina); como han ido evolucionando los lenguajes, hoy es posible hacerlo con un lenguaje de alto nivel, lo ms prximo al lenguaje humano. Si queremos que una computadora lleve a cabo un proceso, antes que nada habr que programarla para ello. Tendremos que construir un programa que le indique qu pasos ha de seguir para efectuar dicho proceso de un modo totalmente correcto. Se desprende que, una computadora no tiene inteligencia por s sola, no olvidemos que la computadora es una mquina creada por el hombre y, por tanto, no podr realizar una tarea que no haya sido previamente determinada por l. El objetivo es, que frente a un problema dado, diseemos una solucin que pueda ser realizada por un computador. Para ello necesitamos: 1. Un lenguaje o notacin para expresar la solucin obtenida. 2. Escribirla en un lenguaje comprensible por la mquina, por ejemplo: BASIC, COBOL, Pascal, C, etc.

Partes de un programa Entrada de datos. La constituyen todas aquellas instrucciones que toman datos de un dispositivo externo, almacenndolos en la memoria central para que puedan ser procesados.

Proceso. Est formado por las instrucciones que modifican los objetos a partir de su estado inicial hasta el estado final, dejando stos disponibles en la memoria central.
Salida de resultados. Conjunto de instrucciones que toman los datos finales de la memoria central y los envan a los dispositivos externos.

Desarrollo de un programa El objeto de un programa es resolver un problema, si es muy complejo y extenso, no se podra programar en una sola etapa, entonces, el estudio se hace por etapas y para su programacin se divide en varias unidades y/o programas. A un problema de esta magnitud se lo denomina aplicacin y consta de un nmero ms o menos grande de programas.

El desarrollo de un programa comprende el conjunto de etapas que van desde el planteamiento del problema inicial en la fase de anlisis hasta su solucin informatizada a un costo razonable. Etapas:

A. Definicin o planteamiento del problema


El estudio y definicin del problema dan lugar al planteamiento del problema que se escribir en la documentacin del programa. Si no se sabe lo que se busca, no se lo reconoce si se lo encuentra. Es decir que, si no sabemos con claridad qu es lo que tenemos que resolver, no podremos encontrar una solucin. Aqu se declara cul es la situacin de partida y el entorno de datos de entrada, los resultados deseados, dnde deben registrarse y cul ser la situacin final a la que debe conducir el problema despus de ser implementado (procesado por el computador).

B. Anlisis del problema Teniendo en claro el problema a resolver, se hace un anlisis detallado de los datos, condiciones del problema y dems. El objetivo es, entonces, ayudar a comprender la naturaleza del problema, el cual debe estar bien definido si se desea llegar a una solucin satisfactoria. Para poder definir un problema con precisin se requiere que las especificaciones de entrada y salida sean descritas en detalle. Podemos enunciar pasos generales para realizar el anlisis del problema: a) Lectura previa: para obtener una idea general de lo que se solicita. b) Lectura detallada: para responder a las preguntas: c) Qu informacin debe proporcionar la solucin del problema? (Salida) Qu datos se necesitan para resolver el problema? (Entradas) En esta etapa, bsicamente, se identifica el problema y se decide qu tipo de solucin se requiere y si ello implica software, se definirn los requerimientos a cubrir. Si esa solucin requiere software, el analista definir las condiciones que debe cumplir:

Definicin de salida Contenido: es el tipo de informacin que se proporcionar y a qu nivel de detalle. Formato: cmo mostrar la informacin, por impresora, pantalla o grfico. Tiempo: periodicidad del informe; es decir, cundo necesita la informacin el usuario, por ejemplo diaria, semanalmente o mensualmente. Flexibilidad: los programas no deben ser rgidos, al punto de que no puedan ser modificados para adaptarse a condiciones cambiantes. Definicin de entrada Datos necesarios. Disponibilidad de los datos. Procedimientos para obtener informacin. Introduccin de los datos: cmo se ingresarn al sistema. Definicin de tareas de procesamiento Restricciones de personas: el software debe estar diseado de modo que el sistema d avisos claros a los usuarios acerca de lo que deben hacer, cundo hacerlo y cmo; para que los usuarios no deban estar especializados al hacer uso del sistema. Restricciones del equipo: el software debe estar diseado para trabajar en computadora, equipo perifrico y software de sistema que se encuentren a disposicin o sean factibles de adquirir.

C. El diseo del algoritmo En esta etapa del ciclo de vida de desarrollo de programas, los analistas trabajan con los requerimientos del software desarrollados en la etapa de anlisis, hasta la explicacin de la naturaleza de la solucin de programacin. Se determinan todas las tareas que cada programa realiza, como as tambin, la forma en que se organizarn estas tareas cuando se codifique el programa. Los problemas cuando son complejos, se pueden resolver ms eficientemente con la computadora cuando se descomponen en subproblemas que sean ms fciles de solucionar que el original. Este mtodo se denomina divide y vencers y consiste en dividir un problema complejo en otros ms simples que resulten de fcil visualizacin y comprensin, independizndose del resto del problema y sin ignorar la forma en que dichas partes interactan entre s.

D. Codificacin del programa En esta fase, se convierte el algoritmo en programa, escrito en un lenguaje de programacin de alto nivel como C, Pascal, Basic, etc. La codificacin del programa suele ser una tarea pesada que requiere un conocimiento completo de las caractersticas del lenguaje elegido para conseguir un programa eficaz. Sin embargo, si el diseo del algoritmo se ha realizado en detalle con acciones simples y con buena legibilidad, el proceso de codificacin puede reducirse a una simple tarea mecnica. Las reglas de sintaxis que regulan la codificacin variarn de un lenguaje a otro y el programador deber conocer en profundidad dichas reglas para poder disear buenos programas. El programa se codifica en hojas preparadas a tal fin. Una vez codificado, se teclea en la computadora. Para aumentar la productividad, es necesario adoptar una serie de normas, como ser:

Estructuras aceptables (programacin estructurada) Convenciones de nominacin: maneras uniformes de designacin de archivos y variables. Convenciones de comentarios

E. Fase de edicin y puesta a punto Edicin: consiste en grabar el programa ya codificado. El resultado es el programa fuente. Una vez obtenido el programa fuente, es necesaria su traduccin al cdigo mquina, ya que los programas escritos en un lenguaje de alto nivel no son directamente ejecutables por el computador , primero se traduce el programa fuente completo, obtenindose un cdigo intermedio o mdulo objeto (programa objeto); despus, se fusiona ste con rutinas o libreras necesarias para su ejecucin en un proceso llamado linkado y que obtiene como resultado un mdulo ejecutable (programa ejecutable). La puesta a punto consta de las siguientes etapas:

Deteccin de errores; Depuracin de errores; Localizacin; Eliminacin; Prueba del programa. Todo esto se hace para prevenir tantos errores como sea posible detectar a la hora de ejecutar el programa, tambin sirve para facilitar la deteccin y correccin de errores. Los errores tpicos que se presentan son: Errores de sintaxis Errores de lgica

F. Fase de documentacin del programa En el futuro, estos programas debern sufrir mantenimientos, actualizaciones y, para la explotacin del mismo es imprescindible la documentacin del mismo:
A nivel usuario, se provee un manual con instrucciones de cmo ejecutar el programa, descripcin de los comandos a utilizar, ejemplos de situaciones y una gua de cmo eliminar problemas que puedan surgir. A nivel programador, consta de ayudas que puedan simplificar el mantenimiento , incluyen descripcin del programa, herramientas de diseo utilizada, descripciones de entrada-salida, etc. Tambin se incluyen los procedimientos para probar el programa. Ayuda mucho que en el mismo programa fuente se agreguen comentarios sobre lo que se intenta hacer en cada bloque. A nivel operador, se dan instrucciones sobre qu unidades deben activarse, tamaos de papel, cintas, etc. Resulta beneficioso hacer y preparar la documentacin a lo largo de cada etapa de desarrollo.

D. Fase de explotacin del programa Consiste en el normal funcionamiento del programa para cumplir el objetivo para el que fue destinado. Esta fase es llevada a cabo por el usuario a lo largo del ciclo de vida del programa y corre a cargo de los usuarios de la entidad para la que ha sido desarrollada la aplicacin a la que pertenece el programa.

En sntesis, un programa de computadora es un conjunto de instrucciones rdenes dada a la mquina- que producirn la ejecucin de una determinada tarea. En esencia, un programa es un medio para conseguir un fin, ese fin es definido como la informacin necesaria para solucionar un problema. Una solucin a un problema puede no ser la nica, pueden haber varias. Estas soluciones, luego de ser formuladas y analizadas, permiten inferir en cul es la mejor solucin de todas las planteadas, con esto queremos afirmar que, en circunstancias bien determinadas se considerar una nica como la ms eficaz y eficiente.

OBJETOS DE UN PROGRAMA
Son objetos de un programa todos aquellos manipulados por las instrucciones. Mediante ellos, en un programa podremos realizar el almacenamiento de los datos y de los resultados de las distintas operaciones que intervienen en la solucin del problema. Todo objeto tiene sus atributos:
Nombre: Es con el cual se identifica al mismo. Para identificarlo se utiliza una secuencia de uno o ms caracteres en donde el primer carcter es una letra, los siguientes pueden ser letras , dgitos o algunos caracteres especiales (depende del lenguaje). No puede usarse un espacio como carcter de la secuencia. El espacio determina el fin de la secuencia. Es preferible que dicho nombre indique algo sobre el propsito para el cual se emplea. Nombres bien elegidos, no solo hacen los algoritmos ms fciles de leer y entender, sino tambin de modificar los ya escritos antes. EJEMPLOS: Sueldo, nom_cli, nom_prov, nom_prod, fecha, area, suma

Tipo: Es el conjunto de valores vlidos que puede tomar. Conjunto de caractersticas comunes que identifican todos los posibles estados que el objeto de ese tipo puede tomar. EJEMPLO: Numrico, carcter (texto), alfanumrico, fecha

Valor: Es el elemento del tipo que se le asigna. El cual puede variar al pasar de un estado a otro, otros sin embargo no cambian nunca su valor. Por tanto los objetos de un programa son como cajas con tapas en donde aparece adherida una etiqueta (nombre), sta caja tiene una forma determinada (tipo) y dentro de ellas hay almacenada informacin (valor).
CONSTANTE Es un objeto de valor invariable a lo largo de la ejecucin de un programa, es decir que tiene un valor concreto. Ejemplos: PI = 3.141592 e = 2.718281

VARIABLE Es un objeto cuyo valor puede ser modificado a lo largo de la ejecucin de un programa. Ejemplos: X=0 X=X+1

DECLARA X DEL TIPO NUMERICO DECLARA X DEL TIPO NUMERICO =

DECLARA NOMBRE DEL TIPO CARACTER DECLARA CONSTANTE

PI DEL TIPO REAL = 3,1415..

EXPRESIONES Las expresiones son combinaciones de constantes, variables, smbolos de operacin y nombres de funciones especiales. Una expresin consta de: Operandos Operadores Ejemplo: 5 + 3 Donde 5 y 3 son operandos y el signo + es el operador Segn el resultado de evaluar la expresin sea un nmero, una serie alfanumrica o uno de los valores lgicos (Verdadero o Falso), es decir, segn el tipo de objetos que manejan, las expresiones se clasifican en: Expresiones aritmticas: anlogas a frmulas matemticas, en donde se utilizan: a) operadores tipo aritmticos y b) variables y constantes numricas (reales o enteras). Ejemplo: - 8 * 2 + 4 / 2 3 PI * SQR(X) Expresiones alfanumricas: se utilizan operadores alfanumricos y producen resultados de tipo alfanumricos. Ejemplo: Lic. + NOM

Expresiones relacionales: Se utilizan operadores relacionales. Se compara entre dos valores del mismo tipo, es decir que los operandos son ambos numricos, ambos carcter o ambos del tipo lgico. El resultado de la evaluacin de una expresin relacional es de tipo lgico: Falso o Verdadero. Ejemplo: A + B < = A * B Expresiones lgicas: Se utilizan operadores lgicos. El resultado de este tipo de expresin es un valor lgico: Falso o Verdadero, el cual se deduce de analizar la tabla de verdad correspondiente a los conectores lgicos. Ejemplo: A > 10 AND A < 20

OPERADORES Clasificacin de los operadores que conectan los objetos en las expresiones, segn su tipo:

Cuando en una expresin aparece ms de un operador de cualquier tipo, el orden de evaluacin comienza por el operador de mayor prioridad; si dos o ms operadores son de la misma prioridad se evalan de izquierda a derecha. Ejemplo:

4+5-3**2

4 + 5 - 3 ** 2
2

You might also like