SlideShare ist ein Scribd-Unternehmen logo
1 von 19
FUNDAMENTOS BÁSICOS DE
ALGORITMOS
Una computadora no tiene capacidad para solucionar
problemas más que cuando se le
Proporcionan los pasos sucesivos a realizar, para ello
elaboramos un algoritmo.
14/05/2013Carlos Castillo Valladares 1
Es un método para resolver un problema mediante
una secuencia de instrucciones, cada una de las cuales
especifica las operaciones que debe realizar la
computadora.
¿Qué es un algoritmo?
14/05/2013Carlos Castillo Valladares 2
Las características fundamentales que debe cumplir todo
algoritmo son:
Debe ser preciso e indicar el orden de realización de cada paso.
Debe estar definido. Si se sigue un algoritmo dos o más veces, con los
mismos valores iniciales se debe obtener el mismo resultado.
Debe ser finito. Si se sigue un algoritmo, se debe terminar en algún
momento, es decir, debe tener un número finito de pasos.
También hay que tener en cuenta en un algoritmo:
El algoritmo sirve de base para generar un programa, pero no es el
programa en sí.
El algoritmo no es inteligible directamente por el ordenador.
El mismo algoritmo puede ser implementado de forma distinta en
diversos programas, es decir, dos programadores pueden obtener
distintos códigos fuente a partir del mismo Algoritmo.
Características de un algoritmo
14/05/2013Carlos Castillo Valladares 3
La definición de un algoritmo debe describir tres partes:
Entrada, proceso y salida.
La información proporcionada al algoritmo constituye su
entrada, el procedimiento para la
solución del problema constituye su proceso y la información
producida por el algoritmo constituye su salida.
A continuación ejemplos para un mejor entendimiento:
El proceso de un algoritmo
14/05/2013Carlos Castillo Valladares 4
Leer la base y altura de un paralelogramo. Calcular su
área.
Datos de Entrada ---> base y altura
Proceso ---> área = base x altura
Datos de Salida ---> El área del paralelogramo
Ejemplo 01:
14/05/2013Carlos Castillo Valladares 5
Leer el radio de una circunferencia. Calcular su área y
longitud.
Datos de Entrada ---> Radio de una circunferencia.
Proceso ---> Área = ¶r2 y Longitud = 2¶r
Datos de Salida ---> El área y longitud de una
circunferencia.
Ejemplo 02:
14/05/2013Carlos Castillo Valladares 6
Una vez escrito el algoritmo es necesario asegurarse de
que éste realiza las tareas para las que ha sido diseñado, y
que por lo tanto produce el resultado correcto y esperado.
El modo más normal de comprobar un algoritmo es
mediante su ejecución manual usando datos significativos
que abarquen todo el posible rango de valores y anotando
en una hoja de papel los valores que van tomando en las
diferentes fases, los datos de entrada o auxiliares y, por
último los valores de los resultados. Este proceso se
conoce como prueba del algoritmo o prueba de escritorio.
Verificación del algoritmo o prueba
de escritorio
14/05/2013Carlos Castillo Valladares 7
Haremos una prueba de escritorio de
los dos problemas anteriores:
14/05/2013Carlos Castillo Valladares 8
Para representar un algoritmo se debe utilizar algún método que permita
independizar dicho algoritmo del lenguaje de programación elegido. Ello permitirá que
un algoritmo pueda ser codificado indistintamente en cualquier lenguaje.
Para conseguir este objetivo se precisa que el algoritmo sea representado gráfica o
numéricamente, de modo que las sucesivas acciones no dependan de la sintaxis de
ningún lenguaje de programación, sino que la descripción pueda servir fácilmente para
su transformación en un programa, es decir, su codificación.
Los métodos usuales para representar un algoritmo son:
Diagrama de Flujo.
Diagrama estructurado o N – S (Nassi Schneiderman).
Pseudocódigo.
REPRESENTACIÓN GRÁFICA DE LOS
ALGORITMOS
14/05/2013Carlos Castillo Valladares 9
Un diagrama de flujo es una de las técnicas de
representación de algoritmos más antigua y a la vez más
utilizada, aunque su empleo ha disminuido
considerablemente. Un diagrama de flujo es un diagrama
que utiliza los símbolos (cajas) estándar y que tiene los
pasos del algoritmo escritos en esas cajas unidas por
flechas, denominadas líneas de flujo, que indican la
secuencia en que se deben ejecutar.
Los símbolos más utilizados en un diagrama de flujo son:
Diagrama de Flujo
14/05/2013Carlos Castillo Valladares 10
14/05/2013Carlos Castillo Valladares 11
14/05/2013Carlos Castillo Valladares 12
Los símbolos más utilizados en un diagrama de flujo
son:
a. inicio/fin.
b. proceso.
c. decisión.
d. conectores.
e. entrada/salida.
f. dirección del flujo.
Simbolos
14/05/2013Carlos Castillo Valladares 13
Para conocer cómo se resuelve un problema mediante el
diagrama de flujo, resolveremos un ejemplo:
Ejemplo 1:
El diagrama de flujo siguiente representa la
resolución de nuestro primer programa que
deduce el área y perímetro de un rectángulo,
sabiendo que su base y altura tienen los
valores 8cm y 2cm
Respectivamente.
Primer algoritmo con un diagrama
de flujo
14/05/2013Carlos Castillo Valladares 14
Explicación de nuestro primer algoritmo
Lo primero que debemos hacer para realizar un algoritmo, es analizar el
problema; reconocer las variables que representarán a los datos de entrada,
dentro del proceso de cálculo y los datos de salida, que vamos a utilizar, procesar
y encontrar.
14/05/2013Carlos Castillo Valladares 15
Para este ejemplo hemos identificado nuestras variables a
trabajar:
a. base = b
b. altura = h
c. área = a
d. perímetro = p
Todo algoritmo se debe comenzar con un inicio y finalizar
con un fin, para ello se utilizará el símbolo terminal. Para
lograr explicar con mayor claridad nuestro algoritmo, hemos
incluido número de línea. Donde la explicación por línea es
la siguiente:
Análisis
14/05/2013Carlos Castillo Valladares 16
La línea 01, se utiliza el símbolo terminal junto con la palabra inicio que
representa el comienzo del algoritmo.
La línea 02, se utiliza el símbolo proceso donde a las variables b y h se le
asignan los números 8 y 2 respectivamente.
La línea 03, se utiliza el símbolo proceso donde primero se realiza la operación
b * h y segundo, el resultado de esta operación se asigna a la variable a (área).
La línea 04, se utiliza el símbolo conector de página, donde sirve para enlazar
dos partes cualesquiera en la misma página del diagrama. Para poder enlazar
los conectores podemos utilizar números o símbolos diferentes a los utilizados
en el algoritmo.
La línea 05, se utiliza el símbolo proceso donde primero se realiza la operación
2 * (b + h) y segundo, el resultado de esta operación se asigna a la variable p
(perímetro).
La línea 06, se utiliza el símbolo entrada/salida, en este caso este símbolo
representa la salida de la información obtenida por el algoritmo: el área y el
perímetro.
La línea 07, se utiliza el símbolo terminal junto con la palabra fin que representa
el fin del algoritmo.
14/05/2013Carlos Castillo Valladares 17
El diagrama de flujo del ejemplo anterior también se puede llevar
acabo sin el uso de conectores de página o de páginas diferentes, en
el siguiente diagrama se muestra cómo sería. Pero para este
ejemplo haremos una variación en nuestro ejemplo. En el ejemplo 1,
los datos de la base y altura eran conocidos 8cm y 2cm. En este
ejemplo los datos de la base y altura, no se conocen y se solicitan
para resolver el problema; para solicitar los datos de entrada
utilizaremos el símbolo entrada/salida.
Ejemplo 2:
14/05/2013Carlos Castillo Valladares 18
Nota:
En el ejemplo 1, los valores de b y h se conocen, por ello se utiliza
el símbolo proceso. Pero para el ejemplo 2, los valores no se
conocen por tanto tienen que ser ingresados, para realizar ello en
algoritmos se utiliza el símbolo entrada/salida.
14/05/2013Carlos Castillo Valladares 19

Weitere ähnliche Inhalte

Was ist angesagt?

Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificaciónAlex Uhu Colli
 
Arquitectura de Von Neumann
Arquitectura de Von NeumannArquitectura de Von Neumann
Arquitectura de Von Neumannvictor medra
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...Hugo Alberto Rivera Diaz
 
Informe de arreglos en PseInt
Informe de arreglos en PseInt Informe de arreglos en PseInt
Informe de arreglos en PseInt Chad Bridge
 
Normalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fnNormalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fnLuis Jherry
 
Sistema De Gestión De Base De Datos
Sistema De Gestión De Base De DatosSistema De Gestión De Base De Datos
Sistema De Gestión De Base De DatosGuillermo Chirinos
 
Capas de abstracción de la arquitectura de ordenadores
Capas de abstracción de la arquitectura de ordenadoresCapas de abstracción de la arquitectura de ordenadores
Capas de abstracción de la arquitectura de ordenadoresSandy Sócola
 
Lenguaje natural pseudocodigo diagramacion y programacion
Lenguaje natural pseudocodigo diagramacion y programacionLenguaje natural pseudocodigo diagramacion y programacion
Lenguaje natural pseudocodigo diagramacion y programacionClaudia Poza
 
¿Como hacer un pseudocodigo y diagrama de flujo?
¿Como hacer un pseudocodigo y diagrama de flujo?¿Como hacer un pseudocodigo y diagrama de flujo?
¿Como hacer un pseudocodigo y diagrama de flujo?grachika
 
Diseño de un algoritmo en diagrama de flujo que imprime los números impares h...
Diseño de un algoritmo en diagrama de flujo que imprime los números impares h...Diseño de un algoritmo en diagrama de flujo que imprime los números impares h...
Diseño de un algoritmo en diagrama de flujo que imprime los números impares h...naniily
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfijaOmarzingm
 
Fundamentos de programación 1. diseño de algoritmos
Fundamentos de programación 1. diseño de algoritmosFundamentos de programación 1. diseño de algoritmos
Fundamentos de programación 1. diseño de algoritmosEdward Ropero
 

Was ist angesagt? (20)

Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificación
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Arquitectura de Von Neumann
Arquitectura de Von NeumannArquitectura de Von Neumann
Arquitectura de Von Neumann
 
arreglos y matrices
arreglos  y matricesarreglos  y matrices
arreglos y matrices
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
 
Ciclo de instrucción
Ciclo de instrucciónCiclo de instrucción
Ciclo de instrucción
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Informe de arreglos en PseInt
Informe de arreglos en PseInt Informe de arreglos en PseInt
Informe de arreglos en PseInt
 
Normalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fnNormalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fn
 
Sistema De Gestión De Base De Datos
Sistema De Gestión De Base De DatosSistema De Gestión De Base De Datos
Sistema De Gestión De Base De Datos
 
22 ejercicios base de datos
22 ejercicios base de datos 22 ejercicios base de datos
22 ejercicios base de datos
 
Capas de abstracción de la arquitectura de ordenadores
Capas de abstracción de la arquitectura de ordenadoresCapas de abstracción de la arquitectura de ordenadores
Capas de abstracción de la arquitectura de ordenadores
 
Matrices pseint
Matrices   pseintMatrices   pseint
Matrices pseint
 
Lenguaje natural pseudocodigo diagramacion y programacion
Lenguaje natural pseudocodigo diagramacion y programacionLenguaje natural pseudocodigo diagramacion y programacion
Lenguaje natural pseudocodigo diagramacion y programacion
 
¿Como hacer un pseudocodigo y diagrama de flujo?
¿Como hacer un pseudocodigo y diagrama de flujo?¿Como hacer un pseudocodigo y diagrama de flujo?
¿Como hacer un pseudocodigo y diagrama de flujo?
 
Arreglos c++
Arreglos c++Arreglos c++
Arreglos c++
 
Diseño de un algoritmo en diagrama de flujo que imprime los números impares h...
Diseño de un algoritmo en diagrama de flujo que imprime los números impares h...Diseño de un algoritmo en diagrama de flujo que imprime los números impares h...
Diseño de un algoritmo en diagrama de flujo que imprime los números impares h...
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Fundamentos de programación 1. diseño de algoritmos
Fundamentos de programación 1. diseño de algoritmosFundamentos de programación 1. diseño de algoritmos
Fundamentos de programación 1. diseño de algoritmos
 

Andere mochten auch

Algoritmos de suma, resta y division.
Algoritmos de suma, resta y division.Algoritmos de suma, resta y division.
Algoritmos de suma, resta y division.betzy27
 
Sistemas de segundo orden
Sistemas de segundo  ordenSistemas de segundo  orden
Sistemas de segundo ordenHenry Alvarado
 
Algoritmos de la suma y la resta
Algoritmos de la suma y la restaAlgoritmos de la suma y la resta
Algoritmos de la suma y la restaDiana Clemente
 
Algoritmo suma y resta
Algoritmo suma y restaAlgoritmo suma y resta
Algoritmo suma y restaKarina Juarez
 
Ejemplos de Algoritmos
Ejemplos de AlgoritmosEjemplos de Algoritmos
Ejemplos de AlgoritmosPepe Xdsasda
 
21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltosRoldan El Gato
 
Taller 1 fundamentos de programación
Taller 1  fundamentos de programaciónTaller 1  fundamentos de programación
Taller 1 fundamentos de programaciónSergio Mancera
 
Cuadernillo de lógica y Algoritmos para niños de primaria.
Cuadernillo de lógica y Algoritmos para niños de primaria.Cuadernillo de lógica y Algoritmos para niños de primaria.
Cuadernillo de lógica y Algoritmos para niños de primaria.Miguel Alfonso Mejía Cuadrado
 
EJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOSEJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOS1002pc3
 
Ejercicios algoritmos 1 programacion
Ejercicios algoritmos 1 programacionEjercicios algoritmos 1 programacion
Ejercicios algoritmos 1 programacionsanmarzia
 
Fundamentos de algoritmos e programação - Fortran
Fundamentos de algoritmos e programação - FortranFundamentos de algoritmos e programação - Fortran
Fundamentos de algoritmos e programação - FortranKennedy Morais Fernandes
 
algoritmos,pseudocodigos y diagramas de flujo.
algoritmos,pseudocodigos y diagramas de flujo.algoritmos,pseudocodigos y diagramas de flujo.
algoritmos,pseudocodigos y diagramas de flujo.Lina222
 
Introducción a la Programación
Introducción a la ProgramaciónIntroducción a la Programación
Introducción a la ProgramaciónJeckson Loza
 
Programación estructurada
Programación  estructuradaProgramación  estructurada
Programación estructuradaPal Almaza
 

Andere mochten auch (20)

Algoritmos de suma, resta y division.
Algoritmos de suma, resta y division.Algoritmos de suma, resta y division.
Algoritmos de suma, resta y division.
 
Sistemas de segundo orden
Sistemas de segundo  ordenSistemas de segundo  orden
Sistemas de segundo orden
 
Algoritmos de la suma y la resta
Algoritmos de la suma y la restaAlgoritmos de la suma y la resta
Algoritmos de la suma y la resta
 
Algoritmo suma y resta
Algoritmo suma y restaAlgoritmo suma y resta
Algoritmo suma y resta
 
Ejemplos de Algoritmos
Ejemplos de AlgoritmosEjemplos de Algoritmos
Ejemplos de Algoritmos
 
Algoritmo de la suma
Algoritmo de la sumaAlgoritmo de la suma
Algoritmo de la suma
 
21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos
 
Taller 1 fundamentos de programación
Taller 1  fundamentos de programaciónTaller 1  fundamentos de programación
Taller 1 fundamentos de programación
 
Cuadernillo de lógica y Algoritmos para niños de primaria.
Cuadernillo de lógica y Algoritmos para niños de primaria.Cuadernillo de lógica y Algoritmos para niños de primaria.
Cuadernillo de lógica y Algoritmos para niños de primaria.
 
EJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOSEJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOS
 
Ejercicios algoritmos 1 programacion
Ejercicios algoritmos 1 programacionEjercicios algoritmos 1 programacion
Ejercicios algoritmos 1 programacion
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Los algoritmos
Los    algoritmosLos    algoritmos
Los algoritmos
 
Fundamentos de algoritmos e programação - Fortran
Fundamentos de algoritmos e programação - FortranFundamentos de algoritmos e programação - Fortran
Fundamentos de algoritmos e programação - Fortran
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
algoritmos,pseudocodigos y diagramas de flujo.
algoritmos,pseudocodigos y diagramas de flujo.algoritmos,pseudocodigos y diagramas de flujo.
algoritmos,pseudocodigos y diagramas de flujo.
 
Info sit1 matap
Info sit1 matapInfo sit1 matap
Info sit1 matap
 
Introducción a la Programación
Introducción a la ProgramaciónIntroducción a la Programación
Introducción a la Programación
 
Tipos de algoritmos
Tipos de algoritmosTipos de algoritmos
Tipos de algoritmos
 
Programación estructurada
Programación  estructuradaProgramación  estructurada
Programación estructurada
 

Ähnlich wie Fundamentos Algoritmos

DEFINICIÓN DE LENGUAJES ALGORÍTMICOS
DEFINICIÓN DE LENGUAJES ALGORÍTMICOSDEFINICIÓN DE LENGUAJES ALGORÍTMICOS
DEFINICIÓN DE LENGUAJES ALGORÍTMICOSadark
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacionneyvajms
 
Resolución de problemas y algoritmo
Resolución de problemas y algoritmoResolución de problemas y algoritmo
Resolución de problemas y algoritmoNombre Apellidos
 
Conceptos básicos de algorítmica
Conceptos básicos de algorítmicaConceptos básicos de algorítmica
Conceptos básicos de algorítmicacolegio emanuel
 
Desarrollo de lógica algorítmica_PARTE 1.PPTX
Desarrollo de lógica algorítmica_PARTE 1.PPTXDesarrollo de lógica algorítmica_PARTE 1.PPTX
Desarrollo de lógica algorítmica_PARTE 1.PPTXReyna FalcÓn
 
5. Diseño de un algoritmo
5. Diseño de un algoritmo5. Diseño de un algoritmo
5. Diseño de un algoritmorcarrerah
 
Solución de problemas aplicando la computadora
Solución de problemas aplicando la computadoraSolución de problemas aplicando la computadora
Solución de problemas aplicando la computadorarestradal
 
Solución de problemas aplicando la computadora
Solución de problemas aplicando la computadoraSolución de problemas aplicando la computadora
Solución de problemas aplicando la computadorarestradal
 
Algoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoAlgoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoClariza
 
Diseño de pseudocodigo
Diseño de pseudocodigoDiseño de pseudocodigo
Diseño de pseudocodigoANIMEFLV
 

Ähnlich wie Fundamentos Algoritmos (20)

DEFINICIÓN DE LENGUAJES ALGORÍTMICOS
DEFINICIÓN DE LENGUAJES ALGORÍTMICOSDEFINICIÓN DE LENGUAJES ALGORÍTMICOS
DEFINICIÓN DE LENGUAJES ALGORÍTMICOS
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacion
 
Resolución de problemas y algoritmo
Resolución de problemas y algoritmoResolución de problemas y algoritmo
Resolución de problemas y algoritmo
 
Conceptos básicos de algorítmica
Conceptos básicos de algorítmicaConceptos básicos de algorítmica
Conceptos básicos de algorítmica
 
Algoritmos
Algoritmos Algoritmos
Algoritmos
 
Desarrollo de lógica algorítmica_PARTE 1.PPTX
Desarrollo de lógica algorítmica_PARTE 1.PPTXDesarrollo de lógica algorítmica_PARTE 1.PPTX
Desarrollo de lógica algorítmica_PARTE 1.PPTX
 
5. Diseño de un algoritmo
5. Diseño de un algoritmo5. Diseño de un algoritmo
5. Diseño de un algoritmo
 
Solución de problemas aplicando la computadora
Solución de problemas aplicando la computadoraSolución de problemas aplicando la computadora
Solución de problemas aplicando la computadora
 
Solución de problemas aplicando la computadora
Solución de problemas aplicando la computadoraSolución de problemas aplicando la computadora
Solución de problemas aplicando la computadora
 
Dfd
DfdDfd
Dfd
 
Manual de java_3
Manual de java_3Manual de java_3
Manual de java_3
 
Manual de java
Manual de java Manual de java
Manual de java
 
manual 10
manual 10manual 10
manual 10
 
Manual de java 3
Manual de java 3Manual de java 3
Manual de java 3
 
MANUAL DE JAVA 1
MANUAL DE JAVA 1MANUAL DE JAVA 1
MANUAL DE JAVA 1
 
Manual de javaa2
Manual de javaa2Manual de javaa2
Manual de javaa2
 
Los algoritmos
Los algoritmosLos algoritmos
Los algoritmos
 
preguntas y respuestas
preguntas y respuestas preguntas y respuestas
preguntas y respuestas
 
Algoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoAlgoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujo
 
Diseño de pseudocodigo
Diseño de pseudocodigoDiseño de pseudocodigo
Diseño de pseudocodigo
 

Fundamentos Algoritmos

  • 1. FUNDAMENTOS BÁSICOS DE ALGORITMOS Una computadora no tiene capacidad para solucionar problemas más que cuando se le Proporcionan los pasos sucesivos a realizar, para ello elaboramos un algoritmo. 14/05/2013Carlos Castillo Valladares 1
  • 2. Es un método para resolver un problema mediante una secuencia de instrucciones, cada una de las cuales especifica las operaciones que debe realizar la computadora. ¿Qué es un algoritmo? 14/05/2013Carlos Castillo Valladares 2
  • 3. Las características fundamentales que debe cumplir todo algoritmo son: Debe ser preciso e indicar el orden de realización de cada paso. Debe estar definido. Si se sigue un algoritmo dos o más veces, con los mismos valores iniciales se debe obtener el mismo resultado. Debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento, es decir, debe tener un número finito de pasos. También hay que tener en cuenta en un algoritmo: El algoritmo sirve de base para generar un programa, pero no es el programa en sí. El algoritmo no es inteligible directamente por el ordenador. El mismo algoritmo puede ser implementado de forma distinta en diversos programas, es decir, dos programadores pueden obtener distintos códigos fuente a partir del mismo Algoritmo. Características de un algoritmo 14/05/2013Carlos Castillo Valladares 3
  • 4. La definición de un algoritmo debe describir tres partes: Entrada, proceso y salida. La información proporcionada al algoritmo constituye su entrada, el procedimiento para la solución del problema constituye su proceso y la información producida por el algoritmo constituye su salida. A continuación ejemplos para un mejor entendimiento: El proceso de un algoritmo 14/05/2013Carlos Castillo Valladares 4
  • 5. Leer la base y altura de un paralelogramo. Calcular su área. Datos de Entrada ---> base y altura Proceso ---> área = base x altura Datos de Salida ---> El área del paralelogramo Ejemplo 01: 14/05/2013Carlos Castillo Valladares 5
  • 6. Leer el radio de una circunferencia. Calcular su área y longitud. Datos de Entrada ---> Radio de una circunferencia. Proceso ---> Área = ¶r2 y Longitud = 2¶r Datos de Salida ---> El área y longitud de una circunferencia. Ejemplo 02: 14/05/2013Carlos Castillo Valladares 6
  • 7. Una vez escrito el algoritmo es necesario asegurarse de que éste realiza las tareas para las que ha sido diseñado, y que por lo tanto produce el resultado correcto y esperado. El modo más normal de comprobar un algoritmo es mediante su ejecución manual usando datos significativos que abarquen todo el posible rango de valores y anotando en una hoja de papel los valores que van tomando en las diferentes fases, los datos de entrada o auxiliares y, por último los valores de los resultados. Este proceso se conoce como prueba del algoritmo o prueba de escritorio. Verificación del algoritmo o prueba de escritorio 14/05/2013Carlos Castillo Valladares 7
  • 8. Haremos una prueba de escritorio de los dos problemas anteriores: 14/05/2013Carlos Castillo Valladares 8
  • 9. Para representar un algoritmo se debe utilizar algún método que permita independizar dicho algoritmo del lenguaje de programación elegido. Ello permitirá que un algoritmo pueda ser codificado indistintamente en cualquier lenguaje. Para conseguir este objetivo se precisa que el algoritmo sea representado gráfica o numéricamente, de modo que las sucesivas acciones no dependan de la sintaxis de ningún lenguaje de programación, sino que la descripción pueda servir fácilmente para su transformación en un programa, es decir, su codificación. Los métodos usuales para representar un algoritmo son: Diagrama de Flujo. Diagrama estructurado o N – S (Nassi Schneiderman). Pseudocódigo. REPRESENTACIÓN GRÁFICA DE LOS ALGORITMOS 14/05/2013Carlos Castillo Valladares 9
  • 10. Un diagrama de flujo es una de las técnicas de representación de algoritmos más antigua y a la vez más utilizada, aunque su empleo ha disminuido considerablemente. Un diagrama de flujo es un diagrama que utiliza los símbolos (cajas) estándar y que tiene los pasos del algoritmo escritos en esas cajas unidas por flechas, denominadas líneas de flujo, que indican la secuencia en que se deben ejecutar. Los símbolos más utilizados en un diagrama de flujo son: Diagrama de Flujo 14/05/2013Carlos Castillo Valladares 10
  • 13. Los símbolos más utilizados en un diagrama de flujo son: a. inicio/fin. b. proceso. c. decisión. d. conectores. e. entrada/salida. f. dirección del flujo. Simbolos 14/05/2013Carlos Castillo Valladares 13
  • 14. Para conocer cómo se resuelve un problema mediante el diagrama de flujo, resolveremos un ejemplo: Ejemplo 1: El diagrama de flujo siguiente representa la resolución de nuestro primer programa que deduce el área y perímetro de un rectángulo, sabiendo que su base y altura tienen los valores 8cm y 2cm Respectivamente. Primer algoritmo con un diagrama de flujo 14/05/2013Carlos Castillo Valladares 14
  • 15. Explicación de nuestro primer algoritmo Lo primero que debemos hacer para realizar un algoritmo, es analizar el problema; reconocer las variables que representarán a los datos de entrada, dentro del proceso de cálculo y los datos de salida, que vamos a utilizar, procesar y encontrar. 14/05/2013Carlos Castillo Valladares 15
  • 16. Para este ejemplo hemos identificado nuestras variables a trabajar: a. base = b b. altura = h c. área = a d. perímetro = p Todo algoritmo se debe comenzar con un inicio y finalizar con un fin, para ello se utilizará el símbolo terminal. Para lograr explicar con mayor claridad nuestro algoritmo, hemos incluido número de línea. Donde la explicación por línea es la siguiente: Análisis 14/05/2013Carlos Castillo Valladares 16
  • 17. La línea 01, se utiliza el símbolo terminal junto con la palabra inicio que representa el comienzo del algoritmo. La línea 02, se utiliza el símbolo proceso donde a las variables b y h se le asignan los números 8 y 2 respectivamente. La línea 03, se utiliza el símbolo proceso donde primero se realiza la operación b * h y segundo, el resultado de esta operación se asigna a la variable a (área). La línea 04, se utiliza el símbolo conector de página, donde sirve para enlazar dos partes cualesquiera en la misma página del diagrama. Para poder enlazar los conectores podemos utilizar números o símbolos diferentes a los utilizados en el algoritmo. La línea 05, se utiliza el símbolo proceso donde primero se realiza la operación 2 * (b + h) y segundo, el resultado de esta operación se asigna a la variable p (perímetro). La línea 06, se utiliza el símbolo entrada/salida, en este caso este símbolo representa la salida de la información obtenida por el algoritmo: el área y el perímetro. La línea 07, se utiliza el símbolo terminal junto con la palabra fin que representa el fin del algoritmo. 14/05/2013Carlos Castillo Valladares 17
  • 18. El diagrama de flujo del ejemplo anterior también se puede llevar acabo sin el uso de conectores de página o de páginas diferentes, en el siguiente diagrama se muestra cómo sería. Pero para este ejemplo haremos una variación en nuestro ejemplo. En el ejemplo 1, los datos de la base y altura eran conocidos 8cm y 2cm. En este ejemplo los datos de la base y altura, no se conocen y se solicitan para resolver el problema; para solicitar los datos de entrada utilizaremos el símbolo entrada/salida. Ejemplo 2: 14/05/2013Carlos Castillo Valladares 18
  • 19. Nota: En el ejemplo 1, los valores de b y h se conocen, por ello se utiliza el símbolo proceso. Pero para el ejemplo 2, los valores no se conocen por tanto tienen que ser ingresados, para realizar ello en algoritmos se utiliza el símbolo entrada/salida. 14/05/2013Carlos Castillo Valladares 19