Está en la página 1de 44

Fundamentos de

Programación
Carol R. Rojas Moreno
Manual – Unidad 2
2
Índice
Introducción .........................................................................................................................................5
Organización de la Asignatura ........................................................................................................7
Unidades didácticas.......................................................................................................................7
Tiempo mínimo de estudio ............................................................................................................8
UNIDAD 2: ESTRUCTURAS DE CONTROL PARA LA PROGRAMACIÓN: Repetitiva ..................9
Diagrama de organización ..........................................................................................................9
Tema N.º 1: Estructuras de control para la programación: estructuras de control
repetitivas: mientras ...................................................................................................................... 10
1.1. Definición de estructuras de control repetitiva: mientras ................................... 10
De la teoría a la práctica ............................................................................................................ 12
Tema N.º 2: Estructuras de control para la programación: estructura de control
repetitiva: hacer – mientras ........................................................................................................ 20
2.1. Definiciones de estructuras de control repetitiva: hacer – mientras ............... 20
De la teoría a la práctica ............................................................................................................ 22
Tema N.º 3: Estructuras de control para la programación: estructuras de control
repetitiva: para/desde ................................................................................................................. 26
3.1. Definición de estructuras de control repetitiva: para / desde .......................... 26
De la teoría a la práctica ............................................................................................................ 28
Tema N.º 4: Estructuras de control para la programación: estructuras de control
repetitiva: creación de menú de opciones ............................................................................ 34
Tema N.º 5: Estructuras de control para la programación: estructuras de control
repetitiva: creación de contadores y acumuladores .......................................................... 35
5.1. Definición de estructuras de control repetitiva: contador y acumulador...... 35
De la teoría a la práctica ............................................................................................................ 37
Glosario de la Unidad 2 ................................................................................................................... 41
Bibliografía de la Unidad 2 .............................................................................................................. 43

Universidad Continental | Manual 3


4
Introducción

Fundamentos de Programación es una asignatura que tiene como finalidad

proporcionar al estudiante, los conocimientos necesarios en las técnicas para la

programación basada en el enfoque estructurado, requeridos en su formación

básica para poder desarrollar programas en otros niveles más avanzados. El

resultado de aprendizaje: Al finalizar la asignatura el estudiante será capaz de

implementar programas para computadora con la finalidad de resolver

problemas de ingeniería.

El presente material consta de cuatro unidades: Unidad I: Estructuras de control

para la programación: Secuencial y Selectiva. Unidad II: Estructuras de control

para la programación: Repetitiva. Unidad III: Módulos para la programación:

Función y Procedimiento. Unidad IV: Módulos para la programación: Funciones

propias del Lenguaje de Programación – Recursividad, desarrollados a partir del

texto Fundamentos de Programación (Joyanes Aguilar, 2008).

Es recomendable que el estudiante desarrolle una permanente lectura de

estudio junto a la elaboración de programas en un lenguaje de programación,

así como la investigación en otros textos y vía internet. El contenido del material

se complementará con las lecciones presenciales y a distancia que se

desarrollan en la asignatura.

Agradecemos a quienes con sus aportes y sugerencias han contribuido a

mejorar la presente edición, que sólo tiene el valor de una introducción al

conocimiento de las estructuras de datos para la programación en un

computador.

La autora.

Universidad Continental | Manual 5


6
Organización de la Asignatura

Resultado de aprendizaje de la asignatura

Al finalizar la asignatura, el estudiante será capaz de implementar programas para


computadora con la finalidad de resolver problemas de ingeniería.

Unidades didácticas

UNIDAD 1 UNIDAD 2 UNIDAD 3 UNIDAD 4

Estructuras de Estructuras de Módulos para la Módulos para la


control para la control para la programación: programación:
programación: programación: Función y Funciones propias
Secuencial y Repetitiva Procedimiento del Lenguaje de
Selectiva Programación –
Recursividad

Resultado de Resultado de Resultado de Resultado de


aprendizaje aprendizaje aprendizaje aprendizaje

Al finalizar la Al finalizar la Al finalizar la Al finalizar la


unidad, el unidad, el unidad, el unidad, el
estudiante será estudiante será estudiante será estudiante será
capaz de aplicar capaz de aplicar capaz de aplicar capaz de aplicar
estructuras de estructuras de módulos de las funciones
control secuencial control repetitivas, programación y propias del
y selectivas, en la en la construcción librerías de lenguaje de
construcción de de programas programación, en programación, en
programas computacionales la construcción de la construcción de
computacionales usando un programas programas
usando un lenguaje de computacionales. computacionales.
lenguaje de programación.
programación.

Universidad Continental | Manual 7


Tiempo mínimo de estudio

UNIDAD 1 UNIDAD 2 UNIDAD 3 UNIDAD 4

24 horas 24 horas 24 horas 24 horas

8
UNIDAD 2: ESTRUCTURAS DE CONTROL PARA

LA PROGRAMACIÓN: Repetitiva

Diagrama de organización

Universidad Continental | Manual 9


Tema N.º 1: Estructuras de control para la

programación: estructuras de control repetitivas:

mientras

Muchas veces, requerimos que el proceso ejecutado, vuelva a repetir sus

acciones, ya sea por la cantidad de clientes o transacciones a realizar.

Para iniciar este tema, se tiene presente que procesos pueden repetirse, previo

cumplimiento de alguna condición, la misma que permitirá finalizar la

repetición del proceso.

Por lo que, se hace necesario observar nuestras actividades del entorno real e

identificar que procesos o actividades pueden ejecutarse más de una vez,

luego de haber cumplido con las condiciones iniciales.

1.1. Definición de estructuras de control repetitiva: mientras

Es una estructura que evalúa una expresión condicional y si es verdadera

permite realizar el conjunto de acciones y regresa evaluar nuevamente la

expresión condicional, hasta que deje de cumplir. (Joyanes, Luis. 2008)

Diagrama de Flujo:

10
Diagrama de Flujo para una Estructura de Control Repetitiva Mientras

Diagrama N-S:

Universidad Continental | Manual 11


De la teoría a la práctica

Ejemplo 1: Mostrar la serie Fibonacci, menor a un límite dado.

0 , 1 , 1 , 2 , 3 , 5 , 8 , 13 , ….

Solución:

Se sugiere definir las variables según la serie matemática:

Definición de variables:

a: valor inicial de la serie, inicializada con cero

b: valor inicial de la serie, inicializada con uno

lim: valor máximo definido para el conjunto de números de la serie

Diagrama de Flujo:

Fuente: Propia

12
Observe en el diagrama anterior, que la condición expresada en el rombo,

evalúa que la variable “b” sea menor o igual que el límite dado, y así permita

mostrar los valores de la serie requerida.

Código C/C++:

Ejemplo 2: Hallar la suma y el promedio de los diez primeros números naturales

positivos.

Solución:

Definición de variables:

i: valor que permite sumar de uno en uno a un número

sumNumeros: valor de la suma de números

promNumeros: valor del promedio de los números

Universidad Continental | Manual 13


Se puede proponer una tabla para representar las 03 partes del algoritmo:

Identificar Variable(s) Proceso (cálculo) Variable(s)


Variables a a ingresar para
usar reportar
i = 1;
i Mientras (i <= 10) promCalif
sumNumeros { contAprob
promNumeros sumNumeros = sumNumeros + i contDsprob
i = i+1}

promNumeros = sumNumeros / 10;


Escribir "La sumatoria de numeros es: "
Escribir sumNumeros
Escribir "El promedio de los numeros es: "
Escribir promNumeros
Fuente: Propia
Código C/C++:

Observe que, en la solución propuesta, no se requiere ingresar un valor, por que

se refiere a los diez primeros números naturales, que lógicamente están

definidos.

14
Pero si es necesario acumular o sumar cada número recorrido, que se

incrementa con la estructura de control Mientras.

El incremento o recorrido de cada número natural positivo se realiza gracias al

contador, definida en este ejemplo con la variable “i”, que inicializa su valor en

cero, y va contando de uno en uno, el mismo que es acumulado.

El valor acumulado, es que permite calcular el promedio de los números,

después de haber finalizado la estructura de control Repetitiva Mientras.

Universidad Continental | Manual 15


Ejemplo 3: Ingresar N calificaciones, para hallar el promedio y la cantidad de

calificaciones aprobadas que se ingresaron, además de hallar la calificación

mayor (más alta) y la calificación menor (menos alta).

Solución:

Se puede proponer una tabla para representar las 03 partes del algoritmo:

Identificar Variable(s) Proceso (cálculo) Variable(s)


Variables a a ingresar para
usar reportar
Si(N > 0)
N N { i = 1; promCalif
i Calif Mientras (i <= N) contAprob
Calif { contDsprob
contAprob Leer Calif; mayor
contDsprob Si(Calif >=0 and Calif <=20) menor
sumCalif { Si(Calif >= 11)
promCalif contAprob++
mayor Sino
menor contDsprob++
Si(i == 1)
{ mayor = Calif;
menor = Calif;
}
Sino
Si(Calif > mayor)
mayor = Calif;
Sino
Si(Calif <menor)
menor = Calif;
sumCalif = sumCalif + Calif
i = i+1;
}
Sino
Escribir "ERROR."
}
promCalif = sumCalif / N

16
Identificar Variable(s) Proceso (cálculo) Variable(s)
Variables a a ingresar para
usar reportar

Escribir "El promedio de las


calificaciones es: “
Escribir promCalif
Escribir "La cantidad de aprobados
es:"
Escribir contAprob
Escribir "La cantidad de
desaprobados es:"
Escribir contDsprob
Escribir "La calificacion mayor es:"
Escribir mayor
Escribir "La calificacion menor es:"
Escribir menor
}
Sino
Escribir "ERROR. Debe ingresar
mayor a cero."

Fuente: Propia

Universidad Continental | Manual 17


Código C/C++:

Observe que en todos los ejemplos, primero se ha verificado que cumpla la

condición con la estructura MIENTRAS, cuya sintaxis es WHILE( ), antes de realizar

nuevamente el conjunto de acciones.

18
Universidad Continental | Manual 19
Tema N.º 2: Estructuras de control para la

programación: estructura de control repetitiva: hacer

– mientras

Esta estructura de control es recomendable para repetir el algoritmo una

cantidad de veces requerida por el usuario, y no necesariamente asignando

un número límite de veces.

Para iniciar este tema, se tiene presente que procesos pueden realizarse al

menos una vez, para luego verificar el cumplimiento de alguna condición, la

misma que permitirá finalizar la repetición del proceso.

2.1. Definiciones de estructuras de control repetitiva: hacer –

mientras

Es una estructura que realiza al menos una vez un conjunto de acciones, y

luego evalúa una expresión condicional, si es Verdadero regresa a repetir

el conjunto de acciones, si no cumple, sale del bucle. (Joyanes, Luis. 2008)

20
Diagrama de Flujo:

Diagrama de Flujo para una Estructura de Control Repetitiva Hacer-

Mientras

Diagrama N-S:

Universidad Continental | Manual 21


De la teoría a la práctica

Ejemplo 1: Leer un número entero mayor que cero, sino es así, volver a solicitar

el número con esas condiciones.

Solución:

Definición de variables:

num: valor del número a validar.

Diagrama de Flujo:

Código C/C++:

22
Ejemplo 2: Una vendedora de pan tiene cierta cantidad de unidades de pan al

comenzar el día. Si cada cliente le pide cierta cantidad de panes:

¿Cuantos clientes son atendidos completamente?, ¿Cuantos panes quedan

para el último cliente?

Solución:

Se puede proponer una tabla para representar las 03 partes del algoritmo:

Identificar Variable(s) Proceso (cálculo) Variable(s)


Variables a usar a ingresar para reportar

InventarioPan InventarioPan Hacer{ contClientAt


cantPan cantPan Leer InventarioPan; endido
contClientAtendi rpta contClientNo
do Si(InventarioPan <= 0) Atendido
contClientNoAten Escribir "Error, Vuelva ingresar >=0" TotalVendido
dido InventarioPan
TotalVendido }Mientras(InventarioPan <= 0)
rpta
Hacer{

Hacer{
Leer cantPan;
Si(cantPan <= 0)
Escribir "Error, Vuelva ingresar >=0"
}Mientras(cantPan <= 0);

Si(cantPan <= InventarioPan)


{
contClientAtendido =
contClientAtendido + 1
InventarioPan = InventarioPan –
cantPan
TotalVendido = TotalVendido +
cantPan
}

Universidad Continental | Manual 23


Identificar Variable(s) Proceso (cálculo) Variable(s)
Variables a usar a ingresar para reportar
Sino
{
Escribir "No se puede atender
esta cantidad."
contClientNoAtendido =
contClientNoAtendido + 1
}

Escribir "Desea otra venta de


nuevo cliente? "
Leer rpta;

}Mientras(rpta == 'S'|| rpta == 's')

Escribir "Clientes No Atendidos:"


Escribir contClientNoAtendido
Escribir "Clientes Atendidos:"
Escribir contClientAtendido
Escribir "Total Panes Vendidos:"
Escribir TotalVendido
Escribir "Queda para ultimo
cliente:"
Escribir InventarioPan

Fuente: Propia

24
Código C/C++:

En estos últimos programas, la estructuras HACER – MIENTRAS, es decir DO-

WHILE(), permite validar el ingreso del dato y repetir todo el algoritmo.

Universidad Continental | Manual 25


Tema N.º 3: Estructuras de control para la programación:

estructuras de control repetitiva: para/desde

Hasta este punto se ha presentado la repetición del algoritmo, mientras el

usuario acepte o no continuar con el proceso.

Sin embargo, cuando se conoce la cantidad exacta de repeticiones se hace

uso de otra estructura de control de repetición.

Para iniciar este tema, se tiene presente que algunos procesos de nuestro

entorno real, tiene una cantidad limitada de repeticiones.

3.1. Definición de estructuras de control repetitiva: para /

desde

Esta estructura de control permite repetir un conjunto de acciones, hasta

llegar a un límite dado, utilizando una variable de recorrido por cada

repetición.

Generalmente esta variable de recorrido se define con la letra “i” (índice

de re-corrido), pero puede usarse otra variable y que puede inicializar en

cero o en cualquier otro valor, para luego incrementarse o decrementarse.

(Joyanes, Luis. 2008)

26
Diagrama de Flujo:

Diagrama de Flujo para una Estructura de Control Repetitiva Para/Desde

Diagrama N-S:

Universidad Continental | Manual 27


De la teoría a la práctica

Ejemplo 1: Calcular el Factorial de un número.

Solución:

Definición de variables:

num: valor del numero entero positivo.

Diagrama de Flujo:

Fuente: Propia

28
Código C/C++:

En la figura anterior, se puede decir, que, para hallar la factorial de un número,

como todos sabemos, es la multiplicación del número disminuido en uno.

Ejemplo: 4! = 4 * 3 * 2 * 1

Pero recuerde que no se puede disminuir hasta cero, sino la multiplicación se

con-vierte en cero, no permitiendo hallar el valor de la factorial, esa es la razón

que el producto se inicializa en uno (p = 1) para no afectar la multiplicación.

Para aplicar esta estructura repetitiva, al ejemplo anterior del factorial de un

número, en lugar de analizarlo como la disminución del número, lo planteamos

como el incremento (i++) desde el uno (i=1) hasta llegar al número ( i<=num ):

Ejemplo:

Universidad Continental | Manual 29


Finalmente, cada valor actualizado de la variable “i” se multiplica con el valor

anterior, dando como resultado el producto o el valor de la factorial del número.

Recuerde que esta estructura repetitiva requiere tener un valor máximo o límite

hasta donde llegará la variable de recorrido al ser incrementada.

Por lo que, primero se inicializa la variable de recorrido (i), luego se verifica que

no haya superado el límite, si esto es así se realizan las instrucciones (para este

ejemplo, la multiplicación), finalmente se incrementa la variable de recorrido

(i++) y se repite el proceso inicializando nuevamente la variable de recorrido,

después del incremento.

30
Ejemplo 2: Ingresar un número: n> 0, e imprima los n términos de la serie. Además,

debe imprimir la suma de los n términos:

Solución:

Se puede proponer una tabla para representar las 03 partes del algoritmo:

Identificar Variable(s) Proceso (cálculo) Variable(s)


Variables a a ingresar para reportar
usar
n n Hacer{ suma

i Leer n;

denominador Si(n<= 0)

suma Escribir "Error, Vuelva ingresar

>=0"

}Mientras(n <= 0)

Desde(i = 1; i <= n; i++)

Escribir i, "/", i + 1

denominador = i + 1

suma = suma + (i /

denominador)

Escribir " Suma es: "

Escribir suma

Fuente: Propia

Universidad Continental | Manual 31


En este caso, la variable “i” inicializa en uno, como indica el valor en la serie de

números, y va incremento su valor hasta llegar a ser igual “n” que es el número

natural ingresado como límite.

Luego se muestra en pantalla la serie n / (n+1) el cual es recorrido desde uno

con la variable “i”.

Para ordenar y mejorar la manipulación de valores, antes de realizar la

acumulación o sumatoria, se usa una variable denominadora para n+1, y de

esta manera facilitar el cálculo, y así, si se cuenta con un repositorio, se puede

acumular todos los valores calculados.

32
Código C/C++:

Universidad Continental | Manual 33


Tema N.º 4: Estructuras de control para la programación:

estructuras de control repetitiva: creación de menú de

opciones

En algunos casos, se recomienda presentar al usuario de programa, un

conjunto de opciones que le permita realizar o no un conjunto de acciones.

Para iniciar este tema, se tiene presente que algunos procesos de nuestro

entorno real, le permite seleccionar una opción por otra.

34
Tema N.º 5: Estructuras de control para la

programación: estructuras de control repetitiva:

creación de contadores y acumuladores

Estimado estudiante, habrá observado, que los programas requieren dar mejor

facilidad de uso.

Para iniciar este tema, es necesario tener en cuenta dos elementos de

programación, que ayudarán a la aplicación de las estructuras repetitivas, nos

referimos al Contador y al Acumulador.

5.1. Definición de estructuras de control repetitiva: contador y

acumulador

El Contador y el Acumulador puede considerarlos como variables o

espacio de memoria inicializados en cero (imagínelos como repositorios

vacíos), que van modificando su valor según los datos que se le asignen.

La diferencia entre ambos, es que el Contador está siendo modificado con

la misma razón de valor (por ejemplo, se incrementa de uno en uno),

mientras que el Acumulador no necesariamente tiene la misma razón de

valor de cambio, es decir el incremento se puede dar con un valor “x”

cualquiera.

En la siguiente figura se muestra una representación gráfica de ambos, con

los respectivos valores asignados.

Universidad Continental | Manual 35


Fuente: Propia

36
De la teoría a la práctica

Ejemplo 1: Elabore un programa, el cual permita calcular el monto a pagar

compre manzanas en una frutería, con descuento según la sgte. Tabla, y

reportar la cantidad de clientes atendidos y la sumatoria de ventas

realizadas.

Propuesta de Solución con Menú de opciones, Contador y Acumulador:

El caso planteado se puede resolver haciendo uso solo de las estructuras

de control repetitivas

Universidad Continental | Manual 37


38
Ejemplo 2: Elabore un programa, el cual permita simular las siguientes

operaciones de un cajero automático: depositar, retirar, visualizar saldo y salir.

Reportar la cantidad de veces que deposita, la cantidad de veces que retira,

la cantidad de veces que revisa saldo y la cantidad de veces que realiza

cualquier operación de menú.

Universidad Continental | Manual 39


Propuesta de Solución con Menú de opciones, Contador y Acumulador:

40
Glosario de la Unidad 2

Bucle

Repetición, iteración de un determinado proceso o sentencias de

programación.

Cliente

Persona beneficiada con la elaboración del programa, por quien se expresan

los requerimientos.

Expresión condicional

Son sentencias con operadores de conjunción o disyunción, para permitir

evaluar la realización de un algoritmo.

Límite

Valor máximo a ser recorrido, en una estructura repetitiva.

Operación

Instrucción o sentencia de programación a realizar en el programa.

Repositorio

Almacén o espacio de memoria para albergar un conjunto de datos.

Usuario de Programa

Persona que hará uso de las especificaciones del programa.

Universidad Continental | Manual 41


V

Variable de Recorrido

Espacio de memoria que se inicializa con un valor y puede ser modificado al

incrementarse o decrementarse.

42
Bibliografía de la Unidad 2

Ceballos Sierra, F. (2006). C / C++ curso de programación (6ta ed.). México:

AlfaOmega.

Joyanes Aguilar, L. (2008). Fundamentos de Programación (4ta ed.). España:

McGraw-Hill.

Pressman, R. (2002). Ingeniería del software (5ta ed.). España: McGraw-Hill.

Rojas Moreno, C. (2013). Algorítmia y estructura de datos. Perú: Universidad

Continental.

Universidad Continental | Manual 43


44

También podría gustarte