Unidad 1

24,466 views

Published on

Published in: Technology
2 Comments
7 Likes
Statistics
Notes
No Downloads
Views
Total views
24,466
On SlideShare
0
From Embeds
0
Number of Embeds
22
Actions
Shares
0
Downloads
567
Comments
2
Likes
7
Embeds 0
No embeds

No notes for slide

Unidad 1

  1. 1. Algoritmos y Programación
  2. 2. Introducción  El objetivo de estas sesiónes consistirá en explicar los conceptos de algoritmo, programa y lenguaje de programación. Así como explorar otros temas concurrentes.
  3. 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. 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. 5. Esquemáticamente Datos Procesador Información
  6. 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. 7. Conceptos importantes  Hardware: grupo de componentes físicos de una computadora.  Software: conjunto de programas que controlan el funcionamiento de una computadora
  8. 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. 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. 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. 11. Ejemplo 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. 12. Ejemplo 2 Genere un algoritmo que sume los números 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. 13. Ejemplo 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. 14. Tarea 1 Diseñe un algoritmo para determinar si un número es primo o no. Tarea 2 Genere un algoritmo que sume los números entre el 2 y el 20. Tarea 3 Genere un algoritmo que sume los números entre el 5 y el 50.
  15. 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. 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. 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. 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. 19. Traductores del Lenguaje (cont.)  B) Compiladores; traduce un programa fuente a código objeto. Programa Programa Programa fuente Objeto ejecutable Compilador Montador (Compiler) (Linker)
  20. 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. 21. Datos primitivos Datos Numérico Carácter Lógico Entero Real
  22. 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. 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. 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. 25. Reglas de prioridad Operador Gráfo Parentesis ( ) Exponencial ** Multi, divide *, / Div y mod Div, mod Más y menos +, -
  26. 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. 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. 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. 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. 30. Tipos de asignación  Aritmética  Lógica  Cadena de carácteres
  31. 31. 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. 32. PROBLEMAS RESUELTOS CON COMPUTADORAS Y HERRAMIENTAS DE PROGRAMACION 15/10/2008 32
  33. 33. 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 15/10/2008 33
  34. 34. 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. 15/10/2008 34
  35. 35. ANALISIS DEL PROBLEMA cont. 1. Que información debe proporcionar la solución del problema. Solución del Problema Análisis del Diseño del Solución por Problema algoritmo computadora
  36. 36. 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
  37. 37. ANALISIS DEL PROBLEMA cont.  Ejemplo: leer los lados de un triángulo rectángulo 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).
  38. 38. 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).
  39. 39. 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).
  40. 40. DISEÑO DEL ALGORITMO cont. Tarea: Investigar acerca de los diferentes tipos de algoritmos.
  41. 41. DISEÑO DEL ALGORITMO cont. Diseño del algoritmo Diseño Refinamiento Herramientas de descendente por pasos programación –diagramas de flujo -pseudocódigo
  42. 42. 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
  43. 43. DISEÑO DEL ALGORITMO cont. Diseño Refinamiento Herramientas de descendente por pasos programación Múltiplos de 9 a) Num=9 b) Print num c) Num <= 90 regresar a) d) Num=+9 Sumatoria Total=+num
  44. 44. DISEÑO DEL ALGORITMO cont. 1. Inicio 2. Total=0, Num=9, Limite=90 3. Print Num 4. Total=Total+Num 5. Si Num <= Limite entonces Num=Num+9 y regresar a 3 6. Print Total 7. Fin
  45. 45. tarea 1. Determine si una palabra es un 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.
  46. 46. 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.
  47. 47. 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
  48. 48. REPRESENTACION GRAFICA DE LOS ALGORITMOS  Los métodos usuales para representarlo son: 1. Diagrama de flujo 2. Lenguaje de especificación de algoritmo
  49. 49. REPRESENTACION GRAFICA DE LOS ALGORITMOS  Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es la representación detallada en forma gráfica de como deben realizarse los pasos en la computadora para producir resultados
  50. 50. REPRESENTACION GRAFICA DE LOS ALGORITMOS  Inicio o fin del programa  Pasos, procesos o líneas de instrucción de programa de computo  Operaciones de entrada y salida  Toma de decisiones y Ramificación  Conector para unir el flujo a otra parte del diagrama  Cinta magnética  Disco magnético  Conector de pagina  Líneas de flujo  Anotación  Display, para mostrar datos  Envía datos a la impresora
  51. 51. REPRESENTACION GRAFICA DE LOS ALGORITMOS cont Enviar Inicio/fin impresora Ent/Sal Conector pagina Procesos Linea de flujo Decision Conector
  52. 52. REPRESENTACION GRAFICA DE LOS ALGORITMOS EJEMPLO Diagrama de flujo para Sumar los primeros 50 numeros.
  53. 53. 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.
  54. 54. ESTRUCTURA DE UN PROGRAMA
  55. 55. Concepto de Programa Conjunto de instrucciones que producirán la ejecución de una determinada tarea. Esencialmente es un medio para lograr un fin.
  56. 56. PROCESO DE PROGRAMACION Consiste en la solución de problemas y el desarrollo de programas
  57. 57. 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.
  58. 58. Partes de un programa concepto de caja negra Entrada Algoritmo Salida
  59. 59. Tipos de Instrucciones (acciones que resuelven un problema)  De inicio / fin.  De asignación.  De lectura,  De escritura.  De bifurcación.
  60. 60. Elementos básicos de un programa  Palabras reservadas.  Identificadores (nombres de variables).  Caracteres especiales.  Constantes.  Variables.  Expresiones.  instrucciones.
  61. 61. Otros elementos……  Iteraciones,  Contadores,  Acumuladores,  Interruptores,  Estructuras de control: Secuenciales, Selectivas, Repetitivas.
  62. 62. Iteraciones o bucles. 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 Los bucles se pueden anidar unos dentro de otros, y puede haber varios bucles al mismo nivel, pero nunca se entrelazan.
  63. 63. Contadores  Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante en cada iteración.
  64. 64. Acumuladores  Un Acumulador es una variable cuya misión es almacenar cantidades distintas resultantes de sumas sucesivas. Es una variable que también se suele usar en los bucles y que se incrementa o decrementa en cada iteración del bucle, pero no en una cantidad constante.
  65. 65. Acumuladores Algoritmo ejemplo Var cont, num, sum: entero Inicio Cont  0 Sum  0 Mientras cont <> 3 Leer num Sum  sum + num Cont  cont +1 Fin mientras Escribir suma End
  66. 66. Interruptores  Un interruptor ( conmutador, bandera, flag) es una variable que puede tomar diversos valores durante la ejecución de un programa y que permite comunicar información desde una parte a otra del mismo.
  67. 67. Interruptores Algoritmo ejemplo Var cont, num, suma: entero Neg: boolean Inicio Cont  0 Sum  0 Neg  falso Mientras cont <>3 Leer num Si num < 0 Entonces neg  verdadero Fin si Sum  sum + num Cont  cont + 1 Fin mientras Si neg=verdadero Entonces escribir (“Se ha leído negativos”) Fin si Escribir „La suma es‟,sum Fin OPCION Si es leer un número negativo o hasta 3 números: Mientras (cont <> 3) y (neg = verdadero)
  68. 68. Interruptores Ejemplo. Realizar un algoritmo que lea una serie de números reales y los sume. El algoritmo debe preguntar al usuario cuando desea ingresar un siguiente dato y si el usuario responde que no desea ingresar más datos el programa debe confirmar la respuesta. Si el usuario desea continuar ingresando datos se debe seguir solicitando datos y si el usuario confirma su deseo de salir, el algoritmo debe mostrar la suma de los datos leídos y terminar. Especificación: Donde datos es la colección de n números reales que el usuario ingresa hasta que decide no continuar ingresando datos y suma Î R es la suma de dichos números.
  69. 69. Interruptores INICIO bandera: boolean suma: real dato: real c: caracter bandera := verdadero suma <- 0 mientras (bandera) = verdadero hacer escribir( “Ingrese un dato:” ) leer (dato) suma := suma + dato escribir( “Desea continuar ingresando datos (S/N):” ) leer( c ) si (c = „N‟ | c = „n‟) entonces escribir( “Realmente desea salir (S/N):” ) leer( c ) si (c = „S‟ | c = „s‟) entonces bandera := falso fin_si fin_si fin_mientras escribir( “La suma es:”) escribir( suma ) FIN
  70. 70. Estructuras de control. Las estructuras de control tienen una finalidad bastante definida: su objetivo es ir señalando el orden en que tienen que sucederse los pasos de un algoritmo o de un programa. Las estructuras de control son de tres tipos: 1. Secuenciales 2. Selectivas 3. Repetitivas
  71. 71. Estructuras secuenciales. Una estructura de control secuencial, en realidad, no es más que escribir un paso del algoritmo detrás de otro, el que primero que se haya escrito será el que primero se ejecute. Veamos un ejemplo: queremos leer el radio de un círculo, calcular su área y mostrar por pantalla al usuario el resultado
  72. 72. Estructuras secuenciales. Ejemplo de algoritmo: Declaración de variables REAL: radio, area // No se suele poner acentos, y menos en órdenes de programas. fin declaración de variables inicio mostrar por pantalla “dame el radio del circulo” leer del teclado la variable radio //asignación del valor de la variable radio area =3.14159*radio //asignación del valor de la variable área mostrar por pantalla “el área del circulo es:” //En los texto SI SE PONEN ACENTOS mostrar por pantalla el contenido de la variable area fin
  73. 73. Estructuras selectivas. Estas estructuras se utilizan para TOMAR DECISIONES (por eso también se llaman estructuras de decisión o alternativas). Lo que se hace es EVALUAR una condición, y, a continuación, en función del resultado, se lleva a cabo una opción u otra.
  74. 74. Estructuras selectivas. 1) Alternativas simples (condicional IF) Son los conocidos quot;si... entoncesquot;. Se usan de la siguiente manera: yo quiero evaluar una condición, y si se cumple (es decir, si es cierta), entonces realizaré una serie de pasos. En pseudocódigo sería: Declaracion de variables REAL: numero, raiz fin declaracion de variables inicio mostrar por pantalla “introduce un numero” leer del teclado la variable numero SI numero>=0 ENTONCES: raiz=raiz_cuadrada(numero) mostrar por pantalla “la raíz cuadrada es:” mostrar por pantalla raiz fin del SI fin
  75. 75. Estructuras selectivas. 2) Alternativas dobles (IF…….ELSE….) ¿Qué pasa si no cumple la condición puesta? Si no decimos nada el programa seguirá a la siguiente orden de forma secuencial. Pero también podemos especificar que pasaría si no cumple la condición. Es el famoso trío quot;si ... entonces ... sino esto otroquot; Declaracion de variables REAL: numero, raiz fin declaracion de variables inicio mostrar por pantalla 'introduce un numero' leer del teclado la variable numero SI numero >= 0 ENTONCES: raiz = raiz_cuadrada(numero) mostrar por pantalla 'la raiz cuadrada es:' mostrar por pantalla raiz SI NO es numero >=0 ENTONCES: {es decir, si numero es negativo} mostrar por pantalla 'lo siento, no puedo calcular la raiz cuadrada de un numero negativo' fin del SI fin
  76. 76. Estructuras repetitivas. Estas estructuras son instrucciones que se repiten formando un bucle. El bucle se repite mientras se cumpla una condición que ha de ser especificada claramente. Cuando deje de cumplirse la condición, se sale fuera del bucle y no se repiten más las instrucciones. Un BUCLE (loop, en inglés) es un trozo de algoritmo o de un programa cuyas instrucciones son repetidas un cierto número de veces, mientras se cumple una cierta condición que ha de ser claramente especificada Básicamente, existen tres tipos de estructuras repetitivas: 1) Los bucles quot;mientras...quot; o quot;whilequot; 2) Los bucles quot;repetir(hacer)... mientras quequot; o quot;do... untilquot; y 3) Los bucles quot;desdequot; o quot;bucles forquot;.
  77. 77. Estructuras repetitivas. 1) Estructura MIENTRAS(condición) o quot;WHILEquot; En este tipo de estructura, el cuerpo del bucle (las acciones que deben ejecutarse repetidas veces) se repite MIENTRAS se cumple una determinada condición, que especificamos entre paréntesis Pseudocódigo inicio contador=1 Mientras (contador<=3.000) hacer mostrar por pantalla 'Prometo ser bueno' contador=contador+1 fin mientras fin A la variable que quot;llevaquot; la cuenta de las veces que el bucle se ha ejecutado, se le he llamado contador. Fijarse que ANTES de entrar en el bucle le asigno el valor 1 a la variable contador. Si no, al entrar en el bucle y la variable (contador) no tener valor, obtendríamos un error.
  78. 78. Estructuras repetitivas. 2) Estructura REPETIR (hacer)... MIENTRAS QUE (condición) o quot;DO.....UNTILquot; Aquí, lo que se desea es que un bucle se ejecute al menos una vez antes de comprobar la condición de repetición. Es decir si partiéramos que la variable condición fuera mayor de 3000, en este caso, el bucle se ejecutaría una vez. En el caso de hacerlo con while no se ejecutaría ninguna vez. ¡Esta es la única diferencia¡. La estructura PARA NUESTRO EJEMPLO es esta: inicio Contador=1 Repetir mostrar por pantalla 'Prometo ser bueno O:-)' Contador=Contador+1 mientras que(Contador<=3000) fin
  79. 79. Estructuras repetitivas. 3) Estructura DESDE o quot;bucles FORquot;. Esta estructura hubiera sido la más adecuada para resolver nuestra situación real. Tiene la peculiaridad, que la variable contador esta dentro del bucle y no hace falta asignarle el valor (ni definirla) fuera del bucle, y además, al llegar el programa al bucle siempre se realizarán las instrucciones que hay dentro del bucle, una cantidad de veces que nosotros fijemos. inicio desde contador=1 hasta contador<=3.000 contador=contador+1 hacer mostrar por pantalla 'Prometo ser bueno' fin desde fin Lo primero que hace es darle a la variable contador el valor 1. Después comprueba si el valor de la variable es menor o igual a 3000 (comprueba la condición), y si la cumple aumenta 1 el valor de la variable contador y realiza las instrucciones que hay dentro del bucle. Así hasta que la condición deja de cumplirse.
  80. 80. Vectores y Matrices (arreglos) Introducción Con lo aprendido hasta ahora resolvamos el siguiente problema: Dados 100 números enteros, obtener el promedio de ellos. Mostrar por pantalla dicho promedio y los números ingresados que sean mayores que él.
  81. 81. Vectores y Matrices Una de las principales dificultades que se observan con este tipo de problemas es que para la resolución de ambos es necesario almacenar la totalidad de los datos a procesar. No sería eficiente crear n cantidad de variables para guardar estos datos. Para realizar programas y/o algoritmos que nos permitan resolver los problemas planteados, usaremos una nueva estructura de datos denominada vectores.
  82. 82. Vectores y Matrices  Una estructura de datos es un conjunto de datos con un cierto orden.  Las estructuras de datos pueden ser dinámicas o estáticas. ◦ Estáticas: aquellas a las que se le asigna una cantidad fija de memoria de acuerdo a lo definido en la declaración de la variable. ◦ Dinámicas: son aquellas cuyo tamaño en memoria aumenta o disminuye en tiempo de ejecución de acuerdo a las necesidades del programa.
  83. 83. Vectores y Matrices  Qué es un vector? Un vector (o arreglo unidimensional) es una estructura de datos en la cual se almacena un conjunto de datos de un mismo tipo. Es decir que un arreglo es una lista de n elementos que posee las siguientes características: ◦ se identifica por un único nombre de variable ◦ sus elementos se almacenan en posiciones contiguas de memoria ◦ se accede a cada uno de sus elementos en forma aleatoria
  84. 84. Vectores Elementos Mi_vector 9 5 6 2 4 8 3 Nombre de la variable Posición : 1 Contenido : Mi_vector[1] = 9
  85. 85. Vectores Ejemplo: Cargar 10 elementos en un vector, sumarlos y mostrar el resultado por pantalla. Pasos para resolver este problema: Leer un vector de 10 elementos Sumar los elementos Mostrar el resultado de la suma por pantalla
  86. 86. Vectores //Pseudocodigo Ejemplo1// sumandos <-arreglo[1..10] de enteros; suma, i <- enteros vec_sumandos : sumandos; suma <-0; Inicio para i:= 1 a10 hacer leer(vec_sumandos[i] ) para i := 1 a 10 hacer suma<- suma +vec_sumandos[i]; Escribir ´La suma de los números es´, suma; Fin.
  87. 87. Vectores Como ya dijimos anteriormente, los arreglos son estructuras de datos, por lo tanto las mismas deben ser declaradas. Ejemplos de declaraciones: const Max= 500; type T_Texto = array[ 1..Max ] of char; var Texto: T_Texto;
  88. 88. Vectores En el PSEINT la instrucción Dimension permite definir un arreglo, indicando sus dimensiones. Dimesion <identificador> (<maxl>,...,<maxN>); Esta instrucción define un arreglo con el nombre indicado en <indentificador> y N dimensiones. Los N parámetros indican la cantidad de dimensiones y el valor máximo de cada una de ellas. La cantidad de dimensiones puede ser una o más, y la máxima cantidad de elementos debe ser una expresión numérica positiva. Se pueden definir más de un arreglo en una misma instrucción, separándolos con una coma (,). Dimension <ident1> (<max11>,...,<max1N>),..., <identM> (<maxM1>,...,<maxMN>) Es importante notar que es necesario definir un arreglo antes de utilizarlo.
  89. 89. Vectores // Se ingresa una lista de nombres (la lista termina // cuando se ingresa un nombre en blanco) no permitiendo // ingresar repetidos y luego se ordena y muestra Proceso OrdenaLista Dimension lista[200]; Escribir quot;Ingrese los nombres (enter en blanco para terminar):quot;; // leer la lista cant<-0; Leer nombre; Mientras nombre<>quot;quot; Hacer cant<-cant+1; lista[cant]<-nombre; Repetir // leer un nombre y ver que no este ya en la lista Leer nombre; se_repite<-Falso; Para i<-1 Hasta cant Hacer Si nombre=lista[i] Entonces se_repite<-Verdadero; FinSi FinPara Hasta Que ~se_repite FinMientras
  90. 90. Vectores // ordenar Para i<-1 Hasta cant-1 Hacer // busca el menor entre i y cant pos_menor<-i; Para j<-i+1 Hasta cant Hacer Si lista[j]<lista[pos_menor] Entonces pos_menor<-j; FinSi FinPara // intercambia el que estaba en i con el menor que encontro aux<-lista[i]; lista[i]<-lista[pos_menor]; lista[pos_menor]<-aux; FinPara // mostrar como queda la lista Escribir quot;La lista ordenada es:quot;; Para i<-1 Hasta cant Hacer Escribir quot; quot;,lista[i]; FinPara FinProceso
  91. 91. Vectores Tarea: 1) Calcular el promedio de 25 valores almacenados en un vector. Determinar además cuantos son mayores que el promedio, imprimir el promedio, el número de datos mayores que el promedio y una lista de valores mayores que el promedio. 2) Llenar dos vectores A y B de 35 elementos cada uno, sumar el elemento uno del vector A con el elemento uno del vector B y así sucesivamente hasta 35, almacenar el resultado en un vector C, e imprimir el vector resultante.
  92. 92. Componentes de un algoritmo Algoritmo Cabecera del programa Sección de declaración Sección de acciones
  93. 93. PROGRAMACIÓN ESTRUCTURADA
  94. 94. Técnicas de Programación... Programación modular:  Descomposición del problema en módulos.  Programación estructurada: Programación de cada módulo mediante métodos estructurados.
  95. 95. 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.
  96. 96. 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
  97. 97. 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.
  98. 98. 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.
  99. 99. 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
  100. 100. Diseño Descendente Desde el exterior …..
  101. 101. Diseño Descendente Desde el interior …..
  102. 102. 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.
  103. 103. Instrucciones Secuenciales
  104. 104. Instrucción Selectiva Simple
  105. 105. Instrucción Selectiva Compuesta
  106. 106. Instrucción Selectiva Múltiple
  107. 107. Instrucción Repetitiva “While”
  108. 108. Instrucción Repetitiva “Repeat”
  109. 109. Instrucción Repetitiva “For”

×