• No se han encontrado resultados

Clase Programación 15

N/A
N/A
Protected

Academic year: 2021

Share "Clase Programación 15"

Copied!
54
0
0

Texto completo

(1)

Programación

Clase 15. Módulos en C

Prof. Gonzalo Müller gmullerb@mail.com

Facultad de Ingeniería

Universidad Central de Venezuela

Programación

(2)

Clase Anterior



Creación de un programa Compilado.



Ambiente de Desarrollo C.



Lenguaje C/C++

 Vocabulario: Identificadores, Palabras Claves, Operadores, Constantes, etc.

Operadores, Constantes, etc.



Estructura básica de un programa en C.

 Función Main.

 Declaraciones: Tipos de Datos.

(3)

Clase Anterior



Directivas de preprocesador, Librerías y Funciones.



Funciones Entrada/Salida:

 printf: Sin formato, Con formato.

 scanf.





Sentencias de Control.

 Condicionales.

 Repetitivas.

(4)

Metodología de la Programación Modular

Nombre(parámetro1, parámetro2, …) Nombre(parámetro1, parámetro2, …)

(5)

Metodología de la Programación Modular



Tabla de Módulos: Una vez desarrollados los algoritmos de todos los módulos, se debe establecer los tipos de datos para las variables y los parámetros. Es de utilidad para la posterior implementación en el lenguaje construir una tabla donde se listen todos los módulos con sus parámetros y retorno indicando el módulos con sus parámetros y retorno indicando el tipo de dato para cada uno de estos.

Modulo Parámetros Retorno Tipo

modulo1 parametro11:tipo11,… retorno1:tipo1 subrutina o función

… … … …

(6)

Programación Modular en C



Módulos en C: El uso de módulos en C consta de tres pasos:

1. Declaración.

2. Llamada.

3. Definición.

(7)

Declaración de Módulos en C

1. Declaración: se indica al compilador el encabezado del módulo, conocido como prototipo, de tal forma que al llamar al mismo dentro del código éste sea reconocido.

 Las declaraciones de los módulos a igual que las

 Las declaraciones de los módulos a igual que las variables debe hacer antes de ser utilizados, por lo que se colocan antes de las declaraciones de las variables globales.

 Dar a conocer el módulo para poder hacer uso a lo largo de todo el programa.

(8)

Definición de Módulos en C

3. Definición: constituye la codificación del algoritmo del módulo, es decir, el conjunto de sentencias necesarias para que éste realice la tarea a la que está destinado.

 Usualmente la definición de los módulos se coloca

 Usualmente la definición de los módulos se coloca luego del bloque principal.

 Al igual que el main un módulo:

 Puede declarar sus propias variables.

 Puede realizar llamadas a otros módulos.

(9)

Declaración y Definición de Módulos en C



Declaración y Definición de una función:

tipo nombre(tipo parámetro1, tipo parámetro2, …) { // Declaraciones locales // Declaraciones locales // … // Algoritmo // … // return valor;

(10)

Declaración y Definición de Módulos en C

Tipo del Valor de Retorno Tipo del Parámetro

Identificador de la función

tipo nombre(tipo parámetro1, tipo parámetro2, …) { // Declaraciones locales Mismo Tipo // Declaraciones locales // … // Algoritmo // … // return valor;

(11)

Declaración y Definición de Módulos en C



Identificador: Es el nombre que el programador coloca para referirse a una determinada locación de memoria, ya sea una variable o una función.

Identificador de la función cubo

F41C Localidad

Dirección

(12)

Declaración y Definición de Módulos en C



Reglas para definir un Identificador:

1. Se forma con un secuencia de los siguientes caracteres: 

a b c d e f g h i j k l m n o p q r s t u v w x y z

A B C D E F G H I J K L M N O P Q R S T



A B C D E F G H I J K L M N O P Q R S T

U V W X Y Z



0 1 2 3 4 5 6 7 8 9



_

(13)

Declaración y Definición de Módulos en C

2. No puede contener espacios en blanco, ni ningún otro carácter diferente de los indicados en anteriormente.

3. El primer carácter no puede ser un dígito.

4. Hay distinción entre las letras mayúsculas y

4. Hay distinción entre las letras mayúsculas y minúsculas.

5. Puede tener hasta 31 caracteres.

Recomendación: utilizar un nombre que tengan un significado la función que representa.

(14)

Declaración y Definición de Módulos en C



Variable retorno: Usualmente se define una variable local que contiene el valor a retornar.

tipo nombre(tipo parámetro1, tipo parámetro2, …) { // Declaraciones locales // Mismo Tipo // tipo resultado; … // Algoritmo // … // return resultado; Variable retorno Retorno

(15)

Declaración y Definición de Módulos en C

Ejemplo: Definir una función que calcule el cubo de un número:

signed long cubo(signed short numero) {

// Declaraciones locales //

Mismo Tipo

//

signed long res;

// Algoritmo // res = numero*numero*numero; // return res; } Variable retorno Retorno

(16)

Declaración y Definición de Módulos en C



Declaración y Definición de una subrutina:

void nombre(tipo parámetro1, tipo parámetro2, …) { // Declaraciones locales // Declaraciones locales // … // Algoritmo // … }

(17)

Declaración y Definición de Módulos en C

Le indica al C que NO hay Valor de Retorno

void nombre(tipo parámetro1, tipo parámetro2, …) { // Declaraciones locales // Declaraciones locales // … // Algoritmo // … }

(18)

Declaración y Definición de Módulos en C

Ejemplo: Definir una subrutina para escribir en pantalla un resultado numérico:

void escribeResultado(float resultado) {

printf(“El Resultado es %f”, resultado); }

Con Parámetro

}

Ejemplo: Definir una subrutina para escribir en pantalla un encabezado:

void escribeEncabezado() {

printf(“GOLTEC 1.0\n2006\n”);

(19)

Declaración y Definición de Módulos en C

… // Directivas de preprocesador // … … // Módulos // … main() {

(20)

Llamada de Módulos en C

2. Llamada: se pone en ejecución el módulo.

 Se coloca el nombre del módulo.

 Seguido de los argumentos separados por comas entre paréntesis.

nombre

(

argumento1

,

argumento2

, …)

nombre

(

argumento1

,

argumento2

, …)



Llamada a una subrutina: se pone en ejecución a través una sentencia de llamada:

(21)

Llamada de Módulos en C



Llamada a una función:

 Sentencia a Asignación. Ejemplo: s = cubo(a);  Expresión Lógica. Ejemplo: (cubo(a) > 10) Ejemplo: (cubo(a) > 10)  Expresión Aritmética.

Ejemplo: (cubo(a) + 2)/cubo(b)

 Argumento de otra Llamada.

Ejemplo: cubo(a + cubo(b))

Argumento

(22)

Programación Modular en C

Ejemplo: Diseñar y construir un programa modular en C con acoplamiento de datos básicos para calcular las raíces de una ecuación cuadrática.

(23)

Ejercicio

Diseñar y construir un programa modular en C con acoplamiento de datos básico para calcular el cubo de

dos números. Al menos 3 módulos:

lectura, proceso y

Fase 1: Diseño y Análisis: DTD

DES, DRE ó DF y LV de Módulos y TM.

DES, DRE ó DF, LV y CF de Bloque Principal.

Fase 2: Codificación: programa modular en C. Notación, Documentación e Indentación.

lectura, proceso y escritura

(24)

Ejercicio

Diseñar y construir un programa modular en C con acoplamiento de datos básico para calcular el cubo de

N números. Al menos 3 módulos:

lectura, proceso y

Fase 1: Diseño y Análisis: DTD

DES, DRE ó DF y LV de Módulos y TM.

DES, DRE ó DF, LV y CF de Bloque Principal.

Fase 2: Codificación: programa modular en C. Notación, Documentación e Indentación.

lectura, proceso y escritura

(25)

Funciones Matemáticas en C



C ofrece un conjunto de funciones matemáticas predefinidas en las librerías estándar math, las principales operaciones definidas son:

 Raíz Cuadrada.  Potencia.  Potencia.  Seno.  Coseno.  Tangente.  Exponencial.

(26)

Funciones Matemáticas en C



Raíz Cuadrada: La función sqrt permite obtener la raíz cuadrada de un valor sqrt(A) sqrt(Variable) 2

A

sqrt(Variable) sqrt(Constante) sqrt(Expresión Aritmética)

(27)

Funciones Matemáticas en C



Potencia: La función pow permite elevar un número a una potencia dada.

pow(A, B) pow(Variable, Variable) B

A

pow(Variable, Variable) pow(Variable, Constante)

pow(Variable, Expresión Aritmética) …

(28)

Funciones Matemáticas en C



Seno: La función sin calcula el seno de un valor dado en radianes. sin(Variable) sin(Constante) sin(Expresión Aritmética) sin(Expresión Aritmética)  Arcoseno: asin(Variable) asin(Constante) asin(Expresión Aritmética)

(29)

Funciones Matemáticas en C



Coseno: La función cos calcula el coseno de un valor dado en radianes. cos(Variable) cos(Constante) cos(Expresión Aritmética) cos(Expresión Aritmética)  Arcocoseno: acos(Variable) acos(Constante) acos(Expresión Aritmética)

(30)

Funciones Matemáticas en C



Tangente: La función tan calcula la tangente de un valor dado en radianes.

tan(Variable) tan(Constante) tan(Expresión Aritmética) tan(Expresión Aritmética)  Arcotangente: atan(Variable) atan(Constante) atan(Expresión Aritmética)

(31)

Funciones Matemáticas en C



Exponencial: La función exp calcula e (constante de Euler) elevado a un valor dado.

exp(A) exp(Variable) A

e

exp(Variable) exp(Constante) exp(Expresión Aritmética)

(32)

Funciones Matemáticas en C



Logaritmo: La función log10 calcula logaritmo base 10 de un valor dado. log10(A) log10(Variable)

A

log

10 log10(Variable) log10(Constante) log10(Expresión Aritmética)

(33)

Funciones Matemáticas en C



Logaritmo neperiano: La función log calcula logaritmo base e de un valor dado.

log(A) log(Variable)

A

log

e log(Variable) log(Constante) log(Expresión Aritmética)

(34)

Funciones Matemáticas en C



Valor Absoluto: El método abs calcula el valor absoluto de un valor entero.

abs(A) abs(Variable)

A

abs(Variable) abs(Constante) abs(Expresión Aritmética)

(35)

Funciones Matemáticas en C



Valor Absoluto: El método fabs calcula el valor absoluto de un valor real.

fabs(A) fabs(Variable)

A

fabs(Variable) fabs(Constante) fabs(Expresión Aritmética)

(36)

Funciones Matemáticas en C



Números Aleatorios: En ocasiones es necesario obtener números en forma aleatoria.

 rand(): Es una función de la librería stdlib, genera números enteros positivos pseudo aleatorios uniformemente distribuidos entre 0 y 32767 uniformemente distribuidos entre 0 y 32767 (RAND_MAX).

Pseudo aleatorios ya que se generan una sucesión {Nk} de números a través de una función fija f(k)

(37)

Funciones Matemáticas en C

 Si se requiere un rango diferente se debe construir una expresión que realice el ajuste, tal como:

rand() % (N + 1) → Rango: 0…N

rand() / 32767.0 → Rango: 0.0…1.0 …

(38)

Funciones Matemáticas en C

 srand(semilla): Es una función de la librería stdlib, que permite establecer la semilla del generador de números pseudo aleatorios.

semilla: Numero entre 0 y 65535. semilla: Numero entre 0 y 65535.

 Normalmente se llama al comienzo del programa antes de la primera llamada a rand().

(39)

Funciones Matemáticas en C

Ejemplo: Construir un programa en C para hallar la hipotenusa de un triangulo cuyos catetos son A y B son aleatorios.

(40)

Ejercicios

Construir un programa modular en C con acoplamiento de datos básico para:

1) Calcular f(x) = sen(2*x)+x4 para 2 puntos.

2) Determinar las distancias entre 2 maquinas.

3) Calcular el factorial de 2 números.

4) Dado un conjunto de 2 números, establecer

4) Dado un conjunto de 2 números, establecer cuales son capicúa.

Fase 1: Diseño y Análisis: DES, DTD

DES, DRE ó DF y LV de Módulos y TM. DRE ó DF, LV y CF de Bloque Principal.

(41)

Ejercicios

Construir un programa modular en C con acoplamiento de datos básico para:

1) Calcular f(x) = sen(2*x)+x4 para N puntos.

2) Determinar las distancias entre N maquinas.

3) Calcular el factorial de N números.

4) Dado un conjunto de N números, establecer

4) Dado un conjunto de N números, establecer cuales son capicúa.

Fase 1: Diseño y Análisis: DES, DTD

DES, DRE ó DF y LV de Módulos y TM. DRE ó DF, LV y CF de Bloque Principal.

(42)

Ejercicios

Construir un programa modular en C con acoplamiento de datos básico para:

5) Dado 2 puntos en R2, determinar cuales se encuentra por encima, por debajo y sobre una recta dada por el usuario.

6) Dado 2 intervalos, calcular la sumatoria de los

6) Dado 2 intervalos, calcular la sumatoria de los números que contiene cada intervalo.

Fase 1: Diseño y Análisis: DES, DTD

DES, DRE ó DF y LV de Módulos y TM. DRE ó DF, LV y CF de Bloque Principal.

(43)

Ejercicios

Construir un programa modular en C con acoplamiento de datos básico para:

5) Dado un conjunto de puntos en R2, determinar cuales se encuentra por encima, por debajo y sobre una recta dada por el usuario.

6) Dado N intervalos, calcular la sumatoria de los

6) Dado N intervalos, calcular la sumatoria de los números que contiene cada intervalo.

Fase 1: Diseño y Análisis: DES, DTD

DES, DRE ó DF y LV de Módulos y TM. DRE ó DF, LV y CF de Bloque Principal.

(44)

Ejercicios

Construir un programa modular en C con acoplamiento de datos básico para:

7) Promediar los pares y promediar los impares de los números entre A y B.

8) Encontrar por Newton 1 solución para f(x) = 0.

9) Encontrar 1 Mínimo de f(x) por 1+1.

Fase 1: Diseño y Análisis: DES, DTD

DES, DRE ó DF y LV de Módulos y TM. DRE ó DF, LV y CF de Bloque Principal.

(45)

Ejercicios

Construir un programa modular en C con acoplamiento de datos básico para:

10) Dado un conjunto de puntos en R2, determinar cual se encuentra más alejado del origen.

11) Dado N segmentos en R3, determinar cual tiene menor longitud.

menor longitud.

Fase 1: Diseño y Análisis: DES, DTD

DES, DRE ó DF y LV de Módulos y TM. DRE ó DF, LV y CF de Bloque Principal.

(46)

Resumen



Módulos en C:

 Declaración.

 Nombre, Tipos: parámetros y retorno.

 Definición.

 Puede declarar sus propias variables y realizar llamadas  Puede declarar sus propias variables y realizar llamadas

a otros módulos.

 Variable de retorno.

 Llamada

 Subrutinas: Sentencia de llamada.

(47)

Lectura Extra

Declaración y Definición por Separado

Otra forma de trabajar la programación modular en C

(48)

Declaración y Definición por Separado



Estructura básica de un programa modular: // Declaraciones de módulos // … main() { {} // Definiciones de módulos // …

(49)

Declaración y Definición por Separado

 Declaración de un función: En la declaración de una función se debe establecer:

 El nombre de la función.

 El tipo de dato del valor de retorno.

 El tipo de dato de cada uno de los parámetros.  El tipo de dato de cada uno de los parámetros.

tipo

tipotipo

tipo nombre(tipotipotipotipo parámetro1, tipotipotipotipo parámetro2, …);

Tipo del Valor de Retorno Nombre de la función

(50)

Declaración y Definición por Separado

Ejemplo: Declarar una función que calcule el cubo de un número:

(51)

Declaración y Definición por Separado

 Declaración de una subrutina: En la declaración de una subrutina se debe establecer:

 El nombre de la subrutina.

 El tipo de dato de cada uno de los parámetros.

void void void

void nombre(tipotipotipotipo parámetro1, tipotipo parámetro2tipotipo , …);

void void void

void nombre(tipotipotipotipo parámetro1, tipotipo parámetro2tipotipo , …);

Le indica al C que NO hay Valor de Retorno Nombre de la función

(52)

Declaración y Definición por Separado

Ejemplo: Declarar una subrutina para escribir en la salida un resultado numérico:

(53)

Declaración y Definición por Separado

// Declaraciones de módulos //

tipo modulo1(tipo parametro1, ...);

main() { … … variable1 = modulo1(variable2);} // Definiciones de módulos //

tipo modulo1(tipo parametro1, ...) {

(54)

Declaración y Definición por Separado

// Declaraciones de módulos //

float cubo(float numero);

main() { … … x = cubo(2); … } // Definiciones de módulos //

float cubo(float numero) {

Referencias

Documento similar

1. LAS GARANTÍAS CONSTITUCIONALES.—2. C) La reforma constitucional de 1994. D) Las tres etapas del amparo argentino. F) Las vías previas al amparo. H) La acción es judicial en

"No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

A partir de los resultados de este análisis en los que la entrevistadora es la protagonista frente a los entrevistados, la información política veraz, que se supone que

Bernie Krause, una de las pri- meras manifestaciones de amenazas al equi- librio de un ecosistema se inicia a través de sus modificaciones en la ecología de su paisaje

Las características del trabajo con grupos que se debería llevar a cabo en los Servicios Sociales de Atención Primaria (SSAP), en términos de variabilidad o estabilidad

Tanto en la Sierra como en la Vega y Campiña podemos encontrar este tipo de serie hidrogeológica, si bien son las ubicadas en la primera las que sobresalen

En cuarto lugar, se establecen unos medios para la actuación de re- fuerzo de la Cohesión (conducción y coordinación de las políticas eco- nómicas nacionales, políticas y acciones

Que teniendo presentes todas estas cosas se le dé en este particular toda la satisfacción posible, con la expresa obligación y pacto de que en cualquier tiempo que falte la línea