Download PROGRAMACION ESTRUCTURADA La programación estructurada

Document related concepts

Common Lisp wikipedia , lookup

Miranda (lenguaje de programación) wikipedia , lookup

Búsqueda de patrones wikipedia , lookup

Tipo de dato algebraico wikipedia , lookup

C Sharp wikipedia , lookup

Transcript
PROGRAMACION ESTRUCTURADA
La programación estructurada es una forma de escribir programas de ordenador
(programación de computadora) de manera clara. Para ello utiliza únicamente tres
estructuras: secuencia, selección e iteración; siendo innecesario el uso de la
instrucción o instrucciones de transferencia incondicional (GOTO, EXIT
FUNCTION, EXIT SUB o múltiples RETURN).
Hoy en día las aplicaciones informáticas son mucho más ambiciosas que las
necesidades de programación existentes en los años 1960, principalmente debido
a las aplicaciones gráficas, por lo que las técnicas de programación estructurada
no son suficientes. Ello ha llevado al desarrollo de nuevas técnicas, tales como la
programación orientada a objetos y el desarrollo de entornos de programación que
facilitan la programación de grandes aplicaciones.
CARACTERISITCAS DE PROGRAMACION
Estos tres tipos de estructuras lógicas de control pueden ser combinados para
producir programas que manejen cualquier tarea de procesamiento de
información.
Un programa estructurado esta compuesto de segmentos, los cuales puedan estar
constituidos por unas pocas instrucciones o por una pagina o más de codificación.
Cada segmento tiene solamente una entrada y una salida, estos segmentos,
asumiendo que no poseen lazos infinitos y no tienen instrucciones que jamas se
ejecuten, se denominan programas propios. Cuando varios programas propios se
combinan utilizando las tres estructuras básicas de control mencionadas
anteriormente, el resultado es también un programa propio.
La programación Estructurada esta basada en el Teorema de la Estructura, el cual
establece que cualquier programa propio (un programa con una entrada y una
salida exclusivamente) es equivalente a un programa que contiene solamente las
estructuras lógicas mencionadas anteriormente.
Una característica importante en un programa estructurado es que puede ser leído
en secuencia, desde el comienzo hasta el final sin perder la continuidad de la
tarea que cumple el programa, lo contrario de lo que ocurre con otros estilos de
programación. Esto es importante debido a que, es mucho más fácil comprender
completamente el trabajo que realiza una función determinada, si todas las
instrucciones que influyen en
su acción están físicamente contiguas y encerradas por un bloque. La facilidad de
lectura, de comienzo a fin, es una consecuencia de utilizar solamente tres
estructuras de control y de eliminar la instrucción de desvío de flujo de control,
excepto en circunstancias muy especiales tales como la simulación de una
estructura lógica de control en un lenguaje de programación que no la posea
LENGUAJE DE PROGRAMACION
BASIC
En la programación de computadoras, el BASIC, siglas de Beginner's All-purpose
Symbolic Instruction Code,1 es una familia de lenguajes de programación de alto
nivel. El BASIC original, el Dartmouth BASIC, fue diseñado en 1964 por John
George Kemeny y Thomas Eugene Kurtz en el Dartmouth College en New
Hampshire, USA, como un medio para facilitar programar computadores a
estudiantes (y profesores) que no fueran de ciencias. En ese tiempo, casi todo el
uso de los computadores requería codificar software hecho a la medida, lo cual
era algo bastante restringido a personas con formación como científicos y
matemáticos. BASIC originalmente fue desarrollado como una herramienta de
enseñanza. El lenguaje y sus variantes llegaron a estar ampliamente disponibles
en los microcomputadores a finales de los años 1970 y en los años 1980. El
BASIC sigue siendo popular hasta el día de hoy en un puñado de dialectos
altamente modificados, y en nuevos lenguajes, influenciados por BASIC tales
como Microsoft Visual Basic. Por el año 2006, el 59% de los desarrolladores para
la plataforma .NET usaban Visual Basic .NET como su único lenguaje. 2
COBOL
El lenguaje COBOL (acrónimo de COmmon Business -Oriented Language,
Lenguaje Común Orientado a Negocios) fue creado en el año 1960 con el objetivo
de crear un lenguaje de programación universal que pudiera ser usado en
cualquier ordenador, ya que en los años 1960 existían numerosos modelos de
ordenadores incompatibles entre sí, y que estuviera orientado principalmente a los
negocios, es decir, a la llamada informática de gestión.
FORTRAN
es un lenguaje de programación alto nivel de propósito general,2 procedimental3 e
imperativo, que está especialmente adaptado al cálculo numérico y a la
computación científica. Desarrollado originalmente por IBM en 1957 para el equipo
IBM 704, y usado para aplicaciones científicas y de ingeniería, el FORTRAN vino a
dominar esta área de la programación desde el principio y ha estado en uso
continuo por más de medio siglo en áreas de cómputo intensivo tales como la
predicción numérica del tiempo, análisis de elementos finitos, dinámica de fluidos
computacional (CFD), física computacional, y química computacional. Es una de
los lenguajes más populares en el área de la computación de alto rendimiento y es
el lenguaje usado para programas que evalúan el desempeño (benchmark) y el
ranking de los supercomputadores más rápidos del mundo.
PASCAL
Pascal es un lenguaje de programación desarrollado por el profesor suizo Niklaus
Wirth entre los años 1968 y 1969 y publicado en 1970. Su objetivo era crear un
lenguaje que facilitara el aprendizaje de programación a sus alumnos, utilizando la
programación estructurada y estructuración de datos. Sin embargo con el tiempo
su utilización excedió el ámbito académico para convertirse en una herramienta
para la creación de aplicaciones de todo tipo.
Pascal se caracteriza por ser un lenguaje de programación estructurado
fuertemente tipificado. Esto implica que:
1. El código está dividido en porciones fácilmente legibles llamadas funciones
o procedimientos. De esta forma Pascal facilita la utilización de la
programación estructurada en oposición al antiguo estilo de programación
monolítica.
2. El tipo de dato de todas las variables debe ser declarado previamente para
que su uso quede habilitado.
El nombre de Pascal fue escogido en honor al matemático Blaise Pascal.
ESTRUCTURA DE DATOS
Una estructura de Datos es una colección de datos que pueden ser caracterizados por su
organización y las operaciones que se definen en ella.
Los tipos de datos mas frecuentes utilizados en los diferentes lenguajes de programación son:
Para ver el gráfico seleccione la opción "Descargar" del menú superior
Los tipos de datos simples pueden ser organizados en diferentes estructuras de datos: estáticas
y dinámicas.
Las estructuras 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.
Estas estructuras están implementadas en casi todos los lenguajes.
Su principal característica es que ocupan solo una casilla de memoria, por lo tanto una variable
simple hace referencia a un único valor a la vez, dentro de este grupo de datos se encuentra:
enteros, reales, caracteres, boléanos, enumerados y subrangos (los últimos no existen en
algunos lenguajes de programación)
Las estructuras 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 que no son soportadas por la mayoría de los lenguajes, pero que
en aquellos que si tienen estas características ofrecen soluciones eficaces y efectivas en la
solución de problemas complejos.
Se caracteriza por el hecho de que con un nombre se hace referencia a un grupo de casillas de
memoria. Es decir un dato estructurado tiene varios componentes.
VECTORES Y MATRICES
En programación, una matriz o vector (llamados en inglés arrays) es una zona de
almacenamiento continuo, que contiene una serie de elementos del mismo tipo,
los elementos de la matriz. Desde el punto de vista lógico una matriz se puede ver
como un conjunto de elementos ordenados en fila (o filas y columnas si tuviera
dos dimensiones).
En principio, se puede considerar que todas las matrices son de una dimensión, la
dimensión principal, pero los elementos de dicha fila pueden ser a su vez matrices
(un proceso que puede ser recursivo), lo que nos permite hablar de la existencia
de matrices multidimensionales, aunque las más fáciles de imaginar son los de
una, dos y tres dimensiones.
Estas estructuras de datos son adecuadas para situaciones en las que el acceso a
los datos se realice de forma aleatoria e impredecible. Por el contrario, si los
elementos pueden estar ordenados y se va a utilizar acceso secuencial sería más
adecuado utilizar una lista, ya que esta estructura puede cambiar de tamaño
fácilmente durante la ejecución de un programa
PILA
Pila (informática)
De Wikipedia, la enciclopedia libre
Saltar a navegación, búsqueda
Una pila (stack en inglés) es una lista ordinal o estructura de datos en la que el
modo de acceso a sus elementos es de tipo LIFO (del inglés Last In First Out,
último en entrar, primero en salir) que permite almacenar y recuperar datos.
Esta estructura se aplica en multitud de ocasiones en el área de informática
debido a su simplicidad y ordenación implícita de la propia estructura.
Para el manejo de los datos se cuenta con dos operaciones básicas: apilar (push),
que coloca un objeto en la pila, y su operación inversa, retirar (o desapilar, pop),
que retira el último elemento apilado.
En cada momento sólo se tiene acceso a la parte superior de la pila, es decir, al
último objeto apilado (denominado TOS, Top of Stack en inglés). La operación
retirar permite la obtención de este elemento, que es retirado de la pila
permitiendo el acceso al siguiente (apilado con anterioridad), que pasa a ser el
nuevo TOS.
Por analogía con objetos cotidianos, una operación apilar equivaldría a colocar un
plato sobre una pila de platos, y una operación retirar a retirarlo.
Las pilas suelen emplearse en los siguientes contextos:

Evaluación de expresiones en notación postfija (notación polaca inversa).

Reconocedores sintácticos de lenguajes independientes del contexto

Implementación de recursividad.
ARBOLES
informática, un árbol es una estructura de datos ampliamente usada que imita la forma de
un árbol (un conjunto de nodos conectados). Un nodo es la unidad sobre la que se
construye el árbol y puede tener cero o más nodos hijos conectados a él. Se dice que un
nodo a es padre de un nodo b si existe un enlace desde a hasta b (en ese caso, también
decimos que b es hijo de a). Sólo puede haber un único nodo sin padres, que llamaremos
raíz. Un nodo que no tiene hijos se conoce como hoja. Los demás nodos (tienen padre y
uno o varios hijos) se les conoce como rama.
ARBOL BINARIO
En ciencias de la computación, un árbol binario es una estructura de datos en la
cual cada nodo siempre tiene un hijo izquierdo y un hijo derecho. No pueden tener
más de dos hijos (de ahí el nombre "binario"). Si algún hijo tiene como referencia a
null, es decir que no almacena ningún dato, entonces este es llamado un nodo
externo. En el caso contrario el hijo es llamado un nodo interno. Usos comunes de
los árboles binarios son los árboles binarios de búsqueda, los montículos binarios
y Codificación de Huffman.
ARBOL SIMPLE
En las ciencias de la computación, los árboles-B ó B-árboles son estructuras de
datos de árbol que se encuentran comúnmente en las implementaciones de bases
de datos y sistemas de archivos. Los árboles B mantienen los datos ordenados y
las inserciones y eliminaciones se realizan en tiempo logarítmico amortizado.
ARREGLOS
Arreglos Unidimensionales:
Están formados por un conjunto de elementos de un mismo tipo de datos que se
almacenan bajo un mismo nombre, y se diferencian por la posición que tiene cada
elemento dentro del arreglo de datos. Al declarar un arreglo, se debe inicializar sus
elementos antes de utilizarlos. Para declarar un arreglo tiene que indicar su tipo, un
nombre único y la cantidad de elementos que va a contener.
ARREGLOS MULTIDIMENSIONALES
Un arreglo multidimensional es un conjunto de datos homogéneo, finito y ordenado, donde
se hace referencia a cada elemento mediante múltiples índices, por ejemplo, si es de dos
dimensiones, se usan dos índices, si es de tres dimensiones se usan tres índices y así. Los
arreglos que hemos trabajado hasta ahora por poseer un índice se conocen como
unidimensionales o simplemente Arreglos. El caso más popular de arreglos
multidimensionales es para dos dimensiones (cada elemento se referencia mediante dos
índices) conocidos como matrices.
MATRICES.
La matriz referencia sus valores mediante 2 índices, el primero indica las filas y el segundo
indica las columnas.
Una matriz se podría considerar un arreglo de arreglos.
A=
1
2
3
4
5
6
…..
J
…..
N-2
N-1
2
1,1
3
4
5
6
.
.
.
I
X
.
.
.
M-2
M-1
M
1<=i<=M y ademas 1<=j<=N
El arreglo A(MxN) tiene M filas y N columnas. El elemento A[i,j] que se encuentra en la
fila i y en la columna j tiene para el ejemplo anterior el valor de X.
Declaración de Arreglos bidimensionales: Para declarar arreglos bidimensionales se
especifican el número de filas y el número de columnas junto con el tipo de datos.
Nombre_arreglo = ARREGLO[liminff..limsupf,liminfc..limsupc] de Tipo.
El número total de componentes (NTC) del arreglo se calcula mediante la expresión:
NTC = (limsupf – liminff + 1) * (limsupc – liminfc + 1)
Ejemplos:
MatA= ARREGLO[1..10,1..20] de entero
NTC= (10-1+1)*(20-1+1) = 200
MatB = ARREGLO[1..5,2..6] de real
NTC = (5-1+1)*(6-2+1) = 25
ARREGLOS DE MAS DE DOS DIMENSIONES
Un arreglo de N dimensiones es una colección de k1 x k2 x k3 x…x kn elementos. Para
hacer referencia a cada posición del arreglo mediante N índices.(uno para cada dimensión)
El arreglo A de N dimensiones se definirá así:
A = ARREGLO[LI1..LS1,LI2..LS2,…,LIN..LSN] de Tipo.
El total de componentes de A será:
N
NTC = (LS1-LI1+1) * (LS2-LI2+1) * … * (LSN-LIN+1)
REGISTROS
A veces se necesita manejar información de diverso tipo al mismo tiempo y para esto, los
arreglos o matrices que hemos trabajado, no funcionan, puesto que solo admiten elementos
del mismo tipo.
Para solucionar este problema, se introduce el concepto de registro.
Un registro es un dato estructurado, donde cada componente se denomina campo. Estos
campos pueden ser de diferentes tipos, inclusive, un campo puede ser otro registro o un
arreglo. Cada campo se identifica por un nombre único.
DEFINICIÓN DE REGISTROS.
Para definir un registro se utiliza la siguiente sintaxis:
Nombre_registro= REGISTRO
Nombre_campo1:tipo1
Nombre_campo2:tipo2
…
nombre_campoN:tipon
Fin Registro
Ejemplos de definición de registros:
Supongamos que se quiere definir la fecha completa que involucre fecha y hora, se haría
así:
Fechacompl = REGISTRO
Día:entero
Mes:entero
Año:entero
Hora:entero
Minuto:entero
Segundo:entero
Fin Registro
Ahora supongamos que se quiere guardar la información de un estudiante, se podría hacer
así:
Estudiante = REGISTRO
Código:entero
Cédula:entero
Papellido:Cadena
Sapellido:Cadena
Nombre:Cadena
Sexo:caracter
Fechanac:fecha
Fechaing:fecha
Dirección:cadena
Telefono:entero
Promacum:real
Fin Registro
ACCESO A LOS CAMPOS DE UN REGISTRO.
Como el registro es un dato estructurado, no puede accesarse completamente, debe
especificarse cual es el campo del registro que se requiere. Para ello, se usará la siguiente
notación:
Nombre_registro.nombre_campo
Ejemplos de acceso al registro:
Para leer la hora completa del registro fecha:
Leer(fecha.hora, fecha.minuto, fecha.segundo)
Para escribir el nombre completo del estudiante:
Imprimir(estudiante.papellido, estudiante.sapellido, estudiante.nombre)
Para asignar valores al día, mes y año de la fecha:
Fecha.dia  19
Fecha.mes  11
Fecha.año  2002
Un registro puede tener como campo un arreglo o también un registro, y además se pueden
presentar estas combinaciones.
Registros anidados: Al menos un campo del registro es un registro.
Registros con arreglos: Tienen al menos un campo que es un arreglo.
Arreglos de Registros: Cada elemento del arreglo es un registro y todos los elementos del
arreglo son del mismo tipo de registro. Es el caso más popular y en ese caso el arreglo se
maneja comúnmente como una estructura de lista.
Caso práctico para ilustrar el uso de arreglo de registros:
Se conoce el nombre y la calificación obtenida en un examen de un grupo de 30 alumnos.
Si quiere conocer la siguiente información: promedio del grupo, calificación mas alta,
nombre de los alumnos con calificación inferior al promedio, etc. En el texto guía se
presenta una solución con arreglos paralelos y una con arreglo de registros, esa la vamos a
exponer aquí.
Se define un registro alumno con la información de nombre y calificación.
Alumnos[i].nombre guardará el nombre del alumno
Alumnos[i].calificacion guardará la calificación.
La definición completa del registro es:
Alumnos = REGISTRO
Nombre:cadena
Calificación:real
Fin Registro