Tema 2: Resolución de
problemas y Algoritmos
Índice
1. Objetivo
2. Definiciones: Algoritmo y programa
3. Tipos de programación: Programación estructurada
4. Herramientas para la realización de un algoritmo:
4.1. Pseudocódigo
4.2. Diagrama de Flujo
5. Tabla de Objetos
6. Programación estructurada: estructuras de control
Tema 2: Resolución de problemas
y algoritmos
1. Objetivo
El objetivo principal del tema consiste en la realización de
algoritmos mediante pseudocódigo y diagrama de flujo.
Tema 2: Resolución de problemas
y algoritmos
2. Definiciones: Algoritmo y
Programa
Fases de la programación
Fase I Fase II
Análisis: Diseño: Solución: Ejecución
Problema Algoritmo Programa Validación
Fase III
Explotación
Tema 2: Resolución de problemas
y algoritmos
2. Definiciones: Algoritmo y
Programa
Un algoritmo es un conjunto ordenado y finito de
instrucciones que permite hallar la solución de un
problema.
Un programa es la codificación del algoritmo en algún
lenguaje de programación o en lenguaje máquina.
Problema Algoritmo Programa
Tema 2: Resolución de problemas
y algoritmos
Ejemplo de un algoritmo
Problema: Receta para freír un huevo frito
Algoritmo:
1. Poner aceite en sartén
2. Colocar sartén en fuego
3. Romper el huevo haciendo caer el contenido en sartén
4. Tirar cáscaras a la basura
5. Poner sal en yema
6. Si el huevo está sólido ir a 7, si no esperar
7. Servir huevo, fregar sartén
8. Fin
Tema 2: Resolución de problemas
y algoritmos
Ejemplo de algoritmo y programa
Problema: Hallar el valor absoluto de un número x.
Algoritmo:
1. Si x es positivo, el resultado es, r x
2. Si no, el resultado es r –x
3. Fin
Programa:
int valor_absoluto(int x)
{
if(x>0)
r=x;
else
r=-x;
return x;
}
Tema 2: Resolución de problemas
y algoritmos
Partes de un algoritmo
Un algoritmo utiliza un conjunto de datos de entrada y proporciona
unos datos de salida.
ENTRADA: Corresponde a los datos que requiere el proceso para
ofrecer los resultados esperados.
PROCESO: Pasos necesarios para obtener la solución del
problema o la situación planteada.
SALIDA: Datos presentados por el proceso como solución,
resultado.
Tema 2: Resolución de problemas
y algoritmos
3. Tipos de programación
Programación imperativa o estructurada: C, PASCAL,
FORTRAN
Programación Orientada a Objetos: Visual C++, Java
Programación funcional: LISP
Programación lógica: PROLOG
Tema 2: Resolución de problemas
y algoritmos
3. Programación Estructurada
Programación estructurada:
consiste en un conjunto de reglas para escribir programas de tal
manera que sean legibles y fáciles de modificar.
Reglas a seguir para la programación estructurada:
a) Características de algoritmos estructurados
b) ¿Cómo construir un algoritmo estructurado?
c) Estructuras algorítmicas estructuradas
Tema 2: Resolución de problemas
y algoritmos
a) Características de un algoritmo
estructurado
Finito: El algoritmo debe tener un número finito de pasos.
Eficientes: Deben ocupar la mínima memoria y minimizar el tiempo de
ejecución.
Legibles: El texto que lo describe debe ser claro, de forma que permita
entenderlo y leerlo fácilmente.
Modificables: Estarán diseñados de modo que sus posteriores
modificaciones sean fáciles de realizar, incluso por programadores
diferentes a sus propios autores.
Tema 2: Resolución de problemas
y algoritmos
a) Características de un algoritmo
estructurado
Modulares:
La filosofía utilizada para su diseño debe favorecer la división del
problema en módulos pequeños.
Único punto de entrada, único punto de salida:
A los algoritmos y a los módulos que lo integran, se entra por un solo
punto (inicio) y se sale por un solo punto (fin)
Tema 2: Resolución de problemas
y algoritmos
b) ¿Cómo construir algoritmos
estructurados?
Definición y análisis del problema: datos de entrada y salida
(resultados)
Aplicar la técnica de: “divide y vencerás”, que consiste en
descomponer el problema en subproblemas más sencillos
Resolución de los subproblemas: realización de los
algoritmos correspondientes a los subproblemas
Depurar (prueba de validez) el algoritmo resultante
¡A PROGRAMAR SE APRENDE PROGRAMANDO!
Tema 2: Resolución de problemas
y algoritmos
c) Estructuras algorítmicas o de
control
Secuenciales: cada acción se realiza una sola vez y en
un determinado orden
Condicionales (selectivas): permiten seleccionar una
acción a realizar entre varias alternativas
Iterativas (repetitivas): una determinada acción se
realiza más de una vez
Tema 2: Resolución de problemas
y algoritmos
4. Herramientas para la realización
de algoritmos
Existen diferentes métodos para representar un
algoritmo, los procedimientos más habituales
son:
Pseudocódigo (herramienta no gráfica)
Diagrama de flujo (herramienta gráfica)
Pseudocódigo Diagrama de Flujo Lenguaje de Programación
C,Java, Visual C++,…
Problema Algoritmo Programa
Tema 2: Resolución de problemas
y algoritmos
4.1. Pseudocódigo
• Un pseudocódigo es una forma de representar
un algoritmo basándose en el lenguaje natural.
Tema 2: Resolución de problemas
y algoritmos
Ejemplo de pseudocódigo
Problema: leer dos números enteros y escribir
la suma.
Pseudocódigo:
1. Leer primer sumando, a.
2. Leer segundo sumando, b.
3. Hallar la suma de los sumandos, r a+b.
4. Escribir r.
5. Fin
Tema 2: Resolución de problemas
y algoritmos
Elementos básicos de un algoritmo
Datos de diferente tipo:
números reales, enteros, caracteres,…
Las instrucciones que los procesan:
asignación, operaciones aritméticas, lógicas,…
Tema 2: Resolución de problemas
y algoritmos
Ejemplo de pseudocódigo
Problema: leer dos números enteros y
escribir la suma. Datos de entrada
Pseudocódigo: (números enteros)
1. Leer primer sumando, a. Asignación
2. Leer segundo sumando, b.
3. Hallar la suma de los sumandos, r a+b.
4. Escribir r. Datos de salida
Resultado
5. Fin (número entero) Suma aritmética
Tema 2: Resolución de problemas
y algoritmos
4.2. Diagramas de flujo
Los Diagramas de Flujo son herramientas gráficas para
representar algoritmos.
Están formados por una serie de símbolos, que tienen al
menos una flecha que viene del paso anterior y otra que
va al paso siguiente.
Los símbolos representan distintas acciones:
lectura/escritura, principio, fin, salto…
Tema 2: Resolución de problemas
y algoritmos
Símbolos de un diagrama de flujo
Comienzo de bloque:
Fin de bloque:
Proceso: asignaciones, operaciones
Tema 2: Resolución de problemas
y algoritmos
Símbolos de un diagrama de flujo
Bifurcación: representa una decisión.
En su interior se almacena una condición y dependiendo del
resultado de la evaluación de la misma se sigue una dirección u
otra.
Se utiliza en las estructuras selectiva e iterativas
SI NO
Tema 2: Resolución de problemas
y algoritmos
Símbolos de un diagrama de flujo
Entrada y salida de datos:
Se utiliza para representar la introducción de datos de
entrada (lectura) y para la impresión de un resultado
(salida)
Tema 2: Resolución de problemas
y algoritmos
Símbolos de un diagrama de flujo
Módulo:
la operación es realizada por un bloque (DF) que se
detalla en otro lugar. No afecta a la codificación.
Tema 2: Resolución de problemas
y algoritmos
Símbolos de un diagrama de flujo
Conector:
símbolo utilizado para expresar conexión de DF
A
A
Líneas de flujo o dirección:
Expresan la dirección del flujo del diagrama
Tema 2: Resolución de problemas
y algoritmos
Reglas para construcción de
diagramas de flujo
1. Todo diagrama de flujo debe tener un inicio y un fin.
2. Las líneas utilizadas para indicar la dirección de flujo del
diagrama deben ser rectas, verticales y horizontales. No
deben ser inclinadas y tampoco se deben cruzar.
3. Las líneas utilizadas para indicar la dirección de flujo del
diagrama deben estar conectadas.
Tema 2: Resolución de problemas
y algoritmos
Reglas para construcción de
diagramas de flujo
4. El diagrama de flujo debe ser construido de arriba
hacia abajo (top-down)
5. La notación utilizada en el diagrama de flujo debe ser
independiente del lenguaje de programación. La
solución presentada en el D.F. puede escribirse
posterior y fácilmente en cualquier lenguaje de
programación
6. Es conveniente cuando realizamos una tarea compleja
poner comentarios que expresen o ayuden a entender
lo que hicimos
Tema 2: Resolución de problemas
y algoritmos
Reglas para construcción de
diagramas de flujo
7. Si el DF requiere más de una hoja para su construcción,
debemos utilizar los conectores adecuados y enumerar
las páginas convenientemente.
A
A
8. No puede llegar más de una línea a un símbolo
Tema 2: Resolución de problemas
y algoritmos
Reglas para construcción de
diagramas de flujo
SI NO SI NO
¿i>10? ¿i>10?
Tema 2: Resolución de problemas
y algoritmos
Reglas para construcción de
diagramas de flujo
9. Utilizar sólo los bloques siguientes para
realizar DF.
Estructura secuencial:
Proceso 1
Proceso 2
Tema 2: Resolución de problemas
y algoritmos
Reglas para construcción de
diagramas de flujo
Estructura selectiva
SI NO
¿Condición?
Opción 1 Opción 2
Tema 2: Resolución de problemas
y algoritmos
Reglas para construcción de
diagramas de flujo
Estructura iterativa:
salida en cola (el cuerpo del bucle se ejecuta al menos
una vez)
Proceso iterativo o bucle:
- Cuerpo del bucle: Cuerpo del bucle
Conjunto de operaciones
que se repiten
- Condición de salida o
parada
SI NO
¿Condición?
Tema 2: Resolución de problemas
y algoritmos
Reglas para construcción de
diagramas de flujo
Estructura iterativa:
salida en cabeza
NO
¿Condición?
SI
Cuerpo del bucle
Tema 2: Resolución de problemas
y algoritmos
Ejemplo 1:
algoritmo con estructura secuencial
Problema: Inicio
Leer dos números enteros y escribir la suma.
Leer a
Leer b
suma a+b
Escribir suma
Tema 2: Resolución de problemas Fin
y algoritmos
Ejemplo 2:
algoritmo con estructura selectiva
Problema: Inicio
Hallar el valor absoluto de un número x.
SI NO
¿x>=0?
r x r x
Fin
Tema 2: Resolución de problemas
y algoritmos
Índice
1. Objetivo
2. Definiciones: Algoritmo y programa
3. Tipos de programación: Programación estructurada
4. Herramientas para la realización de un algoritmo:
4.1. Pseudocódigo
4.2. Diagrama de Flujo
5. Tabla de Objetos
6. Programación estructurada: estructuras de control
7. Traza de un programa
Tema 2: Resolución de problemas
y algoritmos
5.1. Objeto: identificador, valor y
tipo
Un objeto (dato), es información que utiliza un
algoritmo para resolver un problema.
Inicio
Ejemplo:
SI NO
¿x>=0?
x: dato de entrada. Variable.
Número entero
r: dato de salida. Variable. r x r x
Número entero
0: constante entera
Fin
Tema 2: Resolución de problemas
y algoritmos
Conceptos fundamentales
Los datos a procesar por una computadora, deben
almacenarse en casillas o celdas de memoria para su
posterior utilización.
Estas casillas de memoria tienen un nombre que permite
su identificación: Identificador, nombre o etiqueta
El valor de las celdas de memoria puede se variable o
constante
Tema 2: Resolución de problemas
y algoritmos
Constantes
Las constantes son datos que no cambian durante la
ejecución
Para nombrar las constantes utilizamos los identificadores
Existen tantos tipos de constante como tipos de datos
Tema 2: Resolución de problemas
y algoritmos
Variables
Las variables son objetos que pueden cambiar su valor
durante la ejecución
Para nombrar las variables utilizamos los identificadores
Existen tantos tipos de variables como tipos de datos
Los nombres, identificadores de las constantes y variables
deben ser representativos de la función que cumplen el
algoritmo. Ej: suma, contador, media
Tema 2: Resolución de problemas
y algoritmos
Tipos de datos
Simples:
Ocupan sólo una casilla de memoria
Con un identificador se hace referencia a un único valor a la vez
Una única letra, un único valor real…
Complejos o Estructurados:
Tiene varios componentes, cada uno de estos componentes puede
ser a su vez un dato simple.
Con un identificador se hace referencia a un grupo de celdas de
memoria, es decir, se usa un único identificador para un conjunto de
valores
Vectores y matrices (de enteros, reales, lógicos, caracteres)
Tema 2: Resolución de problemas
y algoritmos
Tipos de datos simples
Enteros: se utilizan para representar números enteros, positivos o
negativos. Ej: 128, -45,…
Reales: se utilizan para representar números reales, positivos o
negativos. Ej: 7.5, -37.675,…
Lógicos: se utilizan para representar valores lógicos o booleanos.
Son datos que sólo pueden tomar dos valores: verdadero o falso
VoF
Caracteres:
Letras del alfabeto mayúsculas o minúsculas (son diferentes)
Caracteres numéricos: dígitos del 0 al 9
Caracteres especiales: signos de puntuación, guiones,
paréntesis, asteriscos…
El valor se indica entre comillas simples: ‘ ‘
Ej.: x <- ‘a’, letra <- ‘1’, x <- 1
Tema 2: Resolución de problemas
y algoritmos
Objeto: Identificador, valor y tipo
Identificador, nombre o etiqueta:
Cada objeto tiene un único nombre que lo identifica.
Valor:
El valor del objeto puede variar durante el algoritmo
(variable) o permanecer constante (constante).
Tipo:
Los objetos pueden ser de diferentes tipos (tipos simples y
complejos)
Tema 2: Resolución de problemas
y algoritmos
5.2. Tabla de objetos
Una tabla de objeto es una tabla que refleja todos los
objetos existentes en un algoritmo.
En la tabla de objetos se indica el identificador, nombre o
etiqueta, el valor (constante o variable) y el tipo de todos
los objetos que aparecen en un algoritmo.
Objeto Identificador Valor Tipo
o nombre
Tema 2: Resolución de problemas
y algoritmos
Ej.:Tabla de objetos normalizada I.
Problema: leer dos números enteros y escribir la suma.
Objeto Nombre Valor Tipo Inicio
Primer a Variable Entera
Leer a
sumando
Segundo b Variable Entera
sumando
Leer b
Resultado de la suma Variable Entera
suma
suma a+b
Escribir suma
Tema 2: Resolución de problemas Fin
y algoritmos
Ej.: Tabla de objetos normalizada II.
Problema: Hallar el valor absoluto de un número x.
Inicio
Objeto Nombre Valor Tipo
SI NO
Dato x Variable Entera ¿x>=0?
entrada
Cero 0 Constante Entera r x r x
Resultado, r Variable Entera
valor
absoluto Fin
Tema 2: Resolución de problemas
y algoritmos
5.3. Operadores y Expresiones
Las siguientes operaciones y expresiones son las únicas
permitidas en la realización de un algoritmo:
a) Operaciones aritméticas
b) Operaciones lógicas
c) Operaciones relacionales
d) Asignación
e) Expresiones
Tema 2: Resolución de problemas
y algoritmos
a) Operaciones aritméticas
Permiten operar con valores enteros o reales para obtener
un resultado también entero o real
Para poder realizar operaciones aritméticas necesitamos
operadores aritméticos
Tema 2: Resolución de problemas
y algoritmos
a) Operaciones aritméticas
Operación Operador Ejemplo
Suma + a+b
Resta - a-b
Unario - (cambio de signo) -a
Multiplicación * a*b
División / a/b
Módulo (resto de % a%b
división entera)
¡Definida solo para operandos enteros!
Tema 2: Resolución de problemas
y algoritmos
a) Operaciones aritméticas
La división entera es diferente
a la división de reales Ej: Para a y b enteros con valores: a=9 y b=2
Para c y d reales con valores: c=9 y d=2
Si los dos operandos son
enteros el resultado es un Operación Resultado Tipo
entero
Resultado
Si los dos operandos son a/b 4 entero
reales el resultado es un real
c/d 4.5 real
Si uno de los dos operandos
es real el resultado es real a/d 4.5 real
a%b 1 entero
Tema 2: Resolución de problemas
y algoritmos
Precedencia o prioridad
La precedencia o prioridad de un operador determina el
orden de aplicación de los operadores de una expresión.
Si tenemos en una expresión más de un operador,
debemos aplicar primero el de mayor prioridad, resolver
esa operación y así sucesivamente.
El operador () es un operador asociativo que tiene la
prioridad más alta.
Tema 2: Resolución de problemas
y algoritmos
Precedencia operadores aritméticos
Se evalúan primero las expresiones entre paréntesis. Si
las subexpresiones se encuentran anidadas por paréntesis,
primero se evalúan aquéllas que se encuentran en el último
nivel de anidamiento.
Los operadores aritméticos se aplican teniendo en cuenta
la precedencia y de izquierda a derecha.
Operador
- MAYOR PRIORIDAD
*,/,%
+, -
MENOR PRIORIDAD
Tema 2: Resolución de problemas
y algoritmos
b) Operaciones lógicas
Permiten operar con valores lógicos para obtener un
resultado también lógico
Operación Operador Ejemplo
MAYOR P.
Negación NO (not) NO a
Conjunción Y (and) A Y b
Disyunción O (or) AOb
MENOR P.
Tema 2: Resolución de problemas
y algoritmos
b) Operaciones lógicas
NO a
Valor a Resultado
V F
F V
aYb aOb
Valor a Valor b Resultado Valor a Valor b Resultado
V V V V V V
V F F V F V
F V F F V V
F F F F F F
Tema 2: Resolución de problemas
y algoritmos
c) Operaciones relacionales
Permiten comparar dos datos del mismo tipo para obtener
un resultado lógico: V o F
Los datos pueden ser variables o constantes de tipo
numérico o carácter
Tema 2: Resolución de problemas
y algoritmos
c) Operaciones relacionales
Operación Operador Ejemplo Resultado
Igual que = ‘h’=‘H’ F
Distinto de <> ‘a’<>’b’ V
Menor que < 7<15 V
Mayor que > 22.5>11.6 V
Menor o igual que <= 15<=15 V
Mayor o igual que >= 35>=40 F
Tema 2: Resolución de problemas
y algoritmos
d) Asignación
Sintaxis: ‘variable’<- ‘expresión’
Primero se evalúa la expresión
Después se asigna el valor a la variable
El valor anterior de la variable se pierde/olvida
Tema 2: Resolución de problemas
y algoritmos
Precedencia operadores: aritméticos,
lógicos, relacionales y asignación
Operadores MAYOR PRIORIDAD
()
NO, -
*, /,%
+, -
<, <=, >, >=
=, <>
Y
O
<- Asignación MENOR PRIORIDAD
Tema 2: Resolución de problemas
y algoritmos
e) Expresiones
Una expresión es cualquier combinación de operadores
variables y constantes.
Las expresiones sirven para manipular los objetos.
Una expresión devuelve un valor de un tipo determinado
Ejemplos:
a+23*b-z
NO x
a>b Y a<c
(z <= 8) Y NO (k - 6*h)
Tema 2: Resolución de problemas
y algoritmos
e) Ejemplos expresiones
9 7 * 8 36 / 5 2 * 5 7.8 / 4 2.5 / 6
9 56 36 / 5 10 7.8 / 4 2.5 / 6
9 56 7 ( división entera ) 10 1.95 0.41
65 7 11.95 0.41
58 F
8% 2 * 3 1
8% 6 1
2 1
3
Tema 2: Resolución de problemas
y algoritmos
Operadores aritméticos, lógicos y
relacionales
NOTA:
Los operadores aritméticos, lógicos y relacionales
mostrados en las transparencias son los únicos
permitidos para la realización de algoritmos.
Excepto en casos particulares que se indique lo
contrario
Tema 2: Resolución de problemas
y algoritmos
6. Estructuras de control de flujo
(Programación Estructurada)
Bloque/sentencia de asignación
Bloque/sentencia de entrada
Bloque/sentencia de salida
Inicio, fin y módulo
Estructuras de control:
Secuencial
Selectiva
Iterativa
Tema 2: Resolución de problemas
y algoritmos
Bloque/sentencia de asignación
Sintaxis: ‘variable’<- ‘expresión’
Símbolo
x x y
En cada símbolo de proceso de DF pueden introducirse varias
asignaciones.
Al llegar el flujo a un bloque de asignaciones se realizan cada
una de ellas, en el orden en el que aparecen y posteriormente
se activa el bloque indicado por la flecha saliente.
Tema 2: Resolución de problemas
y algoritmos
Bloque/sentencia de entrada
Sintaxis: Leer ‘variable’
Se recibe un único valor (por teclado)
Se asigna el valor a la variable
El valor anterior de la variable se pierde/olvida
Símbolo
En cada símbolo de entrada de DF pueden introducirse varias
lecturas.
Leer N Leer a, b
Al llegar el flujo a un bloque de entrada se realizan todas las
lecturas y posteriormente se activa el bloque indicado por la
flecha saliente.
Tema 2: Resolución de problemas
y algoritmos
Bloque/sentencia de salida
Sintaxis: Escribir ‘variable’
Se devuelve el valor de la variable
Se escribe en pantalla
Forma de devolver resultados de un algoritmo*
Símbolo
En cada símbolo de salida de DF pueden introducirse varias escrituras.
Al llegar el flujo a un bloque de salida se realizan todas las escrituras y
posteriormente se activa el bloque indicado por la flecha saliente
Escribir x Escribir a, b
Tema 2: Resolución de problemas
y algoritmos
Inicio, fin y módulo
nombre
Inicio
Fin
nombre
Módulo:
la operación es realizada por un bloque (DF) que
se detalla en otro lugar.
No afecta a la codificación. nombre
Tema 2: Resolución de problemas
y algoritmos
Ejemplo: Leer un número entero x y calcular y=|x|3.
Escribir el resultado.
Inicio
Leer x
Objeto Nombre Valor Tipo
Dato entrada x Variable Entera
SI NO
¿x>=0?
Cero 0 Constante Entera
|x| r Variable Entera r x r x
Resultado, y Variable Entera
|x|3 y r *r *r
Escribir y
Tema 2: Resolución de problemas Fin
y algoritmos
Ejemplo: Leer un número entero x y calcular y=|x|3.
Escribir el resultado.
Inicio
Leer x
Módulo
SI NO
¿x>=0?
Valor absoluto
r x r x
y r *r *r
Escribir y
Fin
Tema 2: Resolución de problemas
y algoritmos
Ejemplo: Leer un número entero x y calcular y=|x|3.
Escribir el resultado.
Inicio
Inicio:
Valor absoluto
Leer x
SI NO
¿x>=0?
Valor absoluto
r x r x
y r *r *r
Fin:
Escribir y Valor absoluto
Comparten TODAS las variables.
Fin El módulo se puede usar más de una vez en el mismo
algoritmo
Tema 2: Resolución de problemas
y algoritmos
Estructuras de control
NO
Cuerpo del bucle ¿Condición?
SI NO
¿Condición?
Proceso 1
SI
Opción 1 Opción 2 SI NO
¿Condición? Cuerpo del bucle
Proceso 2
Secuencial Selectiva Iterativa I Iterativa II
(salida en cola) (salida en cabeza)
Tema 2: Resolución de problemas
y algoritmos
Estructura secuencial: Ejemplo 1
Problema: leer dos números reales Inicio
y escribir la suma.
Leer a
Leer a, b
Diagrama de Flujo y Tabla de Objetos:
Objeto Nombre Valor Tipo Leer b
Dato a Variable Real
entrada
Dato b Variable Real r a+b
entrada
Resultado, r Variable Real
Escribir r
la suma
Fin
Tema 2: Resolución de problemas
y algoritmos
Estructura secuencial: Ejemplo 2
Problema: leer dos números Inicio
reales y escribir la media
aritmética. Leer x
Diagrama de Flujo y Tabla de Objetos:
Objeto Nombre Valor Tipo
Leer y
Dato x Variable Real
entrada
Dato y Variable Real
entrada r (x y) / 2
Dos 2 Constante Entera
Resultado, r Variable Real
Escribir r
la media
aritmética
Fin
Tema 2: Resolución de problemas
y algoritmos
Estructura condicional: Ejemplo 1
Ejercicio: Hallar el valor absoluto de un
Inicio
número x.
Diagrama de Flujo y Tabla de Objetos: SI NO
Objeto Nombre Valor Tipo ¿x>=0?
Dato x Variable Entera
entrada r x r x
Cero 0 Constant Entera
e
Resultado, r Variable Entera
valor Fin
absoluto
Tema 2: Resolución de problemas
y algoritmos
Estructura condicional: Ejemplo 2
Ejercicio:
Leer un número real del teclado.
Calcular el valor de q, sabiendo que si el valor leído se encuentra en el
intervalo (0,10], el resultado q toma el valor de uno, en caso contrario
toma el valor de cero.
Escribir el resultado.
Tema 2: Resolución de problemas
y algoritmos
Estructura condicional: Ejemplo 2
Diagrama de Flujo y Tabla de Objetos: Inicio
Objeto Nombre Valor Tipo
Leer x
Dato x Variable Real
entrada
Cero 0 Constante Entera
SI ¿x>0 y NO
Uno 1 Constante Entera
x<=10?
Diez 10 Constante Entera
Resultado q Variable Entera q 1 q 0
Escribir q
Fin
Tema 2: Resolución de problemas
y algoritmos
Estructura iterativa. Salida en cola.
Ejercicio: Leer tres números reales y escribirlos Inicio
i 1
Diagrama de Flujo y Tabla de Objetos:
Objeto Nombre Valor Tipo
Leer x
Dato x Variable Real
Escribir x
Uno 1 Constante Entera
Tres 3 Constante Entera i i 1
Contador i Variable Entera
SI
¿i<=3?
NO
Tema 2: Resolución de problemas Fin
y algoritmos
Estructura iterativa. Salida en cola:
Ejercicio: Leer tres números reales y escribirlos
Inicio
i 1
Cuerpo del bucle
Leer x
Cuerpo del
Escribir x
bucle SI NO
¿Condición?
i i 1
Condición de
SI
¿i<=3?
salida o parada
NO
Tema 2: Resolución de problemas
Fin y algoritmos
Estructura iterativa. Salida en cabeza
Ejercicio: Leer tres números reales y escribirlos
Inicio
i 1
NO
Condición de
NO
¿i<=3? salida o parada ¿Condición?
SI SI
Leer x
Cuerpo del bucle
Cuerpo del
Escribir x
bucle
i i 1
Tema 2: Resolución de problemas
Fin
y algoritmos
PROGRAMACIÓN NO ESTRUCTURADA:
Leer tres números reales y escribirlos
Inicio
i 1
NO
Cuerpo del bucle ¿Condición?
Leer x
SI
NO SI NO
¿Condición? Cuerpo del bucle
¿i<=3?
SI
Escribir x
No se ha usado ninguna de estas estructuras
i i 1
Fin
Tema 2: Resolución de problemas
y algoritmos
Estructuras de control anidadas
Las estructuras de control se pueden anidar
Dentro de una estructura selectiva puede haber otra
estructura del mismo tipo o una estructura iterativa.
En el cuerpo del bucle de una estructura iterativa puede
haber otra estructura condicional o iterativa (bucles
anidados).
Tema 2: Resolución de problemas
y algoritmos
Estructuras de control anidadas
Diseñar un algoritmo para calcular y escribir el cuadrante
al que pertenece un punto del plano cuyas coordenadas
(x, y) se proporcionan.
El resultado ha de ser un número entero r de 1 a 4
Nota: el punto (0,0) se excluye como dato de entrada.
Tema 2: Resolución de problemas
y algoritmos
Estructuras de control anidadas
Inicio
Leer x, y
SI NO
¿x>0?
NO
SI SI NO
¿y>0? ¿y>0?
r 1 r 4 r 2 r 3
Escribir r
Fin
Tema 2: Resolución de problemas
y algoritmos
Estructuras de control anidadas
Inicio
Objeto Nombre Valor Tipo
Dato x Variable Real Leer x, y
Dato y Variable Real SI
¿x>0?
NO
Cero 0 Constante Entera NO
SI SI NO
¿y>0? ¿y>0?
Uno 1 Constante Entera
r 1 r 4 r 2 r 3
Dos 2 Constante Entera
Tres 3 Constante Entera
Cuatro 4 Constante Entera Escribir r
Resultado r Variable Real Fin
Tema 2: Resolución de problemas
y algoritmos
TIPOS DE DATOS EN C (ANSI)
Tipo Tamaño Rango
en bits
char 8 -127a 127
unsigned char 8 0 a 255
signed char 8 -127 a 127
int 16 -32767 a 32767
unsigned int 16 0 a 65535
signed int 16 -32767 a 32767
short int 16 -32767 a 32767
unsigned short int 16 0 a 65535
signed short int 16 -32767 a 32767
long int 32 -2147483647 a 2147483647
signed long int 32 -2147483647 a 2147483647
unsigned long int 32 0 a 4294967295
float 32 seis dígitos de precisión
double 64 diez dígitos de precisión
long double 64
Tema 2: Resolución diez dígitos de precisión
de problemas
y algoritmos