Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 3 Fun Pro I1011
Tema 3 Fun Pro I1011
3.1. Introducción
3.2.
3 2 Estructuras de control elementales
3.2.1. Secuencia
3.2.2. Selección
3.2.3. Iteración
3.3. Técnicas de representación
3.3.1. Diagramas de flujo de control
3.3.2. Pseudocódigo
g
3.4. Programación Modular
3.4.1. Modularización funcional
3.4.2. Paso de parámetros
3.4.3. Sobrecarga de métodos
Fundamentos de Programación I 1
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
Fundamentos de Programación I 2
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
1
04/10/2010
Fundamentos de Programación I 3
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
• Constructores elementales
– Secuencia
– Selección
– Bucle
Fundamentos de Programación I 4
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
2
04/10/2010
Fundamentos de Programación I 5
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
Fundamentos de Programación I 6
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
3
04/10/2010
3.2.1. Secuencia
• Primera estructura de control elemental
int valor=0;
valor=valor+1;
System.out.println(valor);
Fundamentos de Programación I 7
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
if (condición) {
---- bloque de sentencias ----
}
else {
---- bloque de sentencias ----
}
– Es posible así:
if (condición) {
---- bloque de sentencias ----
}
• Ejemplo a continuación
Fundamentos de Programación I 8
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
4
04/10/2010
import java.util.*;
class Condicion {
// Ejemplo de sentencia condicional if-else
public static void main(String[] args) {
int x;
Scanner leer =new Scanner(System.in);
// Lectura de datos
System.out.println("Introduzca un entero");
x=leer.nextInt();
System.out.println("Entero introducido "+x);
// Aplicación de la condición
if (x < 0) {
System.out.println("El numero es negativo");
}
else {
System.out.println("El numero es positivo");
} // Fin de la cláusula else
System.out.println("Fin del programa");
} // Fin método main
} // Fin clase Condicion
Fundamentos de Programación I 9
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
Fundamentos de Programación I 10
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
5
04/10/2010
import java.util.*;
class Switch {
public static void main(String [] args){
int numero;
Scanner leer =new Scanner (System.in);
// Lectura de datos
System.out.print("Introduzca un entero: ");
numero=leer nextInt();
numero=leer.nextInt();
switch (numero) {
case 1:
System.out.println("El numero es un 1");
break;
case 2:
System.out.println("El numero es un 2");
break;
default:
System.out.println("El numero no era ni 1 ni 2");
} // Fin switch
Fundamentos de Programación I 12
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
6
04/10/2010
Estruct. 1
Estruct. 2
Estruct. 3
Fundamentos de Programación I 13
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
Estruct. 1
Estruct. 2
Estruct. 3
Estruct. 4
Fundamentos de Programación I 14
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
7
04/10/2010
• Condición al principio
• Se puede ejecutar cero veces
Fundamentos de Programación I 16
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
8
04/10/2010
class Contador {
public static void main (String [] args) {
final int FIN=3;
int i=0,suma=0;
while (i<=FIN) {
System.out.print("Contador= "+i);
suma=i+2;
System.out.println(" Suma= "+suma);
i i+1 // I
i=i+1; Incremento
t ddel
l contador
t d (i)
}
System.out.println("Valor del contador fuera del bucle=“
+i);
System.out.println("Valor final de suma= "+suma);
} //Fin método main
} // Fin clase Contador
Fundamentos de Programación I 17
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
do {
---- bloque de acciones ----
} while (condición);
• Condición al final
• Siempre se ejecuta al menos una vez
Fundamentos de Programación I 18
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
9
04/10/2010
• Ejemplo
class Contador {
public static void main (String [] args){
final int FIN=3;
int i=0,suma=0;
• Equivale a
inicialización;
while (condición) {
---- bloque de sentencias -----
incremento;
}
Fundamentos de Programación I 20
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
10
04/10/2010
• Ejemplo
class Contador {
public static void main (String [] args) {
final int FIN=3;
int i,suma=0;
// Ejemplo de bucle for
for(i=0;i<=FIN;i++) {
System.out.print("Contador= "+i);
suma=i+2;
System.out.println(" Suma= "+suma);
}
Fundamentos de Programación I 22
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
11
04/10/2010
• Pseudocódigo
Fundamentos de Programación I 23
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
Proceso Conector
Entrada/salida
Fundamentos de Programación I 24
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
12
04/10/2010
Fundamentos de Programación I 25
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
– Selección
• If
Si(condición) entonces-Si_no-Fin_Si
• Switch
Según
g (
(variable)
) Hacer:
valor 1: --- bloque de sentencias 1 ---
valor 2: --- bloque de sentencias 2 ---
...
valor n: --- bloque de sentencias n ---
Fin_según
Fundamentos de Programación I 26
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
13
04/10/2010
– do-while
Haz-Mientras (condición)
– for
Para (valor inicial) mientras (condición)
i
incremento
t ((valor
l d
del
l i
incremento)
t )
Fin_Para
Fundamentos de Programación I 27
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
Fundamentos de Programación I 28
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
14
04/10/2010
Bloque de
sentencias
Programa
principal
Fundamentos de Programación I 29
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
Programa
principal
Fundamentos de Programación I 30
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
15
04/10/2010
Fundamentos de Programación I 31
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
Fundamentos de Programación I 32
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
16
04/10/2010
Sentencia1; Sentencia 1;
Sentencia 2; Sentencia 2;
Ejecutar método; .
Sentencia 3; .
. .
. Sentencia n;
.
Sentencia m;
Método
Programa principal
Fundamentos de Programación I 33
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
nombre_objeto.método(parámetros);
Fundamentos de Programación I 34
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
17
04/10/2010
class Clase {
modificadores metodo1 ( ) {
–código del método 1--
}
modificadores metodo2 ( ) {
–código del método 2--
}
....
modificadores metodo3 ( ) {
–código
código del método 3--
3
}
modificadores main ( ) {
–código del main--
}
}
Fundamentos de Programación I 35
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
• Dentro del método debe indicarse qué es lo que éste devuelve. Esto
se consigue por medio de la sentencia return que puede tomar una
de dos formas,
return;
o
return expresión;
Fundamentos de Programación I 36
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
18
04/10/2010
// Leyendo el radio
System.out.print(“Introduzca el radio: ”);
radio=leer.nextDouble();
System.out.println("El radio es: " +radio+" unidades");
// Salida de resultados
System.out.println("El perimetro es: " +perimetro+" unidades");
System.out.println("La superficie es: " +superficie+" unidades^2");
} // Fin método main
Fundamentos de Programación I 37
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
Fundamentos de Programación I 38
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
19
04/10/2010
Programa Principal
Calcular_perímetro Calcular_superficie
Fundamentos de Programación I 39
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
Fundamentos de Programación I 40
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
20
04/10/2010
a) Por valor:
Se pasa una copia del valor de la variables
b) Por referencia:
Se pasa una referencia a la posición de memoria donde se
almacena el valor (los dos identificadores apuntan a la
misma zona de memoria):
Parámetro Zona de
actual memoria
Parámetro
formal
Fundamentos de Programación I 41
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
Fundamentos de Programación I 42
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
21
04/10/2010
Fundamentos de Programación I 43
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
Fundamentos de Programación I 44
© C.Muñoz Caro & A. Niño-Universidad de Castilla-La Mancha
22