Programación Básica Estructuras de Datos y Funciones en C

Documentos relacionados
Elementos de un programa en C

Estructuras de Datos Declaraciones Tipos de Datos

Programcaión Básica. Arreglos y Estructuras de Datos (2)

Programación Básica Apuntadores y Archivos en C

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

2017, año del Centenario de la Constitución Mexicana Índice Nacional de Precios al Consumidor 2017

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Lenguaje C Preprocesador, Compilación y Enlazado.

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

Funciones como Subprogramas en C++

Introducción rápida a la programación (estructurada ) con C++

Programación estructurada (Introducción a lenguaje C)

USO DE SUBRUTINAS, TRANSMISIÓN DE PARÁMETROS Y COMPILACIÓN CONDICIONAL EN C++

Lenguaje de programación C. Introducción

INST.MPAL.DE ARTE Y CULTURA DE AHOME ESTADO DE SINALOA ESTADO DE FLUJOS DE EFECTIVO AL 31/ene/2013. Fecha de Impresión 13/may/13 Página: 1

Programación I Unidad III. Tema: Tipos, estructuras y uniones

El lenguaje C. 1. Identificadores, constantes y variables

Programación Estructurada

I N D I C E D E P R E C I O S A L C O N S U M I D O R

Fundamentos de Programación 2017-I

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Descripción de un Programa

UNIVERSIDAD NACIONAL DE SALTA Sede Regional Orán AÑO: 2013 Carreras: TIG - TUP

Programación En Lenguaje C

Constantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes:

Programación. Test Autoevaluación Tema 3

Tipos de Datos Estructurados

Introducción a C++ y Code::Blocks

CALENDARIO LUNAR

Apuntadores en C y C++

FUNDAMENTOS DE INFORMÁTICA

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

MIA RICARDO GONZALEZ LOZANO APLICACIONES EN LENGUAJE C

TIPOS DE DATOS BASICOS EN LENGUAJE C

Tema 16: Tipos de datos estructurados en lenguaje C

Tema 10: Tipos de datos definidos por el usuario

Lección 2 Introducción al lenguaje C

UNIDAD 1. Algoritmo se define como un conjunto de instrucciones que la computadora debe seguir para resolver un problema.

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

Se guardan en archivos con extencion c y los cabezales con extension h

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

LENGUAJE. Tema 2 Elementos de un programa

Guía práctica de estudio 05: Diagramas de flujo

Procesos e Hilos en C

Sobre cómo dividir un programa ensamblador x86 (modo Real) en módulos compilables por separado.

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

CURSO de C++ Ignacio López

Funciones Definición de función

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Evaporación y ahorro por HeatSavr, agua a 28 ºC 100%

El lenguaje C: Elementos básicos del lenguaje

Qué es un programa informático?

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.

Tema 13: Apuntadores en C

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

Lenguaje de Programación

Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C

Las plantillas permiten definir funciones genéricas.

Tema 3: Lenguaje ensamblador. La primera abstracción de la máquina para el programador

Lenguajes de programación

LENGUAJE ANSI C Guía de referencia

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

Manual de turbo pascal

Métodos que devuelven valor Dado el siguiente triángulo rectángulo:

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

INTRODUCCIÓN AL LENGUAJE C

Introducción al Lenguaje de Programación C

Fundamentos de Programación 2017-I

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

5. Sentencias selectivas o condicionales

Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS

Tema 5: Herramientas de programación y diseño modular

EXAMEN PARCIAL TRABAJO INTEGRADOR (TI) EVALUACIÓN CONTINUA PESO PORCENTUAL PESO PORCENTUAL 1 30% 06-MAY-14 30% 03-MAY-14 20% 20%

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Tema: Clases y Objetos en C#. Parte II.

Preliminares. Tipos de variables y Expresiones

Informática I. Código Semestre Para Ingeniería Electrónica e Ingeniería de Telecomunicaciones Profesor: Sebastián Isaza

funciones printf scanf

Introducción a Lenguaje C. Jornadas de Octubre 2009 Grupo de Usuarios de Linux Universidad Carlos III Tania Pérez

Tema 2 Introducción a la Programación en C.

TIPOS DE DATOS BASICOS EN LENGUAJE C

Los nombres y marcas comerciales mencionados en este manual son propiedad de sus respectivos autores o fabricantes.

EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO

ENTORNO DE DESARROLLO Y COMPILACIÓN DE PELLES C

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.

El Lenguaje de Programación C

Escribir programas a partir de un diagrama de flujo

2^10 2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 SUMA

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

Principios de Computadoras II

Programando en C a Bajo Nivel

Tutorial 6: Qué es una función? y como utilizarla

Transcripción:

Arturo Vega González a.vega@ugto.mx Division de Ciencias e Ingenierías Universidad de Guanajuato Campus León Sesión 8 Universidad de Guanajuato, DCI, Campus León 1 / 33

Contenido 1 Estructuras de Datos Uniones Typedef Enumeraciones 2 El Preprocesador de C Subcomandos (directivas) Control 3 Introducción a funciones 4 Ejercicios Universidad de Guanajuato, DCI, Campus León 2 / 33

Estructuras de Datos Estructura de Datos Conjunto de N elementos que están agrupados por medio de un único nombre. Pueden ser de distinto tipo Es un tipo definido dentro del programa Los elementos o miembros de la estructura pueden a su vez ser otra estructura Se utiliza la palabra reservada struct para declarar una estructura int char double float otro_tipo... Universidad de Guanajuato, DCI, Campus León 3 / 33

Estructuras de Datos Uniones Uniones Conjunto de N elementos que están agrupados por medio de un único nombre. Pueden ser de distinto tipo Es un tipo definido dentro del programa Los elementos o miembros de la estructura pueden a su vez ser otra union Se utiliza la palabra reservada union para declarar una union Entonces, Cuál es la diferencia entre una estructura y una unión? Universidad de Guanajuato, DCI, Campus León 4 / 33

Estructuras de Datos Uniones Uniones La diferencia entre las dos es que en una estructura, los miembros ocupan diferentes áreas de la memoria, pero en una unión, los miembros ocupan la misma área de memoria. Los miembros pueden ser de distinto tipo El tamaño de una unión es el de su miembro de mayor tamaño Es una variable la cual podría guardar (en momentos diferentes) objetos de diferentes tamaños y tipos Universidad de Guanajuato, DCI, Campus León 5 / 33

Estructuras de Datos Uniones Uniones Cuando dos o más variables comparten la misma memoria, entonces se define una unión. ejemplo: union tom { char ch ; i n t x ; } t ; El código anterior declara una unión que se vería así en memoria. X byte 1 byte 2 ch Universidad de Guanajuato, DCI, Campus León 6 / 33

Estructuras de Datos Uniones Uniones Definición y declaración(1) union { i n t i ; f l o a t f ; } V a r i a b l e U ; variableu es una union de dos miembros (i, f) Universidad de Guanajuato, DCI, Campus León 7 / 33

Estructuras de Datos Uniones Uniones Definición (2) union Nombre { t i p o 1 Campo1 ; t i p o 2 Campo2 ;... tipon CampoN ; } ; Declaración union Nombre VarU ; Universidad de Guanajuato, DCI, Campus León 8 / 33

Estructuras de Datos Uniones Union El acceso es de forma similar a la de una estructura Se realiza indicando nombre de la variable tipo union y el elemento individual separados por un punto. VariableUnion.ElementoUnion Cuando se utilizan apuntadores (pointer), el separador es: > VariableUnion->ElementoUnion El procesamiento de una unión solo se puede hacer elemento por elemento. Recordar que los elementos ocupan la misma área de memoria. Del ejemplo anterior: Como variableu.i y variableu.f ocupan la misma área de memoria, modificar uno modifica el valor del otro, algunas veces de maneras impredecibles. Universidad de Guanajuato, DCI, Campus León 9 / 33

Estructuras de Datos Uniones Uniones Ejemplo union w o r d b y t e / Se d e c l a r a l a u n i o n w o r d b y t e / { unsigned s h o r t word ; / 2 b y t e s / unsigned char b y t e [ 2 ] ; / 2 b y t e s / } ; / E l tamaño de l a u n i o n e s de dos b y t e s / union w o r d b y t e wb ; / Se d e c l a r a una v a r i a b l e t i p o u n i o n / wb. word = 0 x 0 f 0 a ; / Se a s i g n a un v a l o r a e s t a v a r i a b l e / / Por medio d e l o t r o miembro s e a c c e s a e l v a l o r a s i g n a d o / p r i n t f ( b y t e b a j o : %d\n, wb. b y t e [ 0 ] ) ; / 10 / p r i n t f ( b y t e a l t o : %d\n, wb. b y t e [ 1 ] ) ; / 15 / Universidad de Guanajuato, DCI, Campus León 10 / 33

Estructuras de Datos Typedef Typedef: Nuevos tipos de datos Se puede dar un nombre nuevo a cualquier tipo de datos mediante typedef. Es común utilizarlo para dar un alias o sinónimo al nombre de la estructura, de esta forma se evita el tener que poner struct NombreEstructura cada vez que se declare una variable. Sintaxis: t y p e d e f s t r u c t {... } NombreEstructura ;... NombreEstructura V a r i a b l e ; Universidad de Guanajuato, DCI, Campus León 11 / 33

Estructuras de Datos Typedef Ejemplo t y p e d e f i n t e n t e r o ; t y p e d e f s t r u c t { char nombre [ 3 0 ] ; char c a l l e [ 4 0 ] ; char c i u d a d [ 2 0 ] ; char e s t a d o [ 3 ] ; unsigned i n t c o d i g o ; } s d i r e c c i o n ; s d i r e c c i o n i n f o d i r e c c i o n ; s d i r e c c i o n Agenda [ 1 0 0 ] ; e n t e r o a, b=3; Universidad de Guanajuato, DCI, Campus León 12 / 33

Estructuras de Datos Enumeraciones Enumeraciones Es un conjunto de constantes enteras con nombre. En su declaración se especifica todos los valores legales que puede tener una variable del tipo enum Se declara de forma similar a la de una estructura: enum nombre enumeracion { l i s t a d e e n u m e r a c i ó n } l i s t a d e v a r i a b l e s ; Los valores de una enumeración se inician con 0 a menos que se indique otro valor, y se incrementan en 1. Los identificadores en una enumeración deben ser únicos. Los nombres de las constantes no pueden ser modificados en el programa. Universidad de Guanajuato, DCI, Campus León 13 / 33

Estructuras de Datos Enumeraciones Ejemplo enum ComunidadDCI { a d m i n i s t r a t i v o, e s t u d i a n t e, p r o f e s o r } ;... enum ComunidadDCI p e r s o n a ; f o r ( i=a d m i n i s t r a t i v o ; i <=p r o f e s o r ; i ++)... p e r s o n a = a d m i n i s t r a t i v o ; i f ( p e r s o n a == e s t u d i a n t e )... enum ComunidadDCI { a d m i n i s t r a t i v o =200, e s t u d i a n t e, p r o f e s o r } ;... enum ComunidadDCI { a d m i n i s t r a t i v o, e s t u d i a n t e =200, p r o f e s o r } ; Universidad de Guanajuato, DCI, Campus León 14 / 33

Estructuras de Datos Enumeraciones Ejercicio Escribir un programa que use el tipo enumeración para mostrar el nombre de un mes, su predecesor y su sucesor. El mes se ingresará desde el teclado dando un número entre 1 y 12. Universidad de Guanajuato, DCI, Campus León 15 / 33

Estructuras de Datos Enumeraciones Solución #i n c l u d e <s t d i o. h> i n t main ( v o i d ) { enum meses {ENE = 1, FEB, MAR, ABR, MAY, JUN, JUL, AGO, SEP, OCT, NOV, DIC } ; enum meses mesesid ; enum meses Contador Meses ; char mesnombre [ ] = {, Enero, F e b r e r o, Marzo, A b r i l, Mayo, J u n i o, J u l i o, Agosto, S e p t i e m b r e, Octubre, Noviembre, D i c i e m b r e } ; i n t CualMes =0; Universidad de Guanajuato, DCI, Campus León 16 / 33

Estructuras de Datos Enumeraciones Solución continuación // D e s p l i e g u e de l o s meses usando enum f o r ( Contador Meses = ENE ; Contador Meses <= DIC ; Contador Meses++) p r i n t f ( %2d%11s \n, Contador Meses, mesnombre [ Contador Meses ] ) ; // s o l i c i t a r un numero para i m p r i m i r e l mes s e l e c c i o n a d o, e l a n t e r i o p r i n t f ( \n I n t r o d u c e un numero de mes (1 12): ) ; s c a n f ( %d, ( i n t )(& mesesid ) ) ; // c a s t // s c a n f ( %d,& CualMes ) ; // o t r a forma usando un e n t e r o // mesesid = CualMes ; // p r i n t f ( \ n E l mes e s : %s \n \n, mesnombre [ mesesid ] ) ; Universidad de Guanajuato, DCI, Campus León 17 / 33

Estructuras de Datos Enumeraciones Solución continuación // D e s p l i e g u e d e l mes a n t e r i o r y s i g u i e n t e usando enum i f ( mesesid >= ENE && mesesid <= DIC ) { f o r ( Contador Meses = ENE ; Contador Meses <= DIC ; Contador Meses++) i f ( Contador Meses == mesesid ) { i f ( mesesid==ene) p r i n t f ( \n E l mes a n t e r i o r e s : %s, mesnombre [ DIC ] ) ; e l s e p r i n t f ( \n E l mes a n t e r i o r e s : %s, mesnombre [ mesesid 1 ] ) ; p r i n t f ( \n E l mes s e l e c c i o n a d o e s : %s, mesnombre [ mesesid ] ) ; i f ( mesesid==dic ) p r i n t f ( \n E l mes s i g u i e n t e e s : %s \n, mesnombre [ ENE ] ) ; e l s e p r i n t f ( \n E l mes s i g u i e n t e e s : %s \n, mesnombre [ mesesid + 1 ] ) } } r e t u r n ( 0 ) ; } Universidad de Guanajuato, DCI, Campus León 18 / 33

El Preprocesador de C Pasos para crear un ejecutable Preprocesador: Compilador: Enlazador: Transforma el programa fuente, convirtiéndolo en otro archivo fuente predigerido. Elimina comentarios, incluye otros archivos y sustituye las definiciones. Convierte el fuente entregado por el preprocesador en un archivo en lenguaje máquina: archivo objeto. Un archivo objeto es código máquina, pero no se puede ejecutar, porque le falta código que se encuentra en otros archivos binarios. El enlazador genera el ejecutable binario, a partir del contenido de los archivos objetos y de las bibliotecas. Programa fuente (código fuente) Preprocesador Compilador Enlazador Programa ejecutable Universidad de Guanajuato, DCI, Campus León 19 / 33

El Preprocesador de C El Preprocesador Preprocesador: Transforma el programa fuente, convirtiéndolo en otro archivo fuente predigerido. Elimina comentarios, incluye otros archivos y sustituye las definiciones. El preprocesador tiene su propio lenguaje Los programas son más fáciles de leer Los programas son más fáciles de modificar Facilita la transferencia a otros arquitecturas Universidad de Guanajuato, DCI, Campus León 20 / 33

El Preprocesador de C Subcomandos (directivas) #include Se utiliza para incluir otro archivo de definiciones o archivo de biblioteca y de esta forma compilar otro archivo. #include <archivo> #include archivo Elemplo #i n c l u d e <s t d i o. h> #i n c l u d e <math. h> #i n c l u d e < l i b r e r i a e s p e c i a l. h> Cuando se indica <archivo> se le dice al compilador que busque donde están los archivos de biblioteca o del sistema. Si se usa la forma archivo entonces el compilador busca en el directorio actual, es decir, donde el programa esta siendo ejecutado. Universidad de Guanajuato, DCI, Campus León 21 / 33

El Preprocesador de C Subcomandos (directivas) #define Se utiliza para definir constantes o una macro. Esta definición es sustituida por el código establecido por el programador. #define acepta argumentos en la definición de macros. #define <Nombre-Cte-Macro> <Nombre-de-Remplazo> Elemplo #d e f i n e Maximo 300 #d e f i n e Minimo 0 #d e f i n e F a l s o 0 #d e f i n e Verdadero 1 #d e f i n e MIN( a, b ) ( a<b )? a : b... f o r ( i=minimo ; i <Maximo ; i ++) p r i n t f ( E l minimo de %d y %d e s %d\n, A [ i ], B [ i ], MIN(A [ i ], B [ i ] ) ) ; Universidad de Guanajuato, DCI, Campus León 22 / 33

El Preprocesador de C Subcomandos (directivas) #if, #ifdef Evalúa una expresión constante entera. Siempre se debe terminar con #endif para delimitar el fin de esta sentencia. Se puede utilizar else ( #elif o #else) Elemplo #d e f i n e Maximo 300 #d e f i n e Minimo 0 #d e f i n e MEX 0 #d e f i n e EUA 1 #d e f i n e GB 2 #d e f i n e PAIS ACTIVO MEX #i f PAIS ACTIVO == MEX char moneda []= p e s o s ; #e l i f PAIS ACTIVO == EUA char moneda []= d o l a r ; #e l s e char moneda []= l i b r a ; #e n d i f Universidad de Guanajuato, DCI, Campus León 23 / 33

El Preprocesador de C Subcomandos (directivas) #if, #ifdef Otro método de compilación condicional es utilizar las clausulas #ifdef y #ifndef. Sintaxis: #i f d e f <nombre macro> <s e c u e n c i a de s e n t e c i a s > #e n d i f #i f n d e f <nombre macro> <s e c u e n c i a de s e n t e c i a s > #e n d i f #undef se utiliza para quitar una definición de una constante o macro que se haya definido previamente. El formato general es: #undef <nombre macro> Universidad de Guanajuato, DCI, Campus León 24 / 33

El Preprocesador de C Control Control del preprocesador Se puede usar el compilador para controlar los valores asignados o definidos en la ĺınea de comandos. Para esto, se usa la opción -Dmacro[=defn], por ejemplo: gcc -DTAMLINEA=80 prog.c -o prog.out Esto es equivalente a: #define TAMLINEA 80 También se puede poner un símbolo sin valor, por ejemplo: gcc -DDEBUG prog.c -o prog.out En donde el valor que se toma es de 1 para esta macro. Universidad de Guanajuato, DCI, Campus León 25 / 33

Introducción a funciones Introducción a funciones en C Una función es un conjunto de instrucciones (declaraciones, definiciones,...), que realizan una tarea especifica. En C, la función main es la que indica donde comienza la ejecución de nuestro programa, es decir es la función principal Funciones vs. Procedimientos Una función regresa un valor Un procedimiento no regresa un valor, pero puede modificar sus argumentos. En C, una función puede o no regresar un valor y puede o no modificar sus argumentos. Universidad de Guanajuato, DCI, Campus León 26 / 33

Introducción a funciones Introducción a funciones en C Recordando el primer programa... #i n c l u d e <s t d i o. h> i n t main ( v o i d ) { p r i n t f ( Programacion b a s i c a. \ n ) ; r e t u r n 0 ; } Podemos escribir una función que realice lo mismo v o i d imprimemensaje ( v o i d ) { p r i n t f ( Programacion b a s i c a. \ n ) ; } Universidad de Guanajuato, DCI, Campus León 27 / 33

Introducción a funciones Introducción a funciones en C La diferencia entre la función imprimemensaje y la función main, esta en la primer linea, la cual indica: Quien puede invocarla El tipo de valor que regresa Su nombre Los argumentos que requiere La selección del nombre de la función es tan relevante como la selección del nombre de las variables. estos tienen que ser relevantes y acorde a su uso, de tal forma que la lectura del programa sea fácil. Universidad de Guanajuato, DCI, Campus León 28 / 33

Introducción a funciones Introducción a funciones en C Escribiendo e invocando una función. Valor de retorno? #i n c l u d e <s t d i o. h> v o i d imprimemensaje ( v o i d ) { p r i n t f ( Programación b á s i c a. \ n ) ; } i n t main ( v o i d ) { imprimemensaje ( ) ; r e t u r n 0 ; } Universidad de Guanajuato, DCI, Campus León 29 / 33

Introducción a funciones Introducción a funciones en C Más sobre invocación de las funciones #i n c l u d e <s t d i o. h> v o i d imprimemensaje ( v o i d ) { p r i n t f ( Programación b á s i c a. \ n ) ; } i n t main ( v o i d ) { i n t i ; } f o r ( i =1; i <=5; i ++) imprimemensaje ( ) ; r e t u r n 0 ; Universidad de Guanajuato, DCI, Campus León 30 / 33

Introducción a funciones Introducción a funciones en C El formato general de una función en C es: T i p o d a t o q u e r e g r e s a Nombre De La Función ( L i s t a d e A r g u m e n t o s ) { D e c l a r a c i ó n de v a r i a b l e s l o c a l e s Código de l a f u n c i ó n } r e g r e s o de a l g ú n v a l o r de a c u e r d o a l t i p o Universidad de Guanajuato, DCI, Campus León 31 / 33

Introducción a funciones Introducción a funciones en C Ejemplo: // f u n c i ó n que d e v u e l v e e l mínimo de dos números e n t e r o s i n t minimo ( i n t a, i n t b ) { i n t m; // d e c l a r a l a v a r i a b l e m para a l m a c e n ar e l r e s u l t a d o i f ( a<b ) // a s i g n a un v a l o r de a c u e r d o a l o s p a r á m e t r o s m = a ; e l s e m = b ; } r e t u r n (m) ; // r e g r e s a e l v a l o r Universidad de Guanajuato, DCI, Campus León 32 / 33

Ejercicios Ejercicios Objetivo: Entender el uso de las directivas del preprocesador y el uso de las funciones en C Definir una macro min(a,b) para determinar el entero más pequeño. Definir otra macro min3(a,b,c) en términos de min(a,b). Incorporar las macros en un programa demostrativo en donde se pida al usuario tres números y se muestre el más pequeño. Escriba una función que calcule de la distancia euclidiana entre dos puntos e incorpore la función en un programa demostrativo donde se pida al usuario el valor de dos puntos y despliegue la distancia euclidiana. Puede o no usar estructuras. Universidad de Guanajuato, DCI, Campus León 33 / 33