Compendio Global Fundamentos de la Programación PDF

Summary

Este documento es un compendio sobre fundamentos de programación, enfocado en datos estructurados, como vectores multidimensionales en Python. Explica conceptos como declaración, inicialización y multiplicación de matrices. Incluye ejemplos de implementación.

Full Transcript

FUNDAMENTOS DE PROGRAMACIÓN UNIDAD 3 Datos estructurados ÍNDICE 1. Unidad 3: Datos estructurados................................................................. 3 Tema 12: Vectores multidimensionales....................................................

FUNDAMENTOS DE PROGRAMACIÓN UNIDAD 3 Datos estructurados ÍNDICE 1. Unidad 3: Datos estructurados................................................................. 3 Tema 12: Vectores multidimensionales.......................................................... 3 Objetivo:.......................................................................................................... 3 Introducción:................................................................................................... 3 2. Información de los subtemas................................................................... 4 2.1 Subtema 1: Definición y declaración......................................................... 4 2.2 Subtema 2: Inicialización de un Arreglo bidimensional............................. 8 2.3 Subtema 3: Multiplicación de matrices.................................................... 11 2.4 Subtema 4: Ejemplos de aplicación........................................................ 15 3. Preguntas de comprensión de la unidad............................................... 19 4. Material complementario......................................................................... 20 5. Bibliografía............................................................................................... 21 2 Datos estructurados 1. Unidad 3: Datos estructurados Tema 12: Vectores multidimensionales Objetivo: Comprender la estructura de los vectores y su utilización para la resolución de problemas. Introducción: Los arreglos bidimensionales, también conocidos como matrices, son estructuras de datos que organizan elementos en filas y columnas, formando una cuadrícula. En Python, no existe un tipo de dato específico para matrices, pero se pueden implementar utilizando listas anidadas. La definición y declaración de un arreglo bidimensional en Python se realiza creando una lista de listas. Por ejemplo, una matriz de 3x3 se puede declarar como: matriz = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]. Cada lista interna representa una fila de la matriz, y los elementos dentro de estas listas representan las columnas. La inicialización de un arreglo bidimensional en Python puede realizarse de varias maneras. Una forma común es utilizar comprensión de listas anidadas. Por ejemplo, para crear una matriz de m filas y n columnas inicializada con ceros, se puede usar: matriz = [[0 for j in range(n)] for i in range(m)]. También se puede utilizar el módulo numpy, que ofrece funciones específicas para trabajar con matrices, como np.zeros((m, n)) para crear una matriz de ceros. La inicialización puede incluir valores específicos o aleatorios, dependiendo de los requisitos del programa. La multiplicación de matrices es una operación fundamental en álgebra lineal y tiene numerosas aplicaciones en programación. En Python, se puede implementar manualmente utilizando bucles anidados para calcular cada elemento del producto resultante. Sin embargo, para matrices grandes, es más eficiente utilizar bibliotecas optimizadas como numpy, que proporciona la función np.dot() o el operador @ para multiplicación de matrices. Ejemplos de aplicación de matrices incluyen el procesamiento de imágenes (donde cada pixel se representa como un elemento de la matriz), sistemas de recomendación (donde se utilizan matrices para representar relaciones entre usuarios y productos), y en la resolución de sistemas de ecuaciones lineales en matemáticas y física. 3 Datos estructurados 2. Información de los subtemas 2.1 Subtema 1: Definición y declaración Definición de arreglo bidimensional Un arreglo bidimensional también llamado matrices, es un ordenamiento de filas y columnas, que son manejadas por dos índices uno para las filas y otro para las columnas. Por ejemplo: si tenemos una matriz de 3 x 5, significa que tiene 3 filas y 5 columnas. El elemento buscado en la matriz se encuentra en la intersección entre la fila y la columna. En la matriz siguiente podemos observar que el elemento 8 se encuentra en la fila 2 y columna 4. Columna 4 5 8 2 4 3 Fila 2 7 5 1 8 7 2 8 1 15 1 6 4 Figura 1: Representación de una matriz Fuente: Elaboración por el autor Las matrices son vectores de vectores, podemos observar en la matriz que definimos anteriormente, que es similar a un vector que contiene 3 elementos, en este caso son las filas, y a su vez cada fila es otro vector de 5 elementos. A continuación, su representación. (Ñacato, 2016) 4 Datos estructurados Vector de 5 elementos 5 8 2 4 3 7 5 1 8 7 = 7 5 1 8 7 5 8 2 4 3 2 8 16 15 1 2 8 16 15 14 4 7 5 1 8 7 5 8 2 4 3 2 8 1 1 1 6 5 4 Figura 2: Análisis de los componentes de una matriz Fuente: Elaboración por el autor Declaración de arreglos bidimensionales Para declarar un arreglo bidimensional primero se ingresa el tipo de dato que vamos a usar, seguido el nombre de la matriz y entre corchetes el número de fila y el número de columnas. (Ñacato, 2016) tipodedato nombredelamatriz [fila][columna] ; Veamos algunos ejemplos : Se tiene una matriz de nombre matriz2 de 3 x 4 enteros se escribe de la siguiente manera. Int matriz2 ; Se tiene una matriz de nombre matriz3 de 5 x 7 caracteres se escribe de la siguiente manera. char matriz ; De igual manera que en los arreglos de una dimensión cada índice que está en la matriz puede tomar valores entre cero y n – 1 (n tamaño ). Veamos el siguiente arreglo bidimensional. 1 2 3 4 5 6 1 5 2 11 3 0 1 2 6 4 7 0 5 Datos estructurados Figura 3: Matriz Fuente: Elaboración por el autor Si queremos almacenar el elemento que está en la fila 2 en la columna 4 en una variable podemos hacerlo de la siguiente manera: Int matriz1 ; X = matriz1 ; Para modificar algo que está dentro de la matriz, primero se debe indicar el nombre de la matriz con la fila y columna donde está ubicado nuestro número a modificar, por ejemplo: matriz1 = 30; Matriz original Matriz modificada 8 4 10 5 2 8 4 1 5 2 0 6 1 5 20 1 1 6 1 5 30 11 1 2 6 4 7 1 2 6 4 7 0 0 Figura 4: Modificación de un elemento Fuente: Elaboración por el autor Definición de arreglos multidimensionales: En este tipo de arreglos se pueden definir n dimensiones, esto requiere que los valores de n subíndices deban ser específicos para de este modo poder identificar los elementos individuales de un array. Si un array se compone de n subíndices, entonces se dice que solo es de n dimensiones. (Joyanes, 2008) Figura 5: Array de 3 dimensiones. Fuente: (Joyanes, 2008) Declaración de un arreglo multidimensional: 6 Datos estructurados Un arreglo multidimensional puede ser declarado de manera similar al arreglo bidimensional, primero ingresamos el tipo de dato, seguido del identificador o nombre de la matriz, luego se asignan las dimensiones, pueden ser N dimensiones, esto se vería de la siguiente manera. (Joyanes, 2008) Figura 6: Definicón de arreglo multidimencional Fuente: Elaboración por el autor 7 Datos estructurados 2.2 Subtema 2: Inicialización de un Arreglo bidimensional. Al igual que los vectores, los arreglos bidimensionales también pueden ser inicializados de la misma manera. Para inicializar este arreglo, los componentes deben estar entre llaves, de la misma manera los valores que están en el interior. (Ñacato, 2016) » Dándole valores durante el proceso de declaración. Int matriz2 ={ {5,4,3,2}, {7,6,5,4} ,{7,6,5,4}, {8,7,5,2} } Cuando es declarada una matriz así, los elementos van siendo almacenados por filas, primero las filas con un índice de cero y luego la de índice uno. Esto lo que hace es ir tomando tanto los valores que están en las columnas como los que están en las filas.(Ñacato, 2016) » Haciendo uso de sentencias declarativas: int matriz1 ; matriz1=1; matriz1=4; matriz1=5; matriz1=8; matriz1=11; matriz1=16; En forma de ciclos estructurales. 8 Datos estructurados int matriz4 for(i = 0; i num1 _DÍA num_total numero* _ciudad esto no es valido "z“ x por-ciento SUBTEMA 3: CONSTANTES Una constante puede ser de cualquiera de los tipos de datos básicos o cualquiera que sea definido por el PROGRAMADOR, y se le atribuye el tipo de dato del valor asignado. Existen 2 tipos de constantes: Sugerencia definir antes del main() Constante literales: Constantes Const simbólicas: #define La gran ventaja de #define no verifica const : la el tipo, por lo que verificación de esto puede causar tipos. problemas const tipo identificador = valor; #define PI 3.14159 Constantes literales const tipo identificador_const = valor; Cadenas: Entre dos Caracteres: comillas “a” representar tan Reales: sólo un único Punto o coma caracter que Enteros : flotante, todas normalmente son double por corresponde al const int código ASCII. n=1324; defecto. 45.67 ‘a’ Caracteres Especiales con secuencia de Código Significado \scape \b Salto de página \f Salto de línea (new line - nueva línea) \n Retorno de carro (carriage retum) \r Tabulación \t horizontal tabulador) \v Tabulador vertical \" Comillas rectas \' Comillas simples \\ Barra invertida (back slatch) \0 Nulo \a Alerta (sonido) Constantes simbólicas No requiere; al final. Se declaran antes de ser usadas, de la siguiente manera: #define nombre_iden valor_constante. #define PI 3.14159 #define lim 10 SUBTEMA 4: VARIABLES La manera de declarar una variable es la siguiente: tipo lista_variables; Int a,b; »lista_variables, consiste en uno o más nombres de identificadores separados por comas. »Punto y coma (;), finaliza siempre con un punto y coma. Los nombres de las variables deben cumplir Deben comenzar con un _ o una letra. Luego pueden contener letras y dígitos Las variables que son de un mismo Se recomienda elegir nombres significativos. tipo pueden ser declaradas en varias o en una sola sentencia. No se puede usar palabras reservadas del lenguaje int radio, sueldo = 30; donde pueden ser Variables globales declaradas las Variables locales variables: Por ahora después de la { del Parámetros formales main() Inicialización de Variables Inicializar una variable consiste en dar un valor a la variable. Por ejemplo: char pr = 'b' ; int gatos, cebra = 30; float perro = 22, cerco = 18; Simplemente ve al menú Depurar y haz clic en Depurar (o presiona F8). Se sugiere revisar Depuración Simplemente ve al menú Depurar y haz clic en Depurar (o presiona F8). Ver material complementario: controlar varios aspectos del depurador: Instalación y tutoriales de C – Estableciendo puntos de ruptura en tu código – Ejecución paso a paso de tu código – Mostrando el valor de las variables y miembros de clases y estructuras – Retroseguimiento – Usando la ventana del CPU (procesador) BIBLIOGRAFÍA Joyanes, L. (2008). Fundamentos de Programación algoritmos, estructuras. (S. A. U. McGRAW-HILL/INTERAMERICANA DE ESPAÑA, Ed.) (cuarta). Madrid. Montalvo, E. G. (2015). Lenguaje C TEORÍA Y EJERCICIOS. (ESPE, Ed.). Espe. Retrieved from www.repositorio.espe.edu.ec. Ñacato, J. (2016). Programación estructurada con C/C++ (Grupo Treb). Revisión de Contenidos Disponibles Aula virtual Guía del estudiante Compendio Video Magistral Material Complementario FUNDAMENTOS DE PROGRAMACIÓN TECNOLOGÍAS DE LA INFORMACIÓN – EN LÍNEA Unidad 2 INTRODUCCIÓN A LA PROGRAMACIÓN ESTRUCTURADA Tema 8 EXPRESIONES Y OPERADORES MSc. Kevin Castillo Villegas Subtemas Subtema 1: Expresiones. Subtema 2: Operadores de asignación. Subtema 3: Operadores unarios: incremento y decremento. Subtema 4: Operadores binarios: Aritméticos, Relacionales y Lógicos. Objetivo Analizar las expresiones y operadores para la programación. SUBTEMA 1: EXPRESIONES Las expresiones se construyen con constantes, variables con símbolos de operación. Ejemplos: A + b *(5 +c) : numérica Not(primero): lógica Expresiones aritméticas Las expresiones de este tipo se construyen con datos tipo int o float Ejemplo: int n1=1; int n2=3; int r; r = n1 + n2 printf(“El resultado es : \n",r); Operadores Aritméticos Los operadores aritméticos son aplicados en datos numéricos y sirven para realzar dichas operaciones. Pueden emplear la mayoría de los tipos de datos que son usados en el lenguaje C Estos son representados de la siguiente manera: OPERADOR ACCIÓN - Resta + Suma * Multiplicación Tanto la Suma, Resta y Multiplicación funcionan exactamente de la misma / División manera que en matemáticas; % Residuo Operadores División y residuo La división (/). Funciona de 2 maneras: La división entre números en punto flotante da un resultado en punto flotante. La división entre enteros produce un resultado entero, eliminando la parte fraccionaria. Orden de jerarquía Cuando se evalúan las expresiones que contengan operadores aritméticos, se debe respetar la jerarquía en el orden de su aplicación. Orden de jerarquía En caso de que existan en una instrucción más de un operador con la misma prioridad, entre ellos, la prioridad será mayor para el que se encuentre más a la izquierda. Las reglas para resolver una expresión aritmética es la siguiente: float a,b; Aplicando la a = 3 + 2 * (8/2); prioridad // = 3 +2 *4 // = 3 + 8 b =9 + pow(3,2) / (11-10) // 9+pow(3,2)/1; // 9 + 9/1 Veamos el resultado de la ejecución de un programa en C con las siguientes Suma 6 + 3 expresiones aritméticas: Resta 6 - 3 Multiplicación 6*3 División: 6 / 3 Residuo: 4%2 Expresiones lógicas Son el resultado de usar operadores relacionales. Por ejemplo, las expresiones: n1 > n2, Mayor n1 < n2 Menor n1 == n2, Igual Son de tipo lógico, pues tienen dos resultados posibles: ❑ verdadero(1) ❑ falso (0). U2T4FIG2.c Expresiones de caracteres y de cadena Estas expresiones son del Caracteres tipo de datos char. La expresión de cadena a diferencia del tipo de dato Cadenas char, son dadas por un conjunto de caracteres. Como declarar una cadena: no hay un tipo de datos Expresiones condicionales U2T4FIG4.c una condición puede ser Ejemplo V F implementada en una sola r= (n1 > n2)? n1:n2; línea. En r se carga cual es el mayor: por ejemplo: si se requiere saber cuál es mayor o entre n1 y n2 ❑ (n1 > n2) n1 si es verdad ❑ (n1 > n2) n2 si es falso U2T4FIG4.c SUBTEMA 2 : OPERADORES DE ASIGNACIÓN El operador de asignación = se puede usar en cualquier expresión válida y consiste Expresión en dar valores a las variables. puede ser : una constante, La forma de representar una una variable, un operador de asignación es la unión de constantes y variables la siguiente es: a través de operadores, o una llamada a función que toma un valor. nombre_variable = expresión; SUBTEMA 3: OPERADORES UNARIOS: DE INCREMENTO Y DECREMENTO Existen 2 operadores, el de incremento que se representa con ++ y el de decremento simbolizado por -- Estos operadores pueden ser utilizados antes de la variable a ser incrementada (sufijo), o después de la variable a ser incrementada (postfijo). En los dos casos el operador incrementa la variable objeto en 1, pero: en ++a: Entonces a se incrementa antes de su uso. Por otro lado, si se utiliza después de la variable, como en a++ el valor de a, en el momento de la operación, no cambia. SUBTEMA 4: OPERADORES BINARIOS Operadores Aritméticos Los operadores aritméticos son aplicados en datos numéricos y sirven para realzar dichas operaciones. Operadores Relacionales Los operadores relacionales en lenguaje C se emplean para hacer comparaciones entre valores del mismo tipo como: enteros, punto flotante y caracteres. Estos son representados de la siguiente manera: OPERADOR ACCIÓN > Mayor que >= Mayor o igual que < Menor que Operadores lógicos negación(!) Estos operadores pueden combinar dos o más conjunción (&&) y expresiones de relación. disyunción (||) o En lenguaje C existen tres operadores lógicos: Estos son representados de la siguiente manera: And (y) Or (o) not(no) p q p && q P || q !p 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0 BIBLIOGRAFÍA Montalvo, E. G. (2015). Lenguaje C TEORÍA Y EJERCICIOS. (ESPE, Ed.). Espe. Retrieved from www.repositorio.espe.edu.ec. Ñacato, J. (2016). Programación estructurada con C/C++ (Grupo Treb). Rojas Dávalos, J. (2016). Tipos de datos, operadores y expresiones en lenguaje C. Revisión de Contenidos Disponibles Aula virtual Guía del estudiante Compendio Video Magistral Material Complementario FUNDAMENTOS DE PROGRAMACIÓN TECNOLOGÍAS DE LA INFORMACIÓN – EN LÍNEA Unidad 2 INTRODUCCIÓN A LA PROGRAMACIÓN ESTRUCTURADA Tema 9 ESTRUCTURAS DE CONTROL MSc. Kevin Castillo Villegas Subtemas Subtema 1: Estructura secuencial. Subtema 2: Estructuras selectivas. Subtema 3: Estructuras repetitivas. Subtema 4: Comparación de Bucles y Diseño de Bucles. Objetivo Mostrar las técnicas clásicas de estructuras de control. SUBTEMA 1: ESTRUCTURA SECUENCIAL “Secuencia es la realización de un ACCIÓN 1 acto inmediatamente después de otro. ACCIÓN 2 Las acciones dentro de un algoritmo son ejecutadas en el orden en el cual se encuentran escritos” (Ñacato, ACCIÓN n 2016) Código en C: Recordar { sentencia compuesta: sentencia 1; es un conjunto de sentencia 2; sentencias encerradas entre llaves ({ y }) que se sentencia 3; utiliza para especificar un } flujo secuencial. Ejemplo Secuencia de instrucciones en C: Suma de 2 números enteros U2T5fig03.c Ejecución del Programa SUBTEMA 2 : ESTRUCTURAS SELECTIVAS Estructura selectiva simple Este tipo de estructuras lógicas se usan cuando en la resolución del Estructura selectiva doble problema se necesita tomar una decisión, para elegir entre un proceso u otro y así tomar un camino Estructura selectiva anidada a seguir. El lenguaje C brinda las siguientes estructuras selectivas: Estructura selectiva múltiple Estructura selectiva simple es para decidir si una acción debe o no ser Primero se evalúa la condición definida: ejecutada. Si el resultado es verdadero(1) entonces se va a ejecutar la acción. Si el resultado es falso (0) NO entonces no se ejecuta ninguna acción. CONDICIÓ N SI ACCIÓN Luego el flujo sigue su secuencia. Código en C: se evalúa la if (ExpLógica){ expresiónLògica entre (), F si es verdadera , se ExpLógica sentencia; ejecuta V sentencia;} sentencia/Acción. ACCIÓN Sentencias es cualquier sentencia o grupo {} VERDADERO un valor distinto de cero(V). Ejemplo en C: Verificar si un número es positivo, de ser así sumarle 2 Ejecución del Programa U2T5fig07.c Estructura selectiva doble Al evaluar la expresión lógica: es verdadero (1) se ejecutará la CONDICIÓN acción 1. V F Si el valor es falso ACCIÓN 1 ACCIÓN 2 (0) se ejecutará la acción 2. Código en C Seudocodigo flujo if (ExpLog){ Bloque 1; } else { Bloque 2; } Ejemplo en C: Del ingreso de 2 números verificar cual es el mayor, si es el primero calcular la suma de los números, caso contrario, calcular la diferencia. Ejecución del Programa U2T5fig11.c, esmuscula.c Estructura selectiva anidada Las expresiones lógicas se evalúan en el orden que se las escribe en el código: si condición1 entonces Si una de ellas es verdadera, la acción que va de la mano con si condición2 entonces la condición se ejecutará, y esto finaliza toda la cadena de acción1 sentencias falsas. Formato si_no General acción2 fin_si si_no acción3 fin_si acción4 Código en C : Seudocódigo If (exp_log1){ If (exp_log2){ sentencia1; }else { sentencia2; } }else { sentencia3; } Ejemplo en C: Se tiene el rango del 1 a 5, que corresponde a las 5 vocales. Presentar la vocal que corresponda según el número que se ingrese. U2T5fig15.c Ejecución del Programa Estructura selectiva múltiple Se encuentra conformada por varias estructuras selectivas comparadas por igual (==). Según la evaluación de la expresión, se ejecuta solo una de las acciones o un EXPRESIÓN grupo de acciones. == ACCIÓN 1 ACCIÓN 2 ACCIÓN 3 ACCIÓN n Código en C: Switch (expresión) { asegúrese que el selector (expresión) C1 : sentencia 1: break; y las etiquetas case (C1,C2..) son del mismo tipo C2 : sentencia 2: break; (sòlo int o char). …………………………… … Si el selector no es ninguna de las etiquetas case, se ejecuta la etiqueta Default: sentencia x; default } Código en C Seudocódigo Switch (expresión) { C1 : sentencia 1: break; C2 : sentencia 2: break; …………………………… … Default: sentencia x; } Ejemplo en C: U2T5fig19.c Se tiene el rango del 1 a 7, que corresponde a los días de la semana. Presentar el día que corresponda según el número que se ingrese. Ejecución del Programa Case en el Swicht: Está permitido tener varias expresiones case en una alternativa dada dentro de la sentencia switch. Por ejemplo, se puede escribir: switch(c) { case '0':case '1': case '2': case '3': case '4': case '5':case '6': case '7': case '8': case '9’: num-digitos++; break; // obligatorio ponerlo // default: num-distintos++; } SUBTEMA 3 : ESTRUCTURAS REPETITIVAS En la Clase asincrónica el detalle del caso taller Un caso para leer un código para identificar la solución: Realizar un menú de opciones que permita realizar cálculos de multiplicación, división y residuo Se repiten las operaciones hasta que la opción 0 finalice el proceso. Caso: aplicando estructuras secuenciales , selectivas Y repetición Realizar un menú de opciones para realizar cálculos con dos operandos: MENU DE OPCIONES 1.Multiplicar 2.Dividir 3.Residuo 0. Salir Opcion - Identifique la opción seleccionada con la estructura de selección if Solicite los Datos para la Operación: XXXXX(Multiplicar, Dividir….) Ingrese numero 1 Ingrese numero 2 Muestre el resultado de la operación numero1 ( *,/,Residuo) numero2 es: Repita el proceso hasta que se decida salir. 23 Identifique la lógica: Cuerpo del ciclo Condición de salida tallermenu.c 24 Términos empleados: Contadores, acumuladores, centinelas y banderas Contador: Un contador es una variable que cuenta. Se incrementa o decrementa en una cantidad constante cada vez. por ejemplo: dicha variable controla la cantidad de veces que se repite un proceso. (Nom_contador = 10) 25 Términos empleados: Acumulador o totalizador Se realiza el incremento o decremento con valor variable.. Es una variable que suma o resta del valor actual con un dato nuevoEjemplo: 26 Términos empleados: Centinela El centinela es una variable que inicia con un valor, luego dentro de un bucle este valor cambia, haciendo falsa la condición del ciclo. Un usuario puede introducir S o N para indicar si desea continuar o no. El bucle terminará cuando la respuesta del usuario sea “n” o “N”.. 27 Términos empleados:Bandera Una bandera (flag, interruptor o marca), es una variable que puede tomar sólo dos valores opuestos: generalmente: 1 (verdadero) o 0 (falso) (band == 0) U2T5verdaderoFalso.c 28 SUBTEMA 3 : ESTRUCTURAS REPETITIVAS Una estructura repetitiva se conforma por: el cuerpo del bucle que se encarga de realizar el proceso que se repite y la condición que va a determinar el número de veces que se ejecute el cuerpo del bucle. El lenguaje C proporciona: Estructura repetir (do while) Estructura mientras (while) Estructura para desde (for) Estructura do/while (REPETIR/mientras ) Se va a ejecutar el cuerpo del bucle(ACCIONES) luego se realiza la evaluación de la expresión lógica: Si el resultado es verdadero se sigue ejecutando todas las sentencias. O Si el resultado es falso el bucle finaliza. Las acciones que se encuentran dentro del cuerpo del bucle se van a ejecutar por lo menos una vez. Código en C do/while Repetir/Mientras: do { Sentencias; } while (exp_log); Si el resultado (exp_log) es verdadero se sigue ejecutando todas las sentencias del cuerpo del bucle Ejemplo en C: Presentar los números menores o iguales a 10. Ejecución del Programa U2T5fig23.c Estructura while (mientras) La expresión lógica, se encuentra al inicio del bucle para ser evaluada: Si EXPRESION es verdadera NO entonces se sigue ejecutando EXPRESIÓN todas las sentencias que se encuentren dentro del bucle. SI ACCIONES Si el resultado es falso entonces el bucle finaliza. Código en C Flujograma While (exp_log) NO EXPRESIÓN { SI Sentencias; ACCIONES } Si el resultado es verdadero entonces se sigue ejecutando todas las sentencias que se encuentren dentro del bucle. Ejemplo en C: Presente los números del 10 hasta el 20. Ejecución del Programa U2T5fig27.c Estructura for (Para, Desde) Para ciclos conocidos, libertad de configuración. El funcionamiento es el siguiente: Inicializa una variable denominada de control i=1 For (i = 1; i maximo: maximo = matriz[i][j] pos_max = [i, j] # Imprimir la matriz print("\nLa matriz ingresada es:") for fila in matriz: print(fila) # Imprimir resultados print(f"\nEl valor mínimo es {minimo} y está en la posición {pos_min}") print(f"El valor máximo es {maximo} y está en la posición {pos_max}") Declaración de un arreglo multidimensional en Python esto requiere n subíndices para poder identificar los elementos individuales Se declara de una manera similar al Tipo de dato Dimension1 arreglo bidimensional. Facultad matriz2= [[[0 for _ in range(4)] for _ in range(3)] for _ in range(2)] Identificador Dimension2 Dimension3 Curso Sexo Estructuras Es un tipo de dato estructurado y definido por el usuario que permite almacenar datos de diferente tipo en una sola variable A los datos se les denomina: campos, elementos o miembros. Una estructura está formada por variables que tienen relación entre sí. La estructura se convierte en un tipo de dato para definir variables. 16 Definición de una estructura En Python, no existe una declaración formal de "estructuras" como en algunos otros lenguajes de programación (por ejemplo, C o C++). Sin embargo, puedes lograr una funcionalidad similar utilizando clases 17 BIBLIOGRAFÍA Joyanes, L. (2008). Fundamentos de Programación algoritmos, estructuras. (S. A. U. McGRAW-HILL/INTERAMERICANA DE ESPAÑA, Ed.) (cuarta). Madrid. Ñacato, J. (2016). Programación estructurada con C/C++ (Grupo Treb). FUNDAMENTOS DE PROGRAMACIÓN TECNOLOGÍAS DE LA INFORMACIÓN – EN LÍNEA Unidad 4 SUBPROGRAMAS: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD Tema 13 Funciones y Procedimientos MSc. Kevin Castillo Villegas Subtemas Subtema 1: Concepto de función. Subtema 2: Declaración. Subtema 3: Llamada a una función. Subtema 4: Parámetros, Objetivo Examinar el diseño y construcción de módulos de programas mediante funciones.. INTRODUCCIÓN: PROGRAMACIÒN MODULAR ❑ La programación modular es una técnica que consiste en dividir un programa en tareas, pequeños programas llamados módulos. ❑ Cada módulo se codifica y se procesa de manera independiente.. 4 PROGRAMACION MODULAR Supongamos que un profesor quiere crear un programa para gestionar las notas de sus alumnos. Quiere que dicho programa le permita realizar tareas: asignar notas, cambiar notas, ver las notas según distintas calificaciones, etc. A continuación se muestra un esquema que representa una de las posibles divisiones del problema en módulos 5 Crear un menú de opciones Realizar un menú de opciones para realizar cálculos con dos operandos: MENU DE OPCIONES 1.Multiplicar 2.Dividir 3.Residuo 0. Salir Opcion - Identifique la opción seleccionada para realizar la operación indicada Solicite los Datos para la Operación: XXXXX(Multiplicar, Dividir….) Ingrese numero 1 Ingrese numero 2 Muestre el resultado de la operación numero1 ( *,/,Residuo) numero2 es: Repita el proceso hasta que se decida salir. 6 menuOperaciones menu() Int operador() calculo Unidad 2\tema 5 tallermenu.c 7 VENTAJAS DE LA PROGRAMACIÓN MODULAR Son las siguientes: 1. Se simplifica un algoritmo complejo. 2. Cada módulo se puede elaborar de manera independiente, permite trabajar simultáneamente a varios programadores. 3. La depuración se lleva a cabo en cada módulo. 4. El mantenimiento es más sencillo. 8 SUBTEMA 1: CONCEPTO DE FUNCIÓN ❑ “Una función es un bloque de sentencias, están diseñadas para ejecutar una tarea específica” ❑ Las funciones se las puede plantear como una caja negra, ya que son definidas por medio de una entrada y una salida. ❑ Main () es la funciòn principal de C Ventajas de Funciones Evitamos repeticiones de los mismos fragmentos de código. Se las puede utilizar en distintos programas al tenerla disponible en una librería. Permiten codificar y dividir todas las partes de un programa en módulos separados. SUBTEMA 2 : DECLARACIÓN DE FUNCIONES Para la declaración de una función se toma el siguiente formato: No va ; Tipo-valor-retorno Nombre-función (lista-parámetros) { CUERPO DE LA FUNCION: definiciones instrucciones } ❑ La función se define antes de la función main() o después. ❑ Si va después de MAIN se necesita el prototipo AL PRINCIPIO DEL program Especifica el tipo de dato BASICO de C. tipo-valor-retor Cuando no se especifica, asume que la no función devolverá un int. Void: no retorna valor nombre-funció Es el nombre de la función, por la cual será n llamada. lista-parámetro Es una lista de los nombres de las variables que se van a utilizar dentro de la función, s con sus respectivos tipos. cuerpo de la Está compuesto por las sentencias de función código que obtienen el resultado deseado. Declaración de una Función en C: Nombre- función Tipo-valor-retorno Cuerpo de la función Lista-parámetros U4T1fig02 SUBTEMA 2: CONCEPTO DE PROCEDIMIENTOS El procedimiento es un bloque de ¿QUÉ ES UN código, cumple con realizar PROCEDIMIENTO? independientemente del programa en donde se encuentre, tareas específicas. Son fragmentos reutilizables que no retornan valor alguno. Muy parecido a una función Declaración de un Procedimiento en C: IGUAL QUE UNA FUNCION Nombre-procedim void iento Lista-parámetros-f Sentencias ormales ejecutables U4T1fig02 SUBTEMA 2 : DECLARACIÓN DE PROCEDIMIENTOS Carpeta compendio esta tema 13Funciones La declaración de un procedimiento es similar a la declaración de una función, se U4T1fig09a toma el siguiente formato: DECLARACION FUNCION void nombre-procedimiento (lista-parámetros) tipo-valor-retorno nombre-función (lista-parámetro { { Definiciones definiciones instrucciones instrucciones } } USO Y DIFERENCIA CON UNA FUNCIÓN Un procedimiento y una función tiene un formato de declaración y realizan un trabajo similar, pero tienen esenciales diferencias entre ellos.: Una función retorna un valor, un procedimiento no Cuerpo de la función “variables locales”. Al momento de declarar una función podemos definir muchas variables. Estas variables pueden ser de cualquier tipo. Las variables que están declaradas dentro de una función solo pueden ser utilizadas en ella. Las variables que están en el programa principal antes del main() son globales y pueden ser usadas en las funciones. Sentencias de la función Conjunto de sentencia que cumplen su objetivo Return (expresion) Pueden existir varios return, va a devolver el valor de la expresión return primero que encuentre. Retorna el control de la ejecución, va a la siguiente sentencia de donde fue llamada. No Retorna el valor si expresion no es definido Si no existe Return al llegar a la llave } final, retorna 18 Ejemplo en C: Calcular el cubo de un número mediante una función Ejecución del Programa U4T1fig03 Prototipo de funciones Es una forma de INFORMAR AL COMPILADOR de las funciones » Formato del prototipo de una función valor-devuelto nombre-función (lista-parámetros); ES OPCIONAL si las funciones van antes del main(). OBLIGATORIO: si van después del main() Ejemplo anterior incorporando el prototipo de función: SUBTEMA 3 : LLAMAR A UNA Una función no FUNCIÓN/procedimientos se puede declarar dentro de otra función. llamadora Las funciones, para poder ser ejecutadas, han de ser llamadas. // main Cualquier expresión puede contener una llamada a Función. Normalmente la llamada a una función se realizará desde la función principal main ( ), También podrá ser llamada desde otra función. SUBTEMA 3 : LLAMADA A UNA FUNCIÓN con Parámetros Hay dos formas de llamar a funciones en lenguaje de programación: Llamada por valor o COPIA Lenguaje C lo utiliza predeterminado Llamada por referencia de Memoria En los arreglos es automático A continuación se detalla -> Llamadas por valor o copia Lenguaje C, hace AUTOMATICAMENTE una copia del parámetro y se pasa a la función que se llamó. Los cambios que puedan hacerse a la VARIABLE PARAMETRO, copia, no van afectar al valor original de la variable. EJEMPLO: EJECUCIÓN SUMA DEL DEPROGRAMA 2 VALORES U4T1fig07 Llamadas por referencia o variable “Cuando una función debe modificar el valor del parámetro pasado y devolver este valor modificado a quien lo llamó, se ha de utilizar el método de paso de parámetro por referencia o dirección” &u Indireccion: *x Recibe * direccion 8 EJEMPLO: INTERCAMBIO DE VALORES &Envia Direccion U4T1fig09 SUBTEMA 4: TIPOS DE PARÁMETROS DE UNA FUNCIÓN Los parámetros se pueden definir en dos tipos: Parámetros formales y actuales Son los que se pasan a la ámetros función, cuando se uales: realiza la invocación de ella. metros Son los que se especifican ales cuando se define una función. U4T1fig11 Ejemplo en C: Verificar cuál es el mayor número de tres valores enteros diferentes por medio de una función. Los valores de correspondencia serían los siguientes: ACTUALES a=4 b=6 c =2 x=4 y=6 z =2 FORMALES Ejemplo en C: Verificar cuál es el mayor número de tres valores enteros diferentes por medio de una función. EJECUCIÓN DEL PROGRAMA: Ejemplo en C Resumen: Llamada a funciones, variables globales y locales. Parámetros. U4T1fig09a.c Ejemplo en C Variables locales VariablesResumen: con ámbito a función Son declaradas dentro de la función y sólo son conocidas dentro de ella, variables locales a la función. Las declararemos normalmente al principio de la función (cabecera de la función), aunque podrían introducirse en un punto intermedio se le asigna espacio en la memoria automáticamente y se libera dicho espacio al salir de de la función, U4T1fig09a.c BIBLIOGRAFÍA Deitel, H., & Deitel, P. J. (2004). Como_Programar en C/C++ yJava (4ta ed.; Pearson Educación de México, Ed.). Naucalpan de Juárez: PRENTICE-HALL, INC. Montalvo, E. G. (2015). Lenguaje C TEORÍA Y EJERCICIOS (ESPE, Ed.). Retrieved from www.repositorio.espe.edu.ec. Ñacato, J. (2016). Programación estructurada con C/C++ (Grupo Treb). Revisión de Contenidos Disponibles Aula virtual Guía del estudiante Compendio Video Magistral Material Complementario FUNDAMENTOS DE PROGRAMACIÓN TECNOLOGÍAS DE LA INFORMACIÓN – EN LÍNEA Unidad 4 SUBPROGRAMAS: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD Tema 14 RECURSIVIDAD MSc. Kevin Castillo Villegas Subtemas Subtema 1: Definición de recursividad. Subtema 2: Aplicación de la recursividad. Objetivo Examinar el diseño y construcción de módulos de programas mediante procedimientos y recursividad.. PROCEDIMIENTOS Y RECURSIVIDAD SUBTEMA : DEFINICIÓN DE RECURSIVIDAD Es una alternativa Cuando una diferente para Para simplificar el función se llama a implementar código sí misma. estructuras de repetición (ciclos). Las funciones recursivas se definen con esta lógica : 1. caso base: la función simplemente devuelve un resultado. 2. caso recursivo: la función se llama a si mismo DEFINICIÓN DE RECURSIVIDAD La llamada recursiva se va a ejecutar mientras la invocación de la función original se encuentre abierta. Termina cuando la función original retorna un resultado final a main(). SUBTEMA 2 : APLICACIÓN DE LA RECURSIVIDAD Cálcular el factorial de un número entero no negativo Se puede con ciclo repetitivo sin aplicar recursivad: De manera no recursiva, factorial = 1; for (contador = numero; contador >=1; contador -- ) es decir iterativa, se factorial = contador *factorial; puede resolver por medio de un for: factorialinormal APLICACIÓN DE LA RECURSIVIDAD análisis Utilizando la recursividad Si aplicamos la propiedad asociativa de la multiplicación: n! = n*(n -1)*(n-2)*... *2*1 podemos definir lo y agrupamos los factores: n! = n * [ (n-1)*(n-2)*... *2*1 ], siguiente: obtenemos: n! =n * (n-1)!, la recursividad terminará cuando N=1, Retornando 1. APLICACIÓN DE LA RECURSIVIDAD análisis Valor final = 720 6! 6! 6! = 6*120 retorna 720 6 * 5! 6 * 5! 5! = 5*24 retorna 120 5 * 4! 5 * 4! 4! = 4*6 retorna 24 4 * 3! 4 * 3! 3! = 3*2 retorna 6 3 * 2! 3 * 2! 2! = 2*1 retorna 2 2 * 1! 2 * 1! Retorna 1 1! 0!=1 1! ANALISIS : SOLUCION A N!(N cualquier numero entero) 1 Si n = 1 (base) N! N*(n-1)! Si n > 1 (recursivo) Las funciones recursivas se definen con esta lógica : 1. caso base: la función simplemente devuelve un resultado. 2. caso recursivo: la función se llama a si mismo 9 Ejemplo en C: Calcular los factoriales de los números enteros de 0 hasta 10 con llamadas recursivas. U4T2fig14 Ejecución Ejemplo en C: del programa Calcular los factoriales de los números enteros de 0 hasta 10 con llamadas recursivas. Resumen del curso Lógica con datos: Entrada Proceso Salida Conceptos Claves Variables Tipos de datos Secuencia de ejecución Sentencias de decisión Sentencias repetitivas Arreglos: ordenar, búsquedas , índices Funciones y Procedimientos: Parámetros Pruebas de escritorio. Resumen del curso: de Pseint (PSeudo Intérprete) exportar a lenguajes Resumen del curso: GENERAR CODIGO de Pseint (PSeudo Intérprete) a lenguajes Python 1. En material complementario 2. Abrir carpeta: ResumenFinalPseintcaLenguajes 2.Buscar el fuente de Pseint: ARCHIVO 2 ALGORITMO.psc 3. Exportar elija el lenguaje por ejemplo a: Pyton3, dele nombre algoritmoapyton3.py Tome la vista previa para ver diferentes opciones 15 BIBLIOGRAFÍA Deitel, H., & Deitel, P. J. (2004). Como_Programar en C/C++ yJava (4ta ed.; Pearson Educación de México, ed.). Naucalpan de Juárez: PRENTICE-HALL, INC. Joyanes, L. (2008). Programación en c, metodologías y algoritmos (cuarta). Montalvo, E. G. (2015). Lenguaje C TEORÍA Y EJERCICIOS (ESPE, ed.). Retrieved from www.repositorio.espe.edu.ec. Ñacato, J. (2016). Programación estructurada con C/C++ (Grupo Treb). Revisión de Contenidos Disponibles Aula virtual Guía del estudiante Compendio Video Magistral Material Complementario

Use Quizgecko on...
Browser
Browser