Está en la página 1de 37

Tema 1.

-Pseudocódigo-Programación Estructurada

INDICE

INTRODUCCION
FUNDAMENTOS BÁSICOS DE ALGORITMOS

Elementos básicos de un algoritmo 02


Expresiones 06
Funciones internas 10
Tipos de Datos 12

REPRESENTACIÓN GRÁFICA DE LOS ALGORITMOS


Pseudocódigo 15

ESTRUCTURAS BÁSICAS DE CONTROL


Estructura Secuencial 17

ESTRUCTURAS SELECTIVAS BÁSICAS


Estructura Selectiva Simple 19
Estructura Selectiva Doble 20
Estructura Selectiva Múltiple 22
Estructura Selectiva Anidada 23

ESTRUCTURAS REPETITIVAS
Estructura Repetitiva Desde/Para 28
Estructura Repetitiva Hacer – Mientras 32
Estructura Repetitiva Mientras 35

Página 1/37
Tema 1.-Pseudocódigo-Programación Estructurada

FUNDAMENTOS DE PROGRAMACION

INTRODUCCION
Este manual está dedicado a todas aquellas personas que necesitan aprender a
resolver problemas y plantear una solución en un lenguaje de programación, en
este caso Java. Esta es la principal razón de este manual, esta característica es
fundamental, sobre todo desde el punto de vista académico, porque trata de
enseñar, de hacer entender, de hacer ver, al lector, como resolver un problema, y luego
como programar esa solución en un lenguaje de programación de alto nivel. En general,
aprender a usar una herramienta es sencilla, la mayoría de los libros se enfoca en ello;
pero para saber utilizar una herramienta no resuelve el problema: saber manejar
una máquina de escribir, por ejemplo, no lo hace a uno escritor.
El presente manual de Fundamentos de programación explica los conceptos
fundamentales de la programación lógica apoyados de las herramientas de
programación como son los algoritmos, pseudocódigos o diagramas de flujo, y
luego serán codificados en lenguaje de programación Java.
Este manual de Fundamentos de Programación se divide en dos partes: La
primera realiza un introducción a la programación estructurada usando para ello las
estructuras secuenciales, Condicionales, Selectivas y Repetitivas a apoyadas en las
técnicas de Diagrama de Flujo de Datos y Pseudocódigo.
La Segunda parte se enfoca a la utilización de un lenguaje de programación
utilizando para esta ocasión Java y el IDE Netbeans para codificar los algoritmos
resueltos en la primera parte.

FUNDAMENTOS BÁSICOS DE ALGORITMOS


Una computadora no tiene capacidad para solucionar problemas más que cuando se le
proporcionan los pasos sucesivos a realizar, para ello elaboramos un algoritmo.
¿Qué es un algoritmo?
Es un método para resolver un problema mediante una secuencia de instrucciones,
cada una de las cuales especifica las operaciones que debe realizar la computadora.
Características de un algoritmo
Las características fundamentales que debe cumplir todo algoritmo son:
 Debe ser preciso e indicar el orden de realización de cada paso.
 Debe estar definido. Si se sigue un algoritmo dos o más veces, con los mismos
valores iniciales se debe obtener el mismo resultado.

Página 2/37
Tema 1.-Pseudocódigo-Programación Estructurada

 Debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento, es


decir, debe tener un número finito de pasos.
 También hay que tener en cuenta en un algoritmo:
 El algoritmo sirve de base para generar un programa, pero no es el programa en sí.
 El algoritmo no es inteligible directamente por el ordenador.
 El mismo algoritmo puede ser implementado de forma distinta en diversos
programas, es decir, dos programadores pueden obtener distintos códigos fuente a
partir del mismo algoritmo.
El proceso de un algoritmo
La definición de un algoritmo debe describir tres partes: Entrada, proceso y salida.

La información proporcionada al algoritmo constituye su entrada, el procedimiento


para la solución del problema constituye su proceso y la información producida por el
algoritmo constituye su salida.
A continuación ejemplos para un mejor entendimiento:
Ejemplo 01:
Leer la base y altura de un paralelogramo. Calcular su área.
Datos de Entrada ---> base y altura
Proceso ---> área = base x altura
Datos de Salida ---> El área del paralelogramo

Ejemplo 02:
Leer el radio de una circunferencia. Calcular su área y longitud.
Datos de Entrada ---> Radio de una circunferencia.
Proceso ---> Área = πr2 y Longitud = 2πr
Datos de Salida ---> El área y longitud de una circunferencia.

Verificación del algoritmo o prueba de escritorio


Una vez escrito el algoritmo es necesario asegurarse de que éste realiza las tareas para
las que ha sido diseñado, y que por lo tanto produce el resultado correcto y esperado.
El modo más normal de comprobar un algoritmo es mediante su ejecución manual
usando datos significativos que abarquen todo el posible rango de valores y anotando
en una hoja de papel los valores que van tomando en las diferentes fases, los datos de
entrada o auxiliares y, por último los valores de los resultados. Este proceso se conoce
como prueba del algoritmo o prueba de escritorio.

Página 3/37
Tema 1.-Pseudocódigo-Programación Estructurada

Haremos una prueba de escritorio de los dos problemas anteriores:

Elementos básicos de un algoritmo


Los elementos básicos que forman parte esencial o fundamental de un algoritmo o
programa son:
 Palabras reservadas.
 Identificadores.
 Variables.
 Constantes.
 Instrucciones.

Palabras reservadas
Palabras utilizadas por los algoritmos o lenguajes de programación para representar
sentencias, órdenes, etc.
Ejemplos:
 inicio.  si–entonces-sino.
 Fin.  mientras.
 hacer.  desde.
Identificadores
Son nombres usados para identificar a los objetos y demás elementos de un programa:
variables, constantes, operadores, funciones, procedimientos, etc. Existen reglas para
construir identificadores validos y son los siguientes:
 El primer carácter debe ser una letra o el carácter subrayado bajo.
 Los caracteres siguientes pueden ser letras, números o símbolos de subrayado bajo.
 Las letras mayúsculas y las letras minúsculas se tratan como distintas. Así suma,
Suma y SUMA son tres identificadores distintos.
 No pueden ser iguales a ninguna palabra reservada.

Página 4/37
Tema 1.-Pseudocódigo-Programación Estructurada

Variables
Una variable es un objeto a quien se le asigna un valor y cuyo valor puede cambiar
durante el desarrollo del algoritmo o ejecución del programa. Si una variable está
compuesto por dos palabras, éstas pueden estar juntas o unidos por el subrayado bajo,
guión bajo o subguión ‘ _ ’ .
Nota:
No se deben utilizar como nombres de variables (identificadores) palabras reservadas
del algoritmo o del lenguaje de programación.
Ejemplos:
● Nota ● Apellido_paterno ● precios
● Nombre ● apellido_materno ● hora
● Apellidos ● Nota1 ● prom
● nota_oral ● Contador1 ● pi

Los nombres de las variables elegidas deben ser significativos y tener relación con el
objeto que representan, como pueden ser los casos siguientes:
nombre para representar nombres de personas.
precios para representar los precios de diferentes artículos.
notas para representar las notas de una clase.
A continuación se muestra como ejemplos los nombres de variables no
adecuados porque tienen otro significado a lo expresado:
azucar para representar la nota de una clase.
pan para representar la edad de una persona.

Constantes
Una constante toma o recibe un valor que no cambia durante el desarrollo del
algoritmo o la ejecución del programa.

Instrucciones
Las instrucciones especifican las operaciones o acciones que deben ser realizadas o
ejecutadas.

Página 5/37
Tema 1.-Pseudocódigo-Programación Estructurada

Expresiones
Son combinaciones de constantes, variables, símbolos de operación, paréntesis y
nombres de funciones especiales, que cumplen determinadas reglas.

Ejemplos:

1. a + ( b * 3 ) / c
2. 5 * a * b / ( c + d)

1. EXPRESIONES ARITMÉTICAS
Son análogas a las formulas matemáticas. Las variables y constantes son numéricas
(real o entera) y las operaciones son las aritméticas.

A continuación se mostrarán las equivalencias que debe conocer entre expresiones


algebraicas y expresiones aritméticas.
Ejemplos:

Página 6/37
Tema 1.-Pseudocódigo-Programación Estructurada

Reglas de prioridad
Las expresiones que tienen dos o más operandos en una expresión se evalúan, en
general, según el siguiente orden.
1. Las operaciones que están encerradas entre paréntesis se evalúan primero. Si
existen diferentes paréntesis anidados (internos unos a otros), las expresiones
más internas se evalúan primero.
2. Las operaciones aritméticas dentro de una expresión suelen seguir el siguiente
orden de prioridad.
a. Operador exponencial (^,↑ o bien **)
b. Operadores *, /, \
c. Operadores div y mod
d. Operadores + , -

Nota:
En caso coincidir varios operadores de igual prioridad en una expresión o subexpresión
encerrada entre paréntesis, el orden de prioridad en este caso es de izquierda a derecha.
Ejemplo 1. ¿Cuál es el resultado de las siguientes expresiones?

Ejemplo 2. Convertir en expresiones aritméticas algorítmicas las siguientes


expresiones:

Página 7/37
Tema 1.-Pseudocódigo-Programación Estructurada

Solución:

División entera (div)


Es la acción de dividir dos números enteros uno viene hacer el dividendo y el otro el
divisor, el resultado del operador div es el valor del cociente. En esta división no es de
mucha importancia el residuo. Recuerden que para utilizar el div solo se aplica a
divisiones de números enteros, veamos el siguiente ejemplo:
Ejemplo: 9 div 2 = 4

Ejemplos:
a. 15 div 6 = 2 b. 14 div 2 = 7 c. 0 div 3 = 0
d. 7 div 9 = 0 e. 3 div 3 = 1 f. 2 div 5 = 0

Reglas de la división real y entera:


Los operandos pueden ser enteros (E) o reales(R).

Resto (mod)
El operador mod se utiliza para obtener el residuo o resto de una división entera. Igual
que para el operador div, para poder hallar el residuo de una división utilizando el
operador mod, los operandos deben ser exclusivamente enteros.

Página 8/37
Tema 1.-Pseudocódigo-Programación Estructurada

Reglas del residuo:


Residuo
E mod E = E
E mod R = No Válido
R mod E = No Válido
R mod R = No Válido
Ejemplos:
a. 15 mod 6 = 3 b. 14 mod 2 = 0 c. 19 mod 3 = 1
d. 7 mod 9 = 7 e. 3 mod 3 = 0 f. 2 mod 5 = 2

2. EXPRESIONES LÓGICAS
Una expresión lógica es una expresión que solo puede tomar dos valores: verdad y
falso. Las expresiones lógicas se forman combinando constantes lógicas, variables
lógicas y otras expresiones lógicas, utilizando los operadores relacionales (de relación o
comparación) y los operadores lógicos not, and y or.
Operadores de relación
Permiten realizar comparaciones de valores de tipo numérico o carácter. Los
operadores de relación sirven para expresar las condiciones en los algoritmos. El
resultado de las operaciones de comparación será verdadero o falso.

Ejemplos:
Si P = 7 * 2 y Q = 3 ^ 2
Expresión Lógica Resultado
P>Q Verdad
P<Q Falso
P <> Q Verdad
(P-3) = (Q+2) Verdad
15 < 14 Falso
4+6=9 Falso

Página 9/37
Tema 1.-Pseudocódigo-Programación Estructurada

Para realizar comparaciones de datos tipo carácter, se requiere una secuencia de


ordenación de los caracteres, similar al orden creciente o decreciente. Esta ordenación
suele ser alfabética, tanto mayúsculas como minúsculas, y numérica, considerándolas
de modo independiente.
A continuación se mostrarán los caracteres situados en el código ASCII en orden
creciente:
 Los caracteres que representan a los dígitos.
’0’ <’1’ , ’1’ < ’2’ , ………………, ’8’ < ’9’
 Las letras mayúsculas A a Z siguen el orden alfabético.
’A’ < ’B’ , ’B’ < ’C’ , ………………..., ’Y’ < ’Z’
 Las letras minúsculas, siguen el mismo criterio alfabético.
’a’ < ’b’ , ’b’ < ’c’ , ………………….., ’y’ < ’z’

Nota
Para tener completa seguridad en la ordenación de los caracteres, será preciso
consultar el código de caracteres de su computadora, normalmente el ASCII (American
Standar Code for Information Interchange) o bien el EBCDIC (Extended Binary-Coded
Decimal Interchange Code) utilizado en computadoras IBM diferentes a los modelos
PC y PS/2.

Operadores lógicos
Los operadores lógicos o booléanos son not (no), and (y) y or(o). Las definiciones de
las operaciones no, y, o se resumen en unas tablas conocidas como las tablas de la
verdad.

Las tablas de la verdad son las siguientes:

Página 10/37
Tema 1.-Pseudocódigo-Programación Estructurada

Nota:
Siendo P y Q expresiones booleanas, V valor verdadero, F valor falso.
Negación = not
Disyunción = and
Conjunción = or
Ejemplos:
o (7 < 12) y (9 < 21) verdad
o (9 > 15) y (3 < 4) falso
o (6 = 41) o (13 > 8) verdad
o (16 > 8) o (2 > 5) verdad
o no (18 > 6) falso

Funciones Internas
Las operaciones que se requieren en los programas exigen en numerosas ocasiones,
además de las operaciones aritméticas básicas, ya tratadas, un número determinado
de operadores especiales que se denominan funciones internas, incorporadas o
estándar.
Por ejemplo, la función raiz2 calcula la raíz cuadrada de un número positivo, la
función abs devuelve el valor absoluto de un número, la función cuadrado devuelve el
valor de un número elevado al cuadrado. Existen otras funciones que se utilizan para
determinar las funciones trigonométricas.
La siguiente tabla recoge las funciones internas más usuales en algoritmos, siendo ‘x’ el
argumento de la función.

Página 11/37
Tema 1.-Pseudocódigo-Programación Estructurada

Las funciones aceptan argumentos reales o enteros y sus resultados dependen de la


tarea que realice la función:
Ejemplos:

Tipos de Datos

El primer objetivo de toda computadora es el manejo de la información o datos. Estos


datos pueden ser las cifras de ventas de una bodega, ticket’s para un encuentro
deportivo, ingreso diario de una empresa o las calificaciones de un salón de clase. Los
algoritmos y programas correspondientes operan sobre datos.
Los tipos de datos definen un conjunto de valores que puede almacenar una variable,
junto con un conjunto de operaciones que se pueden realizar sobre esa variable.
Los tipos de datos simples son los siguientes:
 Numéricos (enteros, reales).
 Lógicos (booleanos).
 Carácter (char, string).

Datos numéricos
El tipo numérico es el conjunto de los valores numéricos. Estos pueden representarse
en dos formas distintas:
 Tipo numérico entero (int, integer)
 Tipo numérico real (float, double)

Página 12/37
Tema 1.-Pseudocódigo-Programación Estructurada

Tipo entero
Es el subconjunto finito de los números enteros, no tienen componentes fraccionarios o
decimales, y pueden ser negativos o positivos.
Ejemplos:
6 -9
-20 11
5 19
15 -1

Tipo reales
Subconjunto de los números reales, siempre tiene un punto decimal y pueden ser
positivos o negativos. Constan de un entero y una parte decimal.
Ejemplos:
9.9 12.24
-123.11 0.89
1470.274 -0.99
54.77 3.0
Nota:
Existe un tipo de representación denominado notación exponencial o científica y que se
utiliza para números muy grandes o muy pequeños.
Ejemplo:
Dado un número cualquiera:
367520100000000000000

se representa en notación descomponiéndolo en grupo de tres digitos:


367 520 100 000 000 000 000
y posteriormente en forma de potencias de 10, es:
3.675201 x 10^20
Ejemplos:
2079546000000 = 2.079546 x 10^12
8927645125 = 8.927645 x 10^9
0.000000032458 = 3.2458 x 10^-8
0.0000000009284 = 9.284 x 10^-10

Página 13/37
Tema 1.-Pseudocódigo-Programación Estructurada

Datos lógicos
Es aquel dato que solo puede tomar uno de dos valores:
cierto o verdadero (true) y falso (false)
Ejemplo:
Cuando se le pide si un valor entero es par, la respuesta será verdadera o falsa, según
sea impar o par.

Datos tipo carácter y tipo cadena


Un dato tipo carácter contiene un solo carácter y se encuentra delimitado por comilla
simple.
Los caracteres que reconocen las diferentes computadoras no son estándar, sin
embargo la mayoría reconoce los siguientes caracteres alfabéticos, numéricos y
especiales:
 caracteres alfabéticos : (a, b, c, ... ,z) (A, B, C, ... ,Z)
 caracteres numéricos : (1, 2, 3, ... ,9 ,0)
 caracteres especiales : (+,-,*,/,{, }, ... ;,< ,> , ...)
Una cadena (string) de caracteres es una sucesión de caracteres que se encuentran
delimitados por una comilla simple (apostrofo) o dobles comillas.
Ejemplos:
Carácter: ‘a’ ‘b’ ‘m’
‘p’ ‘q’ ‘M’
‘Z’ ‘Y’ ‘N’
Cadena: ‘Hola Perú’
‘8 de Octubre de 1879’
‘Juan Pablo II

Página 14/37
Tema 1.-Pseudocódigo-Programación Estructurada

REPRESENTACIÓN GRÁFICA DE LOS ALGORITMOS

Para representar un algoritmo se debe utilizar algún método que permita independizar
dicho algoritmo del lenguaje de programación elegido. Ello permitirá que un
algoritmo pueda ser codificado indistintamente en cualquier lenguaje. Para conseguir
este objetivo se precisa que el algoritmo sea representado gráfica o numéricamente,
de modo que las sucesivas acciones no dependan de la sintaxis de ningún lenguaje de
programación, sino que la descripción pueda servir fácilmente para su transformación
en un programa, es decir, su codificación.
Los métodos usuales para representar un algoritmo son:
Diagrama de Flujo.
Diagrama estructurado o N – S (Nassi Schneiderman).
Pseudocódigo. Es el que vamos a utilizar nosotros

Pseudocódigo

El pseudocódigo es una herramienta de programación que nació como un lenguaje en


que las instrucciones se escriben en palabras similares al ingles o español, que facilitan
tanto la escritura como la lectura de programas. En esencia el pseudocódigo se puede
definir como un lenguaje de especificación (descripción) de algoritmos.
La ventaja del pseudocódigo es que en su uso, es decir durante la planificación de un
programa, el programador se puede concentrar en la lógica y en las estructuras de
control, sin preocuparse por las reglas de un determinado lenguaje de programación.
La escritura del pseudocódigo exige normalmente la sangría en el margen izquierdo de
diferentes líneas. La línea precedida por // se denomina comentario, que viene hacer
información para el programador o el lector del programa, y no realiza ninguna
instrucción ejecutable. El uso de pseudocódigo se ha extendido en la comunidad
hispana con términos en español como: inicio, fin, leer, escribir,
si_entonces_sino, mientras, fin_mientras, etc.

Página 15/37
Tema 1.-Pseudocódigo-Programación Estructurada

Estilo de escritura de algoritmos en pseudocódigo

Primer algoritmo con un pseudo código


Para conocer cómo se realiza un pseudo código, resolveremos el mismo ejemplo 1
planteado en la parte de diagrama de flujo:
algoritmo Ejemplo 1
var
entero : b, h, a, p
Inicio
b=8
h=2
a= b*h
p= 2*(b+h)
escribir ( a, p )
fin

Como se ve en esta solución del ejemplo 1, en pseudo código, se coloca el nombre del
algoritmo, en la sección de declaración de variables se escriben a la parte izquierda los
tipos de datos y a la derecha las variables que pertenecen a ese tipo de dato. Para este
ejemplo solo tenemos el tipo de dato entero. Se tiene un cuerpo del programa donde se
escriben todas las instrucciones necesarias para resolver el problema.

Página 16/37
Tema 1.-Pseudocódigo-Programación Estructurada

A continuación la misma solución pero pidiendo las variables de entrada por teclado:
algoritmo Ejemplo 2
var
entero : b, h, a, p
Inicio
leer (b)
leer (h)
a= b*h
p= 2*(b+h)
escribir ( a, p )
fin

ESTRUCTURAS BÁSICAS DE CONTROL


Un algoritmo o programa puede ser escrito utilizando solamente tres tipos de
estructuras de control, a las cuales se les conocen como estructuras básicas de control, y
son las siguientes:
 Estructuras Secuenciales.
 Estructuras Selectivas.
a. Simples (si – entonces - fin_si / if – then – end_if)
b. Dobles (si – entonces – sino – fin_si / if – then – else – end_if)
c. Múltiples
 Estructuras Repetitivas.
a. Mientras (while)
b. Hacer_Mientras (do - While)
c. Desde / Para (for)

ESTRUCTURA SECUENCIAL
La estructura secuencial es aquella en la que una instrucción (acción) sigue a otra en
secuencia.

Página 17/37
Tema 1.-Pseudocódigo-Programación Estructurada

Para poder conocer cómo se realiza un algoritmo utilizando los métodos para
representar algoritmos, procederemos a realizar tres ejercicios.
EJERCICIOS
1. Escribir un algoritmo que determine el pago por la compra de dos televisores LCD
de 21'' marca SONY, si cada uno cuesta 2 400 soles.
2. Encontrar el valor de la función: x = 3y + z
3. Escribir un algoritmo en el cual se ingresen dos números. Se desea calcular y
mostrar la suma y resta.

Solución de los ejemplos

Ejercicio 01:

Ejercicio 02:

Ejercicio 03:

Página 18/37
Tema 1.-Pseudocódigo-Programación Estructurada

ESTRUCTURAS SELECTIVAS
No todos los problemas pueden resolverse empleando estructuras secuenciales. Cuando
hay que tomar una decisión aparecen las estructuras selectivas. En nuestra vida diaria
se nos presentan situaciones donde debemos decidir:
¿Elijo la carrera A o la carrera B?
¿Me pongo este pantalón?
Para ir al trabajo, ¿elijo el camino A o el camino B?
Al cursar una carrera, ¿elijo el turno mañana, tarde o noche?
Las estructuras selectivas se utilizan para tomar decisiones lógicas; de ahí que se
suelen denominar también estructuras condicionales, de decisión o alternativas.
En las estructuras selectivas se evalúa una condición y en función del resultado se
realiza una opción u otra. Las condiciones se especifican usando expresiones lógicas.
Las estructuras selectivas pueden ser:
1. Simples.
2. Dobles.
3. Múltiples.
4. Anidadas.

Estructura Selectiva Simple


La estructura selectiva simple ejecuta una determinada acción o acciones cuando se
cumple una determinada condición, es decir, tenemos la opción de realizar una
actividad o varias si la condición es verdadera y si es falso no se realizará ninguna
actividad.

Ahora pondremos en práctica los nuevos conocimientos adquiridos solucionando el


siguiente ejemplo:

Ejemplo1:
Ingresar el sueldo de una persona, si supera los 3000 €, mostrar un mensaje en
pantalla indicando que debe abonar impuestos.

Página 19/37
Tema 1.-Pseudocódigo-Programación Estructurada

Observación del Pseudocódigo


Obsérvese que las palabras del pseudocódigo si y fin_si se alinean verticalmente
identando (sangrando) la instrucción o bloque de instrucciones.

Ejemplo2:
Realizar un algoritmo que permita el ingreso de un número entero, si es positivo debe
mostrar el mensaje que es un número positivo, elevarlo al cuadrado y mostrar dicho
resultado. Al terminar el algoritmo debe decir ’fin del algoritmo’.

Estructura Selectiva Doble


La estructura selectiva doble permite elegir entre dos opciones o alternativas, en
función del cumplimiento de una determinada condición, de tal forma que, si se
cumple, se ejecutan las acciones del primer bloque; si no se cumple, se ejecutan las
acciones del segundo bloque.
La representación gráfica de una estructura selectiva doble en los métodos para
representar a los algoritmos es el siguiente:

Página 20/37
Tema 1.-Pseudocódigo-Programación Estructurada

De acuerdo a la condición podemos realizar actividades por el lado verdadero o por el


lado falso, PERO NUNCA se realizan las actividades de ambos lados al
mismo tiempo.

Ahora pondremos en práctica los nuevos conocimientos adquiridos solucionando el


siguiente ejemplo:
Ejemplo 3:
Realizar un algoritmo que lea dos números enteros distintos entre sí y mostrar por
pantalla el mayor y el menor. Al final del algoritmo mostrar también el nombre del
creador del algoritmo.

Ejemplo de autoaprendizaje:
Resuelva en pseudocódigo.
Ejemplo 4:
Realizar un algoritmo que permita el ingreso de tres notas de un alumno.
Calcular la nota promedio y si el promedio es mayor o igual a 10.5 mostrar un mensaje
“Aprobado” o “Suspenso”.

Página 21/37
Tema 1.-Pseudocódigo-Programación Estructurada

Estructura Selectiva Múltiple


Con frecuencia en la práctica se presentan más de dos elecciones posibles de una
cierta condición. La estructura selectiva múltiple se utiliza para este tipo de problemas,
es decir, que la estructura selectiva múltiple evaluará una expresión que podrá tomar n
valores distintos; c: 1, 2, 3, 4,..., n. Según qué elija uno de estos valores en la condición,
se realizará una de las n acciones, o lo que es igual, el flujo del algoritmo seguirá un
determinado camino entre los n posibles.

La representación gráfica de una estructura selectiva doble en las tres herramientas de


programación es la siguiente:

En el lugar donde aparece la palabra expresión pondremos lo que nosotros queremos


evaluar; puede ser una variable, una instrucción o cualquier cosa que tome diferentes
valores.
En el lugar de <valor1> o <caso1>, <valor2> o <caso2>, ..., <valor n> o <caso n>
pondremos los diferentes valores que pueda tomar la decisión, según los cuales el
programa debe hacer una u otra cosa. Pueden existir tanto valores como a nosotros nos
convenga. Esta estructura es muy útil en el momento en el que debemos tomar
diferentes decisiones de una misma condición.

Ejemplo5:
Realizar un algoritmo que lea un número que represente el día de la semana y diga
qué día es, teniendo en cuenta lo siguiente: (Lunes=1, Martes=2, ..., Domingo=7).

Página 22/37
Tema 1.-Pseudocódigo-Programación Estructurada

Ejemplo de autoaprendizaje:
Resuelva en pseudocódigo.
Ejemplo6:
Escribir un algoritmo que solicite el ingreso de dos números y a continuación un
operador aritmético (+, -, *, /). El algoritmo debe calcular el resultado de la operación
seleccionada.

Estructura Selectiva Anidada


La estructura selectiva anidada llamada también estructura de decisión anidada, viene
hacer una estructura si-entonces que puede contener otra estructura si-entonces, y ésta
a su vez a otra estructura si-entonces, y así sucesivamente cualquier número de veces;
dentro de cada estructura pueden existir diferentes instrucciones o acciones

Página 23/37
Tema 1.-Pseudocódigo-Programación Estructurada

Ejemplo 7:
Realizar un algoritmo que permita el ingreso de tres notas de un alumno. Calcular la
nota promedio e imprima alguno de estos mensajes:
a. Si el promedio está entre 20 y 16 mostrar “Alumno Excelente”
b. Si el promedio está entre 15 y 11 mostrar “Alumno Regular”
c. Si el promedio está entre 10 y 6 mostrar “Alumno Malo”
d. Si el promedio está entre 5 y 0 mostrar “Alumno Pésimo”

ESTRUCTURAS REPETITIVAS
Las computadoras están diseñadas para aquellas aplicaciones en las cuales una
operación o conjunto de ellas deben repetirse muchas veces. Un tipo muy importante
de estructura es el algoritmo necesario para repetir una o varias acciones por un
número determinado de veces, a está estructura se la llama Estructura Repetitiva.
Las estructuras repetitivas se utilizan cuando se desea que una instrucción o
bloque de instrucciones se repita un número determinado de veces o hasta que una
condición de terminación se cumpla.
Las estructuras que repiten una secuencia de instrucciones un número determinado de
veces se denominan bucles, y se llama iteración al hecho de repetir la ejecución de una
secuencia de acciones. Iterar es repetir una vez el bucle.

Página 24/37
Tema 1.-Pseudocódigo-Programación Estructurada

Se debe tener en cuenta lo siguiente para la construcción de una estructura repetitiva:


 El cuerpo del bucle: Es el grupo de instrucciones que se van a repetir. Dentro del
cuerpo del bucle debe existir una instrucción que modifique la condición lógica de
terminación.
 Las sentencias de inicialización. Son instrucciones que inicializan contadores y
acumuladores.
 Las condiciones para la terminación del bucle: Expresiones lógicas que controlan la
terminación del bucle.
A continuación se detallan tres estructuras repetitivas básicas:
1. Estructura Repetitiva Desde / Para. (FOR)
2. Estructura Repetitiva Hacer – Mientras. (DO WHILE)
3. Estructura Repetitiva Mientras. (WHILE)
Para poder entender cómo funciona un proceso repetitivo, se necesita conocer el
concepto de dos expresiones: ¿Qué es un contador? y ¿Qué es un acumulador?

CONTADOR
En un proceso repetitivo cuya función es contar los sucesos o acciones internas del
bucle, como pueden ser el número de iteraciones del bucle, la cantidad de elementos
que tiene un archivo, un vector, una matriz, etc. Una forma de controlar un bucle es
mediante un contador.

Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad


constante o fija en cada iteración.
La forma de representar un contador es:

La expresión anterior se debe interpretar como asignar a la variable contador el valor


que tenía anteriormente más uno o menos uno, dependiendo del caso si se quiere
incrementar o decrementar.
Nota:
En todo contador es necesario que exista una instrucción que inicializa la variable que
va a tener la función de contador y esta variable puede ser cualquier identificador.

Página 25/37
Tema 1.-Pseudocódigo-Programación Estructurada

Ejemplo 1: Contador que incrementa de uno en uno.


La variable contador va a tener la función de ser el contador.

Ejemplo 2: Contador que decrementa de uno en uno


La variable cont va a tener la función de ser el contador.

Nota:
Un contador puede ser positivo (incrementos, uno a uno) o negativo (decrementos, uno
a uno). Un contador también puede incrementar o decrementar de dos en dos, tres en
tres, cuatro en cuatro y así sucesivamente, dependiendo de la tarea que esté realizando
el bucle.
Ejemplo 3: Contador que incrementa de dos en dos

Ejemplo 4: Contador que decrementa de cinco en cinco

ACUMULADOR
Un acumulador es una variable cuya misión es almacenar cantidades variables. Realiza
la misma función que un contador pero con la diferencia de que el incremento o
decremento es variable y no constante como en el contador.
La forma de representar un acumulador es:

Página 26/37
Tema 1.-Pseudocódigo-Programación Estructurada

Nota:
En todo acumulador es necesario que exista una instrucción que inicializa la variable
que va a tener la función de acumulador y esta variable puede ser cualquier
identificador.

Ejemplo 5:
Calcular el promedio de notas de 10 alumnos, primero debemos utilizar una variable
acumulador para ir sumando las 10 notas (cantidades variables) y luego dividir este
valor entre diez. La variable S va a tener la función de ser el acumulador.
Solución del ejemplo 5.
S=0
leer(nota)
S=S+nota
Prom=S/10
La explicación del algoritmo es el siguiente:

Esto es la forma como trabaja un acumulador.

Página 27/37
Tema 1.-Pseudocódigo-Programación Estructurada

Estructura Repetitiva Desde/Para


En muchas ocasiones se conoce de antemano el número de veces que se desean
ejecutar las acciones o instrucciones de un bucle. En estos casos en los que el número
de iteraciones es fijo, se debe usar la estructura desde/para. Por ejemplo, ingresar 10
notas, 100 números, etc.

En su forma más típica y básica, esta estructura requiere una variable entera que
cumple la función de un contador de vueltas. En la sección indicada como
“inicialización”, se suele colocar el nombre de la variable que hará de contador,
asignándole a dicha variable un valor inicial. En la sección de “condición” se coloca la
condición que deberá ser verdadera para que el ciclo continúe (en caso de falso el ciclo
se detendrá). Y finalmente, en la sección “modificación” se coloca una instrucción que
permite modificar el valor de la variable que hace de contador (para permitir que
alguna vez sea falsa).
Ejemplo: Queremos que se repita 50 veces el bloque de instrucciones.
Describiremos el siguiente ejemplo por etapas:
Nota: El símbolo de la flecha apuntando a la izquierda ( ) significa = (igual)
1era Etapa (c=1): Cuando el ciclo comienza antes de dar la primera vuelta, la
variable de inicialización toma el valor indicado en la sección de inicialización.

2da. Etapa (c<=50): Inmediatamente se verifica en forma automática, si la


condición es verdadera. En caso de serlo se ejecuta el bloque de instrucciones del ciclo,
es decir, si el bloque tuviera 5 instrucciones esas se realizan una por una.

Página 28/37
Tema 1.-Pseudocódigo-Programación Estructurada

3era. Etapa (c=c+1): Al finalizar de ejecutarse el bloque de instrucciones del bucle, la


ejecución de la estructura repetitiva se regresa a la sección de modificación. Se
incrementa en una unidad en contador.

4ta Etapa (c<=50): Seguidamente, se vuelve a comprobar la condición si es


verdadera, y si lo es, vuelve a realizar las instrucciones del ciclo, así prosigue
ejecutándose todo el bucle hasta que la condición es falsa y sale del bucle.

Analicemos el ejemplo:
 La variable c toma inicialmente el valor 1.
 Se controla automáticamente el valor de la condición: como c vale 1 y esto es menor
que 50, la condición da verdadero.
 Como la condición fue verdadera, se ejecutan la(s) instrucción(es).
 Al finalizar de ejecutar todas las instrucciones, se retorna a la instrucción c = c + 1,
por lo que la variable c se incrementa en uno.
 Se vuelve a controlar automáticamente si c es menor o igual a 50. Como ahora su
valor es 2 y sigue siendo menor que 50, se ejecuta nuevamente el bloque de
instrucciones e incrementa nuevamente la variable del contador c.
 El proceso se repetirá hasta que la variable c sea incrementada al valor 51. En ese
momento la condición será falsa, el ciclo se detendrá y saldrá del bucle repetitivo.

Página 29/37
Tema 1.-Pseudocódigo-Programación Estructurada

La variable c puede ser inicializada y finalizar en cualquier valor. Además, no es


obligatorio que la instrucción de modificación sea un incremento de tipo contador c = c
+ 1. Puede ser también c = c + 2, en lugar de c = c + 1, el valor de c será incrementado
de a 2 en cada vuelta, y no de a uno.
En este caso, esto significará que el ciclo no efectuará las 50 vueltas sino solo 25 ¿Por
qué?
La instrucción de modificación no solamente puede ser un incrementador, también
puede ser un decrementador, es decir, la variable de inicialización decrementará a lo
que se desea, esto “se puede hacer siempre y cuando la variable de inicialización
comienza en un valor mayor que el de la condición”, por ejemplo:

Analicemos el ejemplo:
 La variable c toma inicialmente el valor 100.
 El valor de la condición es c >= 1.
 La variable c decrementa de dos en dos.
 Esto quiere decir que el bucle se repite 50 veces, que comienza en un valor de
contador = 100, decrementa de dos en dos, hasta que la condición es falsa.
La representación gráfica de la estructura repetitiva para en el pseudocódigo es la
siguiente:

Página 30/37
Tema 1.-Pseudocódigo-Programación Estructurada

Ejemplo 1:
Realizar un algoritmo que permita hallar la suma de los 10 primeros números enteros
positivos, y su promedio.

Nota:
En Pseudocódigo si la instrucción de incremento es en uno, se puede obviar la
instrucción inc 1, y solamente se puede colocar: desde c = 1 hasta 10 hacer . Porque en
algoritmo se sobrentiende que aumenta en 1.

Ejemplo2:
Realizar un algoritmo que permita hallar la suma y promedio de 20 números enteros
ingresados por teclado.

Página 31/37
Tema 1.-Pseudocódigo-Programación Estructurada

Ejemplos de autoaprendizaje:
Resuelva en pseudocódigo.
Ejemplo3:
Realizar un algoritmo que me permita leer 10 números positivos y negativos, e
imprima solamente los números positivos.
Ejemplo4:
Realizar un algoritmo que me permita leer 20 números e imprimir cuántos son
positivos, negativos y neutros.
Dato: Neutro se le conoce al cero “0”

Estructura Repetitiva Hacer - Mientras


Existen muchas situaciones en las que se desea que un bucle se ejecute al menos una
vez antes de comprobar la condición de repetición, para ello se puede utilizar la
estructura repetitiva Hacer - Mientras. Esta estructura repetitiva se utiliza cuando
conocemos de antemano que por lo menos una vez se ejecutará el bloque repetitivo.
Cuando una instrucción Hacer-Mientras se ejecuta, lo primero que sucede es la
ejecución del bucle (todas las instrucciones) y a continuación se evalúa la expresión
booleana de la condición.
Si se evalúa como verdadera, el cuerpo del bucle se repite y se vuelve a evaluar la
condición, si sigue siendo verdadera se seguirá repitiendo el bucle hasta que la
condición sea falsa.
Dentro del bucle existirá una instrucción que en un cierto momento hará que la
condición sea falsa.
La representación gráfica de la estructura repetitiva Hacer-Mientras es la siguiente:

A continuación se presenta el siguiente ejemplo para comprender el funcionamiento de


la estructura repetitiva Hacer-Mientras.

Ejemplo 5:
En el curso de Algoritmos y Diagramación existen 40 alumnos, de los cuales se tiene el
promedio de la Primera Unidad. Se pide realizar un algoritmo que permita hallar el
promedio general de estos alumnos.

Página 32/37
Tema 1.-Pseudocódigo-Programación Estructurada

Solución

Desarrollamos el ejemplo 5 en 5 pasos:


1. Se asignan valores a las variables c = 0 y suma = 0
2. Se ingresa al cuerpo del bucle (no existe ninguna instrucción que nos impida), se
tiene tres instrucciones:
2.1. En la primera instrucción que se ejecuta tenemos un contador, este
contador incrementa en una unidad siendo su resultado c = 1.
2.2. En la segunda instrucción se lee la nota del primer alumno (esta nota se
ingresa por teclado).
2.3. La tercera instrucción es un acumulador; cuya función es acumular la suma
de todas las notas (40 notas).
3. A continuación, se evalúa la condición; se pregunta: ¿c es menor que 40? Si la
respuesta es verdadera se regresa al paso 2 y se ejecutan las tres instrucciones del
cuerpo del bucle nuevamente, de lo contrario se continúa con el paso 4.
4. Se llega a este paso después de finalizarse las 40 iteraciones que da el bucle. En la
variable suma se tiene la suma total de las notas y ahora se ejecuta la instrucción
que permite hallar el promedio.
5. Muestra en pantalla el resultado del promedio de notas.

La solución del ejemplo 5 en pseudocódigo es el siguiente:

Página 33/37
Tema 1.-Pseudocódigo-Programación Estructurada

Ejemplo 6:
Se desea contabilizar cuántos números son positivos, negativos y neutros del ingreso
continuo de números enteros. Este proceso re repite hasta que el usuario pulse la tecla
N al mensaje en pantalla “Desea Continuar [s/n]:”.
Solución
Para la solución del problema se va a necesitar de tres contadores, que realizarán la
acción de contar cuántos números son positivos, negativos y neutros se ingresarán por
teclado, de una serie de números.
Para ello, utilizaremos tres variables, a las que llamaremos:
 cc : contador de ceros
 cp : contador de positivos
 cn : contador de negativos
Además, utilizaremos estructuras selectivas anidadas, con las que haremos la
comprobación de cuáles números son iguales a cero, positivos y negativos. Y de
acuerdo al resultado de la condición, los contadores (cc, cp y cn) incrementarán su
valor.
Terminadas de realizar todas las condiciones, se preguntará al usuario si ‘Desea
continuar [s/n]’ ingresando más números, para ello utilizaremos una variable de tipo
carácter, llamado opc. El cuál almacenará el carácter de ‘s’ de “sí continuo”, o ‘n’ de
“no continuo” ingresando valores. De acuerdo a la respuesta seguiremos o terminamos
el bucle.
Al responder en 'n' de “no continuo” el algoritmo debe reportar lo siguiente:
 Cantidad de números ceros.
 Cantidad de números positivos.
 Cantidad de números negativos.

Página 34/37
Tema 1.-Pseudocódigo-Programación Estructurada

Ejemplo de autoaprendizaje:
Resuelva en pseudocódigo.
Ejemplo 7:
En una campaña médica de medición de presión, se pide que se ingresen todas las
edades de los pacientes que serán atendidos. Se solicita que se calcule la mayor y menor
edad ingresada.

Estructura Repetitiva Mientras


El proceso de una estructura repetitiva Mientras es el siguiente: para que ingrese al
cuerpo del bucle tiene que evaluarse una condición, si ésta es verdadera se ingresa y se
realizan todas las instrucciones que están dentro del cuerpo del bucle; terminado la
última instrucción se vuelve a comprobar la condición; se seguirá realizando el bucle
mientras la condición siga siendo verdadera y si en un momento es falsa sale del bucle.
Es decir, la estructura repetitiva Mientras es aquella en que el cuerpo del bucle se repite
mientras se cumpla una determinada condición, y termina cuando ya no se cumple.
Si al querer ingresar al cuerpo del bucle por primera vez y la condición es falsa, no
ingresa al bucle, ninguna acción se realiza y el algoritmo prosigue en la siguiente
instrucción fuera del bucle.

Página 35/37
Tema 1.-Pseudocódigo-Programación Estructurada

La representación gráfica de la estructura repetitiva Mientras es la siguiente:

A continuación se presenta el siguiente ejemplo para comprender el funcionamiento de


la estructura repetitiva Mientras.

Ejemplo 8:
Escribir un algoritmo que lea las 40 notas finales del curso de Fundamentos de
Programación, e informe cuántos alumnos han aprobado y cuántos desaprobaron.
Dato: (Nota >= 10.5 Aprobado)

Ejemplo 9:
Realizar un algoritmo que permita calcular la suma de los números enteros
comprendidos entre dos cantidades ingresadas por teclado. Hallar adicionalmente el
promedio de la suma.

Página 36/37
Tema 1.-Pseudocódigo-Programación Estructurada

Página 37/37

También podría gustarte