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

veamos un ejemplo: type tLogico = boolean. 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. su utilidad salta a la vista. i := i + 1 end end. (* si llueve o no *) . (* asignamos valor al contador *) while (i <= n) do begin writeln('El valor de i es '.i). (* asignamos valor al maximo *) i := 1. Nos sirven para mantener el estado de un objeto mediante dos valores: si/no cierto/falso funciona/no funciona on/off etc.n := 10. Para aclararlo. Debido a esto. y no es otra que variables de chequeo. var llueve : tLogico.

ya que se caracterizan por tratar fundamentalmente con valores decimales. Pascal soporta el conjunto entero de números. El tipo real (real) Como ya has visto.6174 . también te permite trabajar con números pertenecientes al conjunto real. Nota: Aunque pueda que estés acostumbrado a escribir con coma los decimales. Por ejemplo en los estadísticos. te advierto que en Pascal y en todos los lenguajes de programación se escribe con un punto. Por ejemplo: 3. En el puedes ver las dos formas de declarar una variable real. (* 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.1416 A continuación tienes un ejemplo en el que se utiliza el tipo real. Por si tienes curiosidad. Este es un tipo importante para los cálculos. Pero no es el único. el resultado de ejecutar el programa compilado es: El area para un radio de 3. El tipo de datos real es el que se corresponde con los números reales.paraguas : boolean. y tambíen el uso de una constante real.14 es 63.

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

Operador Significado Ejemplo Operadores aritméticos + Suma a + b Resta a .letra_NIF) end. operadores y llamadas de métodos construida de acuerdo a la sintaxis del lenguaje que devuelve un valor. El tipo de dato del valor regresado por una expresión depende de los elementos usados en la expresión. La tabla siguiente muestra los distintos tipos de operadores que utiliza Java.letra_NIF := 'L'. Expresiones y Operadores Expresión Una expresión es una combinación de variables.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) .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 . Operadores Los operadores son símbolos especiales que por lo común se utilizan en expresiones. writeln('Mi nombre es '.' y mi letra es '.nombre.

! ~ ! 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. 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. Los operadores en la misma fila tienen igual precedencia Operador Notas . éstos son listados en orden de precedencia. Acceso a variables y métodos a = obj. [] () Los corchetes se utilizan para los arreglos ++ -. Cadena de caracteres o dato textual. .++a (preincremento) -Decremento a-. Valor lógico. Carácter. Los operadores de asignación son evaluados de derecha a izquierda.(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.

Debe tenerse en mente que Dividendo=(Divisor*Cociente)+Resto . Sólo muestran las líneas asociadas a la explicación. Ejemplo 2: Operadores Un operador permite relacionar dos datos en una expresión y evaluar el resultado de una operación. Lógicos. Tipos: Aritméticos. De asignació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. 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.

5=1.5%35=7.5 7.5%3. Código fuente Por consola: 5 1 6 1 .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.5=0.5 7. Todos los códigos en c:\cursojava\tema2 o en jcreator_home\MyProjects\tema2 si se emplea JCreator.5 Ejemplo 1: muestra por consola una serie de resultados asociados a cálculos sencillos realizados con los operadores aritméticos.

Si se quiere obtener la división incluyendo decimales. bien el numerador o el denominador. 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: . deberían declararse como double o float.1NOTA: sólo aparece la parte entera de la división por que se trabaja con dos números almacenados en variables enteras.

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 .Código fuente Por consola: Valor de x: 11 Valor de y: 11 De asignación Transfieren datos de una variable a otra.

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

si todas son falsas. ! (NOT): invierte el valor de una expresión booleana. se devuelve un valor booleano true. || (O lógico): si alguna de las expresiones lógicas que se evalúa es verdadera. 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.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. devuelve false. si alguna es falsa. Ejemplo 1: Código fuente Por consola: Valor de z: true FIN DE PROGRAMA Ejemplo 2: .

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

aunque si se escribe. 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. 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. Es decir. entonces se ejecutará el bloque de código del else. no da error.Código fuente Por consola: Luis es mayor de edad y puede votar. 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. Su sintaxis se basa en tres términos. 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 . Luis tiene 24 años. 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.

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

... 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(). no da error. Limitación 2: en esa condición se presupone que el operador de relación es la igualdad (==).NOTA: si el bloque de código de los if tienen una sola línea de código no es necesario utilizar llaves. aunque si se escriben.else if().. No son validos los operadores && y ||.else.. pero con ciertas limitaciones: Limitación 1: sólo admite una condición.else if()...

debe agregarse a cada case la instrucción break del siguiente modo: .NOTA 1: no se puede repetir ningún case con el mismo valor. Se produce error de compilación NOTA 2: si se quiere que el programa. cuando encuentre el primer case coincidente con el valor de la variable evaluada.Limitación 3: la variable asociada a la condición sólo puede ser de tipo byte. salga del switch. ninguna otra es válida. Si no hay ningún case coincidente. 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). int o char. se ejecuta el código asociado a default. short.

Sintaxis: . Este número de veces depende del cumplimiento de una condición fijada por el programador.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.

Ejemplo 1: se quiere desarrollar un programa que muestre por consola los números del 0 al 4. 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: .

Puede emplearse para truncar bucles cuando no haya más código después del bucle Ejemplo 1: .Código fuente Si se modifica la línea System. Return Se utiliza para truncar la ejecución de un método o para almacenar el dato que devuelven.print(i) no se insertará una línea vacía después de cada número.println(i) por System. aparecerán todos en la misma línea. Código fuente Por consola: 01234FIN DE PROGRAMA Sentencias break.out.out. return y continue Break Aplicable dentro de bucles y estructuras condicionales de tipo switch. 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.

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

2 1. pero con la siguiente iteración "i+1". Ejemplo 1: Código fuente Por consola: INICIO DEL PROGRAMA 1. 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.3 FIN DE PROGRAMA .1 2.2 3.1 4.2 2. 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.3 2.1 3.3 4.1 1.Continue: Aplicable sólo a bucles.3 3. Se pueden poner los que se consideren necesarios.2 4.

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.

Código fuente Por consola: 0 1 2 3 4 5 FIN DEL PROGRAMA Bucle do .. while Es casi igual al anterior: la diferencia estriba en que un bucle do..Ejemplo: realizar un programa que muestre por consola los números enteros comprendidos entre el 0 y el 5 ambos incluidos. 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. independientemente del valor booleano que devuelva la condición del while. Código fuente .. al menos una vez.while se ejecuta. el bloque de código encerrado dentro del bucle.

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. la matriz suma es: A+B=(aij+bij).Código de caracteres Unicode Ya se especificó cuando se estudió la variable primitiva char. 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. Elemento opuesto: . La matriz suma se obtienen sumando los elementos de las dos matrices que ocupan la misma misma posición. que Java emplea para representar caracteres este código. 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.255]. Se trata ahora de mostrar por consola los caracteres Unicode del alfabeto occidental sabiendo que están contenidos en el intervalo [0.

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

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

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

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

creado durante el análisis. dentro del diseño es donde se fomenta la calidad del Proyecto. 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. funcional y comportamiento desde el punto de vista de la Implementación. El Diseño de procedimientos Transforma elementos estructurales de la arquitectura del programa.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. en las estructuras de datos necesarios para implementar el Software. enfocando los dominios de datos. 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. 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. El Diseño es la única manera de materializar con precisión los requerimientos del cliente. Debe ser una guía que puedan leer y entender los que construyan el código y los que prueban y mantienen el Software. El Diseño del Software es un proceso y un modelado a la vez. con los sistemas que operan junto con el y con los operadores y usuarios que lo emplean. 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.

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

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. 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. 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. 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. 6. Muchas incluyen herramientas para crear especificaciones de datos. por esta razón estos sistemas utilizan u administrador de base de datos. Herramientas para presentación Se utilizan para describir la posición de datos. utilizan una base de datos que pueden abarcar varias aplicaciones. incluyendo procedimientos y controles. Herramientas para Ingeniería de Software Apoyan el Proceso de formular diseños de Software.No todos los sistemas requieren del diseño de todos los archivos. reportes y otros medios de entrada y salida. Salidas. procesamiento y especificaciones de control. así como la documentación correspondiente. Herramientas para el desarrollo de Sistemas Estas herramientas nos ayudan como analistas a trasladar diseños en aplicaciones funcionales. tales como entradas. Generadores de códigos . mensajes y encabezados sobre las pantallas de las terminales.

Producen el código fuente y las aplicaciones a partir de especificaciones funcionales bien articuladas. 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. la organización de la información para las situaciones de decisión. La revolución del procesamiento de datos de manera computarizada. 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. la forma de presentar la información para su mejor comprensión añadiendo modelos y criterios múltiples. 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. 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. Los usuarios finales de los DSS (sistemas de apoyo a decisiones) poseen características especiales que merecen ser tomadas en cuenta. 7. 8. Incluyen facilidades para examinar la correcta operación del Sistema así como el grado de perfección alcanzado en comparación con las expectativas. En donde los modelos de criterios múltiples incluyen procesos de compromiso. la interacción con los tomadores de decisiones que llevan consigo la expansión en la toma de decisiones. . 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. debemos dividir el trabajo como lo dice anteriormente el análisis de sistema del que estamos hablando.

Es importante que si el usuario final está muy ocupado o preocupado por la interacción con el DSS. Usuarios de los sistemas de apoyo a decisiones Dentro de las organizaciones existen tres niveles. Conceptos del proceso de Toma de decisiones relevantes para los DSS . Para el DSS.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. 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. así como en la construcción de DSS específicos. el proceso trabajará para la transformación del usuario. y esto debe verse en la interfaz del usuario. 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. 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. el tomados de decisiones y debe dar como resultado un cambio y mejora del desempeño en la toma de decisiones. y generadores de DSS. el administrativo y el operacional. 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. Debemos saber utilizar las diferentes herramientas que generan DSS. el estratégico. Un DSS debe ser diseñado típicamente para decisiones de un particular o para un grupo. es decir que el usuario entienda mejor las soluciones por medio de gráficas. 9. sino el DSS. es por eso que a nivel operacional las decisiones se pueden tomar y ser automatizadas satisfactoria y completamente. tablas u otro medio de presentación y que sea de interfaz para el usuario. Un DSS permite al tomador de decisiones interactuar con él.

procesa y se usa en forma de parámetro según sea el estilo de la toma de decisiones. Y es por eso que los tomadores de decisiones son analíticos o heurísticos. Entre estos dos aspectos o condiciones tienen por medio el riesgo. Estos tomadores de decisiones aprenden bajo las . La toma de decisiones bajo riesgo Las decisiones son tomadas por lo general bajo tres condiciones importantes como lo es la: certidumbre. el uso de teorías. 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. Como comentario adicional. bajo conciencia o un sistema. 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). La incertidumbre es lo contrario de la certidumbre. los resultados. La certidumbre es aquella que nos muestra todo por anticipado antes de la decisión. esto es que la heurística se basa en la experiencia. la selección y el diseño. 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. tal como se le da soporte en los sistemas de apoyo a decisiones. utilizan matemáticas para el modelo del problema y usan algoritmos para resolverlos. que tiene como consecuencia el acierto. aunque no se adapte.Para la toma de decisiones sabemos que es necesario hacer uso de la información como. ni probabilidades o las consecuencias de las decisiones. El estilo de la toma de decisiones Por lo general la información se recolecta. En donde los tomadores de decisiones analíticos valoran la información cuantitativa y los modelos que la generan y la usan. no tenemos resultados. es decir que tenemos el conocimiento (certidumbre) de las alternativas ( variables controlables). incertidumbre y el riego. las consecuencias y según sean las necesidades presentadas por el usuario. la incertidumbre y el riesgo. Un tomador de decisiones heurístico se hace ayudar de lineamientos (reglas).

Y su apoyo es el sentido común para que los guíe. revisando las decisiones que deberá tomar. 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. Hay otros autores que incluyen la implementación y la evaluación. proporcionando al tomador de decisiones generar y analizar alternativas para su aplicabilidad potencial. es decir no podemos seguir sino se ha terminado el anterior y se realizan de forma independiente. Las fases para la toma de decisiones son la: Inteligencia. la ocurrencia de comportamiento se agranda y se escoge. Conclusiones . problemas a resolver u oportunidades a examinar. la búsqueda continua y revisión.actuaciones. y está concebido en fases en vez de pasos. Puesto que en las fases. Selección: La selección del tomador de decisiones de una solución al problema u oportunidad identificado en la fase de inteligencia. es decir mediante la prueba y el error hasta encontrar la solución. 10. Diseño: Formula un problema y analiza las varias soluciones alternativas. y como diferencia de los pasos es que estos se llevan a cabo mediante una secuencia. el diseño y la selección (Simón 1965) Y se inicia en la forma como se ha escrito. Inteligencia: es la conciencia de un problema u oportunidad. La inteligencia se traduce como la vigilancia. Incluyendo la implementación de la selección del tomador de decisiones. el tomador de decisiones busca en los ambientes de negocios interno y externo.

el análisis y Diseño de Sistemas. Los Gerentes. Antes de comenzar con el desarrollo de cualquier proyecto. Los Sistemas que pueden estar formados por otros Sistemas de denominan subsistemas y funcionan para alcanzar los fines de su Implantación. Bucle o Lazo. 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. hardware. el cual ayuda a traducir las necesidades del cliente en un modelo de Sistema que utiliza uno mas de los componentes: Software. se conduce un estudio de Sistemas para detectar todos los detalles de la situación actual de la empresa. se llama Ciclo. Son operaciones que se deben ejecutar un número repetido de veces. Estructuras repetitivas e iterativas. Los administradores deciden que estrategias seguir.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. base de datos. el encargado de llevar a cabo estas tareas es el analista de sistemas. 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. El conjunto de instrucciones que se ejecuta repetidamente cierto número de veces. 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. La información reunida con este estudio sirve como base para crear varias estrategias de Diseño. personas. En una organización o Empresa. Es por eso que existen varios modelos o métodos para la realización del análisis y diseño de un sistema. es el proceso de estudiar su Situación con la finalidad de observar como trabaja y decidir si es necesario realizar una mejora. .

ya se agregó una condición. Ejemplo de bucle finito: . Lazo o bucle 3. Salida de resultado Ejemplo de bucle infinito: En el flujograma anterior. Entrada de datos e instrucciones previas 2. En el siguiente ejemplo. la cual nos permitirá finalizar la ejecución del bucle en el caso en que la condición se cumpla. no se tiene una condición para terminar y se estará haciendo siempre. Instrucciones finales o resto del proceso 4. observa que la flecha que se regresa hacia arriba nos está indicando que hay que volver a evaluar la expresión. En ese caso como el bucle es infinito.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.

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

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. Esta es una de sus características. su uso y ejemplos.Estructuras básicas. . 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.

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. el acumulador va aumentando en una cantidad variable.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. Para utilizar esta estructura en algoritmos. deben realizar una operación de inicialización y posteriormente las sucesivas de incremento o decremento del mismo. 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 acumulador> ¬ <nombre del acumulador> + <valor variable> . Los contadores se utilizan con la finalidad de contar sucesos o acciones internas de un bucle. La inicialización consiste en asignarle al contador un valor. 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. 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.

Elaborar un flujograma para encontrar la suma de los K primeros números enteros. Ejemplo 2. . 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.

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

los valores de las variables que especifican los valores inicial y final pueden cambiar. Esta estructura hace el incremento automáticamente y se inicializa en la instrucción desde. . 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.RESUMEN En esta lección aprendimos un poco del uso de contadores y acumuladores. También aprendimos a elaborar flujogramas o algoritmos usando la estructura Desde. pero no debe modificar este valor. pero esto no va a afectar al número de repeticiones. Esta estructura se puede usar únicamente en aquellos casos en que conocemos el número de veces que se va a realizar el ciclo. La instrucción del cuerpo del bucle de una instrucción Desde puede utilizar el valor de la variable de control.

Sign up to vote on this title
UsefulNot useful