SlideShare una empresa de Scribd logo
Tema 7
Algoritmos y
Pseudocódigo
2021
© William Murillo
Tema 6: Algoritmos y Programas
7:
2
Objetivos
 Al terminar este tema deberás ser capaz de:
– Definir qué es un algoritmo.
– Describir las características que debe cumplir un
algoritmo.
– Representar un algoritmo.
– Definir qué es un programa.
– Describir las propiedades del lenguaje C, JAVA,
Phyton.
Tema 6: Algoritmos y Programas
7:
3
Contenidos
1. Introducción
2. Concepto de algoritmo
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
8. Introducción al lenguaje C
Tema 6: Algoritmos y Programas
7:
4
Introducción
 Un ordenador es un sistema para procesar
información
Procesador
Entrada =
Datos
Salida =
Resultados
Algoritmo
Tema 6: Algoritmos y Programas
7:
5
Tema 6: Algoritmos y Programas
7:
Introducción
 Ciclo de vida del software
6
análisis
diseño
IMPLEMENTACIÓN
PRUEBAS
mantenimiento
documentación
Tema 6: Algoritmos y Programas
7:
7
Contenidos
1. Introducción
2. Concepto de algoritmo
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
8. Introducción al lenguaje C
Tema 6: Algoritmos y Programas
7:
8
Concepto de algoritmo
 Algoritmo (según el DRAE):
(del árabe al-Khowârizmî) “Conjunto
ordenado y finito de operaciones que permite
hallar la solución de un problema”
– Ejemplos sencillos de algoritmos según esta
definición podrían ser una receta de cocina o las
instrucciones para armar una bicicleta.
Tema 6: Algoritmos y Programas
7:
9
Concepto de algoritmo
 Breve reseña histórica:
– Los primeros algoritmos registrados datan de
Babilonia, originados en las matemáticas como
un método para resolver un problema usando
una secuencia de cálculos más simples.
– El primer algoritmo famoso es el cálculo del MCD
de dos números (Grecia, aproximadamente del s.
IV a. C.).
Tema 6: Algoritmos y Programas
7:
10
Concepto de algoritmo
 En Informática:
– Un algoritmo es una secuencia de pasos a
seguir para resolver un problema usando un
computador u ordenador.
– La algoritmia o ciencia de los algoritmos, es uno
de los pilares de la informática.
Tema 6: Algoritmos y Programas
7:
11
Concepto de algoritmo
 Definiciones básicas:
– Procesador: cualquier entidad capaz de resolver
un problema
– Entorno: conjunto de utensilios que el procesador
puede utilizar
– Estado: situación en la que se encuentra un
entorno en un momento dado.
Tema 6: Algoritmos y Programas
7:
12
Concepto de algoritmo
 Definiciones básicas
– Acción:
Conjunto finito de operaciones que permiten
llegar de un estado inicial bien definido a otro
también bien definido.
– Tipos de acciones:
 Acción primitiva o elemental
– Puede ser realizada directamente por el procesador.
 Acción compuesta o abstracta
– Ha de descomponerse en acciones más elementales para
poder ser entendida por un procesador.
Tema 6: Algoritmos y Programas
7:
13
Concepto de algoritmo
 Definición formal de algoritmo:
“Dado un procesador, un entorno, y un
problema bien definido, un algoritmo es la
secuencia finita de acciones primitivas que
llevan a la solución del problema”
Tema 6: Algoritmos y Programas
7:
14
Concepto de algoritmo
 Características de un algoritmo:
– Preciso (no ambiguo): la instrucción a ejecutar
en cada paso queda determinada perfectamente.
– Determinista: debe comportarse del mismo
modo ante las mismas condiciones. Si se sigue
dos veces en el mismo entorno, el resultado
obtenido es el mismo.
– Finito: Tiene fin tras un número determinado de
pasos.
Tema 6: Algoritmos y Programas
7:
15
Contenidos
1. Introducción
2. Definiciones básicas
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
8. Introducción al lenguaje C
Tema 6: Algoritmos y Programas
7:
16
Lenguajes
de representación algorítmica
 ¿Cómo se escribe un algoritmo?
Representándolo mediante un lenguaje 
lenguaje de representación algorítmica
 Dos tipos de representación:
– Pseudocódigo
– Diagramas de flujo
Tema 6: Algoritmos y Programas
7:
17
Representación algorítmica
 Pseudocódigo:
– Lenguaje similar al natural, pero al que se
añaden reglas para conseguir una definición
precisa del algoritmo
– Algunas reglas:
 Empieza por la palabra “Inicio” y termina con la palabra
“Fin”
 Se escribe una acción por línea
 Se subrayan las palabras clave
Tema 6: Algoritmos y Programas
7:
18
Representación algorítmica
 Diagrama de Flujo (DF):
– Representación gráfica del flujo de control de un
algoritmo
– Elementos del (DF):
Terminal
Entrada/
Salida
Decisión Subprograma
Proceso
Conectores
si
no
Tema 6: Algoritmos y Programas
19
Inicio
Fin
SUMA <- 2
NUM <- 4
SUMA <- SUMA +
NUM
NUM <- NUM + 2
NUM <= 100
SI
escribir
SUMA
NO
Pseudocódigo Diagrama de flujo
Representación algorítmica
Entorno
suma, num
Inicio
// Iniciar variables
suma<- 2
num <- 4
// Suma de los números
repetir
suma <- suma + num
num <- num +2
mientras(num <= 100)
// Escribir resultado
escribir (suma)
Fin
Tema 6: Algoritmos y Programas
7:
20
Contenidos
1. Introducción
2. Definiciones básicas
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
8. Introducción al lenguaje C
Tema 6: Algoritmos y Programas
7:
21
 Hay que tener en cuenta que para resolver
un determinado problema existe más de un
algoritmo
– Todos encuentran la solución correcta…
pero unos lo hacen mejor que otros.
Ejemplos de algoritmo
Tema 6: Algoritmos y Programas
7:
22
Ejemplos de algoritmo
ENTORNO
//Definición de Variables
base, altura
area, perimetro
INICIO
Escribir "Digite la base del objeto"
Leer base
Escribir "Digite la altura del objeto"
Leer altura
SI (base >0 Y altura >0) ENTONCES
area <- base * altura
perimetro <- base*2 + altura*2
Escribir "Los resultados son calculado del
objeto son:"
Escribir "El area es:", area
Escribir "El perimetro es:", perímetro
SI NO
Escribir "Datos incorrectos"
FIN SI
FIN
Tema 6: Algoritmos y Programas
7:
23
Tema 6: Algoritmos y Programas
7:
24
Tema 6: Algoritmos y Programas
7:
25
Tema 6: Algoritmos y Programas
7:
26
Ejemplos de algoritmo
 Multiplicar 981 por 1234
– Varias formas (algoritmos) de hacerlo:
 Método clásico
 Multiplicación “à la russe”
 Divide y vencerás
– Con todas se alcanza la solución
 ¿Cuál es la mejor? ¿Por qué?
Tema 6: Algoritmos y Programas
7:
27
Ejemplos de algoritmo
 Método tradicional
981
* 1234
3924
2943
1962
981
1210554
Tema 6: Algoritmos y Programas
7:
28
Ejemplos de algoritmo
 Método tradicional
Pero en UK…
981 981
* 1234 * 1234
3924 981
2943 1962
1962 2943
981 3924
1210554 1210554
Tema 6: Algoritmos y Programas
7:
29
Ejemplos de algoritmo
 Multiplicación “à la russe”
– Se escriben el multiplicando y el multiplicador iniciando dos
columnas.
– Se obtienen los siguientes elementos de las columnas,
hasta que quede un 1 en la columna de la izquierda:
 La columna de la izquierda se va dividiendo entre dos,
ignorando los restos.
 La columna de la derecha se va multiplicando por dos.
– El resultado se obtiene sumando los números de la
columna de la derecha cuyo número correspondiente de la
columna izquierda sea impar.
– Sólo es necesario saber sumar, multiplicar por 2 y dividir
entre 2. Se encuentra en el hardware de las ALU’s.
Tema 6: Algoritmos y Programas
7:
30
Ejemplos de algoritmo
 Multiplicación “à la russe”
981 1234
490 2468
245 4936
122 9872
61 19744
30 39488
15 78976
7 157952
3 315904
1 631808
Tema 6: Algoritmos y Programas
7:
31
Ejemplos de algoritmo
 Multiplicación “à la russe”
981 1234
490
245 4936
122
61 19744
30
15 78976
7 157952
3 315904
1 631808
SUMA = 1210554
Tema 6: Algoritmos y Programas
7:
32
Ejemplos de algoritmo
 Divide y vencerás
– Números con precisión par
– Se dividen por la mitad ambos operandos
– Se realizan las 4 multiplicaciones cruzadas
– Se suman los resultados desplazando
previamente hacia la izquierda
– Algoritmo recursivo
Tema 6: Algoritmos y Programas
33
Ejemplos de algoritmo
 Divide y vencerás
0981
1234
Multiplicar Desplazar Resultado
09*12 4 108----
09*34 2 306--
81*12 2 972--
81*34 0 2754
Suma 1210554
Tema 6: Algoritmos y Programas
7:
34
Ejemplos de algoritmo
 Ejercicio:
– ¿Cuál es mejor y por qué?
– ¿Qué criterios podemos utilizar para valorar un
algoritmo?
Tema 6: Algoritmos y Programas
7:
35
Contenidos
1. Introducción
2. Definiciones básicas
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
8. Introducción al lenguaje C
Tema 6: Algoritmos y Programas
7:
36
Programas
 Programa: Algoritmo codificado en un
lenguaje de programación.
 Programar: Fraccionar un problema en
forma de instrucciones adecuadamente
formuladas para que un ordenador pueda
llevarlas a la práctica.
Tema 6: Algoritmos y Programas
7:
37
Programas
 Las instrucciones se forman con elementos o
símbolos tomados de un determinado
repertorio, y se construyen siguiendo unas
reglas precisas.
 Todo lo relativo a los símbolos y reglas para
construir o redactar con ellos un programa
se denomina lenguaje de programación.
Tema 6: Algoritmos y Programas
7:
38
Contenidos
1. Introducción
2. Definiciones básicas
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
8. Introducción al lenguaje C
Tema 6: Algoritmos y Programas
7:
39
Lenguajes de programación
Clasificación
 Lenguaje máquina:
– Es el que entienden los circuitos del computador (CPU)
– Inconvenientes:
 depende del modelo de computadora;
 el repertorio de instrucciones es muy reducido
 es muy laborioso
 Ensamblador (lenguaje de bajo nivel)
– Código nemotécnico para recordar mejor las instrucciones
máquina
– Se mantienen los otros inconvenientes del lenguaje máquina
 Lenguajes de alto nivel
– No dependen de la computadora, y facilitan la tarea de
programación
Tema 6: Algoritmos y Programas
7:
40
Lenguajes de programación
Lenguajes de alto nivel
 FORTRAN (Formula Translation): Primer LAN(década de los 50).
Aplicaciones científico-técnicas (grandes computadores y
supercomputadores)
 COBOL (COmmon Busines Oriented Language): 1960. Aplicaciones
comerciales y de gestión.
 BASIC (Beginner’s All-purpose Symbolic Instruction Code).
Desarrollado a mediados de los 60 como lenguaje interactivo
paraprincipiantes de programación.
 Visual BASIC: es el lenguaje más popular. Versión de Microsoft del
BASIC. Permite crear programas en un ambiente visual (lenguaje de
4ª generación).
 C: Desarrollado en Bell Labs a comienzos de los 70. Es complejo,
pero es potente, flexible y eficiente (el más utilizado para PCs y
estaciones de trabajo).
Tema 6: Algoritmos y Programas
7:
41
Lenguajes de programación
Lenguajes de alto nivel
 Pascal: Creado por Wirth en 1971. El mejor lenguaje para
aprender a programar y describir algoritmos.
 Ada: Es un lenguaje definido por el Ministerio de Defensa de
USA a finales de los 70. Esta basado en el Pascal y tiene unas
reglas muy estrictas.
 C++: Ideado a comienzos de los 80 en los BellLabs. Es una
variante del C que permite utilizar la moderna metodología de
la programación (“programación orientada a objetos”)
 Java: Desarrollado en 1991 por Sun, es similar a C++ pero
más sencillo de aprender y usar. Muy usado para programa
interactivos y dinámicos (“applets” de web). Se ha definido un
computador virtual Java compatible, cualquier computador con
un programa que lo emule puede ejecutar aplicaciones Java.
Tema 6: Algoritmos y Programas
7:
42
Lenguajes de programación
Lenguajes de alto nivel
 Otros lenguajes (usados en Inteligencia artificial):
– LISP (LISt Processing): Finales de los 50. Procesamiento
de datos no numéricos (caracteres, palabras y otros
símbolos). Se usa en Inteligencia Artificial.
– PROLOG:(Programming Logic): Trabaja con relaciones
lógicas entre hechos. Muy usado en inteligencia artificial.
– LOGO: versión simplificada del LISP para niños.
Tema 6: Algoritmos y Programas
7:
43
Lenguajes de programación
Traductores
 Traducción: Proceso por el cual se convierte el texto
del programa de entrada en el de salida.
– Lenguaje fuente: lenguaje en el que se escribe la entrada
– Lenguaje objeto: lenguaje en el que se escribe la salida.
En general, muy diferente del lenguaje fuente
 Compilador: Programa que acepta como entrada un
texto de programa escrito en un cierto lenguaje de
alto nivel y genera como salida texto de programa
en otro lenguaje, generalmente lenguaje máquina.
Tema 6: Algoritmos y Programas
7:
44
Lenguajes de programación
Compiladores
 Compilar ≈ Convertir de un formato a otro
– El significado deberá permanecer inalterado en la conversión
– La entrada está escrita en un lenguaje  Tiene estructura
– Semántica asociada y descrita en términos de esa estructura
 El compilador “comprende” el programa y recolecta su
significado en una representación semántica
intermedia
 A la hora de generar la salida  se genera estructura
y significado
Tema 6: Algoritmos y Programas
7:
45
Lenguajes de programación
Intérpretes
 Forma de trabajar cada vez más frecuente: Intérpretes
– En vez de traducir, realiza las acciones directamente
– Por ejemplo, la máquina virtual de Java
 Ventajas del uso de intérpretes
– Portabilidad: Un intérprete se escribe, habitualmente, en
lenguaje de alto nivel
– Sencillez: Escribir un intérprete es menos costoso que escribir
un compilador
– Señalización y manejo de errores: los compiladores cuidan
“demasiado” la eficiencia de código
– Seguridad: Funcionamiento más transparente al usuario
 Desventajas: Velocidad de los programas interpretados
y consumo de memoria.
Tema 6: Algoritmos y Programas
7:
46
Lenguajes de programación
Compiladores vs. Intérpretes
 Compiladores:
– El procesamiento del programa es considerable
– El mecanismo de interpretación previsto es la CPU (hw)
– La ejecución del programa traducido es relativamente rápida
 Intérpretes:
– El procesamiento del programa es entre mínimo y moderado
– El mecanismo de interpretación es un programa (sw)
– La ejecución del programa es, en general, más lenta y más
segura
Tema 6: Algoritmos y Programas
7:
47
Contenidos
1. Introducción
2. Definiciones básicas
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
8. Introducción al lenguaje C
Tema 6: Algoritmos y Programas
48
cc vi
A.out
Diseño
Error en tiempo
de los datos
Error en el tratamiento Error en tiempo
Analisis Traducción a código C
Compilación
Pruebas de ejecución
de compilación
de ejecución
al ordenador
Proceso de programación
Tema 6: Algoritmos y Programas
7:
49
Contenidos
1. Introducción
2. Definiciones básicas
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
8. Introducción al lenguaje C
Tema 6: Algoritmos y Programas
7:
50
Lenguaje C
 Es un lenguaje estructurado de propósito general,
orientado a la programación de sistemas
– Origen:
 Evolución de BSPL y B
 “The C programming language”, B. Kernighan & D. Ritchie.
(1978)
– ANSI C:
 Versión estándar en 1983
 Nueva revisión en 1999
– Uno de los lenguajes más utilizados en la industria del
software actual y en el mundo Unix/Linux
Tema 6: Algoritmos y Programas
7:
51
Lenguaje C
 Características de C
– Propósito general
 Válido para diversos objetivos
– Portable
 NOTA: Sin embargo, siempre hay que compilar y probar un
programa en el ordenador “destino”
– Eficiente
 Apropiado para la programación de sistemas
– Extendido.
 Gran cantidad de bibliotecas de funciones, compiladores, etc.
 Amplia difusión y uso.
Tema 6: Algoritmos y Programas
7:
52
Bibliografía
 Joyanes Aguilar, L. “Fundamentos de
programación. Algoritmos y Estructura de
Datos”, McGrawHill. Capítulo 2.
 Llanos Ferraris, D. “Curso de C bajo UNIX”.
Capítulo 1.

Más contenido relacionado

Similar a tema7-algoritmos-2010.pptx

Unidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptUnidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.ppt
ssuser6eba56
 
Tema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmicoTema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmico
Lincoln School
 
tema6-algoritmos-2010.pptx
tema6-algoritmos-2010.pptxtema6-algoritmos-2010.pptx
tema6-algoritmos-2010.pptx
jorgeeliercergaitan
 
Tema1 faa 16_17
Tema1 faa 16_17Tema1 faa 16_17
Tema1 faa 16_17
alexray100
 
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
Reyna FalcÓn
 
Desarrollo de lógica algorítmica
Desarrollo de lógica algorítmicaDesarrollo de lógica algorítmica
Desarrollo de lógica algorítmica
Omar B.
 
Introduccion.ppt
Introduccion.pptIntroduccion.ppt
Introduccion.ppt
Daniel Carpio Contreras
 
Algoritmo
Algoritmo Algoritmo
Algoritmo
jhohamn
 
resolucion de problemas: Algoritmos y programas
resolucion de problemas: Algoritmos y programas resolucion de problemas: Algoritmos y programas
resolucion de problemas: Algoritmos y programas
panchofronteras
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
Alfredo AlMont
 
Clase 3-algoritmos[1]
Clase 3-algoritmos[1]Clase 3-algoritmos[1]
Clase 3-algoritmos[1]tanztanz
 
Clase 3-algoritmos
Clase 3-algoritmosClase 3-algoritmos
Clase 3-algoritmos142918
 
Attachment.ashx (2)
Attachment.ashx (2)Attachment.ashx (2)
Attachment.ashx (2)samantha
 
Clase 3-algoritmos
Clase 3-algoritmosClase 3-algoritmos
Clase 3-algoritmosarturo8888
 
Clase 3-algoritmos
Clase 3-algoritmosClase 3-algoritmos
Clase 3-algoritmoskristel24
 
Clase 3-algoritmos
Clase 3-algoritmosClase 3-algoritmos
Clase 3-algoritmosRamon
 
Algoritmos[1]
Algoritmos[1]Algoritmos[1]
Algoritmos[1]erikapoh
 
Clase 3-algoritmos
Clase 3-algoritmosClase 3-algoritmos
Clase 3-algoritmosmat3matik
 

Similar a tema7-algoritmos-2010.pptx (20)

Unidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptUnidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.ppt
 
Tema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmicoTema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmico
 
tema6-algoritmos-2010.pptx
tema6-algoritmos-2010.pptxtema6-algoritmos-2010.pptx
tema6-algoritmos-2010.pptx
 
Tema1 faa 16_17
Tema1 faa 16_17Tema1 faa 16_17
Tema1 faa 16_17
 
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
 
Desarrollo de lógica algorítmica
Desarrollo de lógica algorítmicaDesarrollo de lógica algorítmica
Desarrollo de lógica algorítmica
 
Introduccion.ppt
Introduccion.pptIntroduccion.ppt
Introduccion.ppt
 
Algoritmo
Algoritmo Algoritmo
Algoritmo
 
resolucion de problemas: Algoritmos y programas
resolucion de problemas: Algoritmos y programas resolucion de problemas: Algoritmos y programas
resolucion de problemas: Algoritmos y programas
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Clase 3-algoritmos[1]
Clase 3-algoritmos[1]Clase 3-algoritmos[1]
Clase 3-algoritmos[1]
 
Clase 3-algoritmos
Clase 3-algoritmosClase 3-algoritmos
Clase 3-algoritmos
 
Clase 3
Clase 3Clase 3
Clase 3
 
Attachment.ashx (2)
Attachment.ashx (2)Attachment.ashx (2)
Attachment.ashx (2)
 
Clase 3-algoritmos
Clase 3-algoritmosClase 3-algoritmos
Clase 3-algoritmos
 
Clase 3-algoritmos
Clase 3-algoritmosClase 3-algoritmos
Clase 3-algoritmos
 
Clase 3-algoritmos
Clase 3-algoritmosClase 3-algoritmos
Clase 3-algoritmos
 
Clase 3-algoritmos
Clase 3-algoritmosClase 3-algoritmos
Clase 3-algoritmos
 
Algoritmos[1]
Algoritmos[1]Algoritmos[1]
Algoritmos[1]
 
Clase 3-algoritmos
Clase 3-algoritmosClase 3-algoritmos
Clase 3-algoritmos
 

Más de GuilleWm

4.2 ALGORITMOS Parte 2 y seudocódigo (2).pptx
4.2 ALGORITMOS Parte 2 y seudocódigo (2).pptx4.2 ALGORITMOS Parte 2 y seudocódigo (2).pptx
4.2 ALGORITMOS Parte 2 y seudocódigo (2).pptx
GuilleWm
 
INVESTIGACIÓN EDUCATIVA.pptx
INVESTIGACIÓN EDUCATIVA.pptxINVESTIGACIÓN EDUCATIVA.pptx
INVESTIGACIÓN EDUCATIVA.pptx
GuilleWm
 
Teoría de David Austebel trabajo en grupo .pptx
Teoría de David Austebel trabajo en grupo .pptxTeoría de David Austebel trabajo en grupo .pptx
Teoría de David Austebel trabajo en grupo .pptx
GuilleWm
 
Clase 3 - Hardware-software-partes del PC.pptx
Clase 3 - Hardware-software-partes del PC.pptxClase 3 - Hardware-software-partes del PC.pptx
Clase 3 - Hardware-software-partes del PC.pptx
GuilleWm
 
Armonía Monocromática.pptx
Armonía Monocromática.pptxArmonía Monocromática.pptx
Armonía Monocromática.pptx
GuilleWm
 
Armonía Monocroma.pptx
Armonía Monocroma.pptxArmonía Monocroma.pptx
Armonía Monocroma.pptx
GuilleWm
 
INTRO a itil.pdf
INTRO a itil.pdfINTRO a itil.pdf
INTRO a itil.pdf
GuilleWm
 
Qué es una solicitud de servicio y cómo gestionarla.pdf
Qué es una solicitud de servicio y cómo gestionarla.pdfQué es una solicitud de servicio y cómo gestionarla.pdf
Qué es una solicitud de servicio y cómo gestionarla.pdf
GuilleWm
 
ITIL V.3 Gestión de Incidencias _ ITIL .pdf
ITIL V.3 Gestión de Incidencias _ ITIL .pdfITIL V.3 Gestión de Incidencias _ ITIL .pdf
ITIL V.3 Gestión de Incidencias _ ITIL .pdf
GuilleWm
 
LOGICA PROPOSICIONAL.pptx
LOGICA PROPOSICIONAL.pptxLOGICA PROPOSICIONAL.pptx
LOGICA PROPOSICIONAL.pptx
GuilleWm
 

Más de GuilleWm (10)

4.2 ALGORITMOS Parte 2 y seudocódigo (2).pptx
4.2 ALGORITMOS Parte 2 y seudocódigo (2).pptx4.2 ALGORITMOS Parte 2 y seudocódigo (2).pptx
4.2 ALGORITMOS Parte 2 y seudocódigo (2).pptx
 
INVESTIGACIÓN EDUCATIVA.pptx
INVESTIGACIÓN EDUCATIVA.pptxINVESTIGACIÓN EDUCATIVA.pptx
INVESTIGACIÓN EDUCATIVA.pptx
 
Teoría de David Austebel trabajo en grupo .pptx
Teoría de David Austebel trabajo en grupo .pptxTeoría de David Austebel trabajo en grupo .pptx
Teoría de David Austebel trabajo en grupo .pptx
 
Clase 3 - Hardware-software-partes del PC.pptx
Clase 3 - Hardware-software-partes del PC.pptxClase 3 - Hardware-software-partes del PC.pptx
Clase 3 - Hardware-software-partes del PC.pptx
 
Armonía Monocromática.pptx
Armonía Monocromática.pptxArmonía Monocromática.pptx
Armonía Monocromática.pptx
 
Armonía Monocroma.pptx
Armonía Monocroma.pptxArmonía Monocroma.pptx
Armonía Monocroma.pptx
 
INTRO a itil.pdf
INTRO a itil.pdfINTRO a itil.pdf
INTRO a itil.pdf
 
Qué es una solicitud de servicio y cómo gestionarla.pdf
Qué es una solicitud de servicio y cómo gestionarla.pdfQué es una solicitud de servicio y cómo gestionarla.pdf
Qué es una solicitud de servicio y cómo gestionarla.pdf
 
ITIL V.3 Gestión de Incidencias _ ITIL .pdf
ITIL V.3 Gestión de Incidencias _ ITIL .pdfITIL V.3 Gestión de Incidencias _ ITIL .pdf
ITIL V.3 Gestión de Incidencias _ ITIL .pdf
 
LOGICA PROPOSICIONAL.pptx
LOGICA PROPOSICIONAL.pptxLOGICA PROPOSICIONAL.pptx
LOGICA PROPOSICIONAL.pptx
 

Último

Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
LorenaCovarrubias12
 
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
María Sánchez González (@cibermarikiya)
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
20minutos
 
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdfGuia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
Demetrio Ccesa Rayme
 
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxxPLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
cportizsanchez48
 
Tema 3-2 Aparato reproductor femenino 2024
Tema 3-2 Aparato reproductor femenino 2024Tema 3-2 Aparato reproductor femenino 2024
Tema 3-2 Aparato reproductor femenino 2024
IES Vicent Andres Estelles
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
LorenaCovarrubias12
 
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJAPANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
estroba5
 
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptxSEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
Osiris Urbano
 
Examen de la EvAU 2024 en Navarra Latín.
Examen de la EvAU 2024 en Navarra Latín.Examen de la EvAU 2024 en Navarra Latín.
Examen de la EvAU 2024 en Navarra Latín.
amayaltc18
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
Alejandrogarciapanta
 
UNA VISITA A SAN PEDRO EN EL VATICANO.pdf
UNA VISITA A SAN PEDRO EN EL VATICANO.pdfUNA VISITA A SAN PEDRO EN EL VATICANO.pdf
UNA VISITA A SAN PEDRO EN EL VATICANO.pdf
Joan Ribes Gallén
 
IMÁGENES SUBLIMINALES EN LAS PUBLICACIONES DE LOS TESTIGOS DE JEHOVÁ
IMÁGENES SUBLIMINALES EN LAS PUBLICACIONES DE LOS TESTIGOS DE JEHOVÁIMÁGENES SUBLIMINALES EN LAS PUBLICACIONES DE LOS TESTIGOS DE JEHOVÁ
IMÁGENES SUBLIMINALES EN LAS PUBLICACIONES DE LOS TESTIGOS DE JEHOVÁ
Claude LaCombe
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
pablomarin116
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
H4RV3YH3RN4ND3Z
 
6° GRADO UNIDAD DE APRENDIZAJE 3 JUNIO.docx
6° GRADO UNIDAD DE APRENDIZAJE 3 JUNIO.docx6° GRADO UNIDAD DE APRENDIZAJE 3 JUNIO.docx
6° GRADO UNIDAD DE APRENDIZAJE 3 JUNIO.docx
DanielaBurgosnazario
 
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLMExamen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Juan Martín Martín
 
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptxNuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
lautyzaracho4
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
JAVIER SOLIS NOYOLA
 
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
AracelidelRocioOrdez
 

Último (20)

Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
 
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
 
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdfGuia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
 
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxxPLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
 
Tema 3-2 Aparato reproductor femenino 2024
Tema 3-2 Aparato reproductor femenino 2024Tema 3-2 Aparato reproductor femenino 2024
Tema 3-2 Aparato reproductor femenino 2024
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
 
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJAPANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
PANDERETAS DECORADAS CON MOTIVOS DE LA RIOJA
 
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptxSEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
 
Examen de la EvAU 2024 en Navarra Latín.
Examen de la EvAU 2024 en Navarra Latín.Examen de la EvAU 2024 en Navarra Latín.
Examen de la EvAU 2024 en Navarra Latín.
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
 
UNA VISITA A SAN PEDRO EN EL VATICANO.pdf
UNA VISITA A SAN PEDRO EN EL VATICANO.pdfUNA VISITA A SAN PEDRO EN EL VATICANO.pdf
UNA VISITA A SAN PEDRO EN EL VATICANO.pdf
 
IMÁGENES SUBLIMINALES EN LAS PUBLICACIONES DE LOS TESTIGOS DE JEHOVÁ
IMÁGENES SUBLIMINALES EN LAS PUBLICACIONES DE LOS TESTIGOS DE JEHOVÁIMÁGENES SUBLIMINALES EN LAS PUBLICACIONES DE LOS TESTIGOS DE JEHOVÁ
IMÁGENES SUBLIMINALES EN LAS PUBLICACIONES DE LOS TESTIGOS DE JEHOVÁ
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
 
6° GRADO UNIDAD DE APRENDIZAJE 3 JUNIO.docx
6° GRADO UNIDAD DE APRENDIZAJE 3 JUNIO.docx6° GRADO UNIDAD DE APRENDIZAJE 3 JUNIO.docx
6° GRADO UNIDAD DE APRENDIZAJE 3 JUNIO.docx
 
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLMExamen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLM
 
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptxNuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
 
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
 

tema7-algoritmos-2010.pptx

  • 2. Tema 6: Algoritmos y Programas 7: 2 Objetivos  Al terminar este tema deberás ser capaz de: – Definir qué es un algoritmo. – Describir las características que debe cumplir un algoritmo. – Representar un algoritmo. – Definir qué es un programa. – Describir las propiedades del lenguaje C, JAVA, Phyton.
  • 3. Tema 6: Algoritmos y Programas 7: 3 Contenidos 1. Introducción 2. Concepto de algoritmo 3. Lenguajes de representación algorítmica 4. Ejemplos de algoritmo 5. Programas 6. Lenguajes de programación 7. El proceso de programación 8. Introducción al lenguaje C
  • 4. Tema 6: Algoritmos y Programas 7: 4 Introducción  Un ordenador es un sistema para procesar información Procesador Entrada = Datos Salida = Resultados Algoritmo
  • 5. Tema 6: Algoritmos y Programas 7: 5
  • 6. Tema 6: Algoritmos y Programas 7: Introducción  Ciclo de vida del software 6 análisis diseño IMPLEMENTACIÓN PRUEBAS mantenimiento documentación
  • 7. Tema 6: Algoritmos y Programas 7: 7 Contenidos 1. Introducción 2. Concepto de algoritmo 3. Lenguajes de representación algorítmica 4. Ejemplos de algoritmo 5. Programas 6. Lenguajes de programación 7. El proceso de programación 8. Introducción al lenguaje C
  • 8. Tema 6: Algoritmos y Programas 7: 8 Concepto de algoritmo  Algoritmo (según el DRAE): (del árabe al-Khowârizmî) “Conjunto ordenado y finito de operaciones que permite hallar la solución de un problema” – Ejemplos sencillos de algoritmos según esta definición podrían ser una receta de cocina o las instrucciones para armar una bicicleta.
  • 9. Tema 6: Algoritmos y Programas 7: 9 Concepto de algoritmo  Breve reseña histórica: – Los primeros algoritmos registrados datan de Babilonia, originados en las matemáticas como un método para resolver un problema usando una secuencia de cálculos más simples. – El primer algoritmo famoso es el cálculo del MCD de dos números (Grecia, aproximadamente del s. IV a. C.).
  • 10. Tema 6: Algoritmos y Programas 7: 10 Concepto de algoritmo  En Informática: – Un algoritmo es una secuencia de pasos a seguir para resolver un problema usando un computador u ordenador. – La algoritmia o ciencia de los algoritmos, es uno de los pilares de la informática.
  • 11. Tema 6: Algoritmos y Programas 7: 11 Concepto de algoritmo  Definiciones básicas: – Procesador: cualquier entidad capaz de resolver un problema – Entorno: conjunto de utensilios que el procesador puede utilizar – Estado: situación en la que se encuentra un entorno en un momento dado.
  • 12. Tema 6: Algoritmos y Programas 7: 12 Concepto de algoritmo  Definiciones básicas – Acción: Conjunto finito de operaciones que permiten llegar de un estado inicial bien definido a otro también bien definido. – Tipos de acciones:  Acción primitiva o elemental – Puede ser realizada directamente por el procesador.  Acción compuesta o abstracta – Ha de descomponerse en acciones más elementales para poder ser entendida por un procesador.
  • 13. Tema 6: Algoritmos y Programas 7: 13 Concepto de algoritmo  Definición formal de algoritmo: “Dado un procesador, un entorno, y un problema bien definido, un algoritmo es la secuencia finita de acciones primitivas que llevan a la solución del problema”
  • 14. Tema 6: Algoritmos y Programas 7: 14 Concepto de algoritmo  Características de un algoritmo: – Preciso (no ambiguo): la instrucción a ejecutar en cada paso queda determinada perfectamente. – Determinista: debe comportarse del mismo modo ante las mismas condiciones. Si se sigue dos veces en el mismo entorno, el resultado obtenido es el mismo. – Finito: Tiene fin tras un número determinado de pasos.
  • 15. Tema 6: Algoritmos y Programas 7: 15 Contenidos 1. Introducción 2. Definiciones básicas 3. Lenguajes de representación algorítmica 4. Ejemplos de algoritmo 5. Programas 6. Lenguajes de programación 7. El proceso de programación 8. Introducción al lenguaje C
  • 16. Tema 6: Algoritmos y Programas 7: 16 Lenguajes de representación algorítmica  ¿Cómo se escribe un algoritmo? Representándolo mediante un lenguaje  lenguaje de representación algorítmica  Dos tipos de representación: – Pseudocódigo – Diagramas de flujo
  • 17. Tema 6: Algoritmos y Programas 7: 17 Representación algorítmica  Pseudocódigo: – Lenguaje similar al natural, pero al que se añaden reglas para conseguir una definición precisa del algoritmo – Algunas reglas:  Empieza por la palabra “Inicio” y termina con la palabra “Fin”  Se escribe una acción por línea  Se subrayan las palabras clave
  • 18. Tema 6: Algoritmos y Programas 7: 18 Representación algorítmica  Diagrama de Flujo (DF): – Representación gráfica del flujo de control de un algoritmo – Elementos del (DF): Terminal Entrada/ Salida Decisión Subprograma Proceso Conectores si no
  • 19. Tema 6: Algoritmos y Programas 19 Inicio Fin SUMA <- 2 NUM <- 4 SUMA <- SUMA + NUM NUM <- NUM + 2 NUM <= 100 SI escribir SUMA NO Pseudocódigo Diagrama de flujo Representación algorítmica Entorno suma, num Inicio // Iniciar variables suma<- 2 num <- 4 // Suma de los números repetir suma <- suma + num num <- num +2 mientras(num <= 100) // Escribir resultado escribir (suma) Fin
  • 20. Tema 6: Algoritmos y Programas 7: 20 Contenidos 1. Introducción 2. Definiciones básicas 3. Lenguajes de representación algorítmica 4. Ejemplos de algoritmo 5. Programas 6. Lenguajes de programación 7. El proceso de programación 8. Introducción al lenguaje C
  • 21. Tema 6: Algoritmos y Programas 7: 21  Hay que tener en cuenta que para resolver un determinado problema existe más de un algoritmo – Todos encuentran la solución correcta… pero unos lo hacen mejor que otros. Ejemplos de algoritmo
  • 22. Tema 6: Algoritmos y Programas 7: 22 Ejemplos de algoritmo ENTORNO //Definición de Variables base, altura area, perimetro INICIO Escribir "Digite la base del objeto" Leer base Escribir "Digite la altura del objeto" Leer altura SI (base >0 Y altura >0) ENTONCES area <- base * altura perimetro <- base*2 + altura*2 Escribir "Los resultados son calculado del objeto son:" Escribir "El area es:", area Escribir "El perimetro es:", perímetro SI NO Escribir "Datos incorrectos" FIN SI FIN
  • 23. Tema 6: Algoritmos y Programas 7: 23
  • 24. Tema 6: Algoritmos y Programas 7: 24
  • 25. Tema 6: Algoritmos y Programas 7: 25
  • 26. Tema 6: Algoritmos y Programas 7: 26 Ejemplos de algoritmo  Multiplicar 981 por 1234 – Varias formas (algoritmos) de hacerlo:  Método clásico  Multiplicación “à la russe”  Divide y vencerás – Con todas se alcanza la solución  ¿Cuál es la mejor? ¿Por qué?
  • 27. Tema 6: Algoritmos y Programas 7: 27 Ejemplos de algoritmo  Método tradicional 981 * 1234 3924 2943 1962 981 1210554
  • 28. Tema 6: Algoritmos y Programas 7: 28 Ejemplos de algoritmo  Método tradicional Pero en UK… 981 981 * 1234 * 1234 3924 981 2943 1962 1962 2943 981 3924 1210554 1210554
  • 29. Tema 6: Algoritmos y Programas 7: 29 Ejemplos de algoritmo  Multiplicación “à la russe” – Se escriben el multiplicando y el multiplicador iniciando dos columnas. – Se obtienen los siguientes elementos de las columnas, hasta que quede un 1 en la columna de la izquierda:  La columna de la izquierda se va dividiendo entre dos, ignorando los restos.  La columna de la derecha se va multiplicando por dos. – El resultado se obtiene sumando los números de la columna de la derecha cuyo número correspondiente de la columna izquierda sea impar. – Sólo es necesario saber sumar, multiplicar por 2 y dividir entre 2. Se encuentra en el hardware de las ALU’s.
  • 30. Tema 6: Algoritmos y Programas 7: 30 Ejemplos de algoritmo  Multiplicación “à la russe” 981 1234 490 2468 245 4936 122 9872 61 19744 30 39488 15 78976 7 157952 3 315904 1 631808
  • 31. Tema 6: Algoritmos y Programas 7: 31 Ejemplos de algoritmo  Multiplicación “à la russe” 981 1234 490 245 4936 122 61 19744 30 15 78976 7 157952 3 315904 1 631808 SUMA = 1210554
  • 32. Tema 6: Algoritmos y Programas 7: 32 Ejemplos de algoritmo  Divide y vencerás – Números con precisión par – Se dividen por la mitad ambos operandos – Se realizan las 4 multiplicaciones cruzadas – Se suman los resultados desplazando previamente hacia la izquierda – Algoritmo recursivo
  • 33. Tema 6: Algoritmos y Programas 33 Ejemplos de algoritmo  Divide y vencerás 0981 1234 Multiplicar Desplazar Resultado 09*12 4 108---- 09*34 2 306-- 81*12 2 972-- 81*34 0 2754 Suma 1210554
  • 34. Tema 6: Algoritmos y Programas 7: 34 Ejemplos de algoritmo  Ejercicio: – ¿Cuál es mejor y por qué? – ¿Qué criterios podemos utilizar para valorar un algoritmo?
  • 35. Tema 6: Algoritmos y Programas 7: 35 Contenidos 1. Introducción 2. Definiciones básicas 3. Lenguajes de representación algorítmica 4. Ejemplos de algoritmo 5. Programas 6. Lenguajes de programación 7. El proceso de programación 8. Introducción al lenguaje C
  • 36. Tema 6: Algoritmos y Programas 7: 36 Programas  Programa: Algoritmo codificado en un lenguaje de programación.  Programar: Fraccionar un problema en forma de instrucciones adecuadamente formuladas para que un ordenador pueda llevarlas a la práctica.
  • 37. Tema 6: Algoritmos y Programas 7: 37 Programas  Las instrucciones se forman con elementos o símbolos tomados de un determinado repertorio, y se construyen siguiendo unas reglas precisas.  Todo lo relativo a los símbolos y reglas para construir o redactar con ellos un programa se denomina lenguaje de programación.
  • 38. Tema 6: Algoritmos y Programas 7: 38 Contenidos 1. Introducción 2. Definiciones básicas 3. Lenguajes de representación algorítmica 4. Ejemplos de algoritmo 5. Programas 6. Lenguajes de programación 7. El proceso de programación 8. Introducción al lenguaje C
  • 39. Tema 6: Algoritmos y Programas 7: 39 Lenguajes de programación Clasificación  Lenguaje máquina: – Es el que entienden los circuitos del computador (CPU) – Inconvenientes:  depende del modelo de computadora;  el repertorio de instrucciones es muy reducido  es muy laborioso  Ensamblador (lenguaje de bajo nivel) – Código nemotécnico para recordar mejor las instrucciones máquina – Se mantienen los otros inconvenientes del lenguaje máquina  Lenguajes de alto nivel – No dependen de la computadora, y facilitan la tarea de programación
  • 40. Tema 6: Algoritmos y Programas 7: 40 Lenguajes de programación Lenguajes de alto nivel  FORTRAN (Formula Translation): Primer LAN(década de los 50). Aplicaciones científico-técnicas (grandes computadores y supercomputadores)  COBOL (COmmon Busines Oriented Language): 1960. Aplicaciones comerciales y de gestión.  BASIC (Beginner’s All-purpose Symbolic Instruction Code). Desarrollado a mediados de los 60 como lenguaje interactivo paraprincipiantes de programación.  Visual BASIC: es el lenguaje más popular. Versión de Microsoft del BASIC. Permite crear programas en un ambiente visual (lenguaje de 4ª generación).  C: Desarrollado en Bell Labs a comienzos de los 70. Es complejo, pero es potente, flexible y eficiente (el más utilizado para PCs y estaciones de trabajo).
  • 41. Tema 6: Algoritmos y Programas 7: 41 Lenguajes de programación Lenguajes de alto nivel  Pascal: Creado por Wirth en 1971. El mejor lenguaje para aprender a programar y describir algoritmos.  Ada: Es un lenguaje definido por el Ministerio de Defensa de USA a finales de los 70. Esta basado en el Pascal y tiene unas reglas muy estrictas.  C++: Ideado a comienzos de los 80 en los BellLabs. Es una variante del C que permite utilizar la moderna metodología de la programación (“programación orientada a objetos”)  Java: Desarrollado en 1991 por Sun, es similar a C++ pero más sencillo de aprender y usar. Muy usado para programa interactivos y dinámicos (“applets” de web). Se ha definido un computador virtual Java compatible, cualquier computador con un programa que lo emule puede ejecutar aplicaciones Java.
  • 42. Tema 6: Algoritmos y Programas 7: 42 Lenguajes de programación Lenguajes de alto nivel  Otros lenguajes (usados en Inteligencia artificial): – LISP (LISt Processing): Finales de los 50. Procesamiento de datos no numéricos (caracteres, palabras y otros símbolos). Se usa en Inteligencia Artificial. – PROLOG:(Programming Logic): Trabaja con relaciones lógicas entre hechos. Muy usado en inteligencia artificial. – LOGO: versión simplificada del LISP para niños.
  • 43. Tema 6: Algoritmos y Programas 7: 43 Lenguajes de programación Traductores  Traducción: Proceso por el cual se convierte el texto del programa de entrada en el de salida. – Lenguaje fuente: lenguaje en el que se escribe la entrada – Lenguaje objeto: lenguaje en el que se escribe la salida. En general, muy diferente del lenguaje fuente  Compilador: Programa que acepta como entrada un texto de programa escrito en un cierto lenguaje de alto nivel y genera como salida texto de programa en otro lenguaje, generalmente lenguaje máquina.
  • 44. Tema 6: Algoritmos y Programas 7: 44 Lenguajes de programación Compiladores  Compilar ≈ Convertir de un formato a otro – El significado deberá permanecer inalterado en la conversión – La entrada está escrita en un lenguaje  Tiene estructura – Semántica asociada y descrita en términos de esa estructura  El compilador “comprende” el programa y recolecta su significado en una representación semántica intermedia  A la hora de generar la salida  se genera estructura y significado
  • 45. Tema 6: Algoritmos y Programas 7: 45 Lenguajes de programación Intérpretes  Forma de trabajar cada vez más frecuente: Intérpretes – En vez de traducir, realiza las acciones directamente – Por ejemplo, la máquina virtual de Java  Ventajas del uso de intérpretes – Portabilidad: Un intérprete se escribe, habitualmente, en lenguaje de alto nivel – Sencillez: Escribir un intérprete es menos costoso que escribir un compilador – Señalización y manejo de errores: los compiladores cuidan “demasiado” la eficiencia de código – Seguridad: Funcionamiento más transparente al usuario  Desventajas: Velocidad de los programas interpretados y consumo de memoria.
  • 46. Tema 6: Algoritmos y Programas 7: 46 Lenguajes de programación Compiladores vs. Intérpretes  Compiladores: – El procesamiento del programa es considerable – El mecanismo de interpretación previsto es la CPU (hw) – La ejecución del programa traducido es relativamente rápida  Intérpretes: – El procesamiento del programa es entre mínimo y moderado – El mecanismo de interpretación es un programa (sw) – La ejecución del programa es, en general, más lenta y más segura
  • 47. Tema 6: Algoritmos y Programas 7: 47 Contenidos 1. Introducción 2. Definiciones básicas 3. Lenguajes de representación algorítmica 4. Ejemplos de algoritmo 5. Programas 6. Lenguajes de programación 7. El proceso de programación 8. Introducción al lenguaje C
  • 48. Tema 6: Algoritmos y Programas 48 cc vi A.out Diseño Error en tiempo de los datos Error en el tratamiento Error en tiempo Analisis Traducción a código C Compilación Pruebas de ejecución de compilación de ejecución al ordenador Proceso de programación
  • 49. Tema 6: Algoritmos y Programas 7: 49 Contenidos 1. Introducción 2. Definiciones básicas 3. Lenguajes de representación algorítmica 4. Ejemplos de algoritmo 5. Programas 6. Lenguajes de programación 7. El proceso de programación 8. Introducción al lenguaje C
  • 50. Tema 6: Algoritmos y Programas 7: 50 Lenguaje C  Es un lenguaje estructurado de propósito general, orientado a la programación de sistemas – Origen:  Evolución de BSPL y B  “The C programming language”, B. Kernighan & D. Ritchie. (1978) – ANSI C:  Versión estándar en 1983  Nueva revisión en 1999 – Uno de los lenguajes más utilizados en la industria del software actual y en el mundo Unix/Linux
  • 51. Tema 6: Algoritmos y Programas 7: 51 Lenguaje C  Características de C – Propósito general  Válido para diversos objetivos – Portable  NOTA: Sin embargo, siempre hay que compilar y probar un programa en el ordenador “destino” – Eficiente  Apropiado para la programación de sistemas – Extendido.  Gran cantidad de bibliotecas de funciones, compiladores, etc.  Amplia difusión y uso.
  • 52. Tema 6: Algoritmos y Programas 7: 52 Bibliografía  Joyanes Aguilar, L. “Fundamentos de programación. Algoritmos y Estructura de Datos”, McGrawHill. Capítulo 2.  Llanos Ferraris, D. “Curso de C bajo UNIX”. Capítulo 1.