Unidad temtica 3 - PowerPoint PPT Presentation

1 / 48
About This Presentation
Title:

Unidad temtica 3

Description:

falso. cont = 1. suma = 0. cont = cont 1. 7. 4. Estructuras secuenciales ... falso. escribir 'esnegativo' 14. 4. Instrucciones de selecci n anidadas ... – PowerPoint PPT presentation

Number of Views:25
Avg rating:3.0/5.0
Slides: 49
Provided by: Lau9350
Category:
Tags: falso | temtica | unidad

less

Transcript and Presenter's Notes

Title: Unidad temtica 3


1
Unidad temática 3
  • Estructuras de control
  • Objetivos
  • Conocer cuál es el proceso de resolución de
    problemas
  • Conocer el concepto y uso de organigramas
  • Conocer las estructuras selectivas y repetitivas
  • Conocer el concepto de función
  • Aplicar todos estos conocimientos a la resolución
    de problemas topográficos
  • Contenidos
  • Tema 5. Resolución de problemas
  • Tema 6. Estructuras selectivas
  • Tema 7. Estructuras repetitivas
  • Tema 8. Funciones

2
Tema 5
  • Resolución de problemas
  • 1. Introducción
  • 2. Resolución de problemas
  • 3. Organigramas
  • 4. Estructuras secuenciales
  • Bibliografía
  • - (1) - tema 5
  • - (2) - cap. 3

3
1. Introducción
  • Necesidad de instrucciones adicionales
  • que permitan ejecutar un conjunto de
    instrucciones u otro en función de un determinado
    resultado
  • ejemplo escribir un programa que lea un número
    entero e imprima el texto es par si el número
    es par o es impar si el número es impar.
  • que permitan repetir un conjunto de instrucciones
  • ejemplo escribir un programa que calcule la suma
    de 100 números enteros leídos desde teclado.
  • Instrucciones básicas de control

4
3. Organigramas
  • Gráfico formado por una serie de líneas que
    conectan entre sí diversas figuras geométricas,
    que representan un tipo de instrucción en
    particular

5
3. Organigramas
  • Ejemplo

6
3. Organigramas
  • Ejemplo

inicio
cont 1
suma 0
cierto
falso
cont lt 5?
leer número num
suma suma num
cont cont 1
escribir suma
fin
7
4. Estructuras secuenciales
  • Instrucción acción u operación que conduce a la
    resolución de un problema
  • Cuando finaliza la ejecución de una instrucción
    se procede a la siguiente
  • Bloque de instrucciones en C conjunto de
    instrucciones que van encerradas entre dos llaves
  • main()
  • ...

8
Tema 6
  • Estructuras selectivas
  • 1. Introducción
  • 2. Selección simple
  • 3. Selección doble
  • 4. Instrucciones de selección anidadas
  • 5. Selección múltiple
  • Bibliografía
  • - (1) - tema 5

9
1. Introducción
  • Motivación poder resolver problemas en los que
    se requiere ejecutar un bloque de instrucciones
    según unas condiciones u otro bloque en otro
    caso.
  • Instrucciones selectivas o alternativas o de
    decisión
  • 1. Evalúan una expresión (lógica o relacional)
  • 2. En función del resultado bifurcan el control
    de ejecución del programa hacia un bloque de
    instrucciones u otro

10
2. Selección simple
  • Comportamiento y sintaxis

... if (expresion) instruccion_1 ... instruc
cion_m instruccion_n ...
11
2. Selección simpleEjemplo
  • Programa que determina si un número leído es
    positivo.

include ltstdio.hgt main() int a printf
(\nIntroduce un numero) scanf (d, a)
if (agt0) printf (\nEs positivo\n)
12
3. Selección doble
  • Comportamiento y sintaxis

... if (expresion) instruccion_a1 ... instru
ccion_am else instruccion_b1 ... instrucc
ion_bm instruccion_n ...
13
3. Selección dobleEjemplo
  • Programa que determina si un número leído es
    positivo o negativo.

include ltstdio.hgt main() int a printf
(\nIntroduce un numero) scanf (d, a)
if (agt0) printf (\nEs positivo\n) else
printf (\nEs negativo\n)
14
4. Instrucciones de selección anidadas
  • Resolución de una ecuación de primer grado

15
4. Instrucciones de selección anidadas
  • Programa en C.
  • include ltstdio.hgt
  • main ()
  • float a, b
  • printf (Introduce el valor de a y b
    (axb))
  • scanf (ff, a, b)
  • if (a ! 0.0)
  • printf (La solucion es f \n, -b/a)
  • else
  • if (b ! 0.0)
  • printf (La solucion es imposible \n)
  • else
  • printf (La solucion es indeterminada
    \n)

16
5. Selección múltiple
  • Sintaxis

switch (expresion) case expr1 instruccion
a1 ...
instrucción ai break
... case exprn instruccion m1
... instrucción mj
break default instruccion n1
... instrucción nk
break
17
5. Selección múltipleEjemplo
  • include ltstdio.hgt
  • main()
  • char calificacion
  • int nota
  • printf (Introduce el valor de la
    calificacion)
  • scanf (c, calificacion)
  • switch (calificacion)
  • case A nota 4
  • break
  • case B nota 5
  • break

case C nota 6 break
case D nota 7 break
case E nota 8 break
default nota -1 if (nota ! -1) printf
(Nota d \n, nota) else printf
(Calificacion desconocida\n)
18
5. Selección múltipleAlternativas comunes
switch (expresion) case expr1_1 ... case
expr1_x instruccion a1
... instrucción ai
break ... case exprm_1 ... case
exprm_y instruccion m1
... instrucción mj
break default instruccion n1
... instrucción nk
break
  • Sintaxis

19
5. Selección múltiple. Alternativas
comunesEjemplo
  • include ltstdio.hgt
  • main()
  • char calificacion
  • int nota
  • printf (Valor de la nota)
  • scanf (d, nota)
  • switch (nota)
  • case 0
  • case 1
  • case 2
  • case 3
  • case 4printf(\nSusp)
  • break

case 5 case 6printf(\nAprob)
break case 7 case
8printf(\nNotab) break case
9 case 10printf(\nSobr)
break defaultprintf(\nDesconoc)
20
Tema 7
  • Estructuras repetitivas
  • 1. Introducción
  • 2. Instrucción while
  • 3. Bucles infinitos, terminación de bucles y
    contadores
  • 4. Instrucción do...while
  • 5. Instrucción for
  • 6. Instrucciones repetitivas anidadas
  • Bibliografía
  • - (1) - tema 5

21
1. Introducción
  • Motivación poder resolver problemas en los que
    se requiere ejecutar repetidamente un bloque de
    instrucciones.
  • Elementos a identificar
  • bloque de instrucciones que tiene que ejecutarse
    repetidamente
  • número de veces que estas instrucciones deben
    ejecutarse
  • a veces no es conocido este número de
    repeticiones
  • se puede determinar especificando que el bloque
    de instrucciones se ejecute mientras se cumpla
    una determinada condición
  • Instrucciones repetitivas o bucles

22
2. Instrucción while
  • Comportamiento y sintaxis

... while (expresion) instruccion_1 ... inst
ruccion_m instruccion_n ...
23
2. Instrucción whileEjemplo
  • Calcular la suma de N números enteros siendo N un
    número solicitado al usuario.
  • include ltstdio.hgt
  • main ()
  • int N, suma0, numero
  • printf (Introduce la cantidad de numeros a
    leer)
  • scanf (d, N)
  • while (N!0)
  • printf (Introduce el valor del numero )
  • scanf (d, numero)
  • suma suma numero
  • NN-1
  • printf (El valor de la suma es d\n, suma)

24
3. Bucles infinitos, terminación de bucles y
contadoresBucles infinitos
  • Ejemplo. Programa que calcula el interés
    producido por un capital
  • include ltstdio.hgt
  • main ()
  • int capital, tasa
  • float interes
  • printf (Introduce el valor del capital)
  • scanf (d, capital)
  • tasa10
  • while (tasa!20)
  • interestasacapital/100.0
  • printf (Interes producido f con una tasa
    d\n,
  • interes, tasa)
  • tasatasa3

25
3. Bucles infinitos, terminación de bucles y
contadoresTerminación de bucles
  • Caso 1. El enunciado no especifica cuántas veces
    ni hasta cuándo debe repetirse el bloque de
    instrucciones.
  • Solución Mostrar un mensaje por pantalla al
    usuario donde se pregunta si desea introducir más
    datos. Continuará el bucle si la respuesta es SI.
  • Ejemplo Hacer un programa en C que calcule la
    suma de una serie de números leídos desde
    teclado.
  • char resp
  • ...
  • while (respS resps)
  • ...
  • printf (Hay algun valor mas? (s/n) )
  • fflush (stdin)
  • scanf (c, resp)

26
3. Bucles infinitos, terminación de bucles y
contadoresTerminación de bucles
  • Caso 2. El enunciado no especifica cuántas veces
    debe repetirse el bloque de instrucciones, pero
    sí indica hasta cuándo.
  • Ejemplo Hacer un programa en C que calcule la
    suma de una serie de números leídos desde teclado
    hasta que se introduzca el valor 0.
  • int valor
  • ...
  • while (valor ! 0)
  • printf (Introducir el valor )
  • scanf (d, valor)
  • ...

27
3. Bucles infinitos, terminación de bucles y
contadoresTerminación de bucles
  • Caso 3. El enunciado especifica cuántas veces
    debe repetirse el bloque de instrucciones.
  • Ejemplo Hacer un programa en C que calcule la
    suma de una serie 20 de números leídos desde
    teclado.
  • int valor, contador0
  • ...
  • while (contador lt 20)
  • ...
  • contadorcontador1

28
3. Bucles infinitos, terminación de bucles y
contadoresTerminación de bucles
  • Caso 4. El enunciado no especifica cuántas veces
    debe repetirse el bloque de instrucciones, sino
    que es el usuario el que lo determina durante la
    ejecución del programa.
  • Ejemplo Hacer un programa en C que calcule la
    suma de una serie N de números leídos desde
    teclado.
  • int valor, contador0, N
  • printf (Cuantos numeros van a leerse?)
  • scanf (d, N)
  • ...
  • while (contador lt N)
  • ...
  • contadorcontador1

29
3. Bucles infinitos, terminación de bucles y
contadoresContadores
  • Variable cuyo valor se incrementa o decrementa en
    una cantidad constante en cada iteración.
  • Hacer un programa que calcule
  • la suma de una serie 20 de
  • números leídos desde teclado.

include ltstdio.hgt main() int valor,
contador20, suma0 while (contadorgt0)
printf (Valor) scanf (d, valor)
sumasumanumero contador--
printf(Valor de la sumad\n,
suma)
30
4. Instrucción do...while
  • Comportamiento y sintaxis

... do instruccion_1 ... instruccion_m
while (expresion) instruccion_n ...
31
4. Instrucción do...whileEjemplo
  • Calcular los múltiplos de 4 comprendidos entre 4
    y N.
  • include ltstdio.hgt
  • main ()
  • int N, ultimo_multiplo
  • do
  • printf (Introduce un valor para N mayor
    o igual a 4)
  • scanf (d, N)
  • if (Nlt4) printf (Dato incorrecto.\n)
  • while (Nlt4)
  • ultimo_multiplo4
  • while (ultimo_multiploltN)
  • printf (Un multiplo es el valor d\n,
    ultimo_multiplo)
  • ultimo_multiploultimo_multiplo4

32
5. Instrucción for
  • Comportamiento y sintaxis

... for (expr_1 expr_2 expr_3) instruccion_1
... instruccion_m instruccion_n ...
33
5. Instrucción forEjemplo
  • Calcular la suma de una serie N de números leídos
    desde teclado.
  • include ltstdio.hgt
  • main ()
  • int suma0, N, numero, i
  • printf (Cuantos numeros van a leerse?)
  • scanf (d, N)
  • for (i1 iltN i)
  • printf (Introduce el valor del numero
    )
  • scanf (d, numero)
  • sumasumanumero
  • printf (El valor de la suma es d\n, suma)

34
Resumen
  • Si se conoce el número de iteraciones antes de
    ejecutar el bucle, se utiliza la instrucción for.
  • En caso contrario
  • si el bucle se ejecutará siempre al menos una
    vez, se utiliza la instrucción do...while
  • si el bucle se ejecutará cero o más veces, se
    utiliza la instrucción while

35
6. Instrucciones repetitivas anidadas
  • Cuando el bloque de instrucciones de una
    estructura repetitiva incluye a su vez otra
    instrucción repetitiva.
  • correctas incorrecta

36
6. Instrucciones repetitivas anidadas Ejemplo
  • Se dispone de un conjunto de N alumnos y de cada
    uno de ellos se desea saber la nota de tres
    asignaturas.
  • / bucle alumnos /
  • for (alumno1 alumnoltN alumno)
  • / bucle asignaturas /
  • for (asignatura1 asignaturalt3
    asignatura)
  • printf (Nota de la asignatura d del alumno
    d,
  • asignatura, alumno)
  • ...
  • / fin bucle asignaturas /
  • / fin bucle alumnos /

37
Tema 8
  • Funciones
  • 1. Introducción
  • 2. Definición de función
  • 3. Transferencia de información entre funciones
  • 4. Paso de argumentos a funciones
  • 5. Variables locales y globales
  • Bibliografía
  • - (1) - tema 6

38
1. Introducción
  • Programación modular
  • dividir la complejidad de un problema
  • identificar subproblemas o tareas más simples
  • reutilizar el código
  • Módulo
  • Características básicas
  • Alta cohesión
  • Bajo acoplamiento
  • En C los módulos se implementan como funciones
  • Todos los programas contienen al menos la función
    main.

39
2. Definición de función
  • Una función permite agrupar un conjunto de
    instrucciones en un bloque que realizará una
    tarea elemental.
  • Para que una función se ejecute, es necesario que
    otra función la llame.
  • Función invocadora / invocada

40
2. Definición de funciónEstructura de una
función en C
  • Cabecera
  • tipo_dato nombre_funcion (lista_args_formales)
  • tipo_dato tipo de dato del valor que devuelve la
    función (void si no devuelve nada)
  • nombre_funcion nombre con el que debe llamarse a
    la función
  • lista_args_formales conjunto de pares tipo_dato
    nombre_vble, separados por comas.
  • Permiten la transferencia de información a la
    función desde donde es invocada.
  • Ejemplos
  • int numero_primo (int num)
  • float cent_to_rad (float angulo)
  • void imprimir (int a, float b, char c)

41
2. Definición de funciónEstructura de una
función en C
  • Cuerpo
  • declaración de variables
  • conjunto de instrucciones
  • Ejemplo

float cent_to_rad (float angulo) float
nuevo_angulo nuevo_angulo
angulo3.1416/200 return (nuevo_angulo)
42
3. Transferencia de información entre
funciones
  • Devolución de una función
  • return expresion
  • sólo puede devolver un valor
  • La función invocadora puede
  • asignar el valor devuelto a una variable
  • nombre_vble nombre_funcion(arg1,...,argn)
  • utilizar directamente el dato devuelto en una
    instrucción
  • printf (d\n, nombre_funcion(arg1,...,argn))

43
4. Paso de argumentos a funciones
  • Zona de memoria asociada a una función
  • Cuando comienza su ejecución se reserva el
    espacio necesario para almacenar los argumentos
    formales y el resto de variables.
  • Cuando finaliza, se libera, y por tanto, los
    valores de las variables se pierden.
  • Los parámetros se copian en esta zona de memoria.
    Por tanto, se puede modificar su valor sin
    afectar al dato de la función invocadora.

44
4. Paso de argumentos a funcionesEjemplo 1
include ltstdio.hgt void modificar (int a)
aa3 printf (\nValor desde la funcion d\n,
a) main() int a2 printf (\nValor antes
de llamar a la funcion d\n, a) modificar
(a) printf (\nValor despues de llamar a la
funcion d\n, a)
Valor antes de llamar a la funcion 2 Valor desde
la funcion 6 Valor despues de llamar a la funcion
2
45
4. Paso de argumentos a funcionesEjemplo 2
include ltstdio.hgt float cent_to_rad (float
angulo) float nuevo_angulo nuevo_angulo
angulo3.1416/200 return (nuevo_angulo)
main() float a printf (\nValor del
angulo a convertir) scanf (f, a) a
cent_to_rad (a) printf (\nValor del angulo en
radianes f\n, a)
46
5. Variables locales y globalesVariables locales
  • Ámbito de una variable
  • porción del programa donde se conoce (puede
    consultarse su valor)
  • Variable local
  • Su ámbito se restringe a la función que la ha
    declarado
  • Lo mismo ocurre con un argumento formal

47
5. Variables locales y globalesVariables globales
  • Variable global
  • Se define fuera de cualquier función
  • Su ámbito son todas las funciones del programa

48
5. Variables locales y globalesCuestiones a
tener en cuenta
  • Las variables locales y los argumentos formales
    tienen prioridad sobre las variables globales.
  • Efecto colateral
  • alteración del valor de una variable global a
    causa de una función
  • No es aconsejable el uso de variables globales en
    lugar del paso de parámetros.
  • La legibilidad del programa se reduce
  • Puede dar lugar a efectos colaterales
    difícilmente localizables
Write a Comment
User Comments (0)
About PowerShow.com