Professional Documents
Culture Documents
1. Introducción
2. Sistema de procesamiento
3. Algoritmos
Características:
Tiene que estar bien definido
Tiene que ser preciso
Tiene que ser finito
Sin embargo, existen una serie de pasos que permiten resolver el problema
de una manera más conveniente:
5. programas de computadora
1. Definiciones básicas
Ventajas:
Son independientes del procesador.
Fáciles de aprender, implementar y mantener.
Tienen carácter genérico.
Desventajas:
Menos eficientes en el manejo de los recursos.
Requiere un proceso de traducción.
Ventajas:
No es tan complicado como el lenguaje de maquina.
Eficiente en el manejo de los recursos.
Desventajas:
Cada procesador tiene su propio juego de instrucciones en
ensamblador.
Debe ser traducido.
Ventajas:
No necesita ser traducido.
Opera directamente con la maquina.
Puede llegar a ser muy eficiente en el manejo de los recursos.
Desventajas:
Extremadamente difícil de aprender, implementar y mantener.
Es único y particular de cada procesador.
1.1 Dato
Es cualquier elemento de información que se usa a lo largo del programa,
son elementos sobre los que se opera cuando se efectúa alguna instrucción.
Las variables son instancias de un tipo de dato cualquiera cuyo valor pude
cambiar durante la ejecución del programa. Las variables deben declararse
indicando su nombre y su tipo, antes de usarlas.
El nombre que se le da a una variable tiene que ser significativo, éste será
un conjunto de caracteres que dependiendo del lenguaje pueden tener
ciertas restricciones, a esto se le conoce como reglas para construir
identificadores.
Toda expresión tiene asociada un tipo que se corresponde con el tipo del
valor que devuelve la expresión cuando se evalúa. Existen expresiones
numéricas y lógicas.
2.1 Expresiones numéricas: operadores aritméticos
Es una combinación de variables y constantes numéricas con operadores
aritméticos y que al evaluarla devuelve un valor numérico. Los operadores
más comunes: +,-,*,/.
--5;
++5;
2+3*2+3;
Si se evalúa en el orden de aparición tendríamos algo como lo siguiente
(((2+3)*2)+3);
Resultado: 13
Si se evalúa primero las sumas y luego la multiplicación se tendrá la
siguiente expresión:
(2+3)*(2+3);
Resultado: 25
Una expresión lógica es aquella que solo puede devolver uno de dos valores
(verdadero o falso). Los valores que pueden aparecer en una expresión
lógica son de dos tipos. Lógicos y relacionales. Los operadores lógicos solo
trabajan sobre expresiones o datos que retornan valores booleanos. Los
operadores relacionales trabajan con expresiones numéricas para realizar
comparaciones que retornan un valor booleanos. Es común tener
expresiones que combinan tanto los operadores lógicos como relacionales,
en estas expresiones se evalúan más de una condición o relación por medio
de operadores lógicos.
4. Diagramas de Estructura
Es una manera gráfica de representar el diseño top down. Nos Permite
representar en forma clara la organización de alto nivel de un programa.
5. Diagramas de Flujo
Es una representación gráfica de la lógica del diseño. Generalmente,
está a un nivel de detalle más bajo que los diagramas de estructura. Un
diagrama de flujo resulta adecuado cuando se desea seguir bajando a un
nivel con mayor detalle, tal como agregar bifurcación de condicionales y/o
iteración.
5.1 Símbolos
Proceso
Pantalla
Entrada / salida
Condición Teclado
Principio y Fin
Determinar Requerimientos
del proceso
Determinar Requerimientos
del post-proceso
¿Diagrama de NO
Flujo OK?
SI
Metodología para resolver un problema con Diagrama De Flujo
FIN
6. Diagramas N-S O de Nassi-Schederman:
Es una forma de representación semejante al diagrama de flujo, pero sin
flechas y cambiando los símbolos de condición y repetición. Está
conformado por una serie de cajas de procesos que constituyen las
secuencias de acciones necesarias para presentar el algoritmo. Las cajas de
proceso o acción van unidas entre sí. Los Diagramas N-S son muy útiles
para representar diagramas estructurados.
Representación de Condiciones:
Condición
Condición
SI NO
Bifurcación
Estructuras Repetitivas:
p=1
Leer num
P = P x num
Leer num
Escribir p
FIN
7. Pseudocódigo
El Pseudocódigo es un lenguaje de documentación de programas similar al
inglés (o español) que se parece a cualquier lenguaje de programación de
alto nivel, pero no necesita seguir ninguna regla específica, como si lo
requieren los programas que van a ser traducidos o compilados. El
pseudocódigo normalmente no es muy específico para las áreas de E/S.
El pseudocódigo tiene la ventaja que se puede crear fácilmente con
cualquier editor de texto. No hay ningún estándar en la industria definido
para los pseudocódigos.
2. Si <condición>
Entonces <acciones>
Sino <acciones>
5. Desde / hasta
8. Programación Modular
Cuando se trabaja con programas grandes se hace difícil:
Desarrollar la lógica
Escribir el código
Probar totalmente el código
Realizar el mantenimiento
Módulo Principal
Verificar Cliente
Verificar Existencia
Verificar
Verificar Reservaciones
Alquileres vencidos
Deudas pendientes
1. Introducción
Al final todo programa va a tener una única entrada y una única salida.
Desde la entrada tienen que existir caminos que permiten pasar por todas
las partes del programa y llegar a la salida, no se van a permitir los bucles
infinitos.
2. Estructuras Secuenciales
3. Estructuras Selectivas
Sí <condición> entonces
<Acciones>
Fin si
Condición
SI
Condición Entonces
Acciones <Acciones>
Acciones
Acciones
Fin si
Si <condición> Entonces
Condición Condición
<Acciones>
SI No
SI Sino
Acciones Acciones <Acciones>
Acciones Acciones
Fin si
Acciones
Acciones
5. Estructuras Anidadas
Las estructuras selectivas como los bucles se pueden escribir unas dentro
de otras. Esto se conoce como estructuras anidadas.
Sintaxis:
Al igual que se pueden colocar unas expresiones dentro de otras, los bucles
pueden estar unos dentro de otros. Al anidar bucles hay que tener en
cuenta que el bucle interno funciona como una sentencia más en el
bloque del bucle externo, por lo tanto, en cada iteración del bucle
externo se van a ejecutar todas las iteraciones del bucle interno.
Los bucles deben estar bien formados y ser sintácticamente, nunca pueden
cruzarse las sentencias de los bucles. Si se tiene un ciclo desde que
internamente posee un ciclo mientras hacer, es necesario finalizar las
sentencias o instrucciones del ciclo más interno en este caso mientras-hacer
antes de colocar la culminación del ciclo externo desde.
Si el bucle más externo se repite n veces y el más interno se repite m
veces, si por cada iteración del más externo se repite el más interno, el
número total de iteraciones será el producto de m * n.
Los bucles que se anidan pueden ser de igual o distinto tipo. Ejemplo:
Ejemplo:
Centinela = 9
Leer opción
Mientras (opción <> centinela) hacer
<Acciones>
Leer opción
Fin mientras
6.2 Lectura Secuencial de un Archivo
Los datos de entrada pueden estar en un archivo, el cual debe ser leído
desde el primer al último registro para recuperar todos los datos, para ello
se realiza una lectura secuencial de todos los registros del archivo.
Una estrategia común de lectura para un archivo con acceso secuencial es:
• Abrir el archivo,
• Leer un registro del archivo,
• Verificar si no es fin de archivo al entrar a un ciclo para recorrer el
archivo realizar operaciones con los datos de entrada,
• Volver a leer datos del archivo, con cada operación de lectura se
avanza de registro en registro en los datos del archivo
• Regresar al ciclo hasta que sea fin de archivo.
Ejemplo:
Archivo mi_archivo
Abrir_Archivo (mi_archivo)
Leer_Archivo (mi_archivo)
Mientras (NOT (Fin_de_Archivo(mi_archivo))) Hacer
<acciones con los datos del archivo>
Leer_Archivo (mi_archivo)
Fin mientras
Acción o Proceso
Ejemplo:
i: Entero
Mostrar "Ingrese el numero da materias a registrar:”
Leer número materias
Desde i =1 Hasta numero materias
Mostrar "Ingresar datos Materia numero “
Leer materia
<Acciones a realizar con materia>
Fin desde
Ejemplo:
opcion: Entero
opción=0
Repetir
Mostrar "Menú:”
Mostrar "1. Crear Archivo"
Mostrar "2. Borra Archivo"
Mostrar "3. Incluir Registro"
Mostrar "4. Salir del sistema"
Mostrar "Su opción:"
Leer opción
Hasta (opción >= 1) Y (opción <= 4)
1. Introducción
2. Funciones
2.1.1 Sintaxis
Por ejemplo:
Para que una función pueda ser invocada desde cualquier parte de un
programa, es necesario que la definición de dicha función ya sea del
conocimiento previo del compilador antes de usarla.
3. Procedimientos
3.2 Sintaxis
• Por valor
• Por referencia
Ejemplo:
Como regla general todo identificador sólo es visible y accesible dentro del
bloque de código que lo declara y dentro de los bloques anidados que este
último pueda tener. Lo contrario no es cierto, es decir, los identificadores
declarados en un subbloque de código no son visibles ni accesibles desde el
bloque de código del cual depende.
Si se tiene una variable local con el mismo identificador que una variable
global, las referencias que se hacen dentro del bloque de código en que se
declara la variable local harán referencia a dicha variable local y no a la
variable global.
Si se tiene el procedimiento:
Proc(8, a)
Existe una variedad de métodos, sólo se estudiarán dos de ellos por ser los
más utilizados y conocidos en las herramientas de programación.
Inicio
x=x* 2
Escribir x
Fin Duplicar
Algoritmo CopiaValor
Var a : entero
Inicio
a =3
Duplicar (a)
Escribir a
Fin
Inicio
x=x*2 ¡,
Fin Duplicar
Algoritmo Referencia
Var a
Inicio
a=3
Duplicar (a)
Escribir (a)
Fin
6. Recursividad
Factorial(x) = x * Factorial(x-1)
Todo programa recursivo tiene que tener alguna condición que ponga
fin a la recursividad, un punto en el que el subprograma deje de llamarse
a sí mismo cuando se cumpla la condición. De otra forma, se forma un
bucle infinito con el consecuente error de desbordamiento de pila
mencionado anteriormente.
si x >1
Factorial(x) = x * Factorial(x-1)
sino Factorial(x)=1
1. Introducción
Homogéneo: Todos los elementos del arreglo son del mismo tipo.
El índice (valor que referencia la posición del arreglo) tiene que ser de
cualquier tipo de datos escalar, porque en un escalar se puede definir un
orden y entre dos elementos consecutivos no puede haber infinitos
elementos, ejemplo de datos escalar son los enteros y caracteres.
i: entero
i=2
sueldo[i]= 23.5
Sí el valor mínimo del rango del índice es O la sentencia asigna el valor 23.5
a la tercera posición de un arreglo dado que el valor del índice i es 2.
Se considera un error intentar acceder a una posición del arreglo que este
fuera del rango del índice. Este error se denomina comúnmente índice fuera
de rango.
Consiste en asignar un valor dado a una posición del arreglo dada por un
índice.
1 2 3 4 5 6 7 8 9 10 11 12
Consiste en usar una posición cualquiera del arreglo definida por un índice
para operaciones de entrada y salida.
Ejemplo:
Desde i = 1 Hasta 12
Leer ventas[i]
Fin Desde
Desde i = 1 Hasta 12
Fin Desde
Consiste en pasar por todas las posiciones del arreglo para procesar su
información.
Ejemplo:
Desde i = 1 Hasta 12
Fin Desde
Añadir datos:
Sintaxis:
<nom_arreglo>[k + 1] = valor
Insertar datos:
C E F J M O
C E F G J M O
Desde i= k Hasta n
A[i+1]=A[i]
Fin Desde
Eliminar Datos:
C E F J M O
C E F M O
Desde i = k Hasta n - 1
A[i]=A[i+1]
Fin Desde
ventas[4, 3] = 120
Esta es una operación útil cuando se desea inicializar todos los elementos
de la matriz a un valor dado.
Sintaxis:
M: arreg1o[m, n] de entero
Var i, j : entero
Desde i=1 Hasta m
Desde j=1 Hasta n
M[i, j] = 0
Fin Desde
Fin Desde
3.1.2 Colocar el valor de cero a sólo los elementos de una fila dada
Sintaxis:
M: arreg1o[m, n] de entero
Var i, j : entero
i = fila
Desde j=1 Hasta n
M[i, j] = 0
Fin desde
ventas: arreg1o[5, 12] de entero
Var i, j : entero
i=3
Desde j = 1 Hasta 12
M[i, j] = 0
Fin desde
Ejemplo:
Arreglo[100] de carácter
Si se asume que cada entero necesita dos byte para ser almacenado y se
tiene un total de 3 x 5 x 12 = 180 elementos, entonces el arreglo requiere
un total de 360 bytes de memoria.
1. Introducción
2. Representación de Datos
Caracteres
ASCII
EBCDIC
Numéricos
Binario
Decimal
Hexadecimal
Las computadoras leen unos y ceros (1,0) y las personas leen caracteres
como m, T, 4 ó !. Para codificar los datos legibles por las personas a datos
que entienda la computadora se debe tener alguna forma de traducción.
3. Notación Binaria
Note que mientras la notación binaria es la forma más fácil a utilizar por la
computadora, es el más difícil para las personas.
En EBCDIC, los ocho bits se usan para representar el carácter. Esto permite
representar 256 caracteres diferentes. Unos representan letras, otros
números, otros signos de puntuación, y otros caracteres especiales
llamados "caracteres de control".
0 =1111 0000
1 = 1111 0001
2 = 1111 0010
3 = 1111 0011
4 = 1111 0100
5 = 1111 0101
6 = 1111 0110
7 = 1111 0111
8 = 1111 1000
9 = 1111 1001
Representación Binaria
5. Caracteres ASCII
1 1 0 1 Numero Binario
= 32 + 0 + 0+ 4 + 2 + 0
= 38
6 A F
0 resto 6
16 6 resto 10
16 106 resto 14
16 1710 resto
=36,864+3,072+64+13
= 40,013
Para los campos numéricos que usan EBCDIC todas las posiciones de la
zona del campo, se usan salvo un byte que contiene el signo para el
número. Para conservar el almacenamiento, pueden usarse los datos
decimales condensados (empaquetados).
Digitos Signo
Código Hex A B C D E F
Valor 1010 1011 1100 1101 1110 1111
Binario
Signo + - + - + +
* *
* Códigos predefinidos
38 26 4D
Los programas generalmente trabajan con los datos ubicados en nivel más
alto de la jerarquía, representado por campos, registros o archivos.
0 Bit
0101100 Byte
1
5962 Campo
1. Introducción
Los comandos que se usan para la entrada son normalmente: read, get o
sean. Los comandos de la salida son por su parte: print, write o put.
3. Buffer de Datos
El programa accede a los datos usando estos buffers del sistema. Lee del
buffer de entrada y escribe al buffer de salida.
...
LEER
HACER MIENTRAS
(read)
(MAS DATOS)
Entrada LEER
/*PROCESAR*/
ESCRIBIR ESCRIBIR
(write) FIN HACER
Salida ...
Buffers de Datos
4. Imprimir Datos
• Separar los formatos de salida para las líneas de datos y las líneas
del título
• Contadores de línea
• Contadores de páginas
• Encabezados de páginas
El fin de una página se determina contando las líneas y probando este valor
contra un número máximo deseado de líneas por página. Cuando se alcanza
el límite de la página, el programa debe imprimir una línea de pie de página
opcional en la página actual y luego imprimir una línea de título en una
nueva página. Si se usan encabezados de columnas, éstos deben imprimirse
antes de continuar la impresión y contar las líneas de detalle.
7. Encabezados de Páginas
1. Rupturas de Control
Archivo Maestro
Transacciones
00120
01655 01655
59437
24898
76990
59437
76990
98144
Transacciones
Entrada 1: Entrada 2:
5 200.00
5 200.00
5 100.00
5 100.00
5 100.00
5 100.00
16 300.00
6 50.00
16 200.00
6 200.00
9 50.00
16 300.00
Salida 1: Salida
6 2:
200.00
16 100.00
Dpto. No. Ventas Dpto. No. Ventas
5 400.00 5 400.00
6 250.00 16 500.00
Punto de Chequeo