Академический Документы
Профессиональный Документы
Культура Документы
Estructuras Primitivas.
Información
Se trata del conjunto de datos, añadidos, procesados y relacionados, de manera que pueden
dar pauta a la correcta toma de decisiones según el fin previsto
Página | 1
Proceso
Un proceso es un conjunto de actividades mutuamente relacionadas o que al interactuar
transforman elementos de entrada y los convierten en resultados.
Constituyen el ciclo de vida del software y sus características más sobresalientes son:
Página | 2
Errores de compilación: Se producen normalmente por un uso incorrecto
de las reglas del lenguaje de programación y suelen ser errores de
sintaxis. Si existe un error de sintaxis, la computadora no puede
comprender la instrucción, no se obtendrá el programa objeto y el
compilador imprimirá una lista de todos los errores encontrados durante la
compilación.
Errores de ejecución: Estos errores se producen por instrucciones que la
computadora puede comprender pero no ejecutar. Ejemplos típicos
son: división por cero y raíces cuadradas de números negativos. En
estos casos se detiene la ejecución del programa y se imprime un
mensaje de error.
Errores lógicos: Se producen en la lógica del programa y la fuente
del error suele ser el diseño del algoritmo. Estos errores son los más
difíciles de detectar, ya que el programa puede funcionar y no producir
errores de compilación ni de ejecución, y sólo puede advertirse el error por
la obtención de resultados incorrectos. En este caso se debe volver a la
fase de diseño del algoritmo, modificar el algoritmo, cambiar el programa
fuente y compilar y ejecutar una vez más.
También podemos destacar los tipos de códigos que pueden aparecer, también
denominados entornos de desarrollo:
Código fuente: Conjunto de sentencias entendibles por el
programador que componen el programa o una parte de ello.
Suele estar almacenado en un fichero del tipo texto como los que
se pueden abrir por ejemplo, con el bloc de notas. El código fuente
estará escrito en un lenguaje de programación determinado, elegido
por el programador, como pueden ser: Pascal, C, C++, C#, Java, Perl,
Python, PHP.
Código objeto: Conjunto de instrucciones y datos escritos en un
lenguaje que entiende el ordenador directamente: binario o código
máquina. Provienen de la traducción de cierto código fuente.
Código ejecutable: Reúne diferentes códigos u objetos generados por
los programadores junto con las “librerías de uso general” (propias
del entorno o del lenguaje de programación) componiendo el
programa final. Este es el código que ejecutan los usuarios del
sistema, y es específico para una plataforma concreta: Windows,
Linux, Mac OS, o cierto sistema Hardware.
Mantenimiento: El programa se actualiza y modifica, cada vez que sea necesario,
de modo que se cumplan todas las necesidades de cambio de sus usuarios.
Página | 3
Documentación: Escritura de las diferentes fases del ciclo de vida del software,
esencialmente el análisis, diseño y codificación, unidos a manuales de usuario y de
referencia, así como normas para el mantenimiento.
La documentación de un programa puede ser interna y externa. La
documentación interna es la contenida en líneas de comentarios. La
documentación externa incluye análisis, diagramas de flujo y/o pseudocódigos,
manuales de usuario con instrucciones para ejecutar el programa y para
interpretar los resultados. La documentación es vital cuando se desea corregir
posibles errores futuros o bien cambiar el programa.
Las dos primeras fases conducen a un diseño detallado escrito en forma de algoritmo.
Durante la tercera etapa (codificación) se implementa el algoritmo en un código escrito en
un lenguaje de programación, reflejando las ideas desarrolladas en las fases de análisis y
diseño.
Las fases de compilación y ejecución traducen y ejecutan el programa. En las fases
de verificación y depuración el programador busca errores de las etapas anteriores y los
elimina. Comprobará que mientras más tiempo se gaste en la fase de análisis y diseño,
menos se gastará en la depuración del programa. Por último, se debe realizar la
documentación del programa.
Partes de un algoritmo:
Un algoritmo consta de tres partes:
Entrada de datos: Se escriben los datos necesarios para darle solución al
problema.
Proceso: Son los pasos necesarios para resolver el problema.
Salida de resultados: Son los resultados que se arrojan el algoritmo una vez
terminado el proceso.
Elementos de un algoritmo:
Los elementos básicos constitutivos de un programa o algoritmo son:
Página | 4
Palabras reservadas (inicio, fin, si –entonces..., etc),
Identificadores (nombres de variables esencialmente)
Caracteres especiales (coma, apóstrofe, etc.)
Constantes
Variables
Expresiones
Instrucciones
Propiedades de un Algoritmo:
Preciso: indica el orden de realización en cada paso.
Definido: si se sigue dos veces, obtiene el mismo resultado cada vez.
Finito: tiene fin; un número determinado de pasos.
Clasificación de Algoritmos:
Algoritmo Computacional: son aquellos algoritmos que pueden ser ejecutados por
una computadora.
Algoritmo no Computacional: son aquellos algoritmos que no pueden ser
ejecutados por una computadora.
Página | 5
concentrar en la lógica y en las estructuras de control y no preocuparse de las reglas de un
lenguaje específico.
Heurísticas
Página | 6
Resolución por Analogía: nunca debemos reinventar la rueda. Si existe una
solución, la usamos. Si hemos resuelto antes el mismo problema o uno parecido,
solamente repetimos la solución.
Dividir para vencer: constantemente dividimos un problema grande en
unidades más pequeñas que podemos manejar. La tarea de limpiar la casa o
el departamento puede parecer abrumadora. La tarea compuesta de limpiar el
salón, el comedor, la cocina, los dormitorios y los baños parece manejable. El
mismo principio se aplica a la programación.
Página | 7
Página | 8
Página | 9
Página | 10
Página | 11
Complejidad Computacional
Página | 12
La eficiencia suele medirse en términos de consumo de recursos:
Espaciales: cantidad de memoria que un algoritmo consume o utiliza durante su
ejecución.
Temporales: tiempo que necesita el algoritmo para ejecutarse.
Otras: utilización de CPU, utilización de periféricos, tiempo y coste de
implementación, etc.
Factores que influyen en la complejidad:
Tamaño del problema: magnitudes que al aumentar incrementan la complejidad
del algoritmo.
Naturaleza de los datos de entrada: en función de cuales sean los datos del
problema se ejecutaran o no determinadas instrucciones de decisión y será
distinto el número de iteraciones de los bucles, esto equivale a decir que el
problema se resolverá en más o menos tiempo.
Recursos hardware y software
Orden de un Algoritmo
El orden de un algoritmo nos indica cuan rápidamente aumenta el tiempo de ejecución de
un algoritmo cuando aumenten los datos de entrada.
Estructuras de Datos
Página | 13
Una estructura de datos es una clase de datos caracterizada por la organización de los
datos y las operaciones definidas sobre ella.
Clasificación de estructuras
Estructura de Datos Estáticas: son aquellas en las que el tamaño ocupado en memoria se
define antes de que el programa se ejecute y no puede modificarse dicho tamaño durante la
ejecución del programa.
Estructura de Datos Dinámicas: no tienen las limitaciones o restricciones en el tamaño de
memoria ocupada que son propias de las estructuras estáticas.
Mediante el uso de un tipo de datos especifico, denominado puntero, es posible construir
estructuras de datos dinámicas.
Estructuras Primitivas
Página | 14
Formas de representación de los enteros en la memoria:
Representación sin signo: un entero sin signo es un entero que nunca puede ser negativo
y solo puede tomar valores de 0 o positivo. Su rango es de 0 a infinito positivo.
Un dispositivo de entrada almacena un entero sin signo mediante los pasos siguientes:
Para emplear la operación complemento a dos, debemos tener el entero en binario, luego
copiamos los bits de la derecha hasta que un 1 es copiado; entonces cambiamos el resto
de los bits.
En la representación complemento a dos, el bit más a la izquierda define el signo del
entero. Si es 0, el entero es positivo. Si es 1, el entero es negativo.
Representación de complemento a uno: la operación se puede aplicar a cualquier
número entero, positivo o negativo. Esta operación simplemente invierte cada bit. Un bit
0 se cambia a un bit 1, y un bit 1 se cambia a un bit 0.
Página | 15
Tipo de Datos Flotantes (Reales)
Se llaman Números Reales a todos aquellos que se pueden expresar en forma decimal
finita o infinita; es decir, el conjunto de los Números Reales (R) está formado por los
elementos del conjunto Q unido con I.
El conjunto de los Números Racionales (Q) corresponden a la unión de todos
los números cuya expresión decimal es finita, infinita periódica o infinita
semiperiódica.
El conjunto de los Números Irracionales (I) está formado por la unión de todos
los números que admiten una expresión infinita no periódica.
Existen tres tipos básicos de números de coma flotante en el lenguaje C, que se muestran
en la siguiente tabla:
Tipo Ejemplo
float 10.5
double 0.00045
Long double 1e-8
Almacenamiento de reales: un real es un numero con una parte integral y una parte
fraccional. Por ejemplo, el 23,7 es un número real –la parte entera es 23 y la parte
fraccionaria es 0,7. Aunque una representación de punto fijo puede ser usada para
representar un número real, el resultado puede ser no preciso o puede no tener la
precisión requerida.
Normalización: para hacer la parte fija de la representación uniforme, tanto el método
científico (para el sistema decimal) como el método de punto flotante (para el sistema
binario) utilizan solo un digito diferente de cero a la izquierda del punto decimal. Esta es la
llamada normalización. En el sistema decimal este digito puede ser de 1 a 9, mientras que
en el sistema binario solo puede ser 1. De aquí en adelante, d es un digito diferente de
cero, x es un digito, e y es 0 o 1.
Sistema de exceso: la potencia que muestra cuantos bits del punto decimal debe moverse
hacia la izquierda o derecha, es un número con signo. Aunque esto podría haber sido
almacenados usando complemento a dos, una nueva representación llamada el Sistema
de Exceso se utiliza en su lugar. En el sistema de exceso, enteros positivos y negativos se
almacenan como enteros sin signo. Para representar un entero positivo o negativo, un
Página | 16
entero positivo (llamado sesgo (bias)) se añade a cada número para cambiar (shift) de
manera uniforme hacia el lado no negativo. El valor de este sesgo es 2m−1−1, donde m es
el tamaño de la ubicación de memoria para almacenar el exponente.
Los Booleanos
Es también llamado tipo de datos lógico. Un dato booleano es un elemento que puede
tener uno de dos valores: verdadero o falso.
El conjunto de operaciones definidas sobre este tipo de estructura de datos es diferente
del conjunto de operaciones para los enteros. Los tres operadores booleanos básicos son
NOT, AND y OR (negación, conjunción y disyunción).
AND
V V V
V F F
F V F
F F F
OR
V V V
V F V
F V V
Página | 17
F F F
NOT
V F
V F
F V
F V
Las tablas muestran el resultado de aplicar cada uno de estos operadores para cada valor
booleano. OR y AND son operadores binarios, en tanto que NOT es un operador unitario.
Caracteres
En el cual se incluyen dígitos, los caracteres del alfabeto y algunos caracteres especiales.
Operaciones
Se puede:
Sumar un entero a un carácter
Restar un entero de un carácter
Restar un carácter de otro
Comparar dos caracteres entre sí
Formas de Representación
Página | 18
ASCII: es un código de 7 bits. Hay 27 combinaciones posibles, las cuales son la
mitad del número de caracteres representados por el código EBCDIC. La ventaja es
que cada carácter consume menos almacenamiento y se transmite con más
rapidez.
Códigos Huffman: en este tipo de código, los caracteres se representan por un
número variable de bits, dependiendo de la frecuencia relativa de ocurrencias del
carácter en el vocabulario de la aplicación. Es aconsejable representar los
caracteres que ocurren con más frecuencia con el patrón de bits menor y los
caracteres de menos frecuencia con el patrón de bits mayor. Una desventaja de la
representación comprimida resultante es el procesamiento necesario para
codificar y reconocer caracteres.
Unicode
Página | 19