M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la...

26
5. Modulos (funciones y procedimientos) Tema: Profesor: M. C. Bertha López Azamar Tuxtepec, Oaxaca. Octubre/2005 Universidad del Papaloapan Materia:

Transcript of M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la...

Page 1: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

5. Modulos

(funciones y procedimientos)

Tema:

Profesor:

M. C. Bertha López AzamarTuxtepec, Oaxaca. Octubre/2005

Universidad del Papaloapan

Materia:

Page 2: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Objetivos:

Conocer la estructura general de un

programa y los conceptos de

procedimientos y funciones.

Comprender el ámbito de las variables al

estructurar módulos.

Manejar la declaración y manipulación de

valores de variables locales y variables

globales.

Page 3: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

3

Un programa generalmente tiene dos

bloque principales:

Bloque de declaraciones:

Se especifican todos los elementos a

utilizar :

▪ Variables

▪ Constantes

▪ Arreglos

▪ Registros

▪ otros

Bloque de instrucciones:

El conjunto de operaciones a realizar para la

obtener resultados deseados.

Page 4: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

4

Esquema general de un programa en

Lenguaje C:

• Directivas del preprocesador

• Declaraciones

• constantes

• variables globales

• declaraciones de funciones (Prototipos de funciones)

• Bloque de funciones

• función principal main()

• funciones del usuario

Cada función se sitúa entre las { y } y contiene:

- cabecera

- declaración de variables locales

- cuerpo de la función (bloque de instrucciones)

Page 5: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

5

Esquema general de un programa en lenguaje Pascal:

• Cabecera:

(sentencia PROGRAM para escribir el nombre del

programa) (es opcional)

• Declaraciones:

- de constantes

- de tipos

- de variables

- de procedimientos y funciones

• Cuerpo del programa:

(situado entre las palabras BEGIN y END)

Page 6: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

6

Esquema general de un programa en lenguaje Visual Basic:

•Un proyecto general que puede contener tres tipos de

modulos

• De formulario (objetos Forms)

• Estándar

• De clase

•Cada formulario puede contener:

•Interfaz - componentes y propiedades

•Código

• General – declaraciones globales:

- de constantes

- de tipos

- de variables globales al modulo

• Procedimientos (variables locales)

procedimientos de eventos

procedimientos del usuario

funciones del usuario

Page 7: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

7

Subprogramas o módulos

La lógica de la programación modular se basa en que

resulta más fácil escribir un buen programa si se divide

en trozos pequeños (O’Brien & Nameroff, 1993).

Page 8: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

8

Ventajas de los Subprogramas o módulos

Page 9: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

9

Page 10: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

10

Función1

Función2

Programa

principal

Procedimiento1

Procedimiento2

Page 11: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

11

Concepto de procedimiento

Page 12: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

12

Ejemplo de un programa en pascal que ocupa un

procedimiento :

Program DemoProc;var:

X, Y : integer;

Procedure Resta; {nombre del procedimiento}

beginX := X – 1; {bloque del procedimiento}

Y := Y – 1;end;

BeginX := 5;Y := 10;Resta; {llamada al procedimiento}

end;

Page 13: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

13

Ejemplo de un procedimiento de evento en Visual Basic:

interfaz

Private Sub Command1_Click()Const Pi = 3.14159Dim Radius, AreaIf Text1.Text = " " Then

MsgBox "Falta que introduzcas el radio"Else

Radius = CInt(Text1.Text)Area = Pi * Radius * RadiusLabel2.Caption = "Area = " & Str(Area)

End IfEnd Sub

Page 14: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

14

Ejemplo de una función en Visual Basic:

Private Sub Option1_Click()Call Estado(Option1.Name) //llamada a función

Label1.Caption = UCase(Text1.Text)End Sub

Private Sub Estado(X As String) //definición de función

Select Case XCase Option1

Label2.Caption = "convertir a mayusculas"Case Option2

Label2.Caption = "convertir a minusculas"End Select

End sub

Private Sub Option2_Click()Call Estado(Option1.Name) //llamada a función

Label1.Caption = LCase(Text1.Text)End Sub

Page 15: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

15

Concepto de función

Page 16: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

16

Función1Programa

principal

datos datos

datosdatos

Page 17: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

17

Ejemplo de lugares desde donde se pueden hacer

las llamadas a una función que devuelve valor:

‘desde una función de impresión

Print 10 * Adec(a)

‘asignando el valor devuelto a una variable

X = Adec(a)

‘desde una sentencia de control

If Adec(a) = 10 Then Debug.Print "Fuera del intervalo"

‘como argumento de otra función

X = OtraFunción(10 * Adec(a))

Page 18: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

18

Ejemplo de una función en Pascal:

Program DemoProc;var:

Z: real;

FUNCTION Area (R: Real) : Real;CONST

Pi = 3,141592;BEGIN

Area := Pi * R * REND;

Begin{llamada a la función}

Z := Area(25); End;

Dentro del cuerpo de la

función debe tener una

asignación en alguna

parte del cuerpo cuyo

identificador de la

izquierda es el nombre de

la función, y el valor de la

derecha del signo igual, es

el valor de una variable o

el resultado de una

expresión del tipo

adecuado y es el resultado

que devuelve una función.

Page 19: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

19

Ejemplo de una función en Lenguaje C:

#define Pi 3.141592float A;float Area(float R); //prototipo

void main(){

A = Area(25); //llamada a función

}

float Area(float R) //definición de función

{float a;a = Pi * R * R;return(a);

}

Page 20: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

20

Ejemplo de una función en Visual Basic:

Private Sub cmdCalcular_Click()x= Adec(a) //llamada a función

End Sub

‘definición de función

Private Function Adec(X As String)

…….

End Function

Page 21: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

21

Ámbito o alcance de las variables

Page 22: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

22

Page 23: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

23

Page 24: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

24

Dentro de un modulo, si una

variable local tiene el mismo

nombre, todas las referencias

a ese nombre son sobre la

variable local y no tienen

efecto sobre la variable global.

Page 25: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Modulos (funciones y procedimientos)

M. C. Bertha López Azamar Programación Estructurada

Datos y tipos de datos

Variable y constantes

Operadores aritméticos y lógicos

Expresiones

Concepto de asignación

Esquema general de un programa

Concepto de función

Variables globales y locales

Paso de parámetros

Concepto de procedimiento

Introducción

25

Visual Basic le permite especificar el alcance de

una variable cuando la declara.

Alcance de las variables en Visual Basic

Ámbito Declaración Visible en

Local Dim, Static, o ReDim

(dentro de un procedimiento,

subprocedimiento o función)

El procedimiento en el que

está declarada.

Módulo Dim o Private

(sección de declaraciones del

módulo de formulario o de

código [.frm, .bas])

Todos los procedimientos

del módulo de formulario o

de código

Global Public

(sección de declaraciones del

un módulo de código [.bas])

En toda la aplicación.

No puede declarar variables

públicas dentro de un

procedimiento.

Page 26: M. C. Bertha López Azamar - UNPA SUNEOblopez/ProgramacionEstructurada/...La lógica de la programación modular se basa en que resulta más fácil escribir un buen programa si se

Referencias:

1. Antonakos, James L. & Kenneth C. Mansfield Jr.;

Programación Estructurada en C; Prentice Hall; 1997.

2. Cevallos, Francisco Javier; Enciclopedia del Lenguaje C; Ed.

Alfaomega; 1997.

3. Deitel, H. M. & Deitel, P. J.; Como programar en Java; Pearson

Educacion; 1998.

4. Gottfried, Byron; Programación en C; Mc Graw Hill; Segunda

edición; 1997.

5. Joyanes Aguilar, Luis; Turbo Pascal 6.0; Mc Graw Hill; 1993.

6. Lipschutz, Seymour; Estructura de datos; Mc Graw Hill; 1992.

7. O’Brien, Stephen K & Nameroff, Steve; Turbo Pascal 7; Mc

Graw Hill; 1993.

8. Schildt, Herbert; Manual de referencia C; Mc Graw Hill;

Cuarta edición; 2001.

9. http://lenguajes-de-programacion.com/programacion.shtml