Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Tema 3 estructuras de control, Apuntes de Informática

Asignatura: MTP 1, Profesor: , Carrera: Ingeniería Técnica de Informática de Gestión, Universidad: UJAEN

Tipo: Apuntes

Antes del 2010

Subido el 04/10/2007

helena_vv
helena_vv 🇪🇸

3.9

(14)

59 documentos

1 / 24

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
1
Tema 3. Estructuras de
Tema 3. Estructuras de
Control
Control
Tema 3. Estructuras de control 2
Objetivos
Estudiar las estructuras básicas de control (secuenciales,
condicionales y repetitivas)
Aprender a diseñar algoritmos utilizando el pseudocódigo y
organigramas (diagramas de flujo) como notación para
describirlos
Reconocer la importancia de diseñar algoritmos como paso previo
a la resolución de problemas mediante la programación
Resolver los primeros problemas a través de técnicas de
programación básicas
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18

Vista previa parcial del texto

¡Descarga Tema 3 estructuras de control y más Apuntes en PDF de Informática solo en Docsity!

Tema 3. Estructuras deTema 3. Estructuras de

Control Control

Objetivos

 Estudiar las estructuras básicas de control (secuenciales,

condicionales y repetitivas)

 Aprender a diseñar algoritmos utilizando el pseudocódigo y

organigramas (diagramas de flujo) como notación para

describirlos

 Reconocer la importancia de diseñar algoritmos como paso previo

a la resolución de problemas mediante la programación

 Resolver los primeros problemas a través de técnicas de

programación básicas

Tema 3. Estructuras de control 3

Tema 3. Estructuras de control

1. Estructuras secuenciales

1. Asignación

2. Lectura / Entrada

3. Escritura / Salida

4. Ejemplos

2. Estructuras condicionales

1. Simple

2. Anidada

3. Múltiple

4. Ejemplos

3. Estructuras repetitivas

1. Bucle MIENTRAS

2. Bucle REPETIR-HASTA

3. Bucle PARA

4. Bucles infinitos y bucles anidados

5. Ejemplos

Tipos de estructuras de control

 Estructuras secuenciales

 Sentencias que se realizan una a continuación de otra en el orden en

el que están escritas

 Estructuras Condicionales

 Sentencias que dependiendo de la evaluación de una expresión lógica

(una condición), se realiza una opción u otra

 Estructuras Repetitivas o Iterativas (Bucles o Ciclos)

 Sentencias que permiten la repetición de un grupo de acciones

 Las acciones incluidas en un bucle se pueden repetir un número fijo de

veces o bien un número variable determinado por la evaluación de una

expresión lógica (una condición)

Tema 3. Estructuras de control 7

Ejemplo

 ¿En cuáles de los siguientes pares es importante

el orden de los enunciados? Es decir, si se modifica el orden ¿cambian los resultados finales? (Suponemos que X≠Y≠Z)

a) X←Y b) X←Z

Y←Z X←Y

c) X←Y d) Z←Y

Z←X X←Y

Estructuras secuenciales –

Lectura/Entrada

 Mediante la operación de entrada se asigna a una variable un valor dado

desde el exterior

LEER(var)

 Se utiliza para que el usuario pueda introducir los datos requeridos por

un algoritmo

 El tipo de dato suministrado desde el exterior debe ser compatible con el

tipo de la variable “var”

 Tras la operación de lectura, la variable “var” contiene el valor dado por

el usuario a través de un dispositivo de entrada

LEER(cateto1)

 La operación de lectura es destructiva

 Es posible leer los valores de varias variables en una misma operación de

entrada (separando con comas)

LEER(nota1, nota2) es equivalente a las siguientes dos sentencias LEER(nota1) LEER(nota2)

LEER(var)

Tema 3. Estructuras de control 9

Estructuras secuenciales –

Escritura/Salida

 Mediante la operación de salida se transfiere el valor de una

expresión a un dispositivo de salida

ESCRIBIR(exp)

 Se utiliza para mostrar al usuario los resultados obtenidos

 Ejemplos:

ESCRIBIR(hipotenusa) ESCRIBIR(b+3)

 Se suele utilizar también para mostrar mensajes informativos al

usuario que estarán delimitados por comillas

ESCRIBIR(“Hola”)

 También es posible, combinar expresiones y cadenas de

caracteres encerradas entre comillas en una misma operación de

salida siempre que se separen por comas

ESCRIBIR(“La media de las notas es “,media)

ESCRIBIR(exp)

Estructura básica de un algoritmo

ALGORITMO nombre. Entrada Salida Proceso (Descripción) CONSTANTES id_cte1 = valor …………………………………………………… ………………………… id_cteN = valorN VARIABLES id_var1 : tipo …………………………………………………… ………………………… id_varM : tipoM

  1. [Inicio] …………………………………………………… ………………………… Sentencias …………………………………………………… ………………………… F. [Fin]

ALGORITMO triangulo. Entrada: cat1 y cat Salida: hipotenusa Proceso: Calcula la hipotenusa de un triángulo rectángulo tomando como entrada el valor de los dos catetos VARIABLES cat1, cat2 : REAL hipotenusa : REAL

  1. [Entrada de datos] ESCRIBIR(‘Introduzca cateto 1: ’) LEER(cat1) ESCRIBIR(‘Introduzca cateto 2: ’) LEER(cat2)
  2. [Cálculo de la hipotenusa] hipotenusaSQRT(cat1cat1+cat2cat2)
  3. [Mostrar el resultado] ESCRIBIR(‘La hipotenusa es’,hipotenusa)
  4. [Fin]

Tema 3. Estructuras de control 13

Realizar un algoritmo para pasar de grados Centígrados (ºC) a grados

Fahrenheit (ºF) sabiendo que ºF= 9/5 ºC+

ALGORITMO grados.

VARIABLES

C,F: REAL

1. [Entrada de los grados centígrados]

ESCRIBIR(‘Introduzca los grados centígrados’)

LEER(C)

2. [Calcular los grados Fahrenheit]

F  9/5*C+

3. [Mostrar el resultado]

ESCRIBIR(C,‘ grados centígrados son ’,F, ‘grados Fahrenheit’)

4. [Fin]

Realizar un algoritmo para intercambiar los valores de dos variables

ALGORITMO intercambio_var.

VARIABLES

A,B,aux: ENTERO

1. [Entrada del valor de las variables]

LEER(A,B)

2. [Intercambiar las variables]

aux  A

A  B

B  aux

3. [Mostrar el resultado]

ESCRIBIR(‘El valor de A es ’,A)

ESCRIBIR(‘El valor de B es ’,B)

4. [Fin]

Inicio

LEER(A,B)

aux  A

A  B

B  aux

ESCRIBIR(A,B)

Fin

Tema 3. Estructuras de control 15

Seminario 1

 Estructuras secuenciales

 Jueves 11 de octubre de 8’30 a 9’30 (grupo A), y

de 15’30 a 16’30 (grupo B)

 Relación de ejercicios del tema 3

 Ejercicios 9, 10, 15 y 16

Estructuras condicionales

 En una estructura condicional se evalúa una expresión lógica y

dependiendo del resultado se ejecutan unas sentencias u otras

SI condición ENTONCES Sentencias en caso de verdad SI_NO Sentencias en caso de falso FIN_SI

 Si la condición resulta verdadera sólo se realizan las operaciones

correspondientes al ENTONCES y si la condición resulta falsa sólo

se realizan las del SI_NO. En ningún caso se ejecutarán ambos

grupos de sentencias

 La parte SI_NO es opcional

SI condición ENTONCES Sentencias en caso de verdad FIN_SI

Condición Sentencias caso verdad

Sentencias caso falso

Falso Verdad

Condición Sentencias caso verdad

Verdad

Falso

Tema 3. Estructuras de control 19

Estructuras condicionales anidadas

 Se pueden anidar varias sentencias condicionales para formar

condiciones complejas

SI cond1 ENTONCES

SI cond2 ENTONCES

sentecias

SI_NO

sentencias

FIN_SI

SI_NO

SI cond3 ENTONCES

sentencias

SI_NO

sentencias

FIN_SI

FIN_SI

Encontrar el mayor de 3 números

SI (a<b) ENTONCES

SI (b<c) ENTONCES

Mayor  c

SI_NO

Mayor  b

FIN_SI

SI_NO

SI (a<c) ENTONCES

Mayor  c

SI_NO

Mayor  a

FIN_SI

FIN_SI

Estructuras condicionales múltiples

 La sentencia multicondicional CASO se puede ver como un estructura

condicional simple, pero en lugar de haber dos alternativas, ahora hay

múltiples alternativas

CASO var

Valor_1: S

Valor_2: S

Valor_n: Sn

EN OTRO CASO Sc

FIN_CASO

CASO num 1: ESCRIBIR(‘El número es 1’) 2: ESCRIBIR(‘El número es 2’) 3,4: ESCRIBIR(‘El número es 3 o 4’) EN OTRO CASO ESCRIBIR(‘Entrada no válida’) FIN_CASO

var=?

S1 S2 Sn Sc

var=valor_1 var=valor_

Acciones para otros valores de var var=valor_n

Tema 3. Estructuras de control 21

Ejemplo. Determinar el mayor de 4 números

(con condiciones simples)

SI (A<B) ENTONCES

SI (B<C) ENTONCES

SI (C<D) ENTONCES

mayor  D SI_NO mayor  C FIN_SI SI_NO SI (B<D) ENTONCES mayor  D SI_NO mayor  B FIN_SI FIN_SI SI_NO …

SI_NO

SI (A<C) ENTONCES

SI (C<D) ENTONCES

mayor  D SI_NO mayor  C FIN_SI SI_NO SI (A<D) ENTONCES mayor  D SI_NO mayor  A FIN_SI FIN_SI FIN_SI

Ejemplo. Determinar el mayor de 4 números

(con condiciones compuestas)

SI (A>B) AND (A>C) AND (A>D) ENTONCES mayor  A FIN_SI SI (B>A) AND (B>C) AND (B>D) ENTONCES mayor  B FIN_SI SI (C>A) AND (C>B) AND (C>D) ENTONCES mayor  C FIN_SI SI (D>A) AND (D>B) AND (D>C) ENTONCES mayor  D FIN_SI

Tema 3. Estructuras de control 25

Seminario 2

 Estructuras condicionales

 Jueves 25 de octubre de 8’30 a 9’30 (grupo A) y

de 15’30 a 16’30 (grupo B)

 Relación de ejercicios del tema 3

 Ejercicios 18, 26 y 27

Estructuras repetitivas

 Ámbito o Cuerpo del Bucle: sentencias que se repiten durante la

ejecución del bucle

 Tipos de bucles:

 Bucles controlados por contador

 El cuerpo del bucle se repite un número fijo de iteraciones dependiendo de una variable de control

 Bucles controlados por condición

 El número de veces que se ejecuta el bucle depende de una condición

 Estructuras repetitivas

 Bucle MIENTRAS

 Bucle REPETIR-HASTA

 Bucle PARA

Tema 3. Estructuras de control 27

Bucle MIENTRAS

MIENTRAS condición HACER

Sentencias del bucle (cuerpo del bucle)

FIN_MIENTRAS

 El cuerpo del bucle se repite mientras la condición sea verdadera

Condición

Cuerpo del Bucle

Sentencias

Falso Verdad

Bucle REPETIR-HASTA

REPETIR

Cuerpo del bucle

HASTA condición

 El cuerpo del bucle se repite hasta que

la condición sea verdadera (es decir,

mientras la condición sea falsa)

 El cuerpo del bucle siempre se ejecuta al

menos una vez

Condición

Cuerpo del Bucle

Sentencias

Verdad

Falso

Tema 3. Estructuras de control 31

Bucle PARA

 El cuerpo del bucle se repite un número fijo de iteraciones  Variable de control  Controla el número de iteraciones  Se le asignan automáticamente valores sucesivos  Al comienzo del bucle se debe especificar su valor inicial y su valor final  Debe ser de tipo entero, carácter o enumerado y su valor NO puede ser modificado dentro del bucle  Cuando el bucle termina, su valor es indeterminado

PARA var=inicio HASTA fin HACER Cuerpo del bucle FIN_PARA

var<=fin

Cuerpo del Bucle

Sentencias

Falso Verdad

var <- inicio

var <- var+

Equivalencia PARA - MIENTRAS

PARA var=inicio HASTA fin HACER

Sentencias

FIN_PARA

var  inicio

MIENTRAS (var<=fin) HACER

Sentencias

var  var + 1

FIN_MIENTRAS

Tema 3. Estructuras de control 33

Ejemplo: Factorial

ALGORITMO factorial_mientras. Entrada: N Salida: fact Proceso: calcula el factorial de N usando un bucle MIENTRAS VARIABLES N, i, fact: ENTERO

  1. [Entrada del número N] LEER(N)
  2. [Calcular el factorial] fact  1 i  1 MIENTRAS (i<=N) HACER fact  fact * i i  i + 1 FIN_MIENTRAS
  3. [Mostrar el resultado] ESCRIBIR(‘Factorial de’,N,‘es’,fact)
  4. [Fin]

ALGORITMO factorial_para.

Entrada: N

Salida: fact

Proceso: calcula el factorial

de N usando un bucle PARA

VARIABLES

N, i, fact: ENTERO

  1. [Entrada del número N] LEER(N)
  2. [Calcular el factorial] fact  1 PARA i=1 HASTA N HACER fact (^)  fact * i FIN_PARA
  3. [Mostrar el resultado] ESCRIBIR(‘Factorial de’,N,‘es’,fact)
  4. [Fin]

Validación de datos de entrada

ALGORITMO validacion_mientras. Entrada: nota Salida: nota Proceso: Validación de los datos de entrada con un bucle MIENTRAS VARIABLES nota: REAL

  1. [Entrada de datos] ESCRIBIR(‘Introduzca la nota: ’) LEER(nota) MIENTRAS (nota<0.0) OR (nota >10.0) HACER ESCRIBIR(‘La nota debe ser un nº real entre 0 y 10. Inténtelo de nuevo: ’) LEER(nota) FIN_MIENTRAS
  2. [Salida de datos] ESCRIBIR(‘La nota es ’, nota)
  3. [Fin]

ALGORITMO validacion_repetir. Entrada: nota Salida: nota Proceso: Validación de los datos de entrada con un bucle REPETIR- HASTA VARIABLES nota: REAL

  1. [Entrada de datos] REPETIR ESCRIBIR(‘Introduzca la nota: ’) LEER(nota) HASTA (nota>=0.0) AND (nota<=10.0)
  2. [Salida de datos] ESCRIBIR(‘La nota es ’, nota)
  3. [Fin]

Tema 3. Estructuras de control 37

Indíquese el valor que se imprime para VAR. Supóngase que

todas las variables son enteras

a) var ← 0 PARA num=1 HASTA 10 HACER var ← var + 1 FIN_PARA ESCRIBIR (var)

b) var ← 0 PARA num=4 HASTA 16 HACER var ← var + 1 FIN_PARA ESCRIBIR (var)

c) var ← 0 PARA num=1 HASTA 5 HACER PARA mult=1 HASTA 8 HACER var ← var + 1 FIN_PARA FIN_PARA ESCRIBIR (var)

Indíquese el valor que se imprime para cada uno de los

siguientes segmentos de algoritmos

PARA i=1 HASTA 10 HACER

ESCRIBIR (i)

FIN_PARA

PARA i=1 HASTA 10 HACER

ESCRIBIR (i+i)

FIN_PARA

PARA i=1 HASTA 10 HACER

ESCRIBIR (2*i)

FIN_PARA

PARA i=1 HASTA 10 HACER

ESCRIBIR (3*i)

FIN_PARA

Tema 3. Estructuras de control 39

Indíquese el valor que se imprime para cada uno de los

siguientes segmentos de algoritmos

LEER(n)

PARA i=1 HASTA 10 HACER

ESCRIBIR (n*i)

FIN_PARA

S ← 0

PARA i=1 HASTA 10 HACER

S ← i

FIN_PARA

ESCRIBIR (S)

S ← 0

PARA i=1 HASTA 10 HACER

S ← S +

FIN_PARA

ESCRIBIR (S)

Diseñar un algoritmo para calcular la suma de los N primeros

pares

ALGORITMO suma_pares. VARIABLES i,n,suma:ENTERO 1.[Entrada de datos] REPETIR ESCRIBIR(‘Introduzca un entero:’) LEER(N) HASTA (N>0) 2.[Sumar los n primeros pares] suma  0 i  2 MIENTRAS (i<=2*n) HACER suma  suma + i i  i+ FIN_MIENTRAS ESCRIBIR(‘La suma es’,suma) 3.[Fin]

Inicio

LEER(N)

suma  0 i  2

sum suma+i i  i+ ESCRIBIR(suma)

Fin

N>

verdad

falso

i<=N verdad falso