PDF de programación - 3. Estructuras de control - Fundamentos de Programación I

Imágen de pdf 3. Estructuras de control - Fundamentos de Programación I

3. Estructuras de control - Fundamentos de Programación Igráfica de visualizaciones

Publicado el 25 de Septiembre del 2020
1.198 visualizaciones desde el 25 de Septiembre del 2020
782,5 KB
63 paginas
Creado hace 11a (09/10/2012)
Fundamentos de Programación I

3. Estructuras de control

Luís Rodríguez Baena ([email protected])
Luis Rodríguez Baena ([email protected])

Universidad Pontificia de Salamanca.
Universidad Pontificia de Salamanca
Escuela Superior de Ingeniería y Arquitectura
Escuela Superior de Ingeniería y Arquitectura

Programación modular

Dividir un programa en distintos componentes

independientes.
● Cada uno de esos componentes formaría un módulo.

Cada módulo se codificaría por separado y

realizaría una única tarea.
● Si la tarea es compleja se podrá dividir a su vez en

otros módulos.

Una vez finalizados, los módulos se integrarán
en un programa principal que indicará el orden
de ejecución.

Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012

2

Programación estructurada

 Conjunto de técnicas enunciadas por Edsger Dijkstra
● 1968: El GOTO como elemento perjudicial en la

programación (GOTOStatementConsideredHarmfull).

● Dijkstra y otros autores proponen un conjunto de

construcciones lógicas con las que puede construirse
cualquier programa.
 Cada construcción tendrá una estructura lógica predecible con un único

punto de entrada y un único punto de salida.

 Facilita el diseño del programa, minimiza la complejidad, reduce los

errores.

Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012

3

Programación estructurada (II)

 Teorema de la programación estructurada (teorema

de Bohm y Jacopini, 1966).
● Cualquier programa propio puede ser escrito utilizando únicamente

tres tipos de estructuras.
 Secuenciales. Las instrucciones se ejecutan una única vez una a

continuación de otra y sin posibilidad de variar el orden de ejecución.

 Repetitivas. Las instrucciones se ejecutan un numero determinado de

veces en virtud del valor de una expresión.

 Alternativas. Se puede ejecutar una u otra instrucción en virtud del valor

de una expresión.

Nota: Un programa propio es aquel que:

● Posee un único punto de entrada y uno de salida.
● Existen caminos desde la entrada a la salida que se pueden seguir y que pasan

por todas las partes del programa.

● Todas las instrucciones son ejecutables y no existen lazos o bucles sin fin.

Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012

4

Programación estructurada (III)

 Supone diseñar los programa de acuerdo a las siguientes reglas:

● El programa debe tener un diseño modular.

 Dividir el problema en pequeñas partes independientes que se desarrollan por separado

(módulos) y que luego se integran en una única aplicación.

● Diseñar los módulos de modo descendente (diseño top-down).

 Diseñar cada módulo partiendo del problema general e ir descomponiéndolo en

subproblemas más simples mediante refinamientos sucesivos.

● Uso de recursos abstractos.

 Complemento del diseño descendente.
 Consiste en suponer en cada uno de los subproblemas ya está resuelto.

○ Más adelante, si es necesario, se resolverán.

● Limitar las construcciones lógicas del programa.

 Utilizar únicamente tres tipos de estructuras:

○ Secuenciales
○ Alternativas
○ Repetitivas.

 Esas estructuras están presentes con los lenguajes de alto nivel, por lo que si

se respetan, el paso del algoritmo a la codificación será mucho más simple.

Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012

5

Control del flujo de un programa

 Flujo de control.

● Orden en que se ejecutan las instrucciones dentro de un programa.

 Proceso de ejecución de un programa.

● Carga del programa en memoria.
● Reserva de espacio en memoria para almacenar los datos.
● Ejecución de la primera sentencia.
● La ejecución continúa hasta llegar a la declaración de final del programa.

 La ejecución se realiza de forma secuencial.

● Las instrucciones de control se encargan de variar esa ejecución secuencial.
 Las instrucciones de control permiten desarrollar los tres tipos básicos

de construcciones lógicas propuestas por la programación estructurada.
● Desde el punto de vista del procesador, todas presentan alguna bifurcación

que permiten saltar de una instrucción a otra.

● Esas bifurcaciones o saltos se encapsulan en los lenguajes de programación

de alto nivel en lo que se llama estructuras de control.

Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012

6

Estructura secuencial

 Repite las instrucciones una detrás de otra sin posibilidad de

modificar el orden en que se ejecutan.
● La salida de una instrucción es la entrada de la siguiente.

 Representación algorítmica.

instrucción 1
instrucción 2

instrucción n



En C, la estructura secuencial
estaría representada por los
bloques de instrucciones
delimitados por las llaves
{
instrucción 1;
instrucción 2;

instrucción n;
}

Diagrama de flujo

Pseudocódigo

C

Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012

7

Estructura secuencial (II)

Ejemplo 3.1.

Se desea calcular el capital final de una cantidad de euros
colocada en un banco a un interés compuesto determinado
durante un periodo de años. Tanto el capital inicial, como el
tipo de interés y el número de años se introducirán mediante
teclado.

● Análisis del problema

Datos de salida: Capital final (variable CFinal de tipo real)
Datos de entrada: Capital inicial (variable CInicial de tipo
real), interés (variable interés de tipo real) y el número de
años (variable años de tipo entero)

Para resolver el problema habrá que aplicar la fórmula:

CFinal = CInicial(1 + interés)años

Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012

8

Estructura secuencial (III)

Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012

9

Estructuras selectivas

Permiten ejecutar o no un conjunto de

sentencias según el valor de una expresión.

Dependiendo del número de conjuntos distintos

a ejecutar existirán:
● Estructura selectiva simple.
● Estructura selectiva doble.
● Estructura selectiva múltiple.

Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012

10

Estructura selectiva simple

 Evalúa una expresión lógica.
 En función del valor de la expresión ejecuta o no una instrucción o grupo de

instrucciones.

 Representación algorítmica.

si exp.lógica entonces
fin_si

instrucción/es

if (exp. lógica) {
}

bloque sentencias;

Diagrama de flujo

Pseudocódigo

C

Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012

11

Estructura selectiva simple (II)

 Ejemplo 3.2.

Determinar si un número entero positivo es par sacando un mensaje en caso
afirmativo.

● Análisis del problema

 Datos de salida: El dato de salida sería un mensaje indicando si el número es par.
 Datos de entrada: El número a comprobar (variable num de tipo entero)

Un número es par si es divisible entre 2, por lo que habrá que utilizar el operador
mod y comprobar si el resto es 0.

algoritmo EsNúmeroPar
var
inicio

entero : num
leer(num)
si num mod 2 = 0 entonces
fin_si

escribir('es par')

fin

#include <stdio.h>
int main(void){

int num;
printf("Numero entero positivo: ");
scanf("%i",&num);
if(num % 2 == 0){
}
return 0;

printf("\nNúmero par");

}

Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012

12

Estructura selectiva doble

 Evalúa una expresión lógica y selecciona entre dos grupos de

acciones en función del valor de la expresión.

instrucción 1

si exp.lógica entonces
si_no
fin_si

instrucción 2

bloque sentencias;

if (exp. lógica){
}
else{
}

bloque sentencias;

Diagrama de flujo

Pseudocódigo

C

Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012

13

Estructura selectiva doble (II)

 Ejemplo 3.3.

Resolver una ecuación de primer grado ax + b = 0 para dos coeficientes
a y b introducidos por teclado. El algoritmo deberá devolver el valor de x
y tener en cuenta los casos en los que no tiene solución real (a = 0)

● Análisis del problema

 Datos de salida: El valor de x (una variable real) o el mensaje cuando no hay

solución

 Datos de entrada: Las variables a y b (de tipo entero)

El valor de x, siempre que a sea distinto de 0; vendrá determinado por

x



b

a

Si a es 0, sacará un mensaje indicando que no tiene solución real.

Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012

14

Estructura selectiva doble (III)

//Ecuación de primer grado
#include <stdio.h>
int main(void){

int a,b;
float x;
printf("Primer número: ");
scanf("%i",&a);
printf("Segundo número: ");
scanf("%i",&b);
if(a!=0){

x = (float)-b /a;
printf("\nPara la ecuación %ix+%i=0"
" el valor de x es %f",a,b,x);
printf("\nPara la ecuación %ix+%i=0"

" el valor de x no tiene solución",a,b);

}else{

}
return 0;

}

Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012

15

Estructura selectiva doble
Estructuras selectivas anidadas

 Ejemplo 3.4.

Determinar si un número entero es par, impar o 0.

● Análisis del problema

 Datos de salida: El mensaje, una constante de cadena indicando si el número

es par, impar o 0.

 Datos de entrada: Un número entero.
 Proceso: Una vez que se ha determinado que el número es distinto de 0, se

comprueba si es par o impar mediante el operador de resto.

Universidad Pontificia de Salamanca. Escuela Superior de Ingeniería y Arquitectura
(CC) Luis Rodríguez Baena, 2012

16

Estructura selectiva doble
Estructuras selectivas anidadas (II)
  • Links de descarga
http://lwp-l.com/pdf18262

Comentarios de: 3. Estructuras de control - Fundamentos de Programación I (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad