You are on page 1of 16

UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA

VICERRECTORADO ACADÉMICO
COORDINACIÓN GENERAL DE PREGRADO.
PROYECTO DE CARRERA: INGENIERÍA INFORMÁTICA
Fundamentos de la Informática

Resolución de Problemas y Diseño de Algoritmos.

Profesor: Alumno:
José Rodríguez. Gustavo Gómez

C.I: 28.507.540

Sección: 5
Ciudad Guayana, junio de 2023
Introducción

La metodología para dar solución a un problema específico, aplicando algoritmos, así se


abordan diferentes estructuras básicas a fin de diseñar algoritmos orientados a la implementación
de una lógica asertiva. La palabra algoritmo se deriva de la traducción al latín de la palabra árabe
alkhowarzmi, nombre de un matemático y astrónomo árabe que escribió un tratado sobre
manipulación de números y ecuaciones en el siglo IX. Un algoritmo es un conjunto de pasos lógicos
y estructurados que nos permiten dar solución aún problema. La importancia de un algoritmo
radica en desarrollar un razonamiento lógico matemático a través de la comprensión y aplicación
de metodologías para la resolución de problemáticas, éstas problemáticas bien pueden ser de la
propia asignatura o de otras disciplinas como matemáticas, química y física que implican el
seguimiento de algoritmos, apoyando así al razonamiento critico deductivo e inductivo. No
podemos apartar nuestra vida cotidiana los algoritmos, ya que al realizar cualquier actividad diaria
los algoritmos están presentes, aunque pasan desapercibidos, por ejemplo: Al levantarnos cada día
para hacer nuestras labores hacemos una serie de pasos una y otra vez; eso es aplicar un
algoritmo. Los algoritmos son independientes de los lenguajes de programación. En cada problema
el algoritmo puede escribirse y luego ejecutarse en un lenguaje diferente de programación. El
algoritmo es la infraestructura de cualquier solución, escrita luego en cualquier lenguaje
deprogramación.Todo algoritmo consta de tres secciones principales: Entrada: Es la introducción
de datos para ser transformados. Proceso: Es el conjunto de operaciones a realizar para dar
solución al problema. Salida: Son los resultados obtenidos a través del proceso.

2
INDICE

Tema Pág.

Algoritmos …………………………………………………………………………………………………… 04

Tipos Gráficos (Diagrama de flujo: Símbolos y Reglas)…………………………………. 04

Tipos no Gráficos ( Lenguaje Común)……………………………………………………………. 08

Metodología para la resolución de problemas en cuatro pasos ……………………. 08

Programación………………………………………………………………………………………….……. 09

Programación Secuencial, Modular………………………………………………………………. 10

Estrategias de Análisis en programación:…………………………………….................... 10

1. JEPS (Jerarquía, Entrada, Proceso, Salida)…………………………………………. 10


2. Diagramas Norte-Sur……………………………………………………..................... 11
3. Bottom-Up………………………………………………………………………………………. 12
4. Top-Down….......................................................................................... 13
5. Divide y vencerás…………………………………………………………………………….. 13

Conclusión……………………………………………………………………………………………………. 15

Recomendación……………………………………………………………………………………………. 15

Enlaces…………………………………………………………………………………………………………. 16

3
¿Qué es un algoritmo?

Un algoritmo es una secuencia de instrucciones secuenciales, gracias al cual pueden


llevarse a cabo ciertos procesos y darse respuesta a determinadas necesidades o decisiones. Se
trata de conjuntos ordenados y finitos de pasos, que nos permiten resolver un problema o tomar
una decisión.

Los algoritmos no tienen que ver con los lenguajes de programación, dado que un mismo
algoritmo o diagrama de flujo puede representarse en diversos lenguajes de programación, es
decir, se trata de un ordenamiento previo a la programación.

Visto así, un programa no es otra cosa que una serie compleja de algoritmos ordenados y
codificados mediante un lenguaje de programación para su posterior ejecución en un computador.

Los algoritmos también son frecuentes en la matemática y la lógica, y son la base de la fabricación
de manuales de usuario, folletos de instrucciones, etc. Su nombre proviene del latín algoritmus y
éste apellido del matemático persa Al-Juarismi. Uno de los algoritmos más conocidos de la
matemática es el atribuido a Euclides, para obtener el máximo común divisor de dos enteros
positivos, o el llamado “método de Gauss” para resolver sistemas de ecuaciones lineales

Partes de un algoritmo:
Todo algoritmo debe constar de las siguientes partes:
 Input o entrada. El ingreso de los datos que el algoritmo necesita para operar.
 Proceso. Se trata de la operación lógica formal que el algoritmo emprenderá con lo
recibido del input.
 Output o salida. Los resultados obtenidos del proceso sobre el input, una vez terminada la
ejecución del algoritmo.

Tipos gráficos ( Diagrama de flujo: Símbolos y Reglas)


Existen varios tipos de diagramas de flujo, que han descrito numerosos autores o que han
adaptado a sus propias versiones, entre los más conocidos encontramos a: Alan B. Sterneckert,
Andrew Veronis, Marilyn Bohl y Mark A. Fryman.
Hoy hablaremos de los tipos de diagramas más comunes y utilizados.

a) Diagrama de flujo de Decisión

El diagrama de decisión, cómo su nombre lo indica, representa el proceso de generación de


decisiones.

Considera las ideas que se gestan, la información a tener en cuenta, la intervención de las partes
interesadas y administración de tareas.

Con este diagrama, puedes realizar seguimiento a las estrategias, el impacto que tienen las
decisiones y el cumplimiento de metas.

4
b) Diagrama de flujo Lógico

El diagrama de flujo lógico se enfoca en las actividades, condiciona los procesos a respuestas
rápidas y lógicas: SI o NO.

Es útil para identificar cuellos de botella en los procesos, lo que te permite instaurar la posible
solución.Se utiliza mayormente en el desarrollo de algoritmos.

c) Diagrama de flujo de Sistema

Este diagrama, incluye los dispositivos que se utilizan dentro del proceso y que permiten la
circulación del flujo de datos. Ejemplo, computadores, maquinaria, impresoras, etc.

d) Diagrama de flujo de Producto

El objetivo del diagrama de flujo de producto es visualizar todas y cada una de las etapas
necesarias para la fabricación de un producto o servicio.

e) Diagrama de flujo de Proceso (PFD)

Esta clase de diagramas de flujo, muestran la secuencia de pasos o actividades que hay que seguir
dentro de un proceso; desde el inicio, actividades, puntos de decisión y final.

f) Diagrama de flujo de Documento

Realiza un seguimiento de los documentos necesarios dentro de un proceso, semejante a un


manual de documentación. Tiene la finalidad de controlar el flujo y cumplimiento de la
documentación.

g) Diagrama de flujo de Datos (DFD)

El diagrama de flujo de datos (DFD) traza el flujo de los datos o información de un proceso.

h) Diagrama de flujo de Programa

Este diagrama representa la secuencia de instrucciones que se siguen dentro de la programación o


desarrollo de software.

Es muy útil, porque sigue la secuencia exacta del programa, y condiciona la utilización de fórmulas
matemáticas específicas y operaciones lógicas.

Características de un Diagrama de flujo


Como ya lo hemos dicho, el objetivo de un diagrama de flujo es expresar de manera visual un
proceso. Para esto emplea símbolos que representan de forma esquemática todos los pasos por
los que atraviesa ese proceso.

 Símbolos:

5
Ovalo símbolo diagrama de flujo

Óvalo: Se le conoce como terminal y representa el inicio o final del proceso.

Flecha símbolo diagrama de flujo

Flecha: Línea de Flujo muestra la dirección y orden de los procesos, guiando los pasos de un
símbolo a otro.

Rectángulo símbolo diagrama de flujo

Rectángulo: Se llama proceso y representa un conjunto de operaciones que dan un resultado.

Rombo símbolo diagrama de flujo

Rombo: Identifica las decisiones, u operaciones condicionales.

Entrada y salido símbolo diagrama de flujo

Paralelogramo: Entrada, simboliza la entrada de datos.

Hoja de papel: Salida, significa la salida de datos, por ello semeja la impresión de una hoja.

Símbolo comentario diagrama de flujo

Comentario: Anotación, muestra una información adicional a tener en cuenta.

6
Símbolo rectángulo doble lateral – diagrama de flujo

Rectángulo doble lateral: Proceso predefinido. Notifica que ese proceso ha sido definido en otro
lugar.

Circulo símbolo diagrama de flujo

Círculo: puede ser solo o con una letra interna. Representan conectores entre actividades, la letra
es el etiquetado.

Símbolo pentágono de diagrama de flujo

Pentágono: Significa un conector fuera del diagrama, generalmente con un proceso externo.

Triangulo boca abajo símbolo diagrama de flujo

Triángulo boca abajo: Es un archivo definitivo, es decir, un documento que se guarda de forma
permanente.

Triangulo boca arriba símbolo diagrama de flujo

Triángulo boca arriba: Archivo temporal, con tiempo limitado de almacenamiento.

 Reglas para armar un diagrama de flujo

Es muy fácil hacer un diagrama de flujo, pero también existen reglas que seguir para su desarrollo.

Todo diagrama debe tener inicio y fin.

Solamente puedes utilizar líneas rectas en dirección vertical y horizontal.

7
No deben existir líneas sin conexión. Todas deben indicar la dirección del flujo del diagrama hacia
un símbolo; conexión, proceso, impresión, decisión o fin de diagrama.

La dirección de lectura del diagrama debe ser de arriba abajo, de izquierda a derecha o las dos
combinadas.

La simbología de los diagramas debe ser la estandarizada, independientemente del uso del
diagrama; ejemplo un lenguaje de programación.

Utilizar los comentarios para expresar ideas adicionales que permitan la comprensión del
diagrama.

En caso que el diagrama sea muy grande y complejo, recuerda enumerar las páginas y utilizar los
conectores adecuados.

Como observamos, son reglas generales, que en su aplicación, permitirán un mejor desarrollo del
diagrama de flujo.

Tipos no gráficos (lenguaje común)

Define un conjunto de reglas que determinan cómo pueden interoperar los programas escritos en
diferentes lenguajes. Esto significa que se pueden usar diferentes lenguajes de programación para
crear software que se ejecutará en el mismo ordenador.

La infraestructura de lenguaje común (en inglés Common Language Infrastructure o CLI) es una
especificación estandarizada que describe un entorno virtual para la ejecución de aplicaciones,
cuya principal característica es la de permitir que aplicaciones escritas en distintos lenguajes de
alto nivel puedan luego ejecutarse en múltiples plataformas tanto de hardware como de software
sin necesidad de reescribir o recompilar su código fuente.

Metodología para la resolución de problemas en cuatro pasos


Las fases en la construcción de un programa para resolver un problema mediante la
computadora son, en orden, las siguientes

 Análisis del problema


 Diseño del Algoritmo
 Programación
 Ejecución y pruebas

1) Análisis del problema: el análisis consiste en una clara definición del problema,
dónde se contemple exactamente lo que debe hacer el programa y el resultado o
solución deseada

8
Dado que se busca una solución por computadora, se precisan especificaciones detalladas
de entrada y salida. Es decir después de analizar el problema, se han de conocer
claramente tres cosas:

 Datos de entrada de que se dispone.


 Procesos o tratamiento que ha de realizarse con estos datos.
 Información de salida deseada.
Una de las técnicas más empleadas recibe el nombre de H.I.P.O que consiste en
esquematizar cada programa, o una parte del mismo en los tres bloques.
2) Diseño del Algoritmo: teniendo en cuenta que un algoritmo es un método para
resolver problemas, una ves analizado en mismo se precisa diseñar un algoritmo
que indique claramente los pasos a seguir para resolverlo.
Para realizar un determinado proceso, se debe suministrar al ordenador una fórmula para
la resolución de un problema (algoritmo), cuyo diseño debe ser independiente de la
computadora que resuelve el problema.
3) Programación: una vez el diagrama de flujo o el algoritmo de resolución del
problema está definido se pasa a la fase de codificación del programa en cualquier
lenguaje, cuyo resultado será el programa fuente, el cual sigue las reglas de
sintaxis que el lenguaje escogido exija. Después de codificado el programa se
introduce en el ordenador mediante unos programas especiales llamados editores.
Una vez dentro del ordenador, el programa debe ser traducido al único lenguaje
que este entiende
4) Ejecución y pruebas: el echo de haber diseñado un buen Algoritmo y luego haberlo
codificado no significa que el programa resuelva correctamente el problema en
cuestión. Es fundamental es fundamental preparar un conjunto de datos lo más
representativo posible del problema, que permita probar el programa cuando se
ejecute y así verificar los resultados.

¿Qué es la Programación?

La programación es todo proceso que involucra el diseño, codificación, mantenimiento, y


protección de cualquier fuente de programas. El objetivo principal de la programación informática
es la creación de softwares, con el fin de ser ejecutados a través de computadoras, programas o
plataformas.

La programación es el acto de programar, es decir, organizar una secuencia de pasos


ordenados a seguir para hacer cierta cosa. Este término puede utilizarse en muchos contextos, es
común hablar de programación a la hora de organizar una salida, las vacaciones o de la lista de
programas con sus días y horarios de emisión de los canales de televisión o la lista de películas de
un cine.

9
Además, en el campo de la informática, la programación es la pieza clave en la relación
entre los ordenadores y los usuarios. La programación refiere a la acción de crear programas o
aplicaciones a través del desarrollo de un código fuente, que se basa en el conjunto de
instrucciones que sigue el ordenador para ejecutar un programa.

La programación es lo que permite que un ordenador funcione y realice las tareas que el
usuario solicita.

Programación secuencial

También conocido como estructura secuencial, es aquella en la que una instrucción o


acción sigue a otra en secuencia. En este tipo de programación se presentan operaciones de inicio
a fin, inicialización de variables, operaciones de asignación, cálculo, sumarización, entre otras. La
programación secuencial es más simple y fácil de usar. Como las instrucciones están relacionadas,
será más sencillo entender lo que hace cada función en una instrucción. Las tareas se llevan a cabo
de tal manera que la salida de una es la entrada de la siguiente y así sucesivamente hasta finalizar
un proceso; por esta razón se le conoce como secuencial.

Programación Modular

La programación modular consiste en la descomposición de un programa en trozos más


pequeños denominados módulos o subprogramas, en el que cada uno de ellos se encargara de
llevar a cabo una tarea concreta y bien definida, y se agrupara según su funcionalidad. Cada uno de
estos módulos se analizara y codificara por separado. La estructura de un programa modular
constara de un módulo principal desde el que se llamara al resto de los módulos. El módulo
principal recibe el control al inicio de la ejecución del programa

Estrategias de Análisis en programación.


Una vez que se ha comprendido lo que se desea de la computador, es necesario
definir: Los datos de entrada.
Cuál es la información que se desea producir (salida)Los métodos y fórmulas que
se necesitan para procesar los datos.
Una recomendación muy practica es el que nos pongamos en el lugar de el
computador Y analicemos que es lo que necesitamos que nos ordenen y en que secuencia
para producir los Resultados esperados.

 JEPS ( Jerarquía Entrada, Proceso, Salida)

Un sistema es un conjunto de partes o elementos organizados y relacionados que


interactúan entre sí para lograr un objetivo. Los sistemas reciben datos, los cuales son procesados
y al final arrojan algún resultado.

10
Entradas: Es el proceso mediante el cual el Sistema toma los datos que requiere para procesar la
información. Las entradas pueden ser manuales o automáticas. Las manuales son aquellas que se
proporcionan en forma directa por el usuario, mientras que las automáticas son datos o
información que provienen o son tomados de otros sistemas o módulos.

Procesos: Es la capacidad del Sistema para efectuar cálculos de acuerdo con una secuencia de
operaciones preestablecida. Estos cálculos pueden efectuarse con datos introducidos
recientemente en el sistema o bien con datos que están almacenados. Esta característica de los
sistemas permite la transformación de datos fuente en información que puede ser utilizada para la
toma de decisiones.

Salidas: Las salidas son los resultados del proceso de conversión del sistema y se cuentan como
resultados, éxitos o beneficios.

Diagrama Norte-Sur

 Puente Norte:

Es el responsable de la conexión del FSB (bus frontal) de la CPU con los componentes de
alta velocidad del sistema, como son la RAM, el bus PCI y el bus AGP. Normalmente las tarjetas de
expansión se instalarán en las ranuras de este bus. El chip NorthBridge controla las siguientes
características del sistema:

Tipo de microprocesador que soporta la placa.

Número de microprocesadores que soporta la placa.

Velocidad del microprocesador.

La velocidad del bus frontal FSB.

El multiplicador del FSB necesario para el funcionamiento de la CPU.

Tipo de RAM soportada.

Cantidad máxima de memoria soportada.

Tecnologías de memoria soportadas.

11
 Puente Sur:

El puente sur o southbridge, es el chip que implementa las capacidades “lentas” de la


placa madre, en una arquitectura chipset puente norte/puente sur. Es también conocido como I/O
Controller Hub (ICH) en los sistemas Intel. El puente sur se distingue del puente norte porque no
está directamente conectado al CPU, sino que más bien el puente norte conecta el puente sur con
la CPU. Por lo general, un puente sur en particular podrá trabajar con múltiples diferentes puentes
norte, aunque ambos deben ser diseñados para trabajar juntos; ya que puede contener 275, 000
transistores, además de una multitud de otros componentes como son transistores, diodos,
resistencias, condensadores y alambres de conexión, y medir desde menos de un centímetro a
poco mas de tres centímetros. Rara vez se pueden reparar; es decir si un solo componente de un
circuito integrado llegara a fallar, se tendría que cambiar la estructura completa; esto se debe al
tamaño diminuto y los miles de componentes que poseen.

Puente Norte- Sur.


Puente Sur.

Bottom-up
Bottom-up es un método analítico enmarcado dentro del análisis fundamental. Se centra
en los detalles específicos de una empresa, como sus finanzas y operaciones, para evaluar su valor
y potencial de rendimiento. Se basa en la idea de que, al evaluar una empresa desde la base hacia
arriba, es decir, desde sus componentes individuales hasta el todo, se puede tener una
comprensión más precisa de su valor y rendimiento. Comienza estudiando la situación económica
de la empresa hasta llegar a valorar el sector y la economía en general.

Top-Down

El análisis top-down, que significa de arriba hacia abajo, es una modalidad muy usada en el
análisis fundamental y lo que hace es analizar el contexto económico global para la toma de
decisiones de inversión y de construcción de carteras, para ir concretando cada vez más hasta
llegar a una conclusión sobre la empresa que hay que actuar. Su filosofía de inversión comienza por
la distinción de los distintos momentos económicos a escala mundial. Una vez que se han
detectado los principales centros de alto o bajo crecimiento, se define una estrategia de inversión
en cada caso y se da el siguiente paso, que es detectar las economías individuales que cuadran con

12
esa estrategia. El siguiente escalón implica detectar, dentro de cada economía, qué sectores son los
que ofrecen mejores oportunidades de acuerdo con los objetivos marcados; por último, y una vez
detectados esos sectores, hay que determinar los valores concretos en los que se va a invertir (o
desinvertir).

Top-down (‘de arriba abajo’) y bottom-up (‘de abajo arriba’) son estrategias de
procesamiento de información características de las ciencias de la información, especialmente en
lo relativo al software. Por extensión se aplican también a otras ciencias sociales y exactas.

En el modelo top-down se formula un resumen del sistema, sin especificar detalles. Cada
parte nueva es entonces redefinida, cada vez con mayor detalle, hasta que la especificación
completa es lo suficientemente detallada para validar el modelo. El modelo top-down se diseña
con frecuencia con la ayuda de “cajas negras” que hacen más fácil cumplir requisitos aunque estas
cajas negras no expliquen en detalle los componentes individuales.

En contraste, en el diseño bottom-up las partes individuales se diseñan con detalle y luego se
enlazan para formar componentes más grandes, que a su vez se enlazan hasta que se forma el
sistema completo. Las estrategias basadas en el flujo de información “bottom-up” se antojan
potencialmente necesarias y suficientes porque se basan en el conocimiento de todas las variables
que pueden afectar los elementos del sistema.

Divide y vencerás

En las ciencias de la computación, el término divide y vencerás (DYV) hace referencia a uno
de los más importantes paradigmas de diseño algorítmico. El método está basado en la resolución
recursiva de un problema dividiéndolo en dos o más subproblemas de igual tipo o similar. El
proceso continúa hasta que éstos llegan a ser lo suficientemente sencillos como para que se
resuelvan directamente. Al final, las soluciones a cada uno de los subproblemas se combinan para
dar una solución al problema original.

Esta técnica es la base de los algoritmos eficientes para casi cualquier tipo de problema
como, por ejemplo, algoritmos de ordenamiento (quicksort, mergesort, entre muchos otros),
multiplicar números grandes (Karatsuba), análisis sintácticos (análisis sintáctico top-down) y la
transformada discreta de Fourier.

Por otra parte, analizar y diseñar algoritmos de DyV son tareas que lleva tiempo dominar.
Al igual que en la inducción, a veces es necesario sustituir el problema original por uno más
complejo para conseguir realizar la recursión, y no hay un método sistemático de generalización.

El nombre divide y vencerás también se aplica a veces a algoritmos que reducen cada
problema a un único subproblema, como la búsqueda binaria para encontrar un elemento en una
lista ordenada (o su equivalente en computación numérica, el algoritmo de bisección para
búsqueda de raíces).

13
CONCLUSION Y RECOMENDACIÓN

Los algoritmos en la vida común de las personas no se aplica en sistemas informáticos, ni en nada
ajeno al día a día. Muchas de las decisiones que se toman desde que uno se despierta por la
mañana pertenecen a este grupo; deciden de qué modo se deberá transmitir algo que llega, y
cómo seguirá un conjunto de pasos encadenados; según el camino que se toma paraqué la
transmisión llegue de manera efectiva, ejemplos son: por el camino más corto, de manera óptima,
basado en el flujo, etc.

14
El desarrollo de la capacidad analítica y creadora para resolver Problemas constituye el punto de
partida para quienes desean Incursionar en el mundo de la programación informática. Es Esa
capacidad la que permite enfocar el elemento clave del Pensamiento computacional: el algoritmo

Con la idea de llegar a una solución óptima definitiva, elige analizar cada paso como único y elegir
la solución óptima para ese paso.

15
BIBLIOGRAFIA

1.www.algoritmica.net
2.https://kesquivel.files.wordpress.com/2010/03/disenoestructuradoalgoritmos.pdf
3.http://dcb.fi-c.unam.mx/users/alejandromra/Secuencial.pdf
4.http://www.uaeh.edu.mx/docencia/P_Presentaciones/prepa1/algoritmos.pdf
5.http://moodle2.unid.edu.mx/dts_cursos_mdl/lic/IC/EA/AM/06/Algoritmos.pdf

16

You might also like