1 / 42

rogramación de

P. rogramación de. C. omputadores. Contenido. FUNCIONES PROCEDIMIENTOS PARAMETROS VARIABLES GLOBALES Y LOCALES. 1. Funciones. g: Naturales  Naturales x  x 2. En Matemáticas. f:{a,b,c}  {0,1,2} a  1 b  0

rafael
Download Presentation

rogramación de

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. P rogramación de C omputadores

  2. Contenido • FUNCIONES • PROCEDIMIENTOS • PARAMETROS • VARIABLES GLOBALES Y LOCALES

  3. 1. Funciones g: Naturales  Naturales x  x2 En Matemáticas f:{a,b,c}  {0,1,2} a  1 b  0 c  2 h: Reales x Reales  Reales (a,b)  a2+2*b

  4. Funciones en Programación Proceso que recibe valores de entrada (parámetros) y retorna un resultado. funcion <nombre> (par1:tipo1,...parn:tipon): tipo variables <declaraciones> inicio < instrucciones > retornar<expresión> fin_funcion

  5. Funciones en Programación h: Reales x Reales  Reales (a,b)  a2+2*b funcionh ( a : real, b : real): real variables inicio retornara*a+2*b fin_funcion

  6. Ejemplo 1 Calcular el cuadrado de diez números

  7. Programa funcioncuadrado ( x : entero): entero inicio retornar x*x fin_funcion procedimiento principal() variables A, rta, i :entero inicio para(i := 1hasta10)hacer leer (A) rta := cuadrado ( A ) escribir (rta) fin_para fin_procedimiento Declara- ción de Función Llamado a función

  8. Función Cuadrado cuadrado (x) retornar x*x fin_funcion

  9. Programa INICIO i := 1 i <=10 FIN leer (A) rta :=cuadrado (A) escribir (rta) i := i+1

  10. Ejemplo 2 Hallar el máximo entre dos enteros A y B

  11. 10 MEMORIA PROGRAMA funcionmaximo (par1:entero, par2:entero):entero variablesmax1:entero inicio si(par1 >= par2)entonces max1 := par1 sino max1 := par2 fin_si retornarmax1 fin_funcion procedimiento principal() variables A, B, max:entero inicio leer (A) leer (B) max := maximo(A,B) escribir (max) fin_procedimiento A B -2 10 max 10 MEMORIA maximo 10 -2 par1 par2 10 max1

  12. Ejemplo3 Multiplicar dos números enteros

  13. 180 funcionmult(x1:entero, x2:entero): entero variablesz : entero inicio z := x1*x2 retornarz fin_funcion procedimiento principal() variables a, b, c, d :entero inicio a := 5 b := 9 c := 4 d := mult(a,b) d := mult(c,d) escribir (d) fin_procedimiento MEMORIA PROGRAMA a 5 9 b 4 c d 45 180 MEMORIA mult MEMORIA mult 5 9 x1 x2 x1 4 x2 45 z 45 z 180

  14. Ejemplo 4 Dado un arreglo de enteros, encontrar el máximo en un sub-arreglo

  15. 7 2 8 4 0 funcionmax_arr ( lista: arreglo [5] de entero, L1:entero, L2:entero):entero variablesi, temp: entero inicio temp := lista[L1] para(i := L1+1hastaL2)hacer si(lista[i]> temp)entonces temp := lista[i] fin_si fin_para retornartemp fin_funcion procedimiento principal() variables i, max:entero t:arreglo [5] de entero inicio para(i := 0hasta4)hacer leer (t[i]) fin_para max := max_arr(t,0,4) fin_procedimiento MEMORIA PROGRAMA 5 4 3 2 0 1 i max 8 t 7 2 8 4 0 MEMORIA max_arr lista 4 5 1 2 3 0 L1 i 7 8 4 temp L2

  16. Funciones Recursivas Función que se define en términos de si misma, es decir, el resultado de la función depende de resultados de ella misma en otros valores. Correcta Incorrecta

  17. Ejemplo 5 Calcular el factorial de un número.

  18. funcionfacto (par:entero):entero variablesz, fact:entero inicio si (par=1 | par=0) entoncesfact := 1 sinoz := facto(par-1) fact := par*z fin_si retornarfact fin_funcion procedimiento principal() variables i, A, rta:entero inicio para(i := 0hasta1) hacer leer (A) rta :=facto (A) fin_para fin_procedimiento MEMORIA PROGRAMA i rta A 1 6 2 0 1 3 0 FACTO (3) FACTO (2) FACTO (0) FACTO (1) par par par par 3 0 2 1 z z z z 2 1 fact fact fact fact 6 2 1 1

  19. 2. Procedimientos Porciones de código similares que no calculan un valor si no que por ejemplo, presentan información al usuario, leen una colección de datos o calculan más de un valor. procedimiento <nombre>(par1:tipo1, ...parn:tipon) variables <declaraciones> inicio < Instrucciones > fin_procedimiento

  20. Ejemplo 1 Leer un arreglo de 5 enteros y escribirlo mediante un procedimiento

  21. 1 2 3 4 5 procedimientoimpresion (t:arreglo [5] de entero) variablesz:entero inicio para(z:= 0hasta4)hacer escribir (t[z]) fin_para fin_procedimiento procedimiento principal() variables i:entero lista:arreglo [5] de entero inicio para(i := 0hasta4)hacer leer (lista [i]) fin_para impresion ( lista ) fin_procedimiento MEMORIA PROGRAMA MEMORIA impresión 0 1 2 3 4 5 i t 1 2 3 4 5 z 5 0 1 3 4 2 l i s t a 1 2 3 4 5

  22. 3. Parámetros • Parámetros por Valor • Parámetros por Referencia

  23. Parámetros por Valor Parámetro por valor: variable local que almacena el valor que tiene la constante o la variable que se utiliza para llamarla.Su modificación no tiene efecto en el resto del programa.

  24. PROCEDIMIENTO PRINCIPAL FUNCION a: entero funcionfacto(t: de entero) a:=2 f= facto(a) 2 2 a t

  25. Parámetros por Referencia Parámetro por referencia: variable que almacena la referencia a una variable del procedimiento o función que invoca.Cualquier modificación del parámetro tiene efectos en el resto del programa.

  26. PROCEDIMIENTO PRINCIPAL procedimiento a: entero act (reft: entero) a:=2 f=act(a) 2 2 a t

  27. Parámetro por Referencia Parámetro por referencia:en seudo-lenguaje se especifica anteponiendo la palabrarefa su definición. Ejemplo:el parámetroAes por referencia y el parámetroBes por valor: procedimiento x (ref A:entero, B:entero) inicio . . . . fin_procedimiento

  28. Ejemplo Encontrar el triple de un número dado por el usuario

  29. 27 PARAMETROS POR REFERENCIA MEMORIA PROGRAMA procedimientotriple (refnum1:entero) inicio num1 := num1*3 fin_procedimiento procedimiento principal() variables i, num: entero inicio para(i := 1hasta3) hacer leer (num) triple (num) escribir num fin_para fin_procedimiento 12 4 2 9 6 27 4 2 3 1 num i MEMORIA triple 6 12 9 27 6 2 4 12 num1

  30. Ejemplo Intercambiar los valores de las variables a y b (swapping)

  31. 32 50 PARAMETROS POR REFERENCIA procedimientocambio (refn1:entero,refn2:entero) variablest: entero inicio t := n1 n1 := n2 n2 := t fin_procedimiento procedimiento principal() variables a, b: entero inicio a := 50 b := 32 cambio (a, b) escribir (a,b) fin_procedimiento MEMORIA PROGRAMA 50 32 a b n1 n2 50 32 50 32 50 t MEMORIA cambio

  32. 4. Variables Globales y Locales • Variables Globales • Variables Locales

  33. Variables Locales Variables Locales:son aquellas definidas dentro de cada función o procedimiento. Sus modificaciones sólo son válidas en la función o procedimiento en que se han definido.

  34. Variables Globales Variables Globales:son aquellas definidas al comienzo del programa (antes de cualquier función o procedimiento). Se pueden usar dentro del algoritmo principal y en cada función y /o procedimiento definido en el programa Regla del buen programador: evitar al máximo el uso de variables globales.

  35. Variables globales y locales <Definición de variables globales > <Definición de funciones y/o procedimientos> procedimiento principal () variables <declaración de variables locales> inicio <instrucciones> fin_procedimiento

  36. Ejemplo Leer dos enteros y hallar su promedio

  37. variables num1, num2 :entero resultado:real funcionfunc1 ( x1:entero, x2:entero): real variablespromedio:real inicio promedio := (x1+x2)/ 2.0 retornarpromedio fin_funcion procedimiento principal() inicio leer (num1) leer (num2) resultado := func1 (num1, num2) fin_procedimiento VARIABLES GLOBALES 25 num1 32 num2 28.5 resultado VARIABLES LOCALES 25 32 x1 x2 28.5 promedio

  38. Ejemplo Construir un programa que reciba 3 valores y devuelva el mínimo valor. El programa debe permitir al usuario repetir el proceso, si quiere utilizar más datos.

  39. procedimientominimo ( a : real, b : real , c : real ,refm : real ) voidminimo(floata,floatb,floatc,float &m) { inicio if(a<=b && a<=c) { si (a <=b & a <=c)entonces m = a; } m :=a else { sino if (b<=a && b<=c) { si(b <=a & b<= c) entonces m = b; } m:= b sino else { m :=c m = c; } fin_si fin_si } fin_procedimiento }

  40. FIN Gracias por la atención prestada

More Related