Clase Programación 15

July 25, 2017 | Author: gmullerb | Category: C++, Computer Programming, Algorithms, Identifier, Computer Program
Share Embed Donate


Short Description

Descripción: Clase 15 de Programación, Prof. Gonzalo Müller [email protected], Facultad de Ingeniería, UCV...

Description

Programación

Clase 15. Módulos en C Prof. Gonzalo Müller [email protected]

Facultad de Ingeniería Universidad Central de Venezuela

Clase Anterior

 Creación de un programa Compilado.  Ambiente de Desarrollo C.  Lenguaje C/C++  Vocabulario: Identificadores, Operadores, Constantes, etc.

Palabras

 Estructura básica de un programa en C.  Función Main.  Declaraciones: Tipos de Datos.  Secuencia de Sentencias. Programación – Prof. Gonzalo Müller – Clase 15 – GM - 2

Claves,

Clase Anterior

 Directivas de preprocesador, Librerías y Funciones.  Funciones Entrada/Salida:  printf: Sin formato, Con formato.  scanf.

 Sentencias de Control.  Condicionales.  Repetitivas.

 Metodología para creación de un programa C. Programación – Prof. Gonzalo Müller – Clase 15 – GM - 3

Metodología de la Programación Modular

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

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 4

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 tipo de dato para cada uno de estos. Modulo Parámetros

Retorno

Tipo

modulo1

retorno1:tipo1

subrutina o función

… moduloN

parametro11:tipo11,… … parametroN1:tipoN1,…

… retornoN:tipoN

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 5

… subrutina o función

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.

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 6

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 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. Programación – Prof. Gonzalo Müller – Clase 15 – GM - 7

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 luego del bloque principal.  Al igual que el main un módulo: 

Puede declarar sus propias variables.



Puede realizar llamadas a otros módulos.



Debe ser documentado adecuadamente. Programación – Prof. Gonzalo Müller – Clase 15 – GM - 8

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 //

… // Algoritmo //

… // return valor; } Programación – Prof. Gonzalo Müller – Clase 15 – GM - 9

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

Tipo del Valor de Retorno Tipo del Parámetro tipo nombre(tipo parámetro1, tipo parámetro2, …) Identificador de la función { // Declaraciones locales // Mismo Tipo



// Algoritmo //

… // return valor; } Programación – Prof. Gonzalo Müller – Clase 15 – GM - 10

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

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 11

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

bcdefghijklmnopqrstuvwxyz

A

BCDEFGHIJKLMNOPQRST UVWXYZ

0

123456789

_

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 12

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 minúsculas. 5. Puede tener hasta 31 caracteres. Recomendación: utilizar un nombre que tengan un significado la función que representa. Programación – Prof. Gonzalo Müller – Clase 15 – GM - 13

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, …) Mismo Tipo { // Declaraciones locales // tipo resultado; Variable retorno

… // Algoritmo //

… // return resultado; }

Retorno

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 14

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) { Mismo Tipo // Declaraciones locales // signed long res; Variable retorno // Algoritmo // res = numero*numero*numero; // return res; Retorno } Programación – Prof. Gonzalo Müller – Clase 15 – GM - 15

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 //

… // Algoritmo //

… }

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 16

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 //

… // Algoritmo //

… }

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 17

Declaración y Definición de Módulos en C Ejemplo: Definir una subrutina para escribir en pantalla un resultado numérico: Con Parámetro void escribeResultado(float resultado) { printf(“El Resultado es %f”, resultado); }

Ejemplo: Definir una subrutina para escribir en pantalla un encabezado: Sin Parámetro void escribeEncabezado() { printf(“GOLTEC 1.0\n2006\n”); } Programación – Prof. Gonzalo Müller – Clase 15 – GM - 18

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

… // Directivas de preprocesador //

… // Módulos //

… main() {

… Programación – Prof. Gonzalo Müller – Clase 15 – GM - 19

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, …)

 Llamada a una subrutina: se pone en ejecución a través una sentencia de llamada: nombre(argumento1, argumento2, …); Programación – Prof. Gonzalo Müller – Clase 15 – GM - 20

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)  Expresión Aritmética. Ejemplo: (cubo(a) + 2)/cubo(b)  Argumento de otra Llamada.Argumento Ejemplo: cubo(a + cubo(b)) Argumento escribeResultado(cubo(a)); Programación – Prof. Gonzalo Müller – Clase 15 – GM - 21

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.

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 22

Ejercicio

Diseñar y construir un programa modular en C con acoplamiento de datos básico para calcular el cubo de Al menos 3 módulos: dos números. lectura, proceso y Fase 1: Diseño y Análisis: DTD escritura 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. Programación – Prof. Gonzalo Müller – Clase 15 – GM - 23

Ejercicio

Diseñar y construir un programa modular en C con acoplamiento de datos básico para calcular el cubo de Al menos 3 módulos: N números. lectura, proceso y Fase 1: Diseño y Análisis: DTD escritura 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. Programación – Prof. Gonzalo Müller – Clase 15 – GM - 24

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.  Seno.  Coseno.  Tangente.  Exponencial.  Logaritmos.

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 25

Funciones Matemáticas en C

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

2

A

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

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 26

Funciones Matemáticas en C

 Potencia: La función pow permite elevar un número a una potencia dada. pow(A, B)

A

B

pow(Variable, Variable) pow(Variable, Constante) pow(Variable, Expresión Aritmética) … pow(Expresión Aritmética, Expresión Aritmética) Programación – Prof. Gonzalo Müller – Clase 15 – GM - 27

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)  Arcoseno: asin(Variable) asin(Constante) asin(Expresión Aritmética) Programación – Prof. Gonzalo Müller – Clase 15 – GM - 28

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)  Arcocoseno: acos(Variable) acos(Constante) acos(Expresión Aritmética) Programación – Prof. Gonzalo Müller – Clase 15 – GM - 29

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)  Arcotangente: atan(Variable) atan(Constante) atan(Expresión Aritmética) Programación – Prof. Gonzalo Müller – Clase 15 – GM - 30

Funciones Matemáticas en C

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

e

A

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

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 31

Funciones Matemáticas en C

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

log10 A

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

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 32

Funciones Matemáticas en C

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

log e A

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

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 33

Funciones Matemáticas en C

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

A

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

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 34

Funciones Matemáticas en C

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

A

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

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 35

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 (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) Programación – Prof. Gonzalo Müller – Clase 15 – GM - 36

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 …

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 37

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.  Normalmente se llama al comienzo del programa antes de la primera llamada a rand(). La semilla permite ajustar en que elemento de la sucesión {Nk} comienza el generador. Programación – Prof. Gonzalo Müller – Clase 15 – GM - 38

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. A = Entero entre 0 y 8, B = Real entre 0 y 5.

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 39

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 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. Fase 2: Codificación: programa modular en C. Programación – Prof. Gonzalo Müller – Clase 15 – GM - 40

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 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. Fase 2: Codificación: programa modular en C. Programación – Prof. Gonzalo Müller – Clase 15 – GM - 41

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 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. Fase 2: Codificación: programa modular en C. Programación – Prof. Gonzalo Müller – Clase 15 – GM - 42

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 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. Fase 2: Codificación: programa modular en C. Programación – Prof. Gonzalo Müller – Clase 15 – GM - 43

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. Fase 2: Codificación: programa modular en C. Programación – Prof. Gonzalo Müller – Clase 15 – GM - 44

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. 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. Fase 2: Codificación: programa modular en C. Programación – Prof. Gonzalo Müller – Clase 15 – GM - 45

Resumen

 Módulos en C:  Declaración. 

Nombre, Tipos: parámetros y retorno.

 Definición. Puede declarar sus propias variables y realizar llamadas a otros módulos.  Variable de retorno. 

 Llamada Subrutinas: Sentencia de llamada.  Funciones: Asignación, Expresiones y Argumento. 

 Funciones Matemáticas en C.

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 46

Lectura Extra

Declaración y Definición por Separado Otra forma de trabajar la programación modular en C

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 47

Declaración y Definición por Separado

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

… } // Definiciones de módulos //



Programación – Prof. Gonzalo Müller – Clase 15 – GM - 48

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.

tipo nombre(tipo parámetro1, tipo parámetro2, …); Tipo del Parámetro 1 Tipo del Parámetro 2 Nombre de la función Tipo del Valor de Retorno Programación – Prof. Gonzalo Müller – Clase 15 – GM - 49

Declaración y Definición por Separado Ejemplo: Declarar una función que calcule el cubo de un número: signed long cubo(signed short numero);

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 50

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 nombre(tipo parámetro1, tipo parámetro2, …); Tipo del Parámetro 1 Tipo del Parámetro 2 Nombre de la función Le indica al C que NO hay Valor de Retorno

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 51

Declaración y Definición por Separado Ejemplo: Declarar una subrutina para escribir en la salida un resultado numérico: void escribeResultado(float resultado);

Programación – Prof. Gonzalo Müller – Clase 15 – GM - 52

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, ...) { … } Programación – Prof. Gonzalo Müller – Clase 15 – GM - 53

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) { return numero*numero*numero; } Programación – Prof. Gonzalo Müller – Clase 15 – GM - 54

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF