SlideShare una empresa de Scribd logo
1 de 7
1. Algoritmos y Programas
2. Introducción El objetivo de esta sesión → consistirá en explicar los conceptos de
algoritmo, programa y lenguaje de programación. Así como explorar otros temas
concurrentes.
3. Temática Sistemas de procesamiento de información. → Concepto de Algoritmo.→
Lenguaje de programación.→ Datos, tipos de datos y operaciones→ primitivas.
Constantes y variables.→ Expresiones.→ Funciones intrínsecas.→ Asignación.→
Entrada y salida de información.→
4. 1. Sistemas de procesamiento de la información Un sistema de esta clase se define
→ como un conjunto de componentes interconectados entre sí que transforman
datos en información organizada, significativa y útil.
5. Esquemáticamente Datos Procesador Información
6. Una primera definición Un algoritmo consiste en el grupo → de instrucciones que
definen la secuencia de operaciones a realizar para resolver un sistema específico o
clase de problema.
7. Conceptos importantes Hardware: grupo de componentes → físicos de una
computadora. Software: conjunto de programas → que controlan el funcionamiento
de una computadora
8. 2. Concepto de Algoritmo La metodología de la → programación es aquella que es
necesaria para resolver problemas mediante programas, su eje es el algoritmo.
Diseño Problema del Programa algoritmo
9. Pasos para la solución de un problema El diseño del algoritmo describe el →
análisis del problema y desarrollo del algoritmo. Expresar el algoritmo como un→
programa en un lenguaje de programación. Ejecutar y validar el programa por→ la
computadora.
10. Características 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 algún 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 números entre el 3 y el 30. Inicio. s
Hacer SUMA igual cero. s Establecer NUMERO igual a 3. s Sumar NUMERO a
SUMA. s Incrementar NUMERO en 3 s Si NUMERO es menor o igual que 30 ir a s
4; si no imprimir a SUMA. Fin s
13. Ejemplo 2.3 Genere un algoritmo que determine al mayor de tres números enteros.
Inicio → Leer los números y guardarlos en NUM1,→ NUM2 y NUM3
respectivamente Comparar NUM1 y NUM2, el número mayor→ se guarda en
AUX. Comparar AUX y NUM3, imprimir el número→ mayor. Fin.→
14. Tarea 2.1 Diseñe un algoritmo para determinar si un número es primo o no. Tarea
2.2 Genere un algoritmo que sume los números entre el 2 y el 20. Tarea 2.3 Genere
un algoritmo que sume los números entre el 5 y el 50.
15. 3. Los lenguajes de programación Cuando→ el procesador de datos es una
computadora entonces el algoritmo de solución se expresa en un programa. Por
tanto, un programa es escrito en un→ lenguaje de programación. Luego, la
programación consiste en→ expresar las operaciones en forma de programa de un
algoritmo.
16. Tipos de lenguajes Máquina;→ escritos en código binario. Bajo→ nivel
(ensamblador); escrito en nemotécnicos. Alto→ nivel; diseñados para ser
entendidos por el ser humano.
17. Instrucciones básicas Entrada/Salida; transferencia de información entre →
dispositivos periféricos y memoria central. Aritmético/Lógicas; ejecutan
operaciones de éstos → tipos. Selectivas; seleccionan tareas en función de los →
resultados Repetitivas; permiten la iteración de secuencias de → instrucciones un
número dado de veces
18. Traductores del Lenguaje A)→ Intérpretes; Toma un programa fuente lo traduce e
inmediatamente lo ejecuta. Traducción Programa fuente Intérprete y ejecución en
línea
19. Traductores del Lenguaje (cont.) B) Compiladores; traduce un s programa fuente a
código objeto. Programa Programa Programa fuente Objeto ejecutable Montador
Compilador (Linker) (Compiler)
20. 4. Datos, Tipos de Datos y Operaciones Primitivas Un dato es la expresión 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) → Lógicos (booleans) → Carácter (char, string) →
21. Datos primitivos Datos Numérico Carácter Lógico Entero Real
22. 5. Constantes y Variables Constantes: valores que durante la → ejecución de un
programa no cambian su valor. Variables: valores que cambiarán → durante la
ejecución del programa
23. 6. Expresiones Se→ definen como una combinación de constantes, variables,
símbolos de operación, paréntesis, y nombres de funciones especiales. Una
expresión consta de operandos y→ operadores. Las expresiones se clasifican en→
aritméticas, lógicas y carácter.
24. Expresiones aritméticas Operador Significado Tipo de operandos Tipo resultado **
Exponenciación Entero o real Entero o real + Suma Entero o real Entero o real Resta Entero o real Entero o real * Multiplicación Entero o real Entero o real /
División Real Real Div División entera Entero Entero Mod módulo Entero Entero
25. Reglas de prioridad Operador Gráfo Parentesis () Exponencial ** Multi, divide *, /
Div y mod Div, mod Más y menos +, 26. Operadores de relación Expresión 1 Operador de Expresión 2 relación Operador
Significado < Menor > Mayor = Igual <= Menor o igual >= Mayor o igual <>,!=
Distinto
27. Operadores lógicos Operador lógico Expresión lógica Significado Not Not p
Negación And PyQ Conjunción Or PoQ disyunción
28. 7. Funciones Intrínsecas Función Descripción Abs(x) Absoluto Arctan(x) Tangente
inversa Cos(x) Coseno Exp(x) Exponencial Ln(x) Log neperiano Log10(x) Log
decimal Round(x) Redondeo Sin(x) Seno Sqr(x) Cuadrado Sqrt(x) Raíz cuadrada
Trunc(x) Truncamiento
29. 8. Operación de Asignación Es la forma de darle valores→ tanto a variables como
constantes, se representa con el símbolo
30. Tipos de asignación Aritmética→ Lógica→ Cadena→ de carácteres
31. 9. Entrada y salida de información La operación de lectura READ → permite el
ingreso de los datos necesarios para los cálculos computacionales. La operación de
escritura WRITE → imprime la información procesada por el programa y su
respectivo algoritmo.
32. PROBLEMAS RESUELTOS CON COMPUTADORAS Y HERRAMIENTAS DE
PROGRAMACION 09/08/07 32
33. INDICE OBJETIVO→ SOLUCION→ DE PROBLEMAS ANALISIS DEL
PROBLEMA→ DISEÑO DEL ALGORITMO→ SOLUCION DEL
PROBLEMA→ MEDIANTE COMPUTADORA REPRESENTACION GRAFICA
DE→ ALGORITMOS PSEUDOCODIGO→ 09/08/07 33
34. 2.1 OBJETIVO EXPONER→ LOS CONOCIMIENTOS INDISPENSABLES
PARA EL APRENDIZAJE DE LA PROGRAMACION. 09/08/07 34
35. 2.2 SOLUCION DE PROBLEMAS Fases de fragmentación: → Análisis del
problema: definición concisa → a fin de que sea analizado en todo detalle. Diseño
del algoritmo: procedimiento, → paso a paso, para la solucionar el problema dado.
Solución del algoritmo con la → computadora: codificación del algoritmo en un
lenguaje de programación 09/08/07 35
36. 2.3 ANALISIS DEL PROBLEMA El→ propósito es ayudar al programador a
llegar a un cierto grado de comprensión de la naturaleza del problema. Una→
buena definición del problema, junto con una descripción detallada de entrada y
salida, son los requisitos más importantes para una solución eficaz. 09/08/07 36
37. 2.3 ANALISIS DEL PROBLEMA cont. Que información debe proporcionar la 1.
solución del problema. Solución del Problema Análisis del Diseño del Solución por
Problema algoritmo computadora
38. 2.3 ANALISIS DEL PROBLEMA cont. 2. Que datos se necesitan para resolver el
problema. Análisis del Problema Definicióndel Especificaciones Especificaciones
Problema de entrada de salida
39. 2.3 ANALISIS DEL PROBLEMA cont. Ejemplo:leer los lados de un triángulo→
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 DISEÑO DEL ALGORITMO La información proporcionada al algoritmo →
constituye su entrada y la información producida constituye su salida. Los
problemas complejos se resuelven → eficazmente si se fragmentan en subproblemas
que sean más sencillos de solucionar que el original. Esta técnica es conocida como
divide y vencerás (divide and conquer).
41. 2.4 DISEÑO DEL ALGORITMO cont. La→ descomposición del problema
original en subproblemas cuya solución puede implementarse a través de la
computadora se le denomina diseño descendente (top down design) La descripción
detallada de la solución→ mediante pasos específicos se le denomina refinamiento
del algoritmo (stepwise refinement).
42. 2.4 DISEÑO DEL ALGORITMO cont. Diseño del algoritmo Diseño Refinamiento
por Herramientas de descendente pasos programación –diagramas de flujo
-pseudocódigo
43. 2.4 DISEÑO DEL ALGORITMO cont. Ejemplo:Determine a los números→
menores que 90 y múltiplos de 9, así como su sumatoria. Definicióndel
Especificaciones Especificaciones Problema de entrada de salida Imprimir TOTAL
= 0 NUM, TOTAL múltiplos de 9 NUM = 9 y su suma LIMITE = 90 siempre y
cuando sea menor que 90
44. 2.4 DISEÑO DEL ALGORITMO cont. Diseño Refinamiento por Herramientas de
descendente pasos programación Múltiplos de 9 a) Num=9 b) Print num c) Num <=
90 regresar a) d) Num=+9 Sumatoria Total=+num
45. 2.4 DISEÑO DEL ALGORITMO cont. Inicio 1. Total=0, Num=9, Limite=90 2.
Print Num 3. Total=Total+Num 4. Si Num <= Limite entonces 5. Num=Num+9 y
regresar a 3 Print Total 6. Fin 7.
46. tarea Determine si una palabra es un 1. palíndromo. 2. Determine el máximo común
divisor para dos números enteros. 3. Lea e imprima una serie de números distintos
de cero. El algoritmo terminará con un valor que no se debe imprimir . Finalmente
obtenga la cantidad de valores leídos.
47. tarea 4. Imprima y sume la serie de números múltiplos de 3 en el rango cerrado de 3
y 99. 5. Lea cuatro números e imprima el mayor de ellos. 6. Calcule la superficie de
un triangulo en función de la base y la altura.
48. 2.5 SOLUCION DE PROBLEMAS MEDIANTE LA COMPUTADORA Una vez
diseñado el algoritmo y → representado mediante una herramienta de programación
se debe: Solución del Problema por Computadora Codificación Ejecución del
Comprobación del programa programa del programa
49. 2.6 REPRESENTACION GRAFICA DE LOS ALGORITMOS Los métodos
usuales para → representarlo son: 2. Diagrama de flujo 3. Lenguaje de
especificación de algoritmo
50. 2.6 REPRESENTACION GRAFICA DE LOS ALGORITMOS cont
51. 2.7 PSEUDOCODIGO Es→ un lenguaje de especificación de algoritmos que
permite una codificación rápida y simple. Su→ ventaja radica en que el
programador no debe preocuparse por la sintaxis de un lenguaje de programación en
particular. Utiliza palabras sencillas de entender→ para codificar programas.
52. ESTRUCTURA DE UN PROGRAMA
53. Concepto de Programa Conjunto de instrucciones que producirán la ejecución de
una determinada tarea. Esencialmente es un medio para lograr un fin.
54. PROCESO DE PROGRAMACION Consiste en la solución de problemas y el
desarrollo de programas
55. Fases del proceso de programación Definiciòn y análisis del problema. → Diseño
de algoritmos:→ Diagrama de flujo. → Diagrama (N-S). → Pseudocódigo →
Codificación del programa. → Depuración y verificación del programa.→
Documentación.→ Mantenimiento.→
56. Partes de un programa concepto de caja negra Entrada Algoritmo Salida
57. Tipos de Instrucciones (acciones que resuelven un problema) De inicio / fin.→ De
asignación.→ De lectura,→ De escritura.→ De bifurcación.→
58. Elementos básicos 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 número determinado de veces mientras se cumple una determinada
condición. Sus partes son: decisión cuerpo del bucle salida
61. Contadores Un contador es una variable cuyo valor se → incrementa o decrementa
en una cantidad constante en cada iteración.
62. Acumuladores Un Acumulador es una variable cuya misión → es almacernar
cantidades distintas resultantes de sumas sucesivas.
63. Interruptores Un interruptor ( conmutador, bandera, flag) es → una variable que
puede tomar diversos valoresdurante la ejecución de un programa y que permite
comunicar información desde una parte a otra del mismo.
64. Componentes de un algoritmo Algoritmo Cabecera del programa Sección de
declaración Sección de acciones
65. PROGRAMACIÓN ESTRUCTURADA
66. Técnicas de Programación... Programación modular:→ Descomposición del
problema en módulos. Programaciónestructurada:→ Programación de cada módulo
mediante métodos estructurados.
67. Características de la programación modular Todo programa tiene un módulo
principal. → Dicho→ módulo primario se divide en submódulos, que a su vez
ejecutan una tarea única y podrán codificarse de manera independiente de cualquier
otra actividad. Sin embargo, al finalizar su función devolverán el control al módulo
principal. Esta independencia alude a que ningún otro→ módulo podrá accesarlo
directamente, a excepción de sus propios subsubmódulos y al módulo principal.
68. Consideraciones ……. La descomposición de un programa podría → implemetarse
así: Módulo principal. → Submódulo impresión de títulos → Submódulo de lectura
de datos → Submódulo ejecución de procesos → Submódulo impresión de
resultados →
69. Características de la programación estructurada Conjunto de técnicas que reducen
el→ tiempo requerido para escribir, verificar, depurar y mantener los programas.
Mediante el uso de:→ recursos abstractos, → diseño descendente,→ estructuras
básicas.→
70. Recursos Abstractos Consiste en descomponer una determinada → acción compleja
en un número de acciones más simples, capaces de ser ejecutada por una
computadora y sus respectivas instrucciones.
71. Diseño Descendente TOP-DOWN DESIGN Esta metodología efectúa una relación
de → refinamiento entre las distintas etapas de estructuración, de modo que se
relacionen unas con otras, mediante entradas y salidas de información.
Descompone el problema en etapas o→ estructuras jerárquicas, de modo que se
pueda considerar cada estructura desde dos puntos de vista: qué hace y cómo lo
hace
72. Diseño Descendente Desde el exterior …..
73. Diseño Descendente Desde el interior …..
74. Estructuras básicas Teorema de la programación estructurada: Un programa propio
es aquel que cumple las siguientes características: 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. Instrucción Selectiva Simple
77. Instrucción Selectiva Compuesta
78. Instrucción Selectiva Múltiple
79. Instrucción Repetitiva “While”
80. Instrucción Repetitiva “Repeat”
81. Instrucción Repetitiva “For”
82. FIN

Más contenido relacionado

La actualidad más candente

Clase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemasClase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemasSol Hernández
 
Clase 3. Datos y Entidades Primitivas - Sullin Santaella
Clase 3. Datos y Entidades Primitivas - Sullin SantaellaClase 3. Datos y Entidades Primitivas - Sullin Santaella
Clase 3. Datos y Entidades Primitivas - Sullin SantaellaJosé Ricardo Tillero Giménez
 
Introducción al análisis de algoritmos
Introducción al  análisis de algoritmosIntroducción al  análisis de algoritmos
Introducción al análisis de algoritmosAlvaro Enrique Ruano
 
Estructuras básicas conceptos básicos de programación
Estructuras básicas  conceptos básicos de programaciónEstructuras básicas  conceptos básicos de programación
Estructuras básicas conceptos básicos de programaciónNataliaVicua1
 
Guia de aprendizaje VS2005-2010
Guia de aprendizaje VS2005-2010Guia de aprendizaje VS2005-2010
Guia de aprendizaje VS2005-2010Duvan Aguilera
 
Estructuras básicas conceptos básicos de programación
Estructuras básicas  conceptos básicos de programaciónEstructuras básicas  conceptos básicos de programación
Estructuras básicas conceptos básicos de programaciónlaurapolindara1
 
Estructuras básicas conceptos básicos de programación
Estructuras básicas  conceptos básicos de programaciónEstructuras básicas  conceptos básicos de programación
Estructuras básicas conceptos básicos de programacióncarlinauribe
 
Algoritmo fundamentos de la programación
Algoritmo   fundamentos de la programaciónAlgoritmo   fundamentos de la programación
Algoritmo fundamentos de la programaciónDesarrolloWeb.com
 
Estructuras básicas conceptos básicos de programación (1)
Estructuras básicas  conceptos básicos de programación (1)Estructuras básicas  conceptos básicos de programación (1)
Estructuras básicas conceptos básicos de programación (1)daniel lozada cutiva
 
Sistemas numericos
Sistemas numericosSistemas numericos
Sistemas numericosOmar Sanchez
 

La actualidad más candente (16)

Clase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemasClase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemas
 
Apuntes De Algoritmos
Apuntes De AlgoritmosApuntes De Algoritmos
Apuntes De Algoritmos
 
Tipos de algoritmos
Tipos de algoritmosTipos de algoritmos
Tipos de algoritmos
 
Clase 3. Datos y Entidades Primitivas - Sullin Santaella
Clase 3. Datos y Entidades Primitivas - Sullin SantaellaClase 3. Datos y Entidades Primitivas - Sullin Santaella
Clase 3. Datos y Entidades Primitivas - Sullin Santaella
 
Introducción al análisis de algoritmos
Introducción al  análisis de algoritmosIntroducción al  análisis de algoritmos
Introducción al análisis de algoritmos
 
Estructuras básicas conceptos básicos de programación
Estructuras básicas  conceptos básicos de programaciónEstructuras básicas  conceptos básicos de programación
Estructuras básicas conceptos básicos de programación
 
Guia de aprendizaje VS2005-2010
Guia de aprendizaje VS2005-2010Guia de aprendizaje VS2005-2010
Guia de aprendizaje VS2005-2010
 
Elemento3
Elemento3Elemento3
Elemento3
 
Estructuras básicas conceptos básicos de programación
Estructuras básicas  conceptos básicos de programaciónEstructuras básicas  conceptos básicos de programación
Estructuras básicas conceptos básicos de programación
 
Estructuras básicas conceptos básicos de programación
Estructuras básicas  conceptos básicos de programaciónEstructuras básicas  conceptos básicos de programación
Estructuras básicas conceptos básicos de programación
 
Estructuras básicas
Estructuras básicas Estructuras básicas
Estructuras básicas
 
Algoritmo fundamentos de la programación
Algoritmo   fundamentos de la programaciónAlgoritmo   fundamentos de la programación
Algoritmo fundamentos de la programación
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Estructuras básicas conceptos básicos de programación (1)
Estructuras básicas  conceptos básicos de programación (1)Estructuras básicas  conceptos básicos de programación (1)
Estructuras básicas conceptos básicos de programación (1)
 
Sistemas numericos
Sistemas numericosSistemas numericos
Sistemas numericos
 

Similar a Algoritmos y programas datos importantes

Similar a Algoritmos y programas datos importantes (20)

Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacion
 
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
 
Seudocodigo
SeudocodigoSeudocodigo
Seudocodigo
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Programación modular estructurada.ppt
Programación modular estructurada.pptProgramación modular estructurada.ppt
Programación modular estructurada.ppt
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Desarrollo de lógica algorítmica
Desarrollo de lógica algorítmicaDesarrollo de lógica algorítmica
Desarrollo de lógica algorítmica
 
Unidad i
Unidad iUnidad i
Unidad i
 
DEFINICIÓN DE LENGUAJES ALGORÍTMICOS
DEFINICIÓN DE LENGUAJES ALGORÍTMICOSDEFINICIÓN DE LENGUAJES ALGORÍTMICOS
DEFINICIÓN DE LENGUAJES ALGORÍTMICOS
 
Tema n° 1
Tema n° 1Tema n° 1
Tema n° 1
 
37459207 importancia-de-los-metodos-numericos
37459207 importancia-de-los-metodos-numericos37459207 importancia-de-los-metodos-numericos
37459207 importancia-de-los-metodos-numericos
 
Algoritmos y programas
Algoritmos y programasAlgoritmos y programas
Algoritmos y programas
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Diagramas de-flujo.
Diagramas de-flujo.Diagramas de-flujo.
Diagramas de-flujo.
 
Tema 02 secuencial
Tema 02 secuencialTema 02 secuencial
Tema 02 secuencial
 
Tema 02 secuencial
Tema 02 secuencialTema 02 secuencial
Tema 02 secuencial
 
Video Primer Bimestre Metodologia Abierta
Video Primer Bimestre Metodologia AbiertaVideo Primer Bimestre Metodologia Abierta
Video Primer Bimestre Metodologia Abierta
 
Tarea 6
Tarea 6Tarea 6
Tarea 6
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 

Más de Esteban Bedoya

Hacking with experts (by anurag dwivedi)
Hacking with experts (by anurag dwivedi)Hacking with experts (by anurag dwivedi)
Hacking with experts (by anurag dwivedi)Esteban Bedoya
 
Hacking with experts 3 (facebook hacking) by anurag dwivedi.
Hacking with experts 3 (facebook hacking) by anurag dwivedi.Hacking with experts 3 (facebook hacking) by anurag dwivedi.
Hacking with experts 3 (facebook hacking) by anurag dwivedi.Esteban Bedoya
 
Ada análisis y diseño estructurado moderno - yourdon.
Ada análisis y diseño estructurado moderno - yourdon.Ada análisis y diseño estructurado moderno - yourdon.
Ada análisis y diseño estructurado moderno - yourdon.Esteban Bedoya
 
Seguridad servicios comunicaciones
Seguridad servicios comunicacionesSeguridad servicios comunicaciones
Seguridad servicios comunicacionesEsteban Bedoya
 
Montaje y configuracion del pc
Montaje y configuracion del pcMontaje y configuracion del pc
Montaje y configuracion del pcEsteban Bedoya
 
Libro de cocina del anarquista
Libro de cocina del anarquistaLibro de cocina del anarquista
Libro de cocina del anarquistaEsteban Bedoya
 
Apuntes de introduccion a la informatica
Apuntes de introduccion a la informaticaApuntes de introduccion a la informatica
Apuntes de introduccion a la informaticaEsteban Bedoya
 
Aprenda a programar como si estuviera en primero
Aprenda a programar como si estuviera en primeroAprenda a programar como si estuviera en primero
Aprenda a programar como si estuviera en primeroEsteban Bedoya
 
Anonymous el manual super-secreto - 0.2.0 - es
Anonymous   el manual super-secreto - 0.2.0 - esAnonymous   el manual super-secreto - 0.2.0 - es
Anonymous el manual super-secreto - 0.2.0 - esEsteban Bedoya
 
Algoritmos y programas 1
Algoritmos y programas 1Algoritmos y programas 1
Algoritmos y programas 1Esteban Bedoya
 
Algoritmos y programas super manual de algoritmia
Algoritmos y programas   super manual de algoritmiaAlgoritmos y programas   super manual de algoritmia
Algoritmos y programas super manual de algoritmiaEsteban Bedoya
 
La conciencia del hacker
La conciencia del hackerLa conciencia del hacker
La conciencia del hackerEsteban Bedoya
 

Más de Esteban Bedoya (18)

Hacking with experts (by anurag dwivedi)
Hacking with experts (by anurag dwivedi)Hacking with experts (by anurag dwivedi)
Hacking with experts (by anurag dwivedi)
 
Hacking with experts 3 (facebook hacking) by anurag dwivedi.
Hacking with experts 3 (facebook hacking) by anurag dwivedi.Hacking with experts 3 (facebook hacking) by anurag dwivedi.
Hacking with experts 3 (facebook hacking) by anurag dwivedi.
 
Ada análisis y diseño estructurado moderno - yourdon.
Ada análisis y diseño estructurado moderno - yourdon.Ada análisis y diseño estructurado moderno - yourdon.
Ada análisis y diseño estructurado moderno - yourdon.
 
Sql Basico
Sql BasicoSql Basico
Sql Basico
 
Seguridad servicios comunicaciones
Seguridad servicios comunicacionesSeguridad servicios comunicaciones
Seguridad servicios comunicaciones
 
Programación con sql
Programación con sqlProgramación con sql
Programación con sql
 
Montaje y configuracion del pc
Montaje y configuracion del pcMontaje y configuracion del pc
Montaje y configuracion del pc
 
Libro de cocina del anarquista
Libro de cocina del anarquistaLibro de cocina del anarquista
Libro de cocina del anarquista
 
Electrónica
ElectrónicaElectrónica
Electrónica
 
Apuntes de introduccion a la informatica
Apuntes de introduccion a la informaticaApuntes de introduccion a la informatica
Apuntes de introduccion a la informatica
 
Aprenda a programar como si estuviera en primero
Aprenda a programar como si estuviera en primeroAprenda a programar como si estuviera en primero
Aprenda a programar como si estuviera en primero
 
Anonymous el manual super-secreto - 0.2.0 - es
Anonymous   el manual super-secreto - 0.2.0 - esAnonymous   el manual super-secreto - 0.2.0 - es
Anonymous el manual super-secreto - 0.2.0 - es
 
Algoritmos y programas 1
Algoritmos y programas 1Algoritmos y programas 1
Algoritmos y programas 1
 
Algoritmos y programas super manual de algoritmia
Algoritmos y programas   super manual de algoritmiaAlgoritmos y programas   super manual de algoritmia
Algoritmos y programas super manual de algoritmia
 
Acelerando windows
Acelerando windowsAcelerando windows
Acelerando windows
 
Manual de logica
Manual de logicaManual de logica
Manual de logica
 
Sentencias my sql
Sentencias my sqlSentencias my sql
Sentencias my sql
 
La conciencia del hacker
La conciencia del hackerLa conciencia del hacker
La conciencia del hacker
 

Algoritmos y programas datos importantes

  • 1. 1. Algoritmos y Programas 2. Introducción El objetivo de esta sesión → consistirá en explicar los conceptos de algoritmo, programa y lenguaje de programación. Así como explorar otros temas concurrentes. 3. Temática Sistemas de procesamiento de información. → Concepto de Algoritmo.→ Lenguaje de programación.→ Datos, tipos de datos y operaciones→ primitivas. Constantes y variables.→ Expresiones.→ Funciones intrínsecas.→ Asignación.→ Entrada y salida de información.→ 4. 1. Sistemas de procesamiento de la información Un sistema de esta clase se define → como un conjunto de componentes interconectados entre sí que transforman datos en información organizada, significativa y útil. 5. Esquemáticamente Datos Procesador Información 6. Una primera definición Un algoritmo consiste en el grupo → de instrucciones que definen la secuencia de operaciones a realizar para resolver un sistema específico o clase de problema. 7. Conceptos importantes Hardware: grupo de componentes → físicos de una computadora. Software: conjunto de programas → que controlan el funcionamiento de una computadora 8. 2. Concepto de Algoritmo La metodología de la → programación es aquella que es necesaria para resolver problemas mediante programas, su eje es el algoritmo. Diseño Problema del Programa algoritmo 9. Pasos para la solución de un problema El diseño del algoritmo describe el → análisis del problema y desarrollo del algoritmo. Expresar el algoritmo como un→ programa en un lenguaje de programación. Ejecutar y validar el programa por→ la computadora. 10. Características 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 algún 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 números entre el 3 y el 30. Inicio. s Hacer SUMA igual cero. s Establecer NUMERO igual a 3. s Sumar NUMERO a SUMA. s Incrementar NUMERO en 3 s Si NUMERO es menor o igual que 30 ir a s 4; si no imprimir a SUMA. Fin s
  • 2. 13. Ejemplo 2.3 Genere un algoritmo que determine al mayor de tres números enteros. Inicio → Leer los números y guardarlos en NUM1,→ NUM2 y NUM3 respectivamente Comparar NUM1 y NUM2, el número mayor→ se guarda en AUX. Comparar AUX y NUM3, imprimir el número→ mayor. Fin.→ 14. Tarea 2.1 Diseñe un algoritmo para determinar si un número es primo o no. Tarea 2.2 Genere un algoritmo que sume los números entre el 2 y el 20. Tarea 2.3 Genere un algoritmo que sume los números entre el 5 y el 50. 15. 3. Los lenguajes de programación Cuando→ el procesador de datos es una computadora entonces el algoritmo de solución se expresa en un programa. Por tanto, un programa es escrito en un→ lenguaje de programación. Luego, la programación consiste en→ expresar las operaciones en forma de programa de un algoritmo. 16. Tipos de lenguajes Máquina;→ escritos en código binario. Bajo→ nivel (ensamblador); escrito en nemotécnicos. Alto→ nivel; diseñados para ser entendidos por el ser humano. 17. Instrucciones básicas Entrada/Salida; transferencia de información entre → dispositivos periféricos y memoria central. Aritmético/Lógicas; ejecutan operaciones de éstos → tipos. Selectivas; seleccionan tareas en función de los → resultados Repetitivas; permiten la iteración de secuencias de → instrucciones un número dado de veces 18. Traductores del Lenguaje A)→ Intérpretes; Toma un programa fuente lo traduce e inmediatamente lo ejecuta. Traducción Programa fuente Intérprete y ejecución en línea 19. Traductores del Lenguaje (cont.) B) Compiladores; traduce un s programa fuente a código objeto. Programa Programa Programa fuente Objeto ejecutable Montador Compilador (Linker) (Compiler) 20. 4. Datos, Tipos de Datos y Operaciones Primitivas Un dato es la expresión 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) → Lógicos (booleans) → Carácter (char, string) → 21. Datos primitivos Datos Numérico Carácter Lógico Entero Real 22. 5. Constantes y Variables Constantes: valores que durante la → ejecución de un programa no cambian su valor. Variables: valores que cambiarán → durante la ejecución del programa 23. 6. Expresiones Se→ definen como una combinación de constantes, variables, símbolos de operación, paréntesis, y nombres de funciones especiales. Una
  • 3. expresión consta de operandos y→ operadores. Las expresiones se clasifican en→ aritméticas, lógicas y carácter. 24. Expresiones aritméticas Operador Significado Tipo de operandos Tipo resultado ** Exponenciación Entero o real Entero o real + Suma Entero o real Entero o real Resta Entero o real Entero o real * Multiplicación Entero o real Entero o real / División Real Real Div División entera Entero Entero Mod módulo Entero Entero 25. Reglas de prioridad Operador Gráfo Parentesis () Exponencial ** Multi, divide *, / Div y mod Div, mod Más y menos +, 26. Operadores de relación Expresión 1 Operador de Expresión 2 relación Operador Significado < Menor > Mayor = Igual <= Menor o igual >= Mayor o igual <>,!= Distinto 27. Operadores lógicos Operador lógico Expresión lógica Significado Not Not p Negación And PyQ Conjunción Or PoQ disyunción 28. 7. Funciones Intrínsecas Función Descripción Abs(x) Absoluto Arctan(x) Tangente inversa Cos(x) Coseno Exp(x) Exponencial Ln(x) Log neperiano Log10(x) Log decimal Round(x) Redondeo Sin(x) Seno Sqr(x) Cuadrado Sqrt(x) Raíz cuadrada Trunc(x) Truncamiento 29. 8. Operación de Asignación Es la forma de darle valores→ tanto a variables como constantes, se representa con el símbolo 30. Tipos de asignación Aritmética→ Lógica→ Cadena→ de carácteres 31. 9. Entrada y salida de información La operación de lectura READ → permite el ingreso de los datos necesarios para los cálculos computacionales. La operación de escritura WRITE → imprime la información procesada por el programa y su respectivo algoritmo. 32. PROBLEMAS RESUELTOS CON COMPUTADORAS Y HERRAMIENTAS DE PROGRAMACION 09/08/07 32 33. INDICE OBJETIVO→ SOLUCION→ DE PROBLEMAS ANALISIS DEL PROBLEMA→ DISEÑO DEL ALGORITMO→ SOLUCION DEL PROBLEMA→ MEDIANTE COMPUTADORA REPRESENTACION GRAFICA DE→ ALGORITMOS PSEUDOCODIGO→ 09/08/07 33 34. 2.1 OBJETIVO EXPONER→ LOS CONOCIMIENTOS INDISPENSABLES PARA EL APRENDIZAJE DE LA PROGRAMACION. 09/08/07 34 35. 2.2 SOLUCION DE PROBLEMAS Fases de fragmentación: → Análisis del problema: definición concisa → a fin de que sea analizado en todo detalle. Diseño del algoritmo: procedimiento, → paso a paso, para la solucionar el problema dado.
  • 4. Solución del algoritmo con la → computadora: codificación del algoritmo en un lenguaje de programación 09/08/07 35 36. 2.3 ANALISIS DEL PROBLEMA El→ propósito es ayudar al programador a llegar a un cierto grado de comprensión de la naturaleza del problema. Una→ buena definición del problema, junto con una descripción detallada de entrada y salida, son los requisitos más importantes para una solución eficaz. 09/08/07 36 37. 2.3 ANALISIS DEL PROBLEMA cont. Que información debe proporcionar la 1. solución del problema. Solución del Problema Análisis del Diseño del Solución por Problema algoritmo computadora 38. 2.3 ANALISIS DEL PROBLEMA cont. 2. Que datos se necesitan para resolver el problema. Análisis del Problema Definicióndel Especificaciones Especificaciones Problema de entrada de salida 39. 2.3 ANALISIS DEL PROBLEMA cont. Ejemplo:leer los lados de un triángulo→ 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 DISEÑO DEL ALGORITMO La información proporcionada al algoritmo → constituye su entrada y la información producida constituye su salida. Los problemas complejos se resuelven → eficazmente si se fragmentan en subproblemas que sean más sencillos de solucionar que el original. Esta técnica es conocida como divide y vencerás (divide and conquer). 41. 2.4 DISEÑO DEL ALGORITMO cont. La→ descomposición del problema original en subproblemas cuya solución puede implementarse a través de la computadora se le denomina diseño descendente (top down design) La descripción detallada de la solución→ mediante pasos específicos se le denomina refinamiento del algoritmo (stepwise refinement). 42. 2.4 DISEÑO DEL ALGORITMO cont. Diseño del algoritmo Diseño Refinamiento por Herramientas de descendente pasos programación –diagramas de flujo -pseudocódigo 43. 2.4 DISEÑO DEL ALGORITMO cont. Ejemplo:Determine a los números→ menores que 90 y múltiplos de 9, así como su sumatoria. Definicióndel Especificaciones Especificaciones Problema de entrada de salida Imprimir TOTAL = 0 NUM, TOTAL múltiplos de 9 NUM = 9 y su suma LIMITE = 90 siempre y cuando sea menor que 90 44. 2.4 DISEÑO DEL ALGORITMO cont. Diseño Refinamiento por Herramientas de descendente pasos programación Múltiplos de 9 a) Num=9 b) Print num c) Num <= 90 regresar a) d) Num=+9 Sumatoria Total=+num
  • 5. 45. 2.4 DISEÑO DEL ALGORITMO cont. Inicio 1. Total=0, Num=9, Limite=90 2. Print Num 3. Total=Total+Num 4. Si Num <= Limite entonces 5. Num=Num+9 y regresar a 3 Print Total 6. Fin 7. 46. tarea Determine si una palabra es un 1. palíndromo. 2. Determine el máximo común divisor para dos números enteros. 3. Lea e imprima una serie de números distintos de cero. El algoritmo terminará con un valor que no se debe imprimir . Finalmente obtenga la cantidad de valores leídos. 47. tarea 4. Imprima y sume la serie de números múltiplos de 3 en el rango cerrado de 3 y 99. 5. Lea cuatro números e imprima el mayor de ellos. 6. Calcule la superficie de un triangulo en función de la base y la altura. 48. 2.5 SOLUCION DE PROBLEMAS MEDIANTE LA COMPUTADORA Una vez diseñado el algoritmo y → representado mediante una herramienta de programación se debe: Solución del Problema por Computadora Codificación Ejecución del Comprobación del programa programa del programa 49. 2.6 REPRESENTACION GRAFICA DE LOS ALGORITMOS Los métodos usuales para → representarlo son: 2. Diagrama de flujo 3. Lenguaje de especificación de algoritmo 50. 2.6 REPRESENTACION GRAFICA DE LOS ALGORITMOS cont 51. 2.7 PSEUDOCODIGO Es→ un lenguaje de especificación de algoritmos que permite una codificación rápida y simple. Su→ ventaja radica en que el programador no debe preocuparse por la sintaxis de un lenguaje de programación en particular. Utiliza palabras sencillas de entender→ para codificar programas. 52. ESTRUCTURA DE UN PROGRAMA 53. Concepto de Programa Conjunto de instrucciones que producirán la ejecución de una determinada tarea. Esencialmente es un medio para lograr un fin. 54. PROCESO DE PROGRAMACION Consiste en la solución de problemas y el desarrollo de programas 55. Fases del proceso de programación Definiciòn y análisis del problema. → Diseño de algoritmos:→ Diagrama de flujo. → Diagrama (N-S). → Pseudocódigo → Codificación del programa. → Depuración y verificación del programa.→ Documentación.→ Mantenimiento.→ 56. Partes de un programa concepto de caja negra Entrada Algoritmo Salida 57. Tipos de Instrucciones (acciones que resuelven un problema) De inicio / fin.→ De asignación.→ De lectura,→ De escritura.→ De bifurcación.→
  • 6. 58. Elementos básicos 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 número determinado de veces mientras se cumple una determinada condición. Sus partes son: decisión cuerpo del bucle salida 61. Contadores Un contador es una variable cuyo valor se → incrementa o decrementa en una cantidad constante en cada iteración. 62. Acumuladores Un Acumulador es una variable cuya misión → es almacernar cantidades distintas resultantes de sumas sucesivas. 63. Interruptores Un interruptor ( conmutador, bandera, flag) es → una variable que puede tomar diversos valoresdurante la ejecución de un programa y que permite comunicar información desde una parte a otra del mismo. 64. Componentes de un algoritmo Algoritmo Cabecera del programa Sección de declaración Sección de acciones 65. PROGRAMACIÓN ESTRUCTURADA 66. Técnicas de Programación... Programación modular:→ Descomposición del problema en módulos. Programaciónestructurada:→ Programación de cada módulo mediante métodos estructurados. 67. Características de la programación modular Todo programa tiene un módulo principal. → Dicho→ módulo primario se divide en submódulos, que a su vez ejecutan una tarea única y podrán codificarse de manera independiente de cualquier otra actividad. Sin embargo, al finalizar su función devolverán el control al módulo principal. Esta independencia alude a que ningún otro→ módulo podrá accesarlo directamente, a excepción de sus propios subsubmódulos y al módulo principal. 68. Consideraciones ……. La descomposición de un programa podría → implemetarse así: Módulo principal. → Submódulo impresión de títulos → Submódulo de lectura de datos → Submódulo ejecución de procesos → Submódulo impresión de resultados → 69. Características de la programación estructurada Conjunto de técnicas que reducen el→ tiempo requerido para escribir, verificar, depurar y mantener los programas. Mediante el uso de:→ recursos abstractos, → diseño descendente,→ estructuras básicas.→
  • 7. 70. Recursos Abstractos Consiste en descomponer una determinada → acción compleja en un número de acciones más simples, capaces de ser ejecutada por una computadora y sus respectivas instrucciones. 71. Diseño Descendente TOP-DOWN DESIGN Esta metodología efectúa una relación de → refinamiento entre las distintas etapas de estructuración, de modo que se relacionen unas con otras, mediante entradas y salidas de información. Descompone el problema en etapas o→ estructuras jerárquicas, de modo que se pueda considerar cada estructura desde dos puntos de vista: qué hace y cómo lo hace 72. Diseño Descendente Desde el exterior ….. 73. Diseño Descendente Desde el interior ….. 74. Estructuras básicas Teorema de la programación estructurada: Un programa propio es aquel que cumple las siguientes características: 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. Instrucción Selectiva Simple 77. Instrucción Selectiva Compuesta 78. Instrucción Selectiva Múltiple 79. Instrucción Repetitiva “While” 80. Instrucción Repetitiva “Repeat” 81. Instrucción Repetitiva “For” 82. FIN