SlideShare une entreprise Scribd logo
1  sur  9
UNIVERSIDAD POLITECNICA SALESIANA


     ESCUELA DE INGENIERIAS


      FACULTAD DE SISTEMAS



   PROGRAMACION HIPERMEDIAL



       OCTAVO TELEMATICA



             TEMA:



          ALGORITMOS




          INTEGRANTES:



       CRISTIAN GUACHAMIN


          DIEGO NOBOA
MARIA AUXILIADORA MONTALVO


    CARLOS DE LA TORRE


      JAVIER SALINAS


        SILVIA VEGA
Índice


Tema                                                               Pág.


1) Algoritmos _______________________________________ 1


2) Diferencia entre el lenguaje algorítmico y el informático.
_______________________________________ 1


3) Características de los algoritmos ________________ 1


4)        Algoritmos      y                                     funciones
___________________________ 2

5) Medios de expresión de un algoritmo _____________ 2

5.1) Diagrama de flujo ______________________________ 3

5.2) Pseudocódigo ___________________________________ 4

5.3) Máquina de Turing ______________________________ 4

6) Implementación ___________________________________ 4

7) Ejemplos _________________________________________ 5

8) Bibliografía _____________________________________ 5
1) Algoritmo


Un algoritmo es el conjunto de operaciones y procedimientos
que deben seguirse para resolver un problema. La palabra
quot;algoritmoquot; deriva del nombre latinizado del gran matemático
árabe Mohamed Ibn Moussa Al Kow Rizmi, el cual escribió
sobre entre los años 800 y 825 su obra Quitab Al Jabr Al
Mugabala, donde se recogía el sistema de
Numeración hindú y el concepto del cero. Fue Fibonacci, el
que tradujo su obra al latín y la inició con las palabras:
Algoritmi dicit.

2) Diferencia entre el lenguaje algorítmico y el informático.

El lenguaje algorítmico es aquel por medio del cual se realiza
un análisis previo del problema a resolver y encontrar un
método que permita resolverlo. El conjunto de todas las
operaciones a realizar, y el orden en el que deben efectuarse,
se le denomina algoritmo.

El lenguaje informático es aquel por medio del cual dicho
algoritmo se codifica a un sistema comprensible por el
ordenador o computadora. Este tipo de lenguaje es más
cercano a la máquina que al ser humano y podemos distinguir
distintos tipos dependiendo de la proximidad a la maquina. Se
denomina lenguaje de alto nivel aquel que es más cercano a
la comprensión humana y lenguaje de bajo nivel a aquellos
que son más comprensibles por la máquina. En concreto,
nosotros vamos a estudiar un lenguaje en la frontera de uno
de bajo nivel. Es por ello que el 'C' es tan potente y rápido,
pues las funciones principales representan las funciones más
básicas del ordenador.

3) Características de los algoritmos

El científico de computación Donald Knuth ofreció una lista de
cinco propiedades, que son ampliamente aceptadas como
requisitos para un algoritmo:
   1. Carácter finito. quot;Un algoritmo siempre debe terminar después de un número
      finito de pasosquot;.
   2. Precisión. quot;Cada paso de un algoritmo debe estar precisamente definido; las
       operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no
       ambigua para cada casoquot;.
3. Entrada. quot;Un algoritmo tiene cero o más entradas: cantidades que le son dadas
      antes de que el algoritmo comience, o dinámicamente mientras el algoritmo
      corre. Estas entradas son tomadas de conjuntos específicos de objetosquot;.
   4. Salida. quot;Un algoritmo tiene una o más salidas: cantidades que tienen una
      relación específica con las entradasquot;.
   5. Eficacia. quot;También se espera que un algoritmo sea eficaz, en el sentido de que
       todas las operaciones a realizar en un algoritmo deben ser suficientemente
       básicas como para que en principio puedan ser hechas de manera exacta y en un
       tiempo finito por un hombre usando lápiz y papelquot;.
Knuth admite que, aunque su descripción pueda ser
intuitivamente clara, carece de rigor formal, puesto que no
está exactamente claro qué significa quot;precisamente definidoquot;,
quot;de manera rigurosa y no ambiguaquot;, o quot;suficientemente
básicasquot;, y así sucesivamente..
A partir del carácter finito y de la salida se deduce que ante
una misma situación inicial (o valores de entrada) un
algoritmo debe proporcionar siempre el mismo resultado (o
salida), con excepción de los algoritmos probabilistas.

4) Algoritmos y funciones

Formalmente, un algoritmo calcula a una función. Como
cualquier conjunto finito es numerable, y cualquier conjunto
numerable se puede expresar en términos del conjunto de los
números naturales (infinito, pero numerable, de hecho no
existe otro conjunto más grande que sea también
numerable), en esencia, todo algoritmo calcula a funciones
definidas en los números naturales. En este punto, una
función está parcial o totalmente definida. Una función es
parcial cuando hay números naturales que no pertenecen a
su dominio (es decir, hay números naturales sobre los que no
está definida la función), y una función es total en caso
contrario.

Si una función es parcial, el algoritmo que lo calcula solo
devolverá un resultado (es decir gasta un tiempo de cálculo
finito) para los valores en los que la función está definida, no
devolviendo resultado (el tiempo de cálculo es infinito) para el
resto de valores. Si un algoritmo que calcula a una función
parcial devolviera un resultado para los valores no definidos
de la función, entonces no calcularía a esa función sino a otra.
Del mismo modo, un algoritmo que calcula a una función total
siempre devuelve un resultado para todo valor, y que al igual
que las funciones parciales, éste debe coincidir exactamente
con el valor que devuelve la función a la que calcula; y
reiterativamente, en caso contrario, no calcularía a esa
función sino a otra. Así, todo algoritmo calcula a una función
definida sobre los números naturales, sea cuál sea ésta su
naturaleza.
Toda función para la cual exista un algoritmo que lo calcule se
denomina función computable (parcialmente computable o
totalmente computable depende del grado de definición de la
función en cuestión), pero existen funciones que no pueden
ser calculadas como la función de Ackermann, a este último
tipo de funciones se las denomina funciones no computables.

5) Medios de expresión de un algoritmo
Los algoritmos pueden ser expresados de muchas maneras,
incluyendo al lenguaje natural, pseudocódigo, diagramas de
flujo y lenguajes de programación entre otros. Las
descripciones en lenguaje natural tienden a ser ambiguas y
extensas. El usar pseudocódigo y diagramas de flujo evita
muchas        ambigüedades       del  lenguaje natural.  Dichas
expresiones son formas más estructuradas para representar
algoritmos; no obstante, se mantienen independientes de un
lenguaje de programación específico.
La descripción de un algoritmo usualmente se hace en tres
niveles:
    1. Descripción de alto nivel. Se establece el problema, se
      selecciona un modelo matemático y se explica el
      algoritmo      de    manera  verbal,  posiblemente   con
      ilustraciones y omitiendo detalles.
   2. Descripción formal. Se usa pseudocódigo para describir la
      secuencia de pasos que encuentran la solución.
   3. Implementación. Se muestra el algoritmo expresado en un
     lenguaje de programación específico o algún objeto
     capaz de llevar a cabo instrucciones.
También es posible incluir un teorema que demuestre que el
algoritmo es correcto, un análisis de complejidad o ambos.




5.1) Diagrama de flujo
Diagrama de flujo que expresa un algoritmo para calcular la
raíz cuadrada de un número x
Los diagramas de flujo son descripciones gráficas de
algoritmos; usan símbolos conectados con flechas para
indicar la secuencia de instrucciones y están regidos por ISO.
Los diagramas de flujo son usados para representar
algoritmos pequeños, ya que abarcan mucho espacio y su
construcción es laboriosa. Por su facilidad de lectura son
usados como introducción a los algoritmos, descripción de un
lenguaje y descripción de procesos a personas ajenas a la
computación.

5.2) Pseudocódigo

Pseudocódigo es la descripción de un algoritmo que asemeja
a un lenguaje de programación pero con algunas
convenciones del lenguaje natural. Tiene varias ventajas con
respecto a los diagramas de flujo, entre las que se destaca el
poco espacio que se requiere para representar instrucciones
complejas. El pseudocódigo no está regido por ningún
estándar. pseudo viene de falso y por ende es un código al
que aunque es entendible no se aplica al proceso que debe
realizar la maquina.
5.3) Máquina de Turing

La máquina de Turing es un modelo matemático, diseñado
por Alan Turing, que formaliza el concepto de algoritmo. A
este modelo se le refiere comúnmente como la quot;descripción
de más bajo nivelquot; por el hecho de que no utiliza ninguna
expresión coloquial.

6) Implementación

Muchos algoritmos son ideados para implementarse en un
programa. Sin embargo, los algoritmos pueden ser
implementados en otros medios, como una red neuronal, un
circuito eléctrico o un aparato mecánico. Algunos algoritmos
inclusive se diseñan especialmente para implementarse
usando lápiz y papel. El algoritmo de multiplicación tradicional,
el algoritmo de Euclides, la criba de Eratóstenes y muchas
formas de resolver la raíz cuadrada son sólo algunos
ejemplos.


7) Ejemplos:


Ejemplo 1: determinar cuánto vale (a,b,c) después de las siguientes sentencias de
asignación

INICIO
  a <--   2
  b <--   a*4    /* b <-- 2 * 4 = 8 */
  a <--   b+2*a    /* a <-- 8 + 2 * 2 = 12 */
  b <--   2-a*b   /* b <-- 2 - 12 * 8 = 2 - 96 = -94 */
  a <--   a-b    /* a <-- 12 - -94 = 12 + 94 = 106 */
  b <--   -b + 6  /* b <-- --94 + 6 = 94 + 6 = 100 */
FIN




Ejemplo 2: Todo comentario de alguna sentencia, debe ir entre los simbolos /* */.
Los comentarios son útiles para explicar mejor alguna sentencia que puede estar no
clara, para alguien que se enfrenta a las sentencias por primera vez.

Calculo del área de una esfera.

INICIO
   PI <-- 3.14 /* constante */
   Leer radio
   area <-- 4 * PI * radio * radio   /* area de una esfera */
FIN
8) Bibliografía:

   o www.wikipedia.com
   o www.monografias.com
   o www.slideshare.net

Contenu connexe

Tendances

Introduccion a Matlab
Introduccion a MatlabIntroduccion a Matlab
Introduccion a Matlab
Omar Yupanqui
 
3. Conceptos básicos II
3. Conceptos básicos II3. Conceptos básicos II
3. Conceptos básicos II
rcarrerah
 
Programacion MatLab
Programacion MatLabProgramacion MatLab
Programacion MatLab
Edgar Galvez
 
Examen Parcial 1 Introduccion Programacion
Examen Parcial 1 Introduccion ProgramacionExamen Parcial 1 Introduccion Programacion
Examen Parcial 1 Introduccion Programacion
Einstein Briceño
 
Lenguaje Borland C - Estructuras Secuenciales y No Secuenciales
Lenguaje Borland C - Estructuras Secuenciales y No SecuencialesLenguaje Borland C - Estructuras Secuenciales y No Secuenciales
Lenguaje Borland C - Estructuras Secuenciales y No Secuenciales
Karina Arguedas Ruelas
 
U1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos ComplejidadU1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos Complejidad
rezzaca
 

Tendances (19)

Introduccion a Matlab
Introduccion a MatlabIntroduccion a Matlab
Introduccion a Matlab
 
Matlab
MatlabMatlab
Matlab
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Lenguaje de simulacion
Lenguaje de simulacionLenguaje de simulacion
Lenguaje de simulacion
 
Algoritmos y programas ing civil
Algoritmos y programas ing civil Algoritmos y programas ing civil
Algoritmos y programas ing civil
 
Metodologia de la Programción
Metodologia de la ProgramciónMetodologia de la Programción
Metodologia de la Programción
 
Conceptos bàsicos algoritmos
Conceptos bàsicos algoritmosConceptos bàsicos algoritmos
Conceptos bàsicos algoritmos
 
Programacion matlab
Programacion matlabProgramacion matlab
Programacion matlab
 
Fundamentos de algoritmia
Fundamentos de algoritmiaFundamentos de algoritmia
Fundamentos de algoritmia
 
3. Conceptos básicos II
3. Conceptos básicos II3. Conceptos básicos II
3. Conceptos básicos II
 
Programacion MatLab
Programacion MatLabProgramacion MatLab
Programacion MatLab
 
Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
Examen Parcial 1 Introduccion Programacion
Examen Parcial 1 Introduccion ProgramacionExamen Parcial 1 Introduccion Programacion
Examen Parcial 1 Introduccion Programacion
 
Recursividad
RecursividadRecursividad
Recursividad
 
Lenguaje Borland C - Estructuras Secuenciales y No Secuenciales
Lenguaje Borland C - Estructuras Secuenciales y No SecuencialesLenguaje Borland C - Estructuras Secuenciales y No Secuenciales
Lenguaje Borland C - Estructuras Secuenciales y No Secuenciales
 
Cuestionario de algoritmos
Cuestionario de algoritmosCuestionario de algoritmos
Cuestionario de algoritmos
 
U1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos ComplejidadU1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos Complejidad
 
Resumen de algoritmo
Resumen de algoritmoResumen de algoritmo
Resumen de algoritmo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 

Similaire à Algoritmos (20)

Manual users algoritmos
Manual users   algoritmosManual users   algoritmos
Manual users algoritmos
 
Algoritmojulio
AlgoritmojulioAlgoritmojulio
Algoritmojulio
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Private
PrivatePrivate
Private
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmo , MATEMÁTICA
Algoritmo ,  MATEMÁTICAAlgoritmo ,  MATEMÁTICA
Algoritmo , MATEMÁTICA
 
EL ALGORITMO
EL ALGORITMOEL ALGORITMO
EL ALGORITMO
 
El algoritmoo
El algoritmooEl algoritmoo
El algoritmoo
 
Algoritmo Matematicas
Algoritmo MatematicasAlgoritmo Matematicas
Algoritmo Matematicas
 
Algoritmo00
Algoritmo00Algoritmo00
Algoritmo00
 
Algoritmos univ colombia
Algoritmos univ colombiaAlgoritmos univ colombia
Algoritmos univ colombia
 
Tema v
Tema vTema v
Tema v
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoDesarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento
 
AnáLisis De Algoritmos1
AnáLisis De Algoritmos1AnáLisis De Algoritmos1
AnáLisis De Algoritmos1
 
AnáLisis De Algoritmos1
AnáLisis De Algoritmos1AnáLisis De Algoritmos1
AnáLisis De Algoritmos1
 
Axel compu inf2
Axel compu inf2Axel compu inf2
Axel compu inf2
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmos y diagramas de flujos
Algoritmos y diagramas de flujosAlgoritmos y diagramas de flujos
Algoritmos y diagramas de flujos
 

Dernier

6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
amelia poma
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 

Dernier (20)

Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 

Algoritmos

  • 1. UNIVERSIDAD POLITECNICA SALESIANA ESCUELA DE INGENIERIAS FACULTAD DE SISTEMAS PROGRAMACION HIPERMEDIAL OCTAVO TELEMATICA TEMA: ALGORITMOS INTEGRANTES: CRISTIAN GUACHAMIN DIEGO NOBOA
  • 2. MARIA AUXILIADORA MONTALVO CARLOS DE LA TORRE JAVIER SALINAS SILVIA VEGA
  • 3. Índice Tema Pág. 1) Algoritmos _______________________________________ 1 2) Diferencia entre el lenguaje algorítmico y el informático. _______________________________________ 1 3) Características de los algoritmos ________________ 1 4) Algoritmos y funciones ___________________________ 2 5) Medios de expresión de un algoritmo _____________ 2 5.1) Diagrama de flujo ______________________________ 3 5.2) Pseudocódigo ___________________________________ 4 5.3) Máquina de Turing ______________________________ 4 6) Implementación ___________________________________ 4 7) Ejemplos _________________________________________ 5 8) Bibliografía _____________________________________ 5
  • 4. 1) Algoritmo Un algoritmo es el conjunto de operaciones y procedimientos que deben seguirse para resolver un problema. La palabra quot;algoritmoquot; deriva del nombre latinizado del gran matemático árabe Mohamed Ibn Moussa Al Kow Rizmi, el cual escribió sobre entre los años 800 y 825 su obra Quitab Al Jabr Al Mugabala, donde se recogía el sistema de Numeración hindú y el concepto del cero. Fue Fibonacci, el que tradujo su obra al latín y la inició con las palabras: Algoritmi dicit. 2) Diferencia entre el lenguaje algorítmico y el informático. El lenguaje algorítmico es aquel por medio del cual se realiza un análisis previo del problema a resolver y encontrar un método que permita resolverlo. El conjunto de todas las operaciones a realizar, y el orden en el que deben efectuarse, se le denomina algoritmo. El lenguaje informático es aquel por medio del cual dicho algoritmo se codifica a un sistema comprensible por el ordenador o computadora. Este tipo de lenguaje es más cercano a la máquina que al ser humano y podemos distinguir distintos tipos dependiendo de la proximidad a la maquina. Se denomina lenguaje de alto nivel aquel que es más cercano a la comprensión humana y lenguaje de bajo nivel a aquellos que son más comprensibles por la máquina. En concreto, nosotros vamos a estudiar un lenguaje en la frontera de uno de bajo nivel. Es por ello que el 'C' es tan potente y rápido, pues las funciones principales representan las funciones más básicas del ordenador. 3) Características de los algoritmos El científico de computación Donald Knuth ofreció una lista de cinco propiedades, que son ampliamente aceptadas como requisitos para un algoritmo: 1. Carácter finito. quot;Un algoritmo siempre debe terminar después de un número finito de pasosquot;. 2. Precisión. quot;Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada casoquot;.
  • 5. 3. Entrada. quot;Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetosquot;. 4. Salida. quot;Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradasquot;. 5. Eficacia. quot;También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papelquot;. Knuth admite que, aunque su descripción pueda ser intuitivamente clara, carece de rigor formal, puesto que no está exactamente claro qué significa quot;precisamente definidoquot;, quot;de manera rigurosa y no ambiguaquot;, o quot;suficientemente básicasquot;, y así sucesivamente.. A partir del carácter finito y de la salida se deduce que ante una misma situación inicial (o valores de entrada) un algoritmo debe proporcionar siempre el mismo resultado (o salida), con excepción de los algoritmos probabilistas. 4) Algoritmos y funciones Formalmente, un algoritmo calcula a una función. Como cualquier conjunto finito es numerable, y cualquier conjunto numerable se puede expresar en términos del conjunto de los números naturales (infinito, pero numerable, de hecho no existe otro conjunto más grande que sea también numerable), en esencia, todo algoritmo calcula a funciones definidas en los números naturales. En este punto, una función está parcial o totalmente definida. Una función es parcial cuando hay números naturales que no pertenecen a su dominio (es decir, hay números naturales sobre los que no está definida la función), y una función es total en caso contrario. Si una función es parcial, el algoritmo que lo calcula solo devolverá un resultado (es decir gasta un tiempo de cálculo finito) para los valores en los que la función está definida, no devolviendo resultado (el tiempo de cálculo es infinito) para el resto de valores. Si un algoritmo que calcula a una función parcial devolviera un resultado para los valores no definidos de la función, entonces no calcularía a esa función sino a otra. Del mismo modo, un algoritmo que calcula a una función total siempre devuelve un resultado para todo valor, y que al igual que las funciones parciales, éste debe coincidir exactamente con el valor que devuelve la función a la que calcula; y reiterativamente, en caso contrario, no calcularía a esa función sino a otra. Así, todo algoritmo calcula a una función
  • 6. definida sobre los números naturales, sea cuál sea ésta su naturaleza. Toda función para la cual exista un algoritmo que lo calcule se denomina función computable (parcialmente computable o totalmente computable depende del grado de definición de la función en cuestión), pero existen funciones que no pueden ser calculadas como la función de Ackermann, a este último tipo de funciones se las denomina funciones no computables. 5) Medios de expresión de un algoritmo Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico. La descripción de un algoritmo usualmente se hace en tres niveles: 1. Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles. 2. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución. 3. Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones. También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos. 5.1) Diagrama de flujo
  • 7. Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un número x Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO. Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación. 5.2) Pseudocódigo Pseudocódigo es la descripción de un algoritmo que asemeja a un lenguaje de programación pero con algunas convenciones del lenguaje natural. Tiene varias ventajas con respecto a los diagramas de flujo, entre las que se destaca el poco espacio que se requiere para representar instrucciones complejas. El pseudocódigo no está regido por ningún estándar. pseudo viene de falso y por ende es un código al que aunque es entendible no se aplica al proceso que debe realizar la maquina.
  • 8. 5.3) Máquina de Turing La máquina de Turing es un modelo matemático, diseñado por Alan Turing, que formaliza el concepto de algoritmo. A este modelo se le refiere comúnmente como la quot;descripción de más bajo nivelquot; por el hecho de que no utiliza ninguna expresión coloquial. 6) Implementación Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito eléctrico o un aparato mecánico. Algunos algoritmos inclusive se diseñan especialmente para implementarse usando lápiz y papel. El algoritmo de multiplicación tradicional, el algoritmo de Euclides, la criba de Eratóstenes y muchas formas de resolver la raíz cuadrada son sólo algunos ejemplos. 7) Ejemplos: Ejemplo 1: determinar cuánto vale (a,b,c) después de las siguientes sentencias de asignación INICIO a <-- 2 b <-- a*4 /* b <-- 2 * 4 = 8 */ a <-- b+2*a /* a <-- 8 + 2 * 2 = 12 */ b <-- 2-a*b /* b <-- 2 - 12 * 8 = 2 - 96 = -94 */ a <-- a-b /* a <-- 12 - -94 = 12 + 94 = 106 */ b <-- -b + 6 /* b <-- --94 + 6 = 94 + 6 = 100 */ FIN Ejemplo 2: Todo comentario de alguna sentencia, debe ir entre los simbolos /* */. Los comentarios son útiles para explicar mejor alguna sentencia que puede estar no clara, para alguien que se enfrenta a las sentencias por primera vez. Calculo del área de una esfera. INICIO PI <-- 3.14 /* constante */ Leer radio area <-- 4 * PI * radio * radio /* area de una esfera */ FIN
  • 9. 8) Bibliografía: o www.wikipedia.com o www.monografias.com o www.slideshare.net