Professional Documents
Culture Documents
La programación o diagramación lógica es una forma de programar donde lo más importante es definir
un conjunto de hechos, que se conocen con anterioridad, y un conjunto de reglas que nos definen las
distintas relaciones que existen entre los componentes del programa. Estos hechos y reglas conforman
lo que se llama La base del conocimiento.
La programación lógica utiliza lenguajes de alto nivel que se asemejan mucho a los lenguajes
humanos. Por lo general, este tipo de programación hace uso de algoritmos recursivos.
La tarea del programador es indicarle a la computadora un conjunto de instrucciones para que ella
solucione su problema. El idioma que el programador utiliza para indicarle todo esto a una
computadora es lo que ya conocimos como lenguaje de programación.
Para resolver un problema mediante una computadora, se suelen seguir ciertos pasos, que son parte
de una metodología. Aclaremos, antes de ver dichos pasos, que con la práctica algunos se pueden
omitir, pero ante cualquier duda es recomendable efectuar los siguientes:
Si bien estos pasos so los básicos, nosotros, vamos a concentrarnos en los primeros dos.
Los datos de entrada son los datos que se ingresarán de alguna forma o mediante algún método en el
programa. Éstos pueden ser desde una planilla de alumnos de una facultad hasta un archivo binario
con información codificada que contiene los saldos de cuentas bancarias.
Los datos de salida son aquellos que resultan de aplicar el algoritmo, y constituyen el objetivo de
todo este proceso. Éstos pueden no ser datos propiamente dichos, sino el resultado de aplicar un
proceso específico a los datos de entrada. Algunos ejemplos pueden ser: un listado de los clientes
morosos de un club deportivo, el ordenamiento de alguna estructura de datos determinada, u
operaciones matemáticas como por ejemplo la obtención del factorial de un determinado número.
Si analizamos un problema determinado e identificamos que es necesario listar los clientes que
deban más de dos cuotas de su crédito, un proceso que se puede aplicar para resolver dicho problema
es una simple búsqueda en que la condición de filtro sea “que deba más de dos cuotas”. Entonces, en
2
esta etapa de la metodología se deben analizar los posibles procesos que nos permitan llegar a la
solución del problema. De acuerdo con la complejidad del problema, existirá uno o más.
Construcción de un algoritmo.
La siguiente etapa de la metodología es el diseño y la construcción del algoritmo que nos permitirá
obtener el resultado deseado. Cuando se analizó el problema, se determinó qué se debía hacer para
llegar a los objetivos buscados, y ahora, en la etapa del diseño del algoritmo, se debe determinar
cómo se llevará a cabo esto.
Una recomendación a esta altura de la metodología es dividir el proceso en tareas más sencillas y más
fáciles de implementar. Por ejemplo, si queremos imprimir facturas de los clientes que pagaron el
último mes, podríamos definir dos tareas específicas: la primera es generar las facturas en alguna
estructura de datos acorde con la información requerida, y la segunda es recorrer las estructuras e
imprimirlas. Así, el proceso central, que era obtener las facturas de los clientes, se dividió en dos
tareas más sencillas e independientes entre sí: por un lado, generar las facturas, y por otro,
imprimirlas.
Una vez determinadas las tareas o los módulos que componen el algoritmo, lo que debemos hacer es
escribirlo utilizando tanto diagramas de flujo como pseudocódigo.
Cualquiera de estas dos herramientas son válidas para crear algoritmos; se puede usar una u otra, o
bien ambas. En la práctica, solían usarse más los diagramas de flujo, pero últimamente se está
utilizando con más frecuencia el pseudocódigo.
Con la experiencia, esta etapa se suele saltear, y se escribe el algoritmo directamente en algún
lenguaje de programación. Pero lo recomendable en todo momento es no dejar estos diagramas (o el
pseudocódigo) a un lado, porque constituyen una fuente muy importante en la documentación del
sistema que estamos desarrollando.
Antes de comenzar la etapa de diseño de un algoritmo, lo que tenemos que tener muy claro, son dos
conceptos muy importantes, ellos son:
Algoritmo: Un algoritmo, es un conjunto ordenado y finito de pasos que nos permite solucionar un
problema.
En nuestra vida diaria, constantemente ejecutamos algoritmos, por ejemplo, si se desea hallar las
raíces de una ecuación cuadrática, se utilizaría el algoritmo de Baskara, que son un conjunto de pasos
que nos permiten determinar si una ecuación cuadrática tiene solución e indicar cuál es la misma. En
ocasiones, se desea instalar un equipo de sonido, para ello se sigue paso a paso las instrucciones de un
catálogo que se proporciona junto con el equipo, este conjunto de pasos constituye en sí un algoritmo.
Tomar mate, utilizar una guía telefónica, cocinar siguiendo una receta, etc.
Características de un algoritmo.
Debe ser Preciso, porque cada uno de sus pasos debe indicar de manera precisa e inequívoca que se
debe hacer.
Debe ser Finito, porque un algoritmo debe tener un número limitado de pasos.
Debe ser Definido, porque debe producir los mismos resultados para las mismas condiciones de
entrada.
Partes de un algoritmo.
Entrada de datos, son los datos necesarios que el algoritmo necesita para ser ejecutado.
Salida de resultados, son los datos obtenidos después de la ejecución del algoritmo.
Diagramas de Flujo
• Los diagramas de flujo (o flujo gramas) son diagramas que emplean símbolos gráficos para
representar los pasos o etapas de un proceso. También permiten describir la secuencia de los
distintos pasos o etapas y su interacción. Es quizás la forma de representación más antigua.
Utilizan símbolos conectados con flechas para indicar la secuencia de instrucciones.
• Los diagramas de flujo sirven para indicar cómo es el flujo de ejecución de las acciones que
debe realizar el programa, más allá del lenguaje de programación que se utilice. Los diagramas
de flujo suelen estar acompañados de pseudocódigo, pero no siempre es así. Para empezar a
programar es recomendable tenerlos en cuenta, porque son de gran utilidad, ya que nos fijan
muchos conceptos.
4
2. Permiten identificar los problemas y las oportunidades de mejora del proceso. Se identifican
los pasos redundantes, los flujos de los reprocesos, los conflictos de autoridad, las
responsabilidades, los cuellos de botella, y los puntos de decisión.
3. Muestran las interfaces cliente – proveedor y las transacciones que en ellas se realizan,
facilitando a los empleados el análisis de las mismas.
4. Son una excelente herramienta para capacitar a los nuevos empleados y también a los que
desarrollan la tarea, cuando se realizan mejoras en el proceso.
a) Establecer el alcance del proceso a describir. De esta manera quedará fijado el comienzo y el
final del diagrama. Frecuentemente el comienzo es la salida del proceso previo y el final la
entrada al proceso siguiente.
b) Identificar y listar las principales actividades / subprocesos que están incluidos en el proceso a
describir y su orden cronológico.
f) Asignar un título al diagrama y verificar que esté completo y describa con exactitud el proceso
requerido.
5
Ingreso de Datos.
Salida de Información.
Aplicación Simple.
Condicional.
Condición
SI NO
Conectores.
Pseudocódigo.
• El pseudocódigo es otra forma de diagramar algoritmos o, mejor dicho, especificar las acciones
que debe ejecutar un programa. La forma de hacerlo es mediante un lenguaje muy sencillo y
similar al nuestro. La idea es ir escribiendo con palabras sencillas las acciones que debe seguir
el programa para alcanzar los objetivos.
• No hay un léxico obligado para el pseudocódigo, pero con el uso frecuente se han establecido
algunos estándares.
6
26.De una lista de 10 triángulos, teniendo en cuenta la medida de los tres lados de cada uno de los
triángulos determinar cuantos son equiláteros, isósceles y escalenos.
27.Dada una lista de 5 palabras, indicar cual es la primera en orden alfabético.
28.Dada una lista de 5 palabras, indicar cual es la última en orden alfabético.
29.Dada una lista de 5 números hallar el máximo.
30.De una lista de 100 números determinar simultáneamente el máximo y mínimo número.
31.Dados dos números M y N, hallar el producto sin efectuar la operación producto.
32.Dada una lista de 10 números hallar la suma y el promedio de aquellos que tengan solamente dos
dígitos.
33.Dada una lista de 10 palabras indicar cuantos tienen más de cuatro letras.
34.Dada una lista de 10 palabras indicar cuantas comienzan con vocal.
35.Se leen el apellido, la edad y el promedio de 12 alumnos de una división. Se quiere saber el
apellido y la edad del alumno que posee el promedio más alto.
36.¿Dado el monto de una compra calcular el descuento considerado
• Descuento del 20% si el monto es mayor a $200.
• Descuento del 10% si el monto es mayor a $50 y menor o igual a $100
• No hay descuento si el monto es menor o igual a $50.
37.Se tiene una lista de 10 números y se quiere saber cual es el mayor y cuantas veces aparece en la
lista.
38.¿Dada la duración en minutos de una llamada calcular el costo, considerando?
• Hasta tres minutos el costo es 0.50.
• Por encima de tres minutos es 0.50 más 0.1*cada minuto adicional a los tres primeros.
39.Para preparar un salón de conferencias de un congreso se envió una lista de 100 personas, donde
cada uno de ellos está compuesto de 3 variables: la primera para el n° de documento del
profesional, la segunda representara el sexo (M o F), y la tercera la especialidad (c-Cardiología, p-
Pediatría y t-Traumatología).
Se desea averiguar:
• Cantidad de personas de sexo femenino especializadas en pediatría.
• Imprimir los n° de documento de los especialistas en cardiología.
• Cantidad de hombres que asistieron al congreso.
40.Se leen 100 pares de valores (A, B), el primer valor representa el sueldo de un empleado de una
fábrica. El segunda representa la categoría del mismo (1. Obrero – 2. Capataz – 3. Jefe).
Se desea averiguar:
• De la categoría 1 y 2, cuál tiene mayor cantidad de integrantes.
• El promedio de sueldos de las personas de la categoría 3.
• Cuántos de la categoría 1 cobran más de $1000.