P. 1
Estructura de Datos

Estructura de Datos

|Views: 630|Likes:

More info:

Published by: Yeferson Carrasquero on May 02, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

04/24/2013

pdf

text

original

Sections

  • FIN DE PROGRAMA
  • Admite tantas condiciones como necesite el programador. MUY USADO
  • BIENVENIDO AL PROGRAMA
  • INICIO DEL PROGRAMA
  • FIN DEL PROGRAMA Bucle do .. while
  • A + (B + C) = (A + B) + C
  • 3. Análisis Económico y Técnico
  • 7. Análisis de Sistemas de Apoyo a Decisiones Semiestructuradas
  • EJERCICIO:
  • RESUMEN

Introducción a los tipos de datos Una definición muy simple: El tipo de un dato es el conjunto de valores que puede tomar

durante el programa. Si se le intenta dar un valor fuera del conjunto se producirá un error. La asignación de tipos a los datos tiene dos objetivos principales: Por un lado, detectar errores en las operaciones Por el otro, determinar cómo ejecutar estas operaciones De Pascal se dice que es un lenguaje fuertemente tipeado. Esto quiere decir que todos los datos deben de tener un tipo declarado explícitamente, y además que existen ciertas restricciones en las expresiones en cuanto a los tipos de datos que en ellas intervienen. Una ventaja de los lenguajes fuertemente tipeados es que se gasta mucho menos esfuerzo en depurar (corregir) los programas gracias a la gran cantidad de errores que detecta el compilador. Los tipos de datos, como casi todos los objetos de Pascal, se pueden declarar. La declaración de tipos ya se comentó en el tema correspondiente a la estructura de un programa.

Clasificaciones en los tipos de datos En Pascal existen gran variedad y cantidad de tipos de datos. Pero en este tutorial sólo se trataran los básicos para que puedas ir construyendo tus primeros programas. Existen muchas clasificaciones para los tipos de datos, y dependiendo de la fuente que mires, te mostrarán una u otra. A continuacón tienes una de las posibles clasificaciones.:

Dinámicos, Estáticos, El tipo cadena, Estructurados, Simples, Ordinales, Noordinales.

Tipos estáticos Casi todos los tipos de datos son estáticos, la excepción son los punteros y no se tratarán debido a su complejidad. Que un tipo de datos sea estático quiere decir que el tamaño que ocupa en memoria no puede variar durante la ejecución del programa. Es decir, una vez declarada una variable de un tipo determinado, a ésta se le asigna un trozo de memoria fijo, y este trozo no se podrá aumentar ni disminuír. Tipos dinámicos Dentro de esta categoría entra sólamente el tipo puntero. Este tipo te permite tener un mayor control sobre la gestión de memoria en tus programas. Con ellos puedes manejar el tamaño de tus variables en tiempo de ejecución, o sea, cuando el programa se está ejecutando. Los punteros quizás sean el concepto más complejo a la hora de aprender un lenguaje de programación, sobre todo si es el primero que aprendes. Debido a esto, no lo trataremos. Además, lenguajes que están muy de moda (por ejemplo Java) no permiten al programador trabajar con punteros. Tipos simples Como su nombre indica son los tipos básicos en Pascal. Son los más sencillos y los más fáciles de aprender. Por todo esto, serán en los que nos centremos. Los tipos simples más básicos son: entero, lógico, carácter y real. Y la mayoría de los lenguajes de programación los soportan, no como ocurre con los estructurados que pueden variar de un lenguaje a otro.

Tipos estructurados Mientras que una variable de un tipo simple sólo referencia a un elemento, los estructurados se refieren a colecciones de elementos. Las colecciones de elementos que aparecen al hablar de tipos estructurados son muy variadas: tenemos colecciones ordenadas que se representan mediante el tipo array, colecciones sin orden mediante el tipo conjunto, e incluso colecciones que contienen otros tipos, son los llamados registros. Tipos ordinales Dentro de los tipos simples, los ordinales son los más abundantes. De un tipo se dice que es ordinal porque el conjunto de valores que representa se puede contar, es decir, podemos establecer una relación uno a uno entre sus elementos y el conjunto de los números naturales. Dentro de los tipos simples ordinales, los más importantes son: El tipo entero (integer) El tipo lógico (boolean) El tipo carácter (char)

Tipos no-ordinales Simplificando, podríamos reducir los tipos simples no-ordinales al tipo real. Este tipo nos sirve para declarar variables que pueden tomar valores dentro del conjunto de los números reales. A diferencia de los tipos ordinales, los noordinales no se pueden contar. No se puede establecer una relación uno a uno entre ellos y los número naturales. Dicho de otra forma, para que un conjunto se considere ordinal se tiene que poder calcular la posición, el anterior elemento y el siguiente de un elemento cualquiera del conjunto.¿Cuál es el sucesor de 5.12? Será 5.13, o 5.120, o 5.121, ...

Los tipos básicos que nos interesan Después de ver una de las posibles clasificaciones para los tipos de datos, pasemos a ver los que nos interesan: los tipos simples. Realmente de los tipos simples veremos los más básicos, que son: integer, boolean, char y real. Además, también hablaremos un poco de las cadenas de caracteres, los llamados strings. Nota: a continuación sólo se comentará qué es cada tipo, no se explicará su declaración, esto puedes verlo si vas a la sección correspondiente. El tipo integer (entero) Como ya habrás leído el tipo de datos entero es un tipo simple, y dentro de estos, es ordinal. Al declarar una variable de tipo entero, estás creando una variable numérica que puede tomar valores positivos o negativos, y sin parte decimal. Este tipo de variables, puedes utilizarlas en asignaciones, comparaciones, expresiones aritméticas, etc. Algunos de los papeles más comunes que desarrollan son: Controlar un bucle, Usarlas como contador, incrementando su valor cuando sucede algo, Realizar operaciones enteras, es decir, sin parte decimal y muchas más. A continuación tienes un ejemplo en el que aparecen dos variables enteras. Como puedes ver, en el ejemplo se muestran las dos maneras de declarar una variable de tipo entero:

type tContador = integer; var i : tContador; n : integer; begin

Nos sirven para mantener el estado de un objeto mediante dos valores: si/no cierto/falso funciona/no funciona on/off etc.i). su utilidad salta a la vista.n := 10. El tipo boolean (lógico) El tipo de datos lógico es el que te permite usar variables que disponen sólo de dos posibles valores: cierto o falso. Para aclararlo. y no es otra que variables de chequeo. i := i + 1 end end. (* si llueve o no *) . veamos un ejemplo: type tLogico = boolean. var llueve : tLogico. (* asignamos valor al maximo *) i := 1. Debido a esto. (* asignamos valor al contador *) while (i <= n) do begin writeln('El valor de i es '.

6174 . Este es un tipo importante para los cálculos. En el puedes ver las dos formas de declarar una variable real. El tipo real (real) Como ya has visto. El tipo de datos real es el que se corresponde con los números reales. (* si encuentro o no el paraguas *) begin (* aqui se determinarian los valores de "llueve" y "paraguas" *) if llueve and (not paraguas) then writeln('Me quedo en casita') else writeln('Me voy a dar un paseo') end. ya que se caracterizan por tratar fundamentalmente con valores decimales.1416 A continuación tienes un ejemplo en el que se utiliza el tipo real. Pascal soporta el conjunto entero de números. Por ejemplo en los estadísticos. también te permite trabajar con números pertenecientes al conjunto real. Pero no es el único. el resultado de ejecutar el programa compilado es: El area para un radio de 3. Por ejemplo: 3. Por si tienes curiosidad.14 es 63. te advierto que en Pascal y en todos los lenguajes de programación se escribe con un punto. y tambíen el uso de una constante real. Nota: Aunque pueda que estés acostumbrado a escribir con coma los decimales.paraguas : boolean.

1416. Por ejemplo. etc. var A : tArea. con las cadenas de caracteres (strings) puedes contener en una sóla variable más de un carácter. .' es '. (* variable para almacenar el nombre *) letra_NIF : char. (* caracter para contener la letra del NIF *) begin nombre := 'Beni'.R:4:2. type tArea = real. puedes tener en una variable tu nombre.A:8:4) end. cada variable sólo podrá almacenar un carácter. (* radio *) begin R := 4. Pero ojo. A := pi * R * R. (* area *) R : real.const pi = 3. un número. (* calculamos el area *) writeln('El area para un radio de '.50. Es decir. puedes usar variables o constantes que representen un valor alfanumérico. Veamos cómo se usan ambos tipos en el siguiente ejemplo type tNombre = string[10]. Sin embargo. (* puede almacenar 10 caracteres *) var nombre : tNombre. Los tipos char y string (carácter y cadena) Con el tipo carácter puedes tener objetos que representen una letra.

Operadores Los operadores son símbolos especiales que por lo común se utilizan en expresiones.letra_NIF) end. Operador Significado Ejemplo Operadores aritméticos + Suma a + b Resta a .b) *= Multiplicación y asignación a *= b (a=a * b) /= División y asignación a / b (a=a / b) %= Módulo y asignación a % b (a=a % b) Operadores relacionales == Igualdad a == b != Distinto a != b < Menor que a < b > Mayor que a > b <= Menor o igual que a <= b >= Mayor o igual que a >= b Operadores especiales ++ Incremento a++ (postincremento) .letra_NIF := 'L'.' y mi letra es '. El tipo de dato del valor regresado por una expresión depende de los elementos usados en la expresión. operadores y llamadas de métodos construida de acuerdo a la sintaxis del lenguaje que devuelve un valor. Expresiones y Operadores Expresión Una expresión es una combinación de variables. writeln('Mi nombre es '.b * Multiplicación a*b / División a/b % Módulo a%b Operadores de asignación = Asignación a = b += Suma y asignación a += b (a=a + b) -= Resta y asignación a -= b (a=a . La tabla siguiente muestra los distintos tipos de operadores que utiliza Java.nombre.

Carácter. [] () Los corchetes se utilizan para los arreglos ++ -. Cadena de caracteres o dato textual. Acceso a variables y métodos a = obj. . éstos son listados en orden de precedencia. Los operadores en la misma fila tienen igual precedencia Operador Notas . Valor lógico.(postdecremento) --a (predecremento) (tipo)expr Cast a = (int) b + Concatenación de cadenas a = "cad1" + "cad2" .var1 () Agrupación de expresiones a = (a + b) * c La tabla siguiente muestra la precedencia asignada a los operadores.! ~ ! es el NOT lógico y ~ es el complemento de bits new (tipo)expr new se utiliza para crear instancias de clases * / % Multiplicativos +Aditivos << >> >>> Corrimiento de bits < > <= >= Relacionales == != Igualdad & AND (entre bits) ^ OR exclusivo (entre bits) | OR inclusivo (entre bits) && AND lógico || OR lógico ?: Condicional = += -= *= /= %= &= ^= |= <<= >>= >>>= Asignación Todos los operadores binarios que tienen la misma prioridad (excepto los operadores de asignación) son evaluados de izquierda a derecha.++a (preincremento) -Decremento a-. Los operadores de asignación son evaluados de derecha a izquierda. Expresiones Una expresión es una instrucción o sentencia que devuelve un valor llamado valor de retorno y que asigna a una variable un Dato numérico.

Son los siguientes: Suma + Resta – Producto * División / Resto de la división entera o módulo % Incremento unitario ++ Decremento unitario – Incremento de cien en cien +=100 Decremento de cien en cien -=100 NOTA: se muestran algunos ejemplos del operador módulo o resto de la división entera de dos números. De comparación. De asignación. Sólo muestran las líneas asociadas a la explicación. Aritméticos Manipulan datos numéricos.Ejemplo 1:NOTA: los listados que no tienen número de línea no son códigos completos. Ejemplo 2: Operadores Un operador permite relacionar dos datos en una expresión y evaluar el resultado de una operación. Debe tenerse en mente que Dividendo=(Divisor*Cociente)+Resto . Tipos: Aritméticos. Lógicos.

5%3.5 7.5%35=7.5 7.5 Ejemplo 1: muestra por consola una serie de resultados asociados a cálculos sencillos realizados con los operadores aritméticos.5=1.5=0. Código fuente Por consola: 5 1 6 1 . Todos los códigos en c:\cursojava\tema2 o en jcreator_home\MyProjects\tema2 si se emplea JCreator.Ejemplo 1: 20%7 es igual a 6 ya que 20=7*2+6 Ejemplo 2: 1%3 es igual a 1 ya que 1=3*0+1 Este operador puede aplicarse a números decimales: verificar que 75%3.

bien el numerador o el denominador. Si se quiere obtener la división incluyendo decimales.1NOTA: sólo aparece la parte entera de la división por que se trabaja con dos números almacenados en variables enteras. deberían declararse como double o float. Ejemplo 2: se muestra el uso del operador de incremento unitario Código fuente Por consola: Valor de x: 11 Ejemplo 3: se analiza el empleo de los operadores de incremento o decremento cuando se emplean para asignar valores a otras variables Código fuente Por consola: Valor de x: 11 Valor de y: 10 Ejemplo 4: .

Código fuente Por consola: Valor de x: 11 Valor de y: 11 De asignación Transfieren datos de una variable a otra. Son los siguientes: x+=y x=x+y x-=y x=x-y x*=y x=x*y x/=y x=x/y x%=y x=x%y Es el módulo o resto de una división Ejemplo 1: Código fuente Por consola: Valor de z: 8 .

Son los siguientes: == igual (no confundir con el = de asignación) != distinto < mayor que < menor que >= mayor o igual que <= menor o igual que Ejemplo: .FIN DE PROGRAMA Ejemplo 2: Código fuente Por consola: El valor de a es 9 y el de b es 27 FIN DE PROGRAMA De comparación Comparan dos datos y devuelven un valor booleano.

si alguna es falsa. devuelve false. Ejemplo 1: Código fuente Por consola: Valor de z: true FIN DE PROGRAMA Ejemplo 2: . se devuelve un valor booleano true. || (O lógico): si alguna de las expresiones lógicas que se evalúa es verdadera. si todas son falsas. Son los siguientes: && (Y lógico): si todas las expresiones lógicas que se evalúan son verdaderas se devuelve un valor booleano true. devuelve false. ! (NOT): invierte el valor de una expresión booleana.Código fuente Por consola: Valor de z: true FIN DE PROGRAMA Lógicos Concatenan expresiones lógicas con objeto de evaluar si es cierto o falso el conjunto de las expresiones.

. es decir true o false. else Se emplea cuando se quiere ejecutar un bloque de código siempre y cuando se cumplan una o varias condiciones. Sintaxis: Ejemplo: . Estas condiciones devuelven un valor booleano.Código fuente Por consola: Valor de z: true FIN DE PROGRAMA Condicional simple if .

aunque si se escribe. Luis tiene 24 años. FIN DE PROGRAMANOTA 1: si el bloque de código del if tienen una sola línea de código no es necesario utilizar llave. por consola se mostrará: Luis no es mayor de edad y no puede votar Luis tiene 16 años Operador ternario Se emplea para asignar valores a una variable en función del cumplimiento o no de una condición.Código fuente Por consola: Luis es mayor de edad y puede votar. Es decir. no da error. Sintaxis: los paréntesis son opcionales algunaVariable=(condición que devuelve un valor booleano) ? (valor si devuelve true) : (valor si devuelve false)NOTA: los valores que se devuelven deben ser compatibles con los que admite la variable que se inicializa . Lo mismo ocurre con el bloque de código alternativo NOTA 2: si no se escribe el else opcional y no se cumple la condición del if. entonces se ejecutará el bloque de código del else. Su sintaxis se basa en tres términos. el programa continúa ejecutándose pasando a las siguientes líneas de código NOTA 3: si se cambia el valor de la variable int edadLuis a 16.

... Se estudiará en profundidad más adelante. else Admite tantas condiciones como necesite el programador. else if . etc .Ejemplo: en este ejemplo se muestra el funcionamiento del operador ternario y se introduce la variable referenciada String. Código fuente Por consola: Pedro es mayor de edad y puede votar Condicional compuesto if . MUY USADO Sintaxis: .. que se utiliza para almacenar cadenas de texto. else if .

Lo mismo ocurre con el bloque de código alternativo Ejemplo: Código fuente Por consola: BIENVENIDO AL PROGRAMA Pedro y Luis son mayores de edad Pedro y Luis pueden votar FIN DE PROGRAMA Condicional switch Es parecido o similar a la estructura if(). Limitación 2: en esa condición se presupone que el operador de relación es la igualdad (==). .else.. No son validos los operadores && y ||.else if()..NOTA: si el bloque de código de los if tienen una sola línea de código no es necesario utilizar llaves.. pero con ciertas limitaciones: Limitación 1: sólo admite una condición.. no da error.else if()... aunque si se escriben.

Si no hay ningún case coincidente. salga del switch.Limitación 3: la variable asociada a la condición sólo puede ser de tipo byte. int o char. cuando encuentre el primer case coincidente con el valor de la variable evaluada.NOTA 1: no se puede repetir ningún case con el mismo valor. se ejecuta el código asociado a default. debe agregarse a cada case la instrucción break del siguiente modo: . short. Se produce error de compilación NOTA 2: si se quiere que el programa. ninguna otra es válida. Ejemplo 1: Código fuente Por consola: El operador es + El operador es * El operador es / Operador desconocido FIN DE PROGRAMA Explicación: Se ejecutan todas las instrucciones a partir del segundo case (es el que coincide con la variable operador).

Sintaxis: .Ejemplo 2: Código fuente Por consola: El operador es + FIN DE PROGRAMA Bucle for Estructura utilizada para ejecutar una o varias líneas de código un determinado número de veces. Este número de veces depende del cumplimiento de una condición fijada por el programador.

En este momento sólo se podría hacer de la siguiente manera: Código fuente Por consola: 0 1 2 3 4 FIN DE PROGRAMA Este ejemplo se hace mucho mejor y con menos trabajo para el programador mediante un bucle for: .Ejemplo 1: se quiere desarrollar un programa que muestre por consola los números del 0 al 4.

out. Código fuente Por consola: 01234FIN DE PROGRAMA Sentencias break.Código fuente Si se modifica la línea System. Puede emplearse para truncar bucles cuando no haya más código después del bucle Ejemplo 1: .out.println(i) por System. Su ejecución provoca que se salga del bucle o etiqueta que se esté ejecutando sin finalizar el resto de las sentencias asociadas al mismo.print(i) no se insertará una línea vacía después de cada número. Return Se utiliza para truncar la ejecución de un método o para almacenar el dato que devuelven. aparecerán todos en la misma línea. return y continue Break Aplicable dentro de bucles y estructuras condicionales de tipo switch.

Si se sustituye break por return.Código fuente Por consola: 012 Fuera del bucle NOTA: se sale del bucle en el momento en que i llega a 3. se trunca la ejecución del método main Por consola: 012 Ejemplo 2: Código fuente Por consola: Primera linea de unMetodo Has introducido 10 FIN DE PROGRAMA .

pero con la siguiente iteración "i+1". Se pueden poner los que se consideren necesarios.2 4.1 2. Código fuente Por consola: 0 1 2 4 5 6 7 8 9 10 Fuera del bucle Bucles anidados Es uno o más bucles for dentro de otro.Continue: Aplicable sólo a bucles.3 2.3 4.1 4.2 2.2 1.2 3.1 3.3 FIN DE PROGRAMA .3 3. Finaliza la iteración "i" que en ese momento se está ejecutando (significa que no ejecuta el resto de sentencias hasta el final del bucle) y vuelve a analizar la condición del bucle. Ejemplo 1: Código fuente Por consola: INICIO DEL PROGRAMA 1.1 1.

Sintaxis: NOTA: si el bloque de código que se repite tiene una sola línea no son necesarias las llaves .Ejemplo 2: Código fuente Por consola: 11 12 13 14 15 21 22 23 24 25 31 32 33 34 35 41 42 43 44 45 51 52 53 54 55 Bucle while Estructura utilizada para repetir una o varias líneas de código siempre y cuando se cumpla una condición.

Sintaxis: NOTA: si el bloque de instrucciones que se repite tiene una sola línea no son necesarias las llaves Ejemplo: realizar un programa que muestre por consola los números enteros comprendidos entre el 0 y el 5 ambos incluidos..Ejemplo: realizar un programa que muestre por consola los números enteros comprendidos entre el 0 y el 5 ambos incluidos.. while Es casi igual al anterior: la diferencia estriba en que un bucle do. el bloque de código encerrado dentro del bucle. al menos una vez. independientemente del valor booleano que devuelva la condición del while..while se ejecuta. Código fuente Por consola: 0 1 2 3 4 5 FIN DEL PROGRAMA Bucle do . Código fuente .

Se trata ahora de mostrar por consola los caracteres Unicode del alfabeto occidental sabiendo que están contenidos en el intervalo [0. que Java emplea para representar caracteres este código.255].Código de caracteres Unicode Ya se especificó cuando se estudió la variable primitiva char. Propiedades de la suma de matrices Interna: La suma de dos matrices de orden m x n es otra matriz dimensión m x n. Para ello se utilizará un bucle for Código fuente Suma de matrices Si las matrices A=(aij) y B=(bij) tienen la misma dimensión. Elemento opuesto: . la matriz suma es: A+B=(aij+bij). La matriz suma se obtienen sumando los elementos de las dos matrices que ocupan la misma misma posición. Asociativa: A + (B + C) = (A + B) + C Elemento neutro: A+0=A Donde O es la matriz nula de la misma dimensión que la matriz A.

Defina las funciones que debe realizar el Software. Divida en forma jerárquica los modelos que representan la información. Represente el comportamiento del software a consecuencias de acontecimientos externos. que son Programas de computadora. Para conseguir este objetivo. Hardware. exactas y efectivas (Computadoras. La función del Análisis puede ser dar soporte a las actividades de un negocio. son los operadores o usuarios directos de las herramientas del Sistema. Personal. Un método. . dispositivos electrónicos y electromecánicos. lectores. con estructuras de datos y su documentación que hacen efectiva la logística metodología o controles de requerimientos del Programa. que proporcionan una función externa dentro de los Sistemas.A + (−A) = O La matriz opuesta es aquella en que todos los elementos están cambiados de signo. que proporcionan capacidad de cálculos y funciones rápidas. También es un conjunto o arreglo de elementos para realizar un objetivo predefinido en el procesamiento de la Información. Un conjunto de hechos. un Sistema basado en computadoras hace uso de seis (6) elementos fundamentales: Software. o desarrollar un producto que pueda venderse para generar beneficios. Censores. funciones y comportamiento. Conmutativa: A+B=B+A Análisis de Sistemas de Computación Conceptos y Análisis Es un conjunto o disposición de procedimientos o programas relacionados de manera que juntos forman una sola unidad. bombas. El proceso debe partir desde la información esencial hasta el detalle de la Implementación.). principios y reglas clasificadas y dispuestas de manera ordenada mostrando un plan lógico en la unión de las partes. maquinarias. etc. plan o procedimiento de clasificación para hacer algo. Esto se lleva a cabo teniendo en cuenta ciertos principios: Debe presentarse y entenderse el dominio de la información de un problema.

personal. y otra información descriptiva que detalla o da instrucciones sobre el empleo y operación del Programa. Software. Procedimientos. el cliente prepara un documento conceptual del proyecto. Un Análisis de Sistema se lleva a cabo teniendo en cuenta los siguientes objetivos en mente: Identifique las necesidades del Cliente. y otros elementos del Sistema. se analizan las perspectivas del cliente. 2. líneas de mercadeo y otros puntos que puedan ayudar a la identificación y desarrollo del proyecto. sobre la planificación temporal y presupuestal. Realice un Análisis Técnico y económico. y administración de base de datos. Establezca las restricciones de presupuestos y planificación temporal. Cree una definición del sistema que forme el fundamento de todo el trabajo de Ingeniería. Evalúe que conceptos tiene el cliente del sistema para establecer su viabilidad. Algunos autores suelen llamar a esta parte &uml. e identifican las metas globales. formularios. Manuales. Para lograr estos objetivos se requiere tener un gran conocimiento y dominio del Hardware y el Software. aunque es recomendable que este se elabore durante . Asigne funciones al Hardware. en este proceso en Analista se reúne con el cliente y/o usuario (un representante institucional. Evaluación y Síntesis. Análisis de Requisitos ¨ y lo dividen en cinco partes: Reconocimiento del problema. Objetivos del Análisis Identificación de Necesidades Es el primer paso del análisis del sistema. base de datos. departamental o cliente particular). o pasos que definen el uso especifico de cada uno de los elementos o componentes del Sistema y las reglas de su manejo y mantenimiento.Base de Datos. Especificación. Antes de su reunión con el analista. Documentación. así como de la Ingeniería humana (Manejo y Administración de personal). Revisión. una gran colección de informaciones organizadas y enlazadas al Sistema a las que se accede por medio del Software. sus necesidades y requerimientos. Modelado.

Estudio de Viabilidad Muchas veces cuando se emprende el desarrollo de un proyecto de Sistemas los recursos y el tiempo no son realistas para su materialización sin tener perdidas económicas y frustración profesional. Viabilidad Legal Es determinar cualquier posibilidad de infracción. Análisis Económico y Técnico El análisis económico incluye lo que llamamos. si el riesgo del proyecto es alto. Viabilidad Técnica Un estudio de funciones. sin embargo se deben tomar en cuenta cuatro áreas principales de interés: Viabilidad económica Una evaluación de los costos de desarrollo. Una evaluación de los enfoques alternativos del desarrollo del producto o Sistema. rendimiento y restricciones que puedan afectar la realización de un sistema aceptable. la viabilidad de producir software de calidad se reduce. Muchas veces en el desarrollo de Sistemas de Computación estos son intangibles y resulta un poco dificultoso evaluarlo. La viabilidad y el análisis de riesgos están relacionados de muchas maneras. significa una valoración de la inversión económica comparado con los beneficios que se obtendrán en la comercialización y utilidad del producto o sistema.la comunicación Cliente – analista. ya que de hacerlo el cliente solo de todas maneras tendría que ser modificado. El estudio de la viabilidad puede documentarse como un informe aparte para la alta gerencia. 3. Alternativas. comparados con los ingresos netos o beneficios obtenidos del producto o Sistema desarrollado. violación o responsabilidad legal en que se podría incurrir al desarrollar el Sistema. durante la identificación de las necesidades. esto varia de acuerdo a la . el análisis de costos – beneficios.

Diseño de sistemas de computación Conceptos y principios El Diseño de Sistemas se define el proceso de aplicar ciertas técnicas y principios con el propósito de definir un dispositivo. si hay riesgos de que no funcione. un proceso o un Sistema. Sin embargo cuando aquello que construiremos es un Software. Especificaciones del Sistema Es un Documento que sirve como fundamento para la Ingeniería Hardware. software. fiabilidad.características del Sistema. Los resultados obtenidos del análisis técnico son la base para determinar sobre si continuar o abandonar el proyecto. pero en menor escala (mas pequeño). 4. Los modelos se concentran en lo que debe hacer el sistema no en como lo hace. información y comportamiento del Sistema. Describe la función y rendimiento de un Sistema basado en computadoras y las dificultades que estarán presente durante su desarrollo. el Analista evalúa los principios técnicos del Sistema y al mismo tiempo recoge información adicional sobre el rendimiento. con suficientes detalles como para permitir su interpretación y realización física. Las Especificaciones de los requisitos del software se produce en la terminación de la tarea del análisis. nuestro modelo debe tomar una forma diferente. o si las piezas no encajan perfectamente unas con otras. deben representar todas las funciones y subfunciones de un Sistema. no tenga el rendimiento deseado. Aviones. Modelado de la arquitectura del Sistema Cuando queremos dar a entender mejor lo que vamos a construir en el caso de edificios. Maquinas. . Herramientas. Base de datos. se crea un modelo idéntico. características de mantenimiento y productividad. El análisis de costos – beneficios es una fase muy importante de ella depende la posibilidad de desarrollo del Proyecto. e ingeniería Humana. estos modelos pueden incluir notación gráfica. En el Análisis Técnico. Todos los Sistemas basados en computadoras pueden modelarse como transformación de la información empleando una arquitectura del tipo entrada y salida.

El Diseño de procedimientos Transforma elementos estructurales de la arquitectura del programa. con los sistemas que operan junto con el y con los operadores y usuarios que lo emplean. se deben establecer criterios técnicos para un buen diseño como son: . La importancia del Diseño del Software se puede definir en una sola palabra Calidad. El Diseño del Software es un proceso y un modelado a la vez.La etapa del Diseño del Sistema encierra cuatro etapas: El diseño de los datos Trasforma el modelo de dominio de la información. El Diseño Arquitectónico Define la relación entre cada uno de los elementos estructurales del programa. El proceso de Diseño es un conjunto de pasos repetitivos que permiten al diseñador describir todos los aspectos del Sistema a construir. El Diseño es la única manera de materializar con precisión los requerimientos del cliente. en las estructuras de datos necesarios para implementar el Software. El Diseño debe proporcionar una completa idea de lo que es el Software. El Diseño de la Interfaz Describe como se comunica el Software consigo mismo. dentro del diseño es donde se fomenta la calidad del Proyecto. A lo largo del diseño se evalúa la calidad del desarrollo del proyecto con un conjunto de revisiones técnicas: El diseño debe implementar todos los requisitos explícitos contenidos en el modelo de análisis y debe acumular todos los requisitos implícitos que desea el cliente. Para evaluar la calidad de una presentación del diseño. enfocando los dominios de datos. Debe ser una guía que puedan leer y entender los que construyan el código y los que prueban y mantienen el Software. creado durante el análisis. funcional y comportamiento desde el punto de vista de la Implementación.

se debe hacer una partición lógica del Software en elementos que realicen funciones y subfunciones especificas. verbal o impresora y seleccionar el medio de salida. como si se fuera a emplear para guardar detalles de las transacciones. El diseño debe ser modular. Decidir si la información será presentada en forma visual. Diseño de Archivos Incluye decisiones con respecto a la naturaleza y contenido del propio archivo. Sin embargo cuando se realiza un sistema. Debe conducir a interfaces que reduzcan la complejidad de las conexiones entre los módulos y el entorno exterior. Entre las decisiones que se toman durante el diseño de archivos. Metodología sistemática y una revisión exhaustiva. El proceso de Diseño del Software exige buena calidad a través de la aplicación de principios fundamentales de Diseño. Debe producir un diseño usando un método que pudiera repetirse según la información obtenida durante el análisis de requisitos de Software. 5.Un diseño debe presentar una organización jerárquica que haga un uso inteligente del control entre los componentes del software. se encuentran las siguientes: Los datos que deben incluirse en el formato de registros contenidos en el archivo. Estos criterios no se consiguen por casualidad. . La longitud de cada registro. Para la mayoría de los usuarios la salida es la única razón para el desarrollo de un Sistema y la base de evaluación de su utilidad. indexada o relativa). Diseño de la Salida En este caso salida se refiere a los resultados e informaciones generadas por el Sistema. como analistas deben realizar lo siguiente: Determine que información presentar. es decir. Debe producir módulos que presenten características de funcionamiento independiente. Decida como distribuir la salida entre los posibles destinatarios. concebir y planear algo en la mente. con base en las características de los datos que contenga. La secuencia a disposición de los registros dentro del archivo (La estructura de almacenamiento que puede ser secuencial. o información de referencia. así como hacer un dibujo o modelo o croquis. Cuando se va a diseñar un Sistema de Computadoras se debe tener presente que el proceso de un diseño incluye. Disponga la presentación de la información en un formato aceptable. datos históricos. Un diseño debe contener abstracciones de datos y procedimientos.

reportes y otros medios de entrada y salida. tales como entradas. Herramientas para el desarrollo de Sistemas Estas herramientas nos ayudan como analistas a trasladar diseños en aplicaciones funcionales.No todos los sistemas requieren del diseño de todos los archivos. así como la documentación correspondiente. procesamiento y especificaciones de control. 6. Diseño de Interacciones con la Base de Datos La mayoría de los sistemas de información ya sean implantado en sistemas de cómputos grandes o pequeños. mensajes y encabezados sobre las pantallas de las terminales. Herramientas para presentación Se utilizan para describir la posición de datos. incluyendo procedimientos y controles. en este caso el diseñador no construye la base de datos sino que consulta a su administrador para ponerse de acuerdo en el uso de esta en el sistema. utilizan una base de datos que pueden abarcar varias aplicaciones. Herramientas para el Diseño de Sistemas Apoyan el proceso de formular las características que el sistema debe tener para satisfacer los requerimientos detectados durante las actividades del análisis: Herramientas de especificación Apoyan el proceso de formular las características que debe tener una aplicación. ya que la mayoría de ellos pueden utilizar los del viejo Sistema y solo tenga que enlazarse el nuevo Sistema al Archivo maestro donde se encuentran los registros. Salidas. por esta razón estos sistemas utilizan u administrador de base de datos. Generadores de códigos . Herramientas para Ingeniería de Software Apoyan el Proceso de formular diseños de Software. Muchas incluyen herramientas para crear especificaciones de datos.

La revolución del procesamiento de datos de manera computarizada. debe tener en cuenta: Si es analítico o heurístico Cómo son tomadas la decisiones en las tres fases de resolución de problemas de inteligencia El uso de los métodos de criterios múltiples útiles para la resolución de problemas semiestructurados. métodos ponderados y métodos de eliminación secuencial y son los más adecuados para el manejo de la complejidad y naturaleza semiestructurada. junto con las prácticas de Diseño sofisticadas está cambiando de forma dramática la manera en que se trasladan las especificaciones de Diseño d Sistemas de Información funcionales. Análisis de Sistemas de Apoyo a Decisiones Semiestructuradas Métodos Disponibles Para poder obtener buenos resultados en los sistemas de apoyo a decisiones estructuradas. 7. Sistemas de apoyo a Decisiones Este método posee características que lo diferencia de los demás sistemas que manejan información y que son tradicionales. Los usuarios finales de los DSS (sistemas de apoyo a decisiones) poseen características especiales que merecen ser tomadas en cuenta. Herramientas para pruebas Apoyan la fase de la evaluación de un Sistema o de partes del mismo contra las especificaciones. Estos sistemas pueden funcionar de varias formas es decir. Incluyen facilidades para examinar la correcta operación del Sistema así como el grado de perfección alcanzado en comparación con las expectativas. debemos dividir el trabajo como lo dice anteriormente el análisis de sistema del que estamos hablando. 8.Producen el código fuente y las aplicaciones a partir de especificaciones funcionales bien articuladas. la forma de presentar la información para su mejor comprensión añadiendo modelos y criterios múltiples. la organización de la información para las situaciones de decisión. la interacción con los tomadores de decisiones que llevan consigo la expansión en la toma de decisiones. . En donde los modelos de criterios múltiples incluyen procesos de compromiso.

Un DSS permite al tomador de decisiones interactuar con él. sino el DSS. y esto debe verse en la interfaz del usuario. el estratégico.Características de un sistema de apoyo a decisiones Debemos tener en cuenta que un sistema de apoyo a decisiones lo definiremos como la manera de organización de información que se pretende usar en la toma de decisiones. Es importante que si el usuario final está muy ocupado o preocupado por la interacción con el DSS. el tomados de decisiones y debe dar como resultado un cambio y mejora del desempeño en la toma de decisiones. Para lo cual al presentar la información debe estar diseñada basándose en la solución de problemas y esto debe darse ya que el usuario no debe tomar la decisión. y generadores de DSS. el proceso trabajará para la transformación del usuario. así como en la construcción de DSS específicos. el administrativo y el operacional. Un DSS debe ser diseñado típicamente para decisiones de un particular o para un grupo. es por eso que a nivel operacional las decisiones se pueden tomar y ser automatizadas satisfactoria y completamente. Conceptos del proceso de Toma de decisiones relevantes para los DSS . Un DSS puede ser construido para dar soporte a decisiones de una sola vez y son aquellas que son poco frecuentes a otras que suceden rutinariamente. Debemos saber utilizar las diferentes herramientas que generan DSS. Para el DSS. 9. Los tipos de problemas que ayuda a solucionar un DSS son complejos y semiestructurados ya que este tipo de problemas los ve registrados en los niveles estratégico y administrativo. tablas u otro medio de presentación y que sea de interfaz para el usuario. este puede ser utilizado por un intermediario técnico o ayudante que interactúe con la computadora y así las decisiones serán tomadas de una forma desde el proceso y no desde la mecánica. es decir que el usuario entienda mejor las soluciones por medio de gráficas. Usuarios de los sistemas de apoyo a decisiones Dentro de las organizaciones existen tres niveles.

las consecuencias y según sean las necesidades presentadas por el usuario. esto es que la heurística se basa en la experiencia. bajo conciencia o un sistema. ni probabilidades o las consecuencias de las decisiones. aunque no se adapte. Como comentario adicional. la incertidumbre y el riesgo. La toma de decisiones bajo riesgo Las decisiones son tomadas por lo general bajo tres condiciones importantes como lo es la: certidumbre. Un tomador de decisiones analítico se apoya en la información que es adquirida y evaluada sistemáticamente para estrechar las alternativas y tomar una selección que esté basada en información. no tenemos resultados. Un tomador de decisiones heurístico se hace ayudar de lineamientos (reglas). incertidumbre y el riego. En donde los tomadores de decisiones analíticos valoran la información cuantitativa y los modelos que la generan y la usan. es decir que tenemos el conocimiento (certidumbre) de las alternativas ( variables controlables). que tiene como consecuencia el acierto. utilizan matemáticas para el modelo del problema y usan algoritmos para resolverlos. los resultados. tal como se le da soporte en los sistemas de apoyo a decisiones. Bajo estas alternativas que tenemos muchas de las tomas de decisiones en las empresas o negocios se realizan bajo riesgo. existen sólo las estimaciones y no está en nuestras manos el controlar (variables ambientales) y de las que no estamos seguros de su resultado (variables dependientes). procesa y se usa en forma de parámetro según sea el estilo de la toma de decisiones.Para la toma de decisiones sabemos que es necesario hacer uso de la información como. La certidumbre es aquella que nos muestra todo por anticipado antes de la decisión. la selección y el diseño. El estilo de la toma de decisiones Por lo general la información se recolecta. Estos tomadores de decisiones aprenden bajo las . Entre estos dos aspectos o condiciones tienen por medio el riesgo. Y es por eso que los tomadores de decisiones son analíticos o heurísticos. es por eso que debemos diferenciar si el tomador de decisiones en analítico o heurístico y es importante que estos tomen en cuenta las fases de solución como son la inteligencia. el uso de teorías. La incertidumbre es lo contrario de la certidumbre.

Selección: La selección del tomador de decisiones de una solución al problema u oportunidad identificado en la fase de inteligencia. Y su apoyo es el sentido común para que los guíe. Diseño: Formula un problema y analiza las varias soluciones alternativas. Incluyendo la implementación de la selección del tomador de decisiones.actuaciones. Inteligencia: es la conciencia de un problema u oportunidad. es decir no podemos seguir sino se ha terminado el anterior y se realizan de forma independiente. el tomador de decisiones busca en los ambientes de negocios interno y externo. Tomador de decisiones analítico Tomador de decisiones heurístico Aprende mediante análisis Usa procedimientos paso a paso Valora la información cuantitativa y los modelos Constituye modelos matemáticos y algoritmos Busca soluciones óptimas Aprende actuando Usa prueba y error Valora la experiencia Se apoya en el sentido común Busca soluciones satisfactorias Fases para la solución de problemas La toma de decisiones (o resolución de problemas) es un proceso. la ocurrencia de comportamiento se agranda y se escoge. Hay otros autores que incluyen la implementación y la evaluación. es decir mediante la prueba y el error hasta encontrar la solución. y está concebido en fases en vez de pasos. Las fases para la toma de decisiones son la: Inteligencia. 10. revisando las decisiones que deberá tomar. Puesto que en las fases. proporcionando al tomador de decisiones generar y analizar alternativas para su aplicabilidad potencial. la búsqueda continua y revisión. y como diferencia de los pasos es que estos se llevan a cabo mediante una secuencia. problemas a resolver u oportunidades a examinar. el diseño y la selección (Simón 1965) Y se inicia en la forma como se ha escrito. Conclusiones . La inteligencia se traduce como la vigilancia.

El conjunto de instrucciones que se ejecuta repetidamente cierto número de veces.En Conclusión un proyecto de desarrollo de un Sistema de Información comprende varios componentes o pasos llevados a cabo durante la etapa del análisis. empleados y otros usuarios finales que se familiarizan cada vez mas con el uso de computadoras están teniendo un papel muy importante en el desarrollo de sistemas. documentación y procedimientos. lo primero del trabajo fue revisar que es el Análisis y el diseño y posteriormente el autor Kendall. Todas las organizaciones son Sistemas que actúan de manera reciproca con su medio ambiente recibiendo entradas y produciendo salidas. el cual ayuda a traducir las necesidades del cliente en un modelo de Sistema que utiliza uno mas de los componentes: Software. el análisis y Diseño de Sistemas. presenta varios modelos que podemos utilizar para la realización y elaboración de un proceso y trabajo exhaustivo y dar solución o respuesta al problema que se ha generado desde la perspectiva del programador y analista. Son operaciones que se deben ejecutar un número repetido de veces. En una organización o Empresa. es el proceso de estudiar su Situación con la finalidad de observar como trabaja y decidir si es necesario realizar una mejora. se llama Ciclo. base de datos. Los administradores deciden que estrategias seguir. Es por eso que existen varios modelos o métodos para la realización del análisis y diseño de un sistema. Los Gerentes. Estructuras repetitivas e iterativas. Antes de comenzar con el desarrollo de cualquier proyecto. personas. el encargado de llevar a cabo estas tareas es el analista de sistemas. La información reunida con este estudio sirve como base para crear varias estrategias de Diseño. . Bucle o Lazo. se conduce un estudio de Sistemas para detectar todos los detalles de la situación actual de la empresa. Los Sistemas que pueden estar formados por otros Sistemas de denominan subsistemas y funcionan para alcanzar los fines de su Implantación. hardware.

ya se agregó una condición. Salida de resultado Ejemplo de bucle infinito: En el flujograma anterior. no se tiene una condición para terminar y se estará haciendo siempre. En ese caso como el bucle es infinito. Ejemplo de bucle finito: . En el siguiente ejemplo. observa que la flecha que se regresa hacia arriba nos está indicando que hay que volver a evaluar la expresión. Instrucciones finales o resto del proceso 4. Entrada de datos e instrucciones previas 2.Iteración es cada una de las diferentes pasadas o ejecuciones de todas las instrucciones contenidas en el bucle. Fases de un Programa Cíclico : 1. Lazo o bucle 3. la cual nos permitirá finalizar la ejecución del bucle en el caso en que la condición se cumpla.

luego utilizamos estructuras goto (saltos) para pasar al bucle externo y se quedan entrelazados. La más interna se termina de realizar y se continúa con la externa hasta que la condición se cumple. te muestro tres diseños de estructuras cíclicas: las independientes son cuando los bucles se realiza uno primero hasta que se cumple la condición y solo en ese caso se entra al bucle B. al entrar a una estructura de repetición. En los ciclos anidados. En los bucles cruzados. Veamos gráficamente el diseño de estas tres formas cíclicas: . Esto puede ocasionar que el programa pierda el control de cuál proceso se está ejecutando y podamos obtener resultados erróneos. dentro de ella se encuentra otra.Bucles Repetitivos: A continuación. se tiene que iniciamos un bucle y no se ha terminado cuando empezamos otro. los cuales no son convenientes de utilizar.

. Estructura Desde/Para: Se usa frecuentemente cuando se conoce de antemano el número de veces que se ejecutarán las acciones de un bucle.Estructuras básicas. su uso y ejemplos. Esta es una de sus características. Durante las siguientes lecciones estaremos estudiando tres estructuras básicas que son: Estructura Desde/Para Estructura Mientras Estructura Repetir En esta lección estudiaremos la forma general de la estructura Desde/Para.

La inicialización consiste en asignarle al contador un valor.Representación pseudocodificada: Español Desde var = valor inicial hasta valor final hacer to valor final do Acciones Fin_desde Inglés For var=valor inicial acciones end_for A la estructura Desde/Para se le conoce como Repetitiva. el acumulador va aumentando en una cantidad variable. Ejemplo: i = i + 1 ACUMULADOR O TOTALIZADOR : Es una variable que suma sobre sí misma un conjunto de valores para de esta manera tener la suma de todos ellos en una sola variable. debemos hacer uso de contadores y algunas veces de acumuladores. La diferencia entre un contador y un acumulador es que mientras el primero va aumentando de uno en uno. Representación: <nombre del contador> ¬ nombre del contador> + <valor constante> Si en vez de incremento es decremento se coloca un menos en lugar del más. cuyos conceptos se describen a continuación: CONTADOR: Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante cada vez que se produce un determinado suceso o acción. Se situará antes y fuera del bucle. Representación: <Nombre del acumulador> ¬ <nombre del acumulador> + <valor variable> . Para utilizar esta estructura en algoritmos. Los contadores se utilizan con la finalidad de contar sucesos o acciones internas de un bucle. deben realizar una operación de inicialización y posteriormente las sucesivas de incremento o decremento del mismo.

Elaborar un flujograma para encontrar la suma de los K primeros números enteros. Mientras y luego Repetir. Se desea resolver el problema usando estructura Desde.Ejemplo: Calcular la suma de los cuadrados de los primeros 100 enteros y escribir el resultado. Ejemplo 2. .

EJERCICIO: Trata de elaborar un flujograma para encontrar el cuadrado de los primeros 25 números naturales. pero la diferencia con el contador N. También debe inicializarse con cero. Dentro del bucle podrás notar que N se incrementa en 1. ya que para sumar valores debemos partir de cero. que al inicio no tenemos nada. Dentro del bucle. ¿Qué necesitas agregar ahora? . Lo que queremos hacer notar por el momento. es que a suma le sumamos N más ella misma. con cero. el cual se inicializa en este caso. Nota que N es el contador. es decir. También observa la variable suma. antes de entrar al bucle. el cual estudiaremos en otra lección. la cual es un acumulador que lleva la suma de los números generados. usando la estructura Desde/Para. ¿Qué necesitas para resolver el problema contadores o acumuladores? Modifica el flujograma del ejercicio anterior para que también te muestre la suma de dichos cuadrados. es cómo funcionan el contador y el acumulador.En este ejemplo hemos utilizado un bucle repetir. suma se incrementa en un número N.

pero esto no va a afectar al número de repeticiones.RESUMEN En esta lección aprendimos un poco del uso de contadores y acumuladores. Dentro del cuerpo del bucle Desde. Hay un número importante de reglas que deben seguirse cuando se utilizan instrucciones Desde: Los valores inicial y final de la variable de control se determinan antes de que empiece la repetición y no pueden cambiarse durante la ejecución de la instrucción Desde. Esta estructura hace el incremento automáticamente y se inicializa en la instrucción desde. los valores de las variables que especifican los valores inicial y final pueden cambiar. La instrucción del cuerpo del bucle de una instrucción Desde puede utilizar el valor de la variable de control. pero no debe modificar este valor. También aprendimos a elaborar flujogramas o algoritmos usando la estructura Desde. . Esta estructura se puede usar únicamente en aquellos casos en que conocemos el número de veces que se va a realizar el ciclo.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->