Está en la página 1de 67

Diseño de Algoritmos

Tema 2: Algoritmos y seudocódigo

Presenta: David Martínez Torres


Universidad Tecnológica de la Mixteca
Instituto de Computación
Oficina No. 37
dtorres@mixteco.utm.mx
Contenido

1. Definiciones
2. Tipos de datos
3. Definiciones de variables y constantes
4. Estructuras de control
1. Secuenciales
2. Selectivas
3. Repetitivas

2
Introducción

Problema

Análisis Construcción Verificación


profundo del del del
problema algoritmo algoritmo

Pasos para resolver un problema, reeditado de [2]

3
Introducción - Análisis y modelado de un problema

Algoritmo

Datos Procesamiento Impresión


de de los datos de
entrada resultados

Secciones de un algoritmo, reeditado de [2]

4
1. Definiciones - algoritmo

Un algoritmo es un conjunto Un algoritmo es un método para resolver


de pasos, procedimientos o un problema mediante una serie de pasos
acciones que nos permiten precisos, definidos y finitos [2].
alcanzar un resultado o
resolver un problema [1]

En la vida diaria aplicamos


algoritmos de manera
inconsciente: al vestirse, al
abrir la puerta, al darse un
baño, al ir a la escuela, al subir
al automóvil, al cambiar la
llanta de un automóvil, etc.
5
1. Definiciones - Propiedades de los algoritmos

Las propiedades o características que debe


cumplir un algoritmo son [2,3]:

1. Preciso: cada paso debe indicar de


manera precisa que se debe hacer.
2. Definido: Si se prueba con las mismas
entradas debe producir los mismos
resultados.
3. Finito: Debe tener un número
determinado de pasos; debe producir un
resultado en un tiempo finito.

6
1. Definiciones - Pseudocódigo

Cuando se tiene que resolver un problema de tipo


algorítmico, es decir, que tiene una solución determinística,
primero se desarrolla el algoritmo, y después, se representa
en un pseudocódigo o en un diagrama de flujo.

Un pseudocódigo es un lenguaje
independiente de cualquier
lenguaje de programación. Esto es
importante porque el solucionador
se concentra en la lógica, en las
estructuras de datos, en las
estructuras de control y no en las
reglas de un lenguaje de
programación específico.
7
1. Definiciones - Pseudocódigo

Normalmente el pseudocódigo no puede


ser ejecutado por una computadora,
excepto en la actualidad, si se usa una
herramienta de simulación como PSeInt

Una vez que domine estas


técnicas, podrá transportar
fácilmente a un lenguaje
de programación como C,
Pascal, Java, etc.

8
1. Definiciones - Pseudocódigo
En la siguiente tabla se representan las palabras simbólicas del
pseudocódigo, de forma similar y en el mismo orden, de los
símbolos del diagrama de flujo.

9
2. Conceptos fundamentales: Tipos de datos

1. Tipos de datos. Necesarios para representar


los datos a procesar y se clasifican en:
a) simples: enteros, reales, caracteres, y
booleanos.
b) estructurados: arreglos, cadena de
caracteres y registros.

identificador identificador

Dato Dato
simple estructurado

10
2. Conceptos fundamentales: Tipos de datos

Ejemplos de datos:
Enteros: 128, 1500, -200, 8432, -14321
Reales: 6.4, 138.25, -32.453, 130.65, -8729.32
Carácter: letras del abecedario, dígitos, símbolos
especiales(#,$,^, *,%,/,!,+,-, etc). Cada
carácter debe estar cerrado entre
apóstrofe.
„a‟, B, „$‟, „9‟, „-‟
Cadena de caracteres: “abcd”, “Pedro”,
“5326745”|

11
3. Conceptos fundamentales: Identificadores,
constantes y variables

Identificadores: representan los nombres de


variables, constantes y funciones donde
almacenan los datos.
Constantes: son identificadores que su valor no
cambia durante la ejecución de un programa.
Ejemplo PI 3.1416, TAMANIO 10,
NOMBRE “PESO”
Variables: son identificadores que su valor
normalmente cambia durante la ejecución de
un programa. Pueden ser de los tipos que
estudiaron en la diapositiva anterior.

12
3. Conceptos fundamentales: Operaciones aritméticas

13
3. Conceptos fundamentales: Jerarquía de los
operadores aritméticos

14
3. Conceptos fundamentales: Operadores relacionales

15
3. Conceptos fundamentales: Operadores lógicos

16
3. Conceptos fundamentales: Bloque de asignación

Un bloque de asignación La asignación es una operación destructiva.


se utiliza para asignar valores Esto es, si una variable tenía un valor
o expresiones a una variable. asignado, éste se destruye, conservando el
nuevo valor.
variable  expresión o valor
Suma  0

Una expresión puede ser


aritmética o lógica, o una
constante o una variable.

17
4. Estructuras de control

Las estructuras de
control indican el flujo o
camino estándar que debe Se clasifican en: estructuras de
seguir un proceso de control secuencial, selectivas y
solución de un problema repetitivas.

18
4.1 Estructura de control secuencial

La estructura de control
secuencial, es la más simple
de todas. Se utiliza cuando se Representación en algoritmo.
tiene que ejecutar una acción 1
instrucción tras otra, sin tener acción 2
que evaluar una expresión. …
acción n

Ejemplo1

1. suma  0
2. Imprimir “Teclea un numero”
3. Leer en variable num
4. suma  suma + num

19
4.1 Estructura de control secuencial
Ejemplo 4.1.1 A continuación se presenta el primer
pseudocódigo. Supongamos que las variables i, acum y j
son de tipo entero, rea y sum de tipo real, car de tipo
caracter y band de tipo booleano. Considerar que se tienen
que realizar las siguientes asignaciones.

Solo por Algoritmo operacionesAsignación


esta ocasión 1. i0
y en este 2. ii+1
ejemplo se 3. acum  0
anota el 4. j  52 / 3
número de 5. car  „a‟
línea u 6. acum  j / i
operación 7. rea  acum / 3
de 8. band  (8 > 5) y (15 <23 )
asignación 9. sum  acum * 5 / j2
10. ii*3
11. rea  rea / 5
12. band  band o (i = j)
13. i  rea
14. car  j
FinAlgoritmo 20
4.1. Estructura de control secuencial: Prueba de
escritorio del ejemplo anterior.

enteros: i,
acum, j
caracter: car
real: rea, sum
boolean: band

Realiza la
prueba de
escritorio en tu
cuaderno y
compara tus
resultados.

21
4.1 Estructura de control secuencial
Recordamos algunas palabras que utilizaremos para escribir pseudocódigos.
En las siguientes diapositivas se presentan ejemplos de pseudocódigos que
usan estructuras de control secuencial y posteriormente se solicita realice
algunos ejercicios.

22
4.1 Estructura de control secuencial
A continuación se presenta el segundo
Ejemplo 4.1.2. Dado por teclado seudocódigo, donde se identifican algunas
tres caracteres, imprímalos en palabras clave: Algoritmo, Escribir, Leer,
orden inverso. Realice el análisis, Fin o FinAlgoritmo.
pseudocódigo y una prueba de Atención nuevamente con el uso de la
escritorio. sangría.

Análisis. Así mismo, todo


pseudocódigo tiene
Datos de entrada: ejemplo x, y, z
un nombre.
variables a,b,c: caracter
Proceso
no aplica.
Salida:
imprimir z, y, x.

23
Ejemplo 4.1.3. Dado por teclado un Pseudocódigo
número entero, calcular e imprimir el
cuadrado y el cubo del número.

Realice el análisis, pseudocódigo y una


prueba de escritorio.

Análisis.
Datos de entrada:
variables num: entero
Proceso
variables cuadrado, cubo: entero
cuadrado=num*num
cubo=num*num*num
Salida:
imprimir cuadrado= 9, Nota: el carácter <- representa la
cubo = 27 instrucción de asignación(←) vista
anteriormente.
24
4.1 Estructura de control secuencial:
Prueba de escritorio

A continuación se presentan dos


corridas de pruebas de escritorio
del pseudocódigo anterior.

25
4.1 Estructura de control secuencial

 Para los siguientes ejercicios, desarrollar análisis,


pseudocódigo y prueba de escritorio.
1. Dado por teclado la matrícula y 4 calificaciones de su
primera evaluación, calcule e imprima el promedio y la
matrícula.
2. Calcular el área de un trapecio, dado por teclado base
mayor, base menor y altura. A=(B+b)h/2.
3. Dado por teclado el radio y la altura de un cilindro,
calcule, e imprima el volumen correspondiente.
V=(pi*r2)h

26
4.1 Estructura de control secuencial

4. Dado por teclado una cantidad en pesos y el tipo de


cambio de un dólar, calcule la conversión e imprima la
cantidad correspondiente en dólares.
5. Dado por teclado el peso de un producto en gramos,
calcule e imprima el peso en kilogramos.
6. Suponga que le prestan un dinero x a un porcentaje y.
Calcule e imprima los intereses que tiene que pagar en
un año.
7. Le solicitan que vaya a comprar x litros de gasolina,
donde cada litro cuesta y pesos. Calcule e imprima el
total a pagar.

27
4.2 Estructura de control selectiva

Esta toma de decisión se basa en la


Esta estructura de control se evaluación de una o más condiciones que
utiliza en la solución de señalarán como alternativa o consecuencia,
problemas donde se necesite la rama a seguir.
tomar una decisión.

En ocasiones la toma de
decisiones se realiza en
cascada. Es decir, se toma una
decisión, se marca la rama
correspondiente a seguir, se
vuelve a tomar otra decisión y
así sucesivamente.
28
4.2 Estructura de control selectiva

Estas estructuras selectivas se clasifican en :

1. Si Entonces (selectiva simple)


2. Si Entonces / Sino (selectiva doble)
3. Si múltiple (selectiva múltiple)

Cuando a las estructuras


selectivas se aplican en
cascada, se pueden combinar
las estructuras anteriores.

29
4.2.1 Selectiva simple (si entonces)
Esta estructura permite que el flujo del programa siga un
camino específico si se cumple una condición o un
conjunto de condiciones.

Si al evaluar la condición (o condiciones) el resultado es


verdadero, entonces se ejecuta(n) cierta(s)
operación(es). Luego se continúa con la secuencia del
programa.

Poner especial atención en la sangría que se utiliza


cuando la condición es verdadera o falsa(ejemplos que
siguen).

Pseudocódigo
La sangría es útil
para identificar Si condición entonces
que operaciones hacer operación 1
ejecutar en caso …
verdadero o falso hacer operación n
FinSi 30
4.2.1 Selectiva simple (si entonces).

Pseudocódigo
Ejemplo 4.2.1.1. Dada una
calificación por teclado,
escriba "aprobado" en
caso que la calificación sea
mayor o igual que 6.

Realice el análisis,
pseudocódigo y prueba
de escritorio.

Después mejorar la
condición, donde la
calificación aprobatoria Repasar operadores
sea mayor o igual a 6 y relacionales y operadores
menor o igual a 10. lógicos [diapositivas 15 y 16]
31
4.2.1 Selectiva simple (si entonces). Prueba de
escritorio
Rehacer todos
los ejemplos en
su cuaderno,
incluida la
prueba de
escritorio para
que tenga un
mejor
entendimiento.

32
4.2.1 Selectiva simple (si entonces)

Ejemplo 4.2.1.2. Dado Pseudocódigo


un sueldo de un
trabajador por teclado,
calcule un aumento del
15% si su sueldo es
menor a $1000, e
imprima en este caso el
nuevo sueldo.

Realice el análisis,
pseudocódigo y
prueba de escritorio.

33
4.2.2 Selectiva doble (si entonces / sino)
Esta estructura de control permite que el flujo del
algoritmo se bifurque por dos ramas diferentes en
el punto de la toma de decisión.

Si al evaluar la condición, resulta verdadera,


entonces se sigue un camino específico y se
ejecutan ciertas operaciones. En caso que la
condición sea falsa, se sigue otro camino y se
ejecutan otras operaciones.
condición verdadera,
Pseudocódigo ejecuta operación 1

Si condición entonces
hacer operación 1
Sino Si condición fue
hacer operación 2 falsa, ejecuta
FinSi operación 2

34
4.2.2 Selectiva doble (si entonces / sino)

Ejemplo 4.2.2.1 Dada una


calificación por teclado, Pseudocódigo
escriba "aprobado" en
caso que la calificación
sea mayor o igual que 6,
en otro caso imprima
"reprobado".

Realice el análisis,
pseudocódigo y prueba
de escritorio.

Les recuerdo aplicar


sangría en todos sus
programas
35
4.2.2 Selectiva doble (si entonces / sino)

Pseudocódigo
Ejemplo 4.2.2.1 Dado un
sueldo de un trabajador
por teclado, calcule un
aumento del 15% si su
sueldo es menor a $1000
y 12% en caso contrario.
Imprima el nuevo sueldo
del trabajador.

Realice el análisis,
pseudocódigo y
prueba de escritorio.

36
4.2.2 Selectiva doble (si entonces / sino)
Pseudocódigo

Ejemplo 4.2.2.3 Dado


tres números por
teclado encontrar e
imprimir el mayor de
ellos.

Realice el análisis,
pseudocódigo y prueba
de escritorio.

37
4.2.3 Selectiva múltiple (si múltiple)

Permite que el flujo del algoritmo se bifurque


por varias ramas en el punto de la toma de
decisión, esto en función del valor que tome el
selector (entero o carácter). Así, si el selector
toma:
el valor 1, se ejecutará la acción 1,
si toma el valor 2, se ejecutará la acción 2,
si toma el valor N se realizará la acción N.
Se continuará con el flujo normal del algoritmo,
realizándose la acción N+1

38
4.2.3 Selectiva múltiple (si múltiple)


SegunSea selector
caso 1: hacer acción 1
caso 2: hacer acción 2
.
.
.
caso N: hacer acción N
SinOpcion: hacer acción 1 sinOpción
FinSegunSea
Hacer acción N+1

39
4.2.3 Selectiva múltiple (si múltiple)

Ejemplo 4.2.3.1 Dado por teclado los datos


categoría y el sueldo de un trabajador, calcule
el aumento correspondiente teniendo en
cuenta la siguiente tabla. Imprima la categoría
del trabajador y su nuevo sueldo.

Realice el análisis, pseudocódigo y prueba de


escritorio.
40
4.2.3 Selectiva múltiple (si múltiple)

Ejemplo 4.2.3.2 Dado por teclado los


datos categoría y el sueldo de un
trabajador, calcule el aumento
correspondiente teniendo en cuenta la
siguiente tabla. Imprima la categoría del
trabajador y su nuevo sueldo.

Realice el análisis, pseudocódigo y


prueba de escritorio.
41
4.2.4 Selectivas en cascada (anidadas) [2]

En muchos casos en la solución de problemas,


después de tomar una decisión y marcar el
camino a seguir, es necesario tomar otra
decisión y así sucesivamente.

Selectiva doble

42
4.2.4 Selectivas en cascada (anidadas) [2]

Selectiva doble

Selectiva doble

43
4.2.4 Selectivas en cascada (anidadas) [2]
Selectiva doble

Selectiva
múltiple

Selectiva simple

Selectiva doble

Selectiva simple

44
4.2.4 Selectivas en
cascada (anidadas).

Ejemplo 4.2.4.1 Dado


por teclado tres
números enteros
diferentes, imprimir
los números en orden
descendente.

Realice el análisis,
pseudocódigo y
prueba de escritorio.

45
Ejercicios de estructuras selectivas

 Para cada uno de los siguientes ejercicios realice


su análisis, pseudocódigo y una prueba de
escritorio.

1. Dado por teclado como datos los valores enteros P y Q,


determine si los mismos satisfacen la siguiente expresión:
P3+Q4-2*P2 < 680

2. Dado por teclado un número entero, determine e imprima


si el número es positivo o negativo.

46
Ejercicios de estructuras selectivas

3. Dado por teclado un número determine e imprima si es


par o impar, para esto apóyese de la operación modulo
que obtiene el residuo de la operación.
4. Dado por teclado la matrícula y 5 calificaciones de un
alumno, calcule e imprima el promedio y la palabra
"aprobado" si el alumno tiene un promedio mayor o igual
que 6, y la palabra "no aprobado" en caso contrario.
5. Dado por teclado tres números enteros, determine si
están en orden decreciente.

47
Ejercicios de estructuras selectivas

6. Dado por teclado el valor de los coeficientes a, b, c de la


expresión que resuelve una ecuación de segundo grado
, encuentre el valor de las raíces x1, x2,
mediante el calculo del discriminante D=b2-4ac, si el
discriminante es >=0 imprima el valor correspondiente a
las raíces son reales, en otro caso, imprimir "las raíces
son imaginarias".

48
Ejercicios de estructuras selectivas

7. En la compra de artículos, dependiendo del monto le aplican un


descuento:
Si el monto es menor que $500, no hay descuento.
Si el monto se encuentra entre $500 y menor que $1000, el 5%.
Si el monto se encuentra entre $1000 y menor que $7000, el 11%.
Si el monto se encuentra entre $7000 y menor que $15000, el 18%.
Si el monto es mayor o igual a $15000, el 25%.

49
Ejercicios de estructuras selectivas

8. Realizar las operaciones básicas con 2 números leídos por


teclado. Considere que la división por cero es una
indeterminación.
9. Dado por teclado el número del 1 al 7, que imprima el
correspondiente día de la semana (Ej.: 1. Lunes; 2. Martes;
etc). Si ingresa un número fuera del rango, deberá imprimir
el mensaje "Error… valor fuera de rango".
10. Dado por teclado dos números reales y el símbolo de
una operación básica (+, -, *,/), imprima el resultado
correspondiente. Si el símbolo no es correcto, imprima el
mensaje "Error en símbolo".

50
4.3 Estructuras de control repetitivas

Todo ciclo debe terminar de


Estas estructuras se utilizan ejecutarse después de un número
en algoritmos donde algunas finito de veces, por tanto, en cada
instrucciones se deben iteración se debe evaluar las
ejecutar un número repetido condiciones necesarias para decidir si
de veces, llamado ciclo. se debe seguir ejecutando el ciclo o
detenerse.

Las instrucciones son las mismas,


los datos que operan en ellas son
los que varían.
La estructuras repetitivas se
clasifican en: para, mientras y
hacer mientras

51
4.3.1 Estructuras de control
repetitivas: Mientras

Esta estructura de control se recomienda


utilizar cuando no se sabe cuantas veces
se repetirá el ciclo. Tal número depende de
las proposiciones que están dentro del
ciclo.

Algunos ejemplos de problemas: cuando


se tiene que obtener el total de una serie
de gastos, pero no se sabe exactamente
cuántos son; o cuando se tiene que sacar
el promedio de calificaciones de un
examen, pero tampoco se sabe cuántos
alumnos lo aplicaron, el ciclo se repite
mientras se tengan calificaciones de
alumnos.
52
4.3.1 Estructuras de control repetitivas: Mientras
En la estructura mientras se
distinguen dos partes:

 Ciclo: conjunto de instrucciones


Sintaxis en seudocódigo
que se ejecutarán repetidamente.
 Condición de terminación. La
pi ← valorInicial
evaluación de esta condición se mientras evaluación de pi
realiza al inicio del ciclo y mientras acción 1
la condición es verdadera se ejecuta …
el ciclo. acción n
pi ←modificación de pi
finMientras

53
4.3.1 Estructuras de control
repetitivas: Mientras

Reescriba el pseudocódigo que


Ejemplo 4.3.1.1. presenta la solución del problema
Obtener la suma para que se familiarice
de los gastos que
hicimos en el
último viaje, pero
no sabemos
cuántos fueron.

Realice el análisis,
pseudocódigo y
prueba de
escritorio con dos
corridas.

54
Fijarse que es
importante recordar al
usuario el dato que
debe teclearse para
terminar la entrada de
datos

Realice nuevamente la siguiente prueba de escritorio


y una corrida más.

55
4.3.1 Estructuras de control
repetitivas: Mientras

Se presenta una solución con


Ejemplo 4.3.1.2 Dado un
pseudocódigo, reescríbalo y realice la
grupo de números
prueba de escritorio con dos corridas para
naturales positivos,
que tenga un mejor entendimiento.
calcule e imprima el
cubo de estos números.
Termine la entrada de
números con -1.

Realice un análisis del


problema.

56
4.3.2 Estructuras de control repetitivas: Hacer-Mientras

Es una estructura de control Esto significa que las instrucciones del ciclo se
parecida al ciclo Mientras, la ejecutan al menos una vez.
diferencia es que la condición A continuación se muestra la sintaxis en
se coloca al final del ciclo, y pseudocódigo.
éste último se repite mientras la
condición sea verdadera.

Sintaxis en seudocódigo

vi← valorInicial
hacer
acción 1

acción n
vi ←modificación de vi
mientras evaluación de vi

57
4.3.2 Estructuras de control
repetitivas: Hacer-Mientras
Se presenta una solución con
pseudocódigo, reescríbalo y realice la
prueba de escritorio con las corridas que se
Ejemplo 4.3.2.1 Dado un solicitan para que tenga un mejor
entendimiento.
número entero positivo
calcular el factorial de
ese número.
Definición n!: n*n-1*n-
2*…*1
Ejemplo 4!=4*3*2*1=24

Realice el análisis,
pseudocódigo y prueba
de escritorio con tres
corridas para num= 4, 5
y 0.

58
4.3.3 Estructuras de control
Sintaxis en seudocódigo
repetitivas: Para
para i ← vi hasta vf paso o
Es la estructura de control que ejecuta un incremento en 1 o en x valor
ciclo un número definido de veces. acción 1

Por ejemplo cuando se necesita calcular el acción n
promedio de calificaciones de un curso, se finPara
deben sumar las N calificaciones de los
alumnos y dividir la suma entre N; cuando se
necesita calcular la nómina total de la
empresa, se tienen que sumar los sueldos de
los N empleados de la misma.

Es decir, se sabe por anticipado cuántas veces


tenemos que repetir una determinada
operación, acción o tarea.

El número de veces se obtiene del


planteamiento del problema o de una lectura.
59
4.3.3 Estructuras de control repetitivas: Para

Reescriba el pseudocódigo que


Ejemplo 4.3.3.1 presenta la solución del problema
Dado por teclado para que se familiarice
los sueldos de 10
trabajadores de
una empresa,
obtenga el total
de nómina de la
misma.

Realice el análisis,
pseudocódigo y
prueba de
escritorio con dos
corridas.

60
4.3.3 Estructuras de control repetitivas: Para

Pseudocódigo
del ejemplo
anterior

Realice nuevamente la siguiente prueba de


escritorio y una corrida más.

61
4.3.3 Estructuras de
control repetitivas: Para
Se presenta una solución con
pseudocódigo, reescríbalo y realice la
Ejemplo 4.3.3.2 prueba de escritorio con dos corridas
Dado por teclado para que tenga un mejor
entendimiento.
las calificaciones
de N alumnos,
calcular e
imprimir el
promedio.

Realice un análisis
del problema.

62
Ejercicios de estructuras de control repetitivas

 Para cada uno de los siguientes ejercicios realice el


análisis del problema, pseudocódigo y una prueba de
escritorio con 2 corridas. Así mismo, para cada ejercicio
resuélvalo primero con la estructura mientras, después
con hacer-mientras y por último con la estructura
para.
1. Dado por teclado como datos 10 números enteros,
calcular e imprimir la suma de los números impares y el
promedio de los números pares.
2. Obtenga la suma e imprima los términos de la siguiente
serie:
2, 5, 7, 10, 12, 15, …, 100

63
Ejercicios de estructuras de control repetitivas

64
Ejercicios de estructuras de control repetitivas

5. Dado N números enteros por teclado, calcular lo


siguiente:
a) ¿Cuántos números leídos fueron mayores a cero?
b) El promedio de los números positivos
c) El promedio de todos los números.

6. Dado N números enteros por teclado, calcular el mayor y


el menor de estos números.

65
Ejercicios de estructuras de control repetitivas

7. Dado por teclado N ventas con los siguientes criterios,


imprima cuantas corresponden a cada criterio.
a) Ventas de $200 o menos.
b) Ventas mayores a $200, pero menores a $400
c) Ventas de $400 o más.

8. Dado por teclado un número entero positivo, calcular los


términos de la serie de ULAM, la cual consiste en lo
siguiente: Si el número es par, divídalo entre 2; si es impar,
multiplíquelo por 3 y agréguele 1. Repetir el proceso hasta
obtener el número 1.
Ejemplo: sin numero= 26, se obtendrá: 26, 13, 40, 20, 10,
5, 16, 8, 4, 2, 1. 66
Referencias

1. Zapata Ospina, Carlos A. “Fundamentos de programación, Guía de


autoenseñanza”. Alfaomega Ra-Ma. 2006
2. Cairó Osvaldo. “Metodología de la programación”. Alfaomega, 3ª edición.
2005.

67

También podría gustarte