Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CDLR/2015
COLEGIO UNIVERSITARIO DE CARACAS
Prof.: C. de la Rosa
Algorítmica y Programación
COMPUTADOR: Es una herramienta que permite trabajar con datos para obtener
información.
OPERADORES: Son todos los símbolos que representan enlaces entre cada uno de los
argumentos que intervienen en una operación y se utilizan para construir expresiones.
Los operadores se clasifican en:
OR (o) La expresión que forma es cierta cuando al menos uno de sus operadores
es cierto. Es el operador lógico de disyunción.
AND (y) La expresión formada es cierta cuando todos los operadores son ciertos.
Es el operador de conjunción.
NOT Afecta a la expresión cambiando su estado lógico, si era cierto lo
transforma en falso y viceversa.
Guía Nº 1 2
CDLR/2015
4.- OTROS OPERADORES:
FIN DE DATOS: Se habla de fin de datos cuando son pocos datos introducidos por
teclado. Se aplica cuando se ingresa información uno a uno, en cambio Fin de archivo
es una condición que se da en un proceso automatizado y cuando se ha leído todos los
registros de un archivo, se utiliza para muchos datos.
SINTAXIS: Este término se utiliza para denotar la forma correcta de escribir las
instrucciones de un lenguaje de programación.
Análisis del problema Las dos primeras fases conducen a un diseño detallado
Diseño del algoritmo escrito en forma de algoritmo.
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.
Compilación y La fase de compilación traduce el código fuente a código
ejecución máquina mediante el empleo de intérpretes o compiladores y
en la fase de ejecución se corre el programa sobre la
computadora.
Verificación En las fases de verificación y depuración el programador
busca errores de las etapas anteriores y los elimina.
Depuración Podrá comprobar que mientras más tiempo gaste en la fase
de análisis y diseño menos tiempo invertirá en la fase de
verificación y depuración.
Documentación Se debe realizar la fase de documentación del programa,
con objeto de que cualquier persona ajena al mismo pueda
entender qué hace y cómo lo hace.
EJEMPLO:
Una persona ha trabajado 38 horas en una semana dada y gana a razón de 2.500 bolívares
la hora. La tasa de impuestos del Estado es del 15,5 por 100 de su paga bruta. Se desea
conocer su paga bruta, el descuento por el impuesto y la paga neta del trabajador.
con estos datos de entrada tenemos todo lo necesario para obtener los datos de salida
simplemente realizando las siguientes operaciones:
DISEÑO DEL ALGORITMO: Es el proceso que convierte los resultados del análisis del
problema en un diseño modular con refinamientos (pasos) sucesivos que permitan una
posterior traducción a un lenguaje. El diseño del algoritmo es independiente del lenguaje
de programación en el que se vaya a codificar posteriormente. Todo algoritmo debe
cumplir con las siguientes características:
Debe estar escrito de tal forma que sea fácil de leer y de entender.
Debe ocupar lo menos posible para aprovechar al máximo la memoria del computador
y para que el tiempo de ejecución sea el menor posible.
Debe tener final.
Debe ser lógico.
Debe ser interpretado por terceras persona.
Terminal SubPrograma
No
Decisión Conectores
Si
No si
A
C B
Guía Nº 1 6
CDLR/2015
c) Gráfico de lazo o ciclo: Las ejecuciones E y F continúan en forma de ciclo mientras D
sea verdadera, si es falso no se ejecutan E y F. La lógica es ejecútese E y F mientras D
sea verdadera.
Falso
D
Verdadera
Falso
G
Verdadera
J
Guía Nº 1 7
CDLR/2015
Reglas para construir un Diagrama de Flujo:
Ejercicio: Dado un registro de tres campos diferentes imprimir el campo que resulte mayor
de los tres. El objetivo del problema es “Hallar el número mayor de un registro”.
Datos de entrada: Campo 1 (C1), Campo 2 (C2) y Campo 3 (C3)
Salida requerida: El mayor de los tres campos.
INICIO
LEER
REGISTRO
Si Si El mayor
C1 > C2 C1 > C3 de los tres FIN
Es C1
No No A
El mayor
No de los tres
A C2 > C3 es C3
Si
FIN
El mayor
de los tres
es C2
FIN
Guía Nº 1 8
CDLR/2015
DIAGRAMACIÓN ESTRUCTURADA: Consiste en representar los algoritmos mediante
bloques, lo que permite una visión mucho más estructurada de ellos y por consiguiente
mayor facilidad al traducirlos al lenguaje de programación. El diagrama se ve como un
conjunto de bloques y sub-bloques, organizado en forma lógica y que se recorre de arriba
hacia abajo. Cada bloque ejecuta una operación específica.
Ejercicio: el anterior que se efectuó en algoritmo: Dado un registro de tres campos diferentes
imprimir el campo que resulte mayor de los tres. El objetivo del problema es “Hallar el
número mayor de un registro”.
Datos de entrada: Campo 1 (C1), Campo 2 (C2) y Campo 3 (C3)
Salida requerida: El mayor de los tres campos.
INICIO
LEER REGISTRO C1, C2, C3
C1 > C2
SI NO
C1 > C3 C2 > 3C
SI NO SI NO
MAYOR = C1 MAYOR = C3 MAYOR = C2 MAYOR = C3
IMPRIMIR: “EL MAYOR ES:” MAYOR
FIN
Al contrario que los lenguajes de programación de alto nivel como Pascal, Basic, C,
etc., no existe un conjunto de reglas que definan con precisión lo que es y lo que no es
pseudocódigo.
inicio Begin / { si if
fin End / } entonces then
leer read/input / scanf Si-no else
escribir write /print/prinf según Case
desde for mientras While
para For repetir Repeat
Hasta que Until entero Integer, int,
procedimiento Procedure, module caracter Char
:=, = (asignación) { } / /* * / comentarios
Guía Nº 1 9
CDLR/2015
A continuación se desarrolla un pseudocódigo que calcula el volumen de una esfera
de radio R:
EJEMPLO:
Algoritmo Esfera;
{Algoritmo que calcula el volumen de una esfera a partir de un radio}
Constantes
Pi = 3.14159
Variables
Radio: integer;
volumen :real;
Inicio
Escribir (‘Introduzca el radio de la esfera: ‘);
Leer (radio);
volumen 4/3*pi*radio*radio
Escribir (‘volumen de la esfera de radio’,radio,’ = ‘, volumen)
Fin
Ejemplo:
El pseudocódigo del programa Tabla de Depreciación acumuladas y los valores reales
costo valor de recupeació n
de cada año ( D ) es:
vida útil
Previsiones de depreciación
Introducir costo
vida útil
valor final de rescate (recuperación)
imprimir cabeceras
Establecer el valor inicial del Año
Calcular depreciación
mientras valor año <= vida útil hacer
calcular depreciación acumulada
calcular valor actual
imprimir una línea de la tabla
incrementar el valor del año
fin de mientras
Ejemplo:
Algoritmo:
1. Leer Horas, Tarifa, Tasa
2. Calcular PagaBruta = Horas*Tarifa
3. Calcular Impuesto= PagaBruta *tasa
4. Calcular PagaNeta= PagaBruta- Impuesto
5. Visualizar PagaBruta, Impuesto y PagaNeta.
Guía Nº 1 10
CDLR/2015
Ejemplo: Algoritmo para calcular la suma de los primeros 100 números enteros.
1. Establecer Contador a 1
2. Establecer Suma a 0
3. mientras Contador < 100 hacer
Sumar Contador a Suma
Incrementar Contador en 1
Fin-mientras
4. Visualizar Suma
Codificación de un programa:
Para realizar la conversión del algoritmo en programa se deben sustituir las palabras
reservadas en español por sus homónimos en inglés, y las operaciones/instrucciones
indicadas en lenguaje natural expresarlas en el lenguaje de programación correspondiente.
PROGRAM previsiones;
{ Este programa obtiene una tabla de depreciaciones acumuladas y valores reales de cada
año de un determinado producto}
VAR
Costo, Deprecia, Valor_Recupera, Valor_Actual, Acumulada, Valor_Anual: REAL;
A, Vida_Util:INTEGER;
BEGIN
WriteLn ('Introduzca coste, valor recuperación y Vida_Util’);
ReadLn (Coste, Valor_Recupera, Vida_Util);
WriteLn ('Introduzca año actual');
ReadLn (A);
Valor_Actual := Costo;
Deprecia := (Coste - Valor_Recupera) / Vida_Util;
Acumulada:= 0;
Write ('Año' : 7, 'Depreciacion':15, 'Dep. Acumulada':17);
WriteLn ('Valor_Actual':14);
While A < Vida_Util do
BEGIN
Acumulada:=Acumulada + Deprecia;
Valor_Actual := Valor_Actual_Depreciacion;
Write (A :8, Deprecia :11:1, Acumulada :17);
A:=A + 1
END;
END.
Guía Nº 1 11
CDLR/2015
Es necesario observe las siguientes características básicas:
Cabecera del programa. Nombre del programa, autor, fecha de creación, etc.
Lista de variables. Es obligatoria su declaración en Pascal.
Legibilidad: Los programas deben ser lo más legibles posible, por ello el espaciado y las
sangrías (márgenes interiores) se deben utilizar con frecuencia.
Diseño modular: Este simple programa sólo consta de un módulo principal.
Documentación: Los programas deben incluir comentarios internos, en forma de líneas
con separadores { } o bien (* *).
Documentación interna:
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
advertir 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.
Documentación y Mantenimiento:
PROGRAMACIÓN MODULAR:
La programación modular es uno de los métodos de diseño más flexible y potente para
mejorar la productividad de un programa. En programación modular el programa se divide en
módulos (partes independientes), cada una de las cuales ejecuta una única actividad o tarea
y se codifican independientemente de otros módulos. Cada uno de estos módulos se
analizan, codifican y ponen a punto por separado.
Guía Nº 1 13
CDLR/2015
ESTRUCTURAS DE CONTROL:
Posee un solo punto de entrada y uno de salida o fin para control del programa.
Existen caminos desde la entrada hasta la salida que se pueden seguir y que pasan por
todas las partes del programa.
Todas las instrucciones son ejecutables y no existen lazos o bucles infinitos (sin fin).
EJERCICIOS
1. Diseñar una solución para resolver cada uno de los siguientes problemas y trate de refinar
sus soluciones mediante algoritmos adecuados:
a) Realizar una llamada telefónica desde un teléfono público.
b) Arreglar un pinchazo de una bicicleta.
c) Averiguar si una palabra introducida desde el teclado es un palíndromo. Un palíndromo
es una palabra que se lee de igual manera en sentido directo y en sentido inverso;
por ejemplo, “radar”.
d) Freír un huevo.
2. Escribir un algoritmo para:
a) Sumar dos números enteros.
b) Restar dos números enteros.
c) Multiplicar dos números enteros.
d) Dividir un número entero por otro.