You are on page 1of 10

Unidad 1

La informtica es la ciencia que estudia el anlisis y resolucin de


problemas utilizando computadoras.
Una computadora es una mquina digital y sincrnica, con cierta
capacidad de clculo numrico y lgico, controlada por un programa
almacenado y con posibilidad de comunicacin con el mundo exterior.
Un programa es un conjunto de instrucciones, ejecutables sobre una
computadora, que permite cumplir una funcin especfica.
Un dato es una representacin de un objeto del mundo real mediante la
cual se pueden modelizar aspectos de un problema que se desea resolver
con un programa sobre una computadora.
El proceso de anlisis del mundo real para interpretar los aspectos
esenciales de un problema y expresarlo en trminos precisos se denomina
abstraccin.
Abstraer un problema del mundo real y simplificar su expresin, tratando de
encontrar los aspectos principales que se pueden resolver (requerimientos)
los datos que se han de procesar y el contexto del problema se denomina
modelizacin.
Una precondicin es una informacin que se conoce como verdadera
antes de iniciar el programa.
Una pos condicin es una informacin que debiera ser verdadera al
concluir un programa, si se cumple adecuadamente el requerimiento
pedido.
El proceso de analizar los problemas del mundo real y determinar en forma
clara y concreta el objetivo que se desea se denomina especificacin.
El conjunto de instrucciones permitidas y definidas por sus reglas sintcticas
y su valor semntico, para la expresin de soluciones a problemas,
constituye un lenguaje de programacin.
Algoritmo es la especificacin rigurosa de la secuencia de pasos
(instrucciones) a realizar sobre un autmata para alcanzar un resultado
deseado en un tiempo finito.
Las Partes de un programa son instrucciones y datos.
Puede demostrarse que un lenguaje con solo tres instrucciones:
asignacin, decisin e iteracin, permite escribir cualquier algoritmo.
Los datos son los valores de informacin de los que se necesita disponer, y
en ocasiones transformar, para ejecutar la funcin del programa.
Etapas en la resolucin de problemas con computadora:
Anlisis del problema.
En esta primera etapa, se analiza el problema en su contexto del mundo
real. Deben obtenerse los requerimientos del usuario. El resultado de este

anlisis es un modelo preciso del ambiente del problema y del objetivo a


resolver. Un componente importante de este modelo son los datos a utilizar
y las transformaciones de los mismos que llevan al objetivo.
Diseo de una solucin.
Suponiendo que el problema es computable, a partir del modelo se debe
definir una estructura de sistema de hardware y software que lo resuelva.
En este texto, se hablar solo del sistema de software. El primer paso en el
diseo de la solucin es la modularizacin del problema, es decir, la
descomposicin del mismo en partes que tendrn una funcin bien definida
y datos propios (locales). A su vez, debe establecerse la comunicacin entre
los mdulos del sistema de software propuesto.
Especificacin de algoritmos.
Cada uno de los mdulos del sistema de software tiene una funcin que se
puede traducir en un algoritmo. La eleccin del algoritmo adecuado para la
funcin del mdulo es muy importante para la eficiencia posterior del
sistema de software. Como se ver a lo largo del texto, una misma funcin
sobre los mismos datos puede resolverse con una utilizacin de recursos
muy diferente (memoria, tiempo) segn el algoritmo elegido.
Escritura de programas.
Un algoritmo es una especificacin simblica que debe convertirse en un
programa real sobre un lenguaje de programacin concreto. Este proceso de
programacin tiende a automatizarse en la medida que los lenguajes
algortmicos se acercan a los lenguajes reales de programacin. A su vez, el
programa escrito en un lenguaje de programacin determinado (por
ejemplo, Pascal, Ada, C, Java) debe traducirse (automticamente) al
lenguaje de mquina de la computadora que lo vaya a ejecutar. Esta
traduccin, denominada compilacin, permite detectar y corregir los errores
sintcticos que se cometan en la escritura del programa.
Verificacin.
Una vez que se tiene un programa escrito en un lenguaje real y depurado de
errores sintcticos, se debe verificar que su ejecucin conduzca al resultado
deseado, con datos representativos del problema real. Sera deseable poder
afirmar que el programa es correcto, ms all de los datos particulares de
una ejecucin. Sin embargo, en los casos reales es muy difcil realizar una
verificacin exhaustiva de todas las posibles condiciones de ejecucin de un
sistema de software. La facilidad de verificacin y la depuracin de errores
de funcionamiento del programa conducen a una mejor calidad del sistema
y este es el objetivo central de la Ingeniera de Software.

Unidad 2
Estructuras de control bsicas.
Secuencia: La estructura de control ms simple est representada por una
sucesin de operaciones, en la que el orden de ejecucin coincide con el
orden fsico de aparicin de las Instrucciones.

Repeticin: Una extensin natural de la secuencia consiste en repetir n


veces un bloque de acciones. Se considera que el nmero de veces que se
deben ejecutar las acciones es fijo y conoc do de antemano.
Decisin: En un algoritmo representativo de un problema real es
prcticamente imposible que las instrucciones sean secuenciales puras. Es
necesario tomar decisiones en funcin de los datos del problema.
Seleccin: Es una extensin de la estructura bsica de decisin, para el
caso de que las alternativas sean ms de dos.
Iteracin: Estas estructuras se clasifican en precondicionales y
poscondicionales. Las precondicionales evalan la condicin y, si es
verdadera, se ejecuta el bloque de acciones; esto hace que dicho bloque se
pueda ejecutar 0, 1 o ms veces. En cuanto a las estructuras
poscondicionales, primero se ejecuta el bloque de acciones, luego se
evala la condicin y, si es falsa, se ejecuta nuevamente el bloque de
acciones. A diferencia de la estructura iterativa anterior, el bloque de
acciones se debe ejecutar 1 o ms veces. Ntese que, en este caso, el
bloque de accin se ejecuta antes de evaluar la condicin, por lo tanto se
lleva a cabo al menos una vez.
Se define a la eficiencia como una mtrica de calidad de los algoritmos,
asociada con una utilizacin ptima de los recursos del sistema de cmputo
donde se ejecutar el algoritmo.
Por qu es importante una buena modularizacin?
1.
2.
3.
4.

El Conocimiento humano.
Trabajo en equipo.
Mantenimiento del programa.
Importancia de la reusabilidad del cdigo.

La diferencia entre dato global y dato local es simple: Los datos


globales son aquellos que se declaran en la seccin de declaracin del
programa principal.
Los datos locales son aquellos que se declaran en la seccin de declaracin
de un mdulo individual.
Los parmetros son variables que tienen como caracterstica principal
transferir informacin entre los mdulos.
Cuando existen datos compartidos entre mdulos, una solucin es que un
mdulo pase una copia de esos datos al otro. En este caso, el
parmetro que se pasa se denomina parmetro pasado por valor". El
mdulo que recibe esta copia no puede efectuar ningn cambio sobre el
dato original.
Los parmetros "pasados por referencia, a diferencia de los
parmetros pasados por valor, no envan una copia del valor del
dato, sino que envan la direccin donde se encuentra el dato, con lo
cual tanto el programa o el proceso que llama, como as tambin el proceso
llamado, puede acceder a dicho dato.

Unidad 3

Un tipo de dato es una clase de objetos ligados a un conjunto de


operaciones para crearlos y manipularlos.
Los tipos de datos simples:
Numrico,
Lgico,
Carcter.
El tipo de dato numrico es el conjunto de los valores numricos que
pueden representarse de dos formas:
Enteros,
Reales.
El tipo de dato lgico, es un dato que puede tomar un valor entre un
conjunto formado por dos posibles. Dichos valores son: verdadero (true),
falso (false).
Los operadores lgicos o boleanos bsicos Son:
negacin (not),
conjuncin (and),
disyuncin (or).
Un tipo de dato carcter proporciona objetos de la clase de datos que
contiene solo un elemento como su valor. Los elementos son las letras,
nmero y smbolos especiales disponibles en el teclado de la computadora y
algunos otros elementos grficos.
Una constante en un programa denota un dato que no cambia durante la
ejecucin. Este tipo de dato puede ser numrico, lgico o carcter.
Un tipo de dato se dice ordenado discretamente si para cada elemento
que es parte del tipo existe un elemento anterior y otro posterior.
Un tipo de dato definido por el usuario es aquel que no existe en la
definicin del lenguaje, donde el usuario es el encargado de determinar su
denominacin, y el conjunto de valores y operaciones que dispondr el
mismo.
Un tipo de dato subrango es un tipo ordinal, que consiste de una secuencia
contigua de valores de algn tipo ordinal (llamado tipo base del subrango).
En general, el subrango se determina mediante los lmites inferior y superior
de la secuencia, separados por dos puntos, de la forma:
type nombre_subrango = limite_inferior..lmite_superior
Un conjunto, desde el punto de vista informtico, es una coleccin de
datos simples, todos del mismo tipo.
Un tipo de dato string es una sucesin de caracteres que se almacenan
en un rea contigua de la memoria y que puede ser ledo o escrito.

Unidad 4
Cada tarea recibe el nombre de subprograma, mdulo o rutina. Cada
una puede desarrollarse de manera independiente del resto.

Un mdulo puede realizar las mismas acciones que un programa (leer un


dato, realizar un clculo, presentar un resultado, etc.). La diferencia est
en que el mdulo se ejecuta cada vez que el programa principal lo invoca.
Adems, puede ocurrir que un subprograma puede llamar o invocar a otros
subprogramas.
Un procedimiento es un conjunto de instrucciones que realizan una tarea
especfica y como resultado del cual puede retomar o no uno o ms valores
como respuesta.
Una funcin es un mdulo que realiza una tarea especfica y que como
resultado de ella retorna un nico valor como respuesta.
Analizando la definicin de procedimiento y funcin, el lector notar una
gran similitud entre ambas. La diferencia radica bsicamente en que las
funciones retornan siempre un nico resultado, en tanto que los
procedimientos pueden retornar 0, 1 o ms resultados.
Se denomina parmetros a la serie de datos con los que se comunican los
mdulos.
Los parmetros que se definen en el llamado del mdulo reciben el nombre
de parmetros actuales, en tanto que los parmetros descritos en el
encabezado del mdulo invocado (procedimiento o funcin) se denominan
parmetros formales.
Una variable local es aquella que est declarada y definida dentro de un
programa o mdulo, en el sentido que est dentro de ese mdulo y es
distinta a cualquier variable que tenga el mismo nombre y que estuviera
declarada en otro lugar del programa.
Una variable global es aquella que est declarada en el programa y que
puede ser utilizada por cualquier mdulo de este.

Unidad 5
Una estructura de datos es un conjunto de variables (no
necesariamente del mismo tipo) relacionadas entre s de diversas formas.
Una estructura de datos es homognea si los datos que la componen
son todos del mismo tipo.
Una estructura de datos es heterognea si los datos que la
componen son de distinto tipo.
Una estructura de datos es esttica si la cantidad de elementos
que contienen es fija, es decir, si la cantidad de memoria que se utiliza no
vara durante la ejecucin de un programa.
Una estructura de datos es dinmica si el nmero de
componentes y, por lo tanto, la cantidad de memoria, puede variar durante
la ejecucin de un programa.
Un registro es un conjunto de valores, con tres caractersticas bsicas:
1-Los valores pueden ser de distinto tipo; esto convierte a un registro
en una estructura heterognea.

2-Los valores almacenados en un registro son llamados campos, y


cada uno de ellos tiene un identificador; los campos son nombrados
individualmente, como variables ordinarias.
3-El almacenamiento ocupado por un registro es fijo; por esto, un
registro es una estructura esttica.
Los registros son uno de los tipos de datos estructurados ms
utilizados. Permiten agrupar datos de diferentes clases y con una conexin
lgica en una estructura nica.
Una pila es una coleccin ordenada de elementos, con tres caractersticas:
1-Los elementos son del mismo tipo. Esto convierte a la pila en una
estructura homognea.
2-Los elementos pueden recuperarse en orden inverso al que fueron
almacenados. Por esto, la forma de acceso a la estructura se denomina ufo
(Last In First Out), lo que significa que el ltimo elemento que entr es el
primero disponible para salir.
3-La cantidad de elementos que contiene una pila puede variar a lo largo de
la ejecucin del programa. Por esta ra2n es una estructura dinmica.

Unidad 6
Clasificacin de las estructuras de datos
Estructuras de datos simples o compuestas.
Las estructuras de datos simples representan un nico valor, por ejemplo,
un nmero entero o un carcter. Las estructuras de datos compuestas
pueden contener ms de un valor como, por ejemplo, un registro o una pila.
Estructuras de datos homogneas o heterogneas.
Se llama homogneas a aquellas estructuras de datos compuestas que
tienen todos sus elementos del mismo tipo como, por ejemplo, las pilas o las
colas. Por otra parte, las heterogneas son aquellas estructuras de datos
compuestas cuyos elementos pueden ser de distinto tipo como, por
ejemplo, los registros.
Estructuras de datos estticas o dinmicas.
Una estructura de datos se denomina esttica si la cantidad de elementos
que contiene es fija, es decir, si la cantidad de memoria que se utiliza no
vara durante la ejecucin de un programa.
Las estructuras estticas tienen como desventaja el mal
aprovechamiento de la memoria, ya que si contienen pocos
elementos se desperdicia lugar, as como tampoco tienen posibilidad
de recibir ms elementos de los indicados inicialmente. Pero
presentan una gran ventaja, que es su reserva inicial de memoria y
el acceso directo a cualquiera de sus elementos, ya que la posicin
de cualquiera de ellos puede calcularse como un desplazamiento de
la posicin inicial de la estructura.

Una estructura de datos se denomina dinmica si el nmero de


componentes y, por lo tanto, la cantidad de memoria puede variar durante
la ejecucin de un programa.
Las estructuras dinmicas tienen la ventaja de poder reservar
la memoria necesaria para cada uno de sus elementos a medida que
el algoritmo lo requiere; esto Implica un mejor uso de la memoria y
la posibilidad de extender la estructuras segn las necesidades del
problema (respetando las limitaciones del hardware). Pero como
contrapartida, los datos deben ser accedidos en forma secuencial
dado que sus posiciones no se encuentran consecutivas fsicamente
en la memoria.
Por otra parte, el manejo dinmico de la memoria obliga a un mayor
esfuerzo por parte del lenguaje y el sistema operativo en lo referido a la
recuperacin de los espacios que pasan de ocupados a libres, con el
consiguiente incremento de tiempo.
Un tipo de dato arreglo es una coleccin ordenada e indexada de elementos,
con las siguientes caractersticas:
1- Todos los elementos son del mismo tipo; esto convierte
a un arreglo en un tipo de dato homogneo.
2- Los elementos pueden recuperarse en cualquier orden,
simplemente indicando la posicin que ocupan dentro
de la estructura; por este motivo es una estructura
indexada.
3- La memoria ocupada a lo largo de la ejecucin del
programa es fija; por esto, es una estructura de datos
esttica.
Un vector o arreglo lineal es un tipo de dato arreglo con un ndice, es
decir, con una dimensin.
Una matriz es un tipo de dato arreglo con dos dimensiones o ndices.
Tambin puede pensarse en ella como un vector de vectores. Es un grupo
de elementos homogneo, con un orden interno y en el que se necesitan
dos ndices para referenciar un nico elemento de la estructura.

Unidad 7
Cuando se obtienen soluciones a problemas en los que una funcin o
procedimiento se llama a s mismo para resolver el problema, se tienen
subprogramas recursivos.
Se define a la pila de activacin como una estructura de datos que se
comporta de la siguiente manera:

Tiene un tope (top) y un fondo (bottom)

Cada elemento es cdigo ms datos.

Los elementos pueden sacarse solo por el tope. El nico elemento


posible de sacar es el que est en el tope.

Unidad 8
Un algoritmo es eficiente si realiza una administracin correcta de los
recursos del sistema en el cual se ejecuta.
El proceso de ubicar informacin particular en una coleccin de datos es
conocido como algo' ritmo de bsqueda.
Cuando se debe buscar un elemento dentro de un vector sin tener
informacin sobre la manera 9n que este ltimo se encuentra organizado,
una forma de proceder es comenzar desde el principio de la estructura,
analizando los elementos que contiene uno a uno hasta encontrarlo o hasta
llegar al final.
Este tipo de bsqueda es conocida como bsqueda lineal ya que procede
linealmente (en forma secuencial) a travs del vector.
La bsqueda binaria sobre un vector ordenado se basa en la estrategia de
divide y vencers y aplica el mismo criterio que el que se utiliza para
encontrar el cero de una funcin continua.
En una bsqueda binaria se compara ei tem buscado con el que se halla
en el medio del vector. Si los dos elementos son iguales, la bsqueda ha
terminado. Si ei elemento buscado es menor que el que se halla en el punto
medio del vector, se contina la bsqueda en la primera mitad del vector,
en caso contrario se contina sobre la segunda mitad. El hecho de que el
vector est ordenado es lo que permite ignorar el 50% de los datos con una
nica comparacin.

Unidad 9
Una lista dinmica es un conjunto de elementos de tipo homogneo,
donde los mismos no ocupan posiciones secuenciales o contiguas de
memoria, es decir, los elementos o componentes de una lista pueden
aparecer fsicamente dispersos en la memoria, si bien mantienen un orden
lgico interno.
Un puntero es un tipo de variable, en el cual se almacena la direccin de
un dato y permite manejar direcciones apuntando a un elemento
determinado.

Unidad 10

Unidad 11

Para la mayora de los problemas computables (es decir, resolubles por una
computadora) se pueden tener diferentes algoritmos que los resuelven.
La eficiencia requiere de un uso mnimo de tiempo de procesamiento y de
memoria utilizada.
El parmetro primario para analizar la mayora de los algoritmos es el
nmero de datos a ser procesados: N. Este nmero puede tener que ver con
la cantidad de elementos de un vector, con el nmero de nodos de un grafo,
con los registros de un archivo, etc.

Constante: se tiene un algoritmo donde cada instruccin se ejecuta


una vez o un nmero fijo de veces, independientemente de los datos, el
tiempo de ejecucin ser constante.

Log n: Cuando el tiempo de ejecucin del algoritmo crece en forma


logartmica con la cantidad de datos.

N: Cuando hay un pequeo nmero de acciones de procesamiento


sobre cada dato (suponiendo, por ejemplo, su lectura, su multiplicacin por
dos e impresin), y el tiempo de ejecucin crece linealmente con N.

N Log N: Es el caso de algoritmos que dividen el espacio de datos del


problema en subespacios de menor tamao, y luego requieren combinar
resultados parciales.

N2: Cuando el tiempo de ejecucin del algoritmo crece en forma


cuadrtica (como, por ejemplo, en las soluciones elementales de la
ordenacin de vectores), normalmente significa que los datos son tratados
de a pares en un doble lazo repetitivo. El crecimiento del tiempo de
ejecucin con N puede ser un limitante para la implementacin real con
grandes volmenes de datos.

N3 o 2N: Cuando el tiempo de ejecucin del algoritmo crece en


forma cbica o exponencial, se trata de soluciones que insumen mucho
tiempo y que son difcilmente aplicables usando un nmero importante de
datos.

Unidad 12
La principal caracterstica de la memoria principal es que, al ser
elctronica, su velocidad de acceso es muy elevada. Los dispositivos
secundarios, en tanto, almacenan su informacin en un medio magntico
(discos, cintas, diskettes) o en un medio ptico (cd, discos compactos), lo
que hace ms lenta su operacin.
Un archivo es una coleccin de registros semejantes, guardados en
dispositivos de almacenamiento secundario de la computadora.
Un archivo es una estructura de datos que guarda en un dispositivo de
almacenamiento secundario de una computadora una coleccin de
elementos del mismo tipo.

Segn el modo en que se organizan los registros dentro de un archivo, se


consideran dos tipos de acceso a los registros de un archivo:

Acceso secuencial.

Acceso directo.
El acceso secuencial permite acceder a los registros o elementos uno tras
otro y en el orden fsico en que estn guardados. En cambio, el acceso
directo permite obtener un registro determinado sin necesidad de haber
accedido a sus predecesores.
De acuerdo a su organizacin un archivo puede clasificarse como:

Secuencial.

Directo.

Secuencial indizado.
esta organizacin define la manera en que los registros se distribuyen sobre
el almacenamiento secundario.
Un archivo secuencial consiste de un conjunto de registros almacenados
consecutivamente de manera que para acceder al registro n-simo del
mismo se debe, previamente, acceder a los n-1 registros anteriores. Los
registros se graban en forma consecutiva, a medida que se ingresan, y se
recuperan en el mismo orden.
Un archivo directo consiste de un conjunto de registros donde el
ordenamiento fsico no necesariamente corresponde con el ordenamiento
lgico. Esto es, los registros se recuperan accediendo por su posicin dentro
del archivo. Por lo tanto, es posible acceder al n-simo lugar sin haber
accedido a los n-1 registros anteriores.
Un archivo secuencia! indizado utiliza estructuras de datos auxiliares
para permitir un acce-pseudo directo a los registros de un archivo. Los
archivos organizados con esta tcnica tienen la ventaja de tener un acceso
mucho ms rpido que los secuenciales, pero necesitan ms espacio para
mantener la/s estructura del/los ndice/s. Las estructuras de ndice se suelen
denominar directorios del archivo.
Se denomina buffer a una memoria intermedia entre un archivo y un
programa, donde los datos residen provisoriamente hasta ser almacenados
definitivamente en memoria secundaria o donde los datos residen una vez
recuperados de dicha memoria secundaria. Los buffers ocupan una zona de
la memoria ram de la computadora.
Se define un ndice como una estructura (cave, referencia) que permite
encontrar o distinguir en forma ms rpida un elemento dentro de un
contexto. El elemento es reconocido unvocamente mediante la clave y la
referencia indica la posicin o lugar que ocupa.
Una base de datos es una coleccin de elementos de datos
interrelaconados que pueden ser accedidos en forma compartida por un
gran nmero de computadoras.

You might also like