Você está na página 1de 2

Algoritmos y programas

(contenido modificable, para que lo ajusten a sus necesidades)


Algoritmos Y Programas
1. Algoritmos y Programas
2. Introduccin El objetivo de esta sesin consistir en explicar los conceptos de algoritmo, programa y lenguaje de
programacin. As como explorar otros temas concurrentes.
3. Temtica Sistemas de procesamiento de informacin. Concepto de Algoritmo. Lenguaje de programacin. Datos,
tipos de datos y operaciones primitivas. Constantes y variables. Expresiones. Funciones intrnsecas. Asignacin.
Entrada y salida de informacin.
4. 1. Sistemas de procesamiento de la informacin Un sistema de esta clase se define como un conjunto de
componentes interconectados entre s que transforman datos en informacin organizada, significativa y til.
5. Esquemticamente Datos Procesador Informacin
6. Una primera definicin Un algoritmo consiste en el grupo de instrucciones que definen la secuencia de operaciones
a realizar para resolver un sistema especfico o clase de problema.
7. Conceptos importantes Hardware: grupo de componentes fsicos de una computadora. Software: conjunto de
programas que controlan el funcionamiento de una computadora
8. 2. Concepto de Algoritmo La metodologa de la programacin es aquella que es necesaria para resolver problemas
mediante programas, su eje es el algoritmo. Problema Diseo del algoritmo Programa
9. Pasos para la solucin de un problema El diseo del algoritmo describe el anlisis del problema y desarrollo del
algoritmo. Expresar el algoritmo como un programa en un lenguaje de programacin. Ejecutar y validar el programa
por la computadora.
10. Caractersticas de los algoritmos Preciso, indicar el orden de cada paso. Definido, el mismo resultado se
obtendr al ejecutar el algoritmo n ocasiones. Finito, deber terminar en algn momento.
11. Ejemplo 2.1 Genere un algoritmo que solucione la entrega de un pedido a un cliente Inicio. Leer el pedido.
Examinar el historial crediticio del cliente Si el cliente es solvente, entregar el pedido. En caso contrario, rechazarlo.
Fin
12. Ejemplo 2.2 Genere un algoritmo que sume los nmeros entre el 3 y el 30. Inicio. Hacer SUMA igual cero.
Establecer NUMERO igual a 3. Sumar NUMERO a SUMA. Incrementar NUMERO en 3 Si NUMERO es menor o igual
que 30 ir a 4; si no imprimir a SUMA. Fin
13. Ejemplo 2.3 Genere un algoritmo que determine al mayor de tres nmeros enteros. Inicio Leer los nmeros y
guardarlos en NUM1, NUM2 y NUM3 respectivamente Comparar NUM1 y NUM2, el nmero mayor se guarda en
AUX. Comparar AUX y NUM3, imprimir el nmero mayor. Fin.
14. Tarea 2.1 Disee un algoritmo para determinar si un nmero es primo o no. Tarea 2.2 Genere un algoritmo que
sume los nmeros entre el 2 y el 20. Tarea 2.3 Genere un algoritmo que sume los nmeros entre el 5 y el 50.
15. 3. Los lenguajes de programacin Cuando el procesador de datos es una computadora entonces el algoritmo de
solucin se expresa en un programa. Por tanto, un programa es escrito en un lenguaje de programacin. Luego, la
programacin consiste en expresar las operaciones en forma de programa de un algoritmo.
16. Tipos de lenguajes Mquina; escritos en cdigo binario. Bajo nivel (ensamblador); escrito en nemotcnicos. Alto
nivel; diseados para ser entendidos por el ser humano.
17. Instrucciones bsicas Entrada/Salida; transferencia de informacin entre dispositivos perifricos y memoria
central. Aritmtico/Lgicas; ejecutan operaciones de stos tipos. Selectivas; seleccionan tareas en funcin de los
resultados Repetitivas; permiten la iteracin de secuencias de instrucciones un nmero dado de veces
18. Traductores del Lenguaje A) Intrpretes; Toma un programa fuente lo traduce e inmediatamente lo ejecuta.
Programa fuente Intrprete Traduccin y ejecucin en lnea
19. Traductores del Lenguaje (cont.) B) Compiladores; traduce un programa fuente a cdigo objeto. Programa fuente
Programa Objeto Programa ejecutable Compilador (Compiler) Montador (Linker)
20. 4. Datos, Tipos de Datos y Operaciones Primitivas Un dato es la expresin general que describe los objetos con
los cuales opera la computadora Los tipos son: simples (no estructurados) y compuestos (estructurados). Aquellos se
subdividen en: Numericos (integer, real) Lgicos (booleans) Carcter (char, string)
21. Datos primitivos Datos Carcter Numrico Lgico Entero Real
22. 5. Constantes y Variables Constantes: valores que durante la ejecucin de un programa no cambian su valor.
Variables: valores que cambiarn durante la ejecucin del programa
23. 6. Expresiones Se definen como una combinacin de constantes, variables, smbolos de operacin, parntesis, y
nombres de funciones especiales. Una expresin consta de operandos y operadores. Las expresiones se clasifican
en aritmticas, lgicas y carcter.
24. Expresiones aritmticas Entero Entero mdulo Mod Entero Entero Divisin entera Div Real Real Divisin / Entero
o real Entero o real Multiplicacin * Entero o real Entero o real Resta - Entero o real Entero o real Suma + Entero o
real Entero o real Exponenciacin ** Tipo resultado Tipo de operandos Significado Operador
25. Reglas de prioridad ( ) Parentesis +, - Ms y menos Div, mod Div y mod *, / Multi, divide ** Exponencial Grfo
Operador
26. Operadores de relacin Menor < Distinto <>,!= Mayor o igual >= Menor o igual <= Igual = Mayor > Significado
Operador Expresin 2 Operador de relacin Expresin 1
27. Operadores lgicos disyuncin P o Q Or Conjuncin P y Q And Negacin Not p Not Significado Expresin lgica
Operador lgico
28. 7. Funciones Intrnsecas Truncamiento Trunc(x) Raz cuadrada Sqrt(x) Cuadrado Sqr(x) Seno Sin(x) Redondeo
Round(x) Log decimal Log10(x) Log neperiano Ln(x) Exponencial Exp(x) Coseno Cos(x) Tangente inversa Arctan(x)
Absoluto Abs(x) Descripcin Funcin
29. 8. Operacin de Asignacin Es la forma de darle valores tanto a variables como constantes, se representa con el
smbolo
30. Tipos de asignacin Aritmtica Lgica Cadena de carcteres
31. 9. Entrada y salida de informacin La operacin de lectura READ permite el ingreso de los datos necesarios para
los clculos computacionales. La operacin de escritura WRITE imprime la informacin procesada por el programa y
su respectivo algoritmo.
32. PROBLEMAS RESUELTOS CON COMPUTADORAS Y HERRAMIENTAS DE PROGRAMACION
33. INDICE OBJETIVO SOLUCION DE PROBLEMAS ANALISIS DEL PROBLEMA DISEO DEL ALGORITMO
SOLUCION DEL PROBLEMA MEDIANTE COMPUTADORA REPRESENTACION GRAFICA DE ALGORITMOS
PSEUDOCODIGO
34. 2.1 OBJETIVO EXPONER LOS CONOCIMIENTOS INDISPENSABLES PARA EL APRENDIZAJE DE LA
PROGRAMACION.
35. 2.2 SOLUCION DE PROBLEMAS Fases de fragmentacin: Anlisis del problema: definicin concisa a fin de que
sea analizado en todo detalle. Diseo del algoritmo: procedimiento, paso a paso, para la solucionar el problema dado.
Solucin del algoritmo con la computadora: codificacin del algoritmo en un lenguaje de programacin
36. 2.3 ANALISIS DEL PROBLEMA El propsito es ayudar al programador a llegar a un cierto grado de comprensin
de la naturaleza del problema. Una buena definicin del problema, junto con una descripcin detallada de entrada y
salida, son los requisitos ms importantes para una solucin eficaz.
37. 2.3 ANALISIS DEL PROBLEMA cont. Que informacin debe proporcionar la solucin del problema. Solucin del
Problema Anlisis del Problema Diseo del algoritmo Solucin por computadora
38. 2.3 ANALISIS DEL PROBLEMA cont. 2. Que datos se necesitan para resolver el problema. Anlisis del Problema
Definicindel Problema Especificaciones de entrada Especificaciones de salida
39. 2.3 ANALISIS DEL PROBLEMA cont. Ejemplo: leer los lados de un tringulo rectangulo e imprima la hipotenusa.
Entradas: valores de los lados (variable LADO1 y variable LADO2). Salida: valor de la hipotenusa (variable LADO3).
Variables: LADO1, LADO2 y LADO3 (tipo reales).
40. 2.4 DISEO DEL ALGORITMO La informacin proporcionada al algoritmo constituye su entrada y la informacin
producida constituye su salida. Los problemas complejos se resuelven eficazmente si se fragmentan en
subproblemas que sean ms sencillos de solucionar que el original. Esta tcnica es conocida como divide y vencers
(divide and conquer).
41. 2.4 DISEO DEL ALGORITMO cont. La descomposicin del problema original en subproblemas cuya solucin
puede implementarse a travs de la computadora se le denomina diseo descendente (top down design) La
descripcin detallada de la solucin mediante pasos especficos se le denomina refinamiento del algoritmo (stepwise
refinement).
42. 2.4 DISEO DEL ALGORITMO cont. Diseo del algoritmo Diseo descendente Refinamiento por pasos
Herramientas de programacin diagramas de flujo -pseudocdigo
43. 2.4 DISEO DEL ALGORITMO cont. Ejemplo: Determine a los nmeros menores que 90 y mltiplos de 9, as
como su sumatoria. Definicindel Problema Especificaciones de entrada Especificaciones de salida Imprimir mltiplos
de 9 y su suma siempre y cuando sea menor que 90 TOTAL = 0 NUM = 9 LIMITE = 90 NUM, TOTAL
44. 2.4 DISEO DEL ALGORITMO cont. Diseo descendente Refinamiento por pasos Herramientas de
programacin Mltiplos de 9 Sumatoria Num=9 Print num Num <= 90 regresar a) Num=+9 Total=+num
45. 2.4 DISEO DEL ALGORITMO cont. Inicio Total=0, Num=9, Limite=90 Print Num Total=Total+Num Si Num <=
Limite entonces Num=Num+9 y regresar a 3 Print Total Fin
46. tarea Determine si una palabra es un palndromo. Determine el mximo comn divisor para dos nmeros enteros.
Lea e imprima una serie de nmeros distintos de cero. El algoritmo terminar con un valor que no se debe imprimir .
Finalmente obtenga la cantidad de valores ledos.
47. tarea 4. Imprima y sume la serie de nmeros mltiplos de 3 en el rango cerrado de 3 y 99. 5. Lea cuatro nmeros
e imprima el mayor de ellos. 6. Calcule la superficie de un triangulo en funcin de la base y la altura.
48. 2.5 SOLUCION DE PROBLEMAS MEDIANTE LA COMPUTADORA Una vez diseado el algoritmo y
representado mediante una herramienta de programacin se debe: Solucin del Problema por Computadora
Codificacin del programa Ejecucin del programa Comprobacin del programa
49. 2.6 REPRESENTACION GRAFICA DE LOS ALGORITMOS Los mtodos usuales para representarlo son:
Diagrama de flujo Lenguaje de especificacin de algoritmo
50. 2.6 REPRESENTACION GRAFICA DE LOS ALGORITMOS cont
51. 2.7 PSEUDOCODIGO Es un lenguaje de especificacin de algoritmos que permite una codificacin rpida y
simple. Su ventaja radica en que el programador no debe preocuparse por la sintaxis de un lenguaje de programacin
en particular. Utiliza palabras sencillas de entender para codificar programas.
52. ESTRUCTURA DE UN PROGRAMA
53. Concepto de Programa Conjunto de instrucciones que producirn la ejecucin de una determinada tarea.
Esencialmente es un medio para lograr un fin.
54. PROCESO DE PROGRAMACION Consiste en la solucin de problemas y el desarrollo de programas
55. Fases del proceso de programacin Definicin y anlisis del problema. Diseo de algoritmos: Diagrama de flujo.
Diagrama (N-S). Pseudocdigo Codificacin del programa. Depuracin y verificacin del programa. Documentacin.
Mantenimiento.
56. Partes de un programa concepto de caja negra Entrada Algoritmo Salida
57. De inicio / fin. De asignacin. De lectura, De escritura. De bifurcacin. Tipos de Instrucciones (acciones que
resuelven un problema)
58. Elementos bsicos de un programa Palabras reservadas. Identificadores (nombres de variables). Caracteres
especiales. Constantes. Variables. Expresiones. instrucciones.
59. Otros elementos Iteraciones, Contadores, Acumuladores, Interruptores, Estructuras: Secuenciales,
Selectivas, Repetitivas.
60. Iteraciones Es el segmento de un algoritmo o programa, cuyas instrucciones se repiten un nmero determinado
de veces mientras se cumple una determinada condicin. Sus partes son: decisin cuerpo del bucle salida
61. Contadores Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante en
cada iteracin.
62. Acumuladores Un Acumulador es una variable cuya misin es almacernar cantidades distintas resultantes de
sumas sucesivas.
63. Interruptores Un interruptor ( conmutador, bandera, flag) es una variable que puede tomar diversos
valoresdurante la ejecucin de un programa y que permite comunicar informacin desde una parte a otra del mismo.
64. Componentes de un algoritmo Algoritmo Cabecera del programa Seccin de declaracin Seccin de acciones
65. PROGRAMACIN ESTRUCTURADA
66. Tcnicas de Programacin... Programacin modular: Descomposicin del problema en mdulos. Programacin
estructurada: Programacin de cada mdulo mediante mtodos estructurados.
67. Caractersticas de la programacin modular Todo programa tiene un mdulo principal. Dicho mdulo primario se
divide en submdulos, que a su vez ejecutan una tarea nica y podrn codificarse de manera independiente de
cualquier otra actividad. Sin embargo, al finalizar su funcin devolvern el control al mdulo principal. Esta
independencia alude a que ningn otro mdulo podr accesarlo directamente, a excepcin de sus propios
subsubmdulos y al mdulo principal.
68. Consideraciones . La descomposicin de un programa podra implemetarse as: Mdulo principal. Submdulo
impresin de ttulos Submdulo de lectura de datos Submdulo ejecucin de procesos Submdulo impresin de
resultados
69. Conjunto de tcnicas que reducen el tiempo requerido para escribir, verificar, depurar y mantener los programas.
Mediante el uso de: recursos abstractos, diseo descendente, estructuras bsicas. Caractersticas de la
programacin estructurada
70. Recursos Abstractos Consiste en descomponer una determinada accin compleja en un nmero de acciones ms
simples, capaces de ser ejecutada por una computadora y sus respectivas instrucciones.
71. Diseo Descendente TOP-DOWN DESIGN Esta metodologa efecta una relacin de refinamiento entre las
distintas etapas de estructuracin, de modo que se relacionen unas con otras, mediante entradas y salidas de
informacin. Descompone el problema en etapas o estructuras jerrquicas, de modo que se pueda considerar cada
estructura desde dos puntos de vista: qu hace y cmo lo hace
72. Diseo Descendente Desde el exterior ..
73. Diseo Descendente Desde el interior ..
74. Estructuras bsicas Teorema de la programacin estructurada: Un programa propio es aquel que cumple las
siguientes caractersticas: secuenciales, selectivas, y repetitivas. posee un solo punto de entrada y salida. se puede
recorrer toda la estructura del programa modular. todas las instrucciones son ejecutables y no existen bucles infinitos.
75. Instrucciones Secuenciales
76. Instruccin Selectiva Simple
77. Instruccin Selectiva Compuesta
78. Instruccin Selectiva Mltiple
79. Instruccin Repetitiva While
80. Instruccin Repetitiva Repeat
81. Instruccin Repetitiva For
82. F I N