Sunteți pe pagina 1din 32

Fundamentos de

Programación
Carol R. Rojas Moreno
Manual – Unidad 2
Índice
Introducción ............................................................................................................................................. 3
Organización de la Asignatura ........................................................................................................... 4
Unidades didácticas .......................................................................................................................... 4
Tiempo mínimo de estudio ............................................................................................................... 4
UNIDAD 2: ………………………………………………. ........................................................................ 5
Diagrama de organización .............................................................................................................. 5
Tema n.° 1: ……………………………… ............................................................................................ 5
Sub tema 1.1 ..................................................................................................................................... 6
Tema n.° 2: ………………………………………………. ................................................................. 12
Sub tema 2.1 ................................................................................... Error! Bookmark not defined.
De la teoría a la práctica ............................................................... Error! Bookmark not defined.
Glosario de la Unidad 2 ....................................................................................................................... 22
Bibliografía de la Unidad 2 ................................................................................................................. 30

2 Manual
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 3


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.

Tiempo mínimo de estudio

UNIDAD 1 UNIDAD 2 UNIDAD 3 UNIDAD 4

24 horas 24 horas 24 horas 24 horas

4 Manual
UNIDAD 2: Estructuras de control para la
programación: Repetitiva.
Diagrama de organización

¿Elegir las acciones a realizar Codificación de algoritmo de


Elaboración de solución usando menú de
o repetir el proceso en el
algoritmo de solución opciones
programa?

Tema n.° 1: Estructuras de control para la programación: Estructuras de


control repetitiva: 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.

Universidad Continental | Manual 5


Sub tema 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:

Diagrama de Flujo para una Estructura de Control Repetitiva Mientras

Diagrama N-S:

6 Manual
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

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.

Universidad Continental | Manual 7


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

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

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

i i = 1; promCalif
sumNumeros contAprob
promNumeros Mientras (i <= 10) contDsprob
{
sumNumeros = sumNumeros + i

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

8 Manual
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.

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 9


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) Variable(s)
Variables a Proceso (cálculo)
a ingresar para reportar
usar
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

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

10 Manual
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.

Universidad Continental | Manual 11


Tema n.° 2: Estructuras de control para la programación: Estructuras 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.

Sub tema 2.1 Definición 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)

Diagrama de Flujo:

Diagrama de Flujo para una Estructura de Control Repetitiva Hacer-Mientras

12 Manual
Diagrama N-S:

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++:

Universidad Continental | Manual 13


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 Variables a Variable(s) Variable(s) para


Proceso (cálculo)
usar a ingresar reportar

InventarioPan InventarioPan Hacer{ contClientAtendid


cantPan cantPan Leer InventarioPan; o
contClientAtendido rpta contClientNoAten
contClientNoAtendido Si(InventarioPan <= 0) dido
TotalVendido Escribir "Error, Vuelva ingresar >=0" TotalVendido
rpta InventarioPan
}Mientras(InventarioPan <= 0)

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
}
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

14 Manual
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 15


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.

Sub tema 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)

16 Manual
Diagrama de Flujo:

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

Diagrama N-S:

Universidad Continental | Manual 17


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
Código C/C++:

18 Manual
En la figura anterior, se puede decir, que para hallar el 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 del 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:

4!= 4 * 3 * 2 * 1
i=4 i=3 i=2 i=1

i++ i++ i++

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

anterior, dando como resultado el producto o el valor del 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.

Universidad Continental | Manual 19


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:

1 + 2 + 3 + 4 + .... + n_
2 3 4 5 n+1

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

Identificar Variable(s) Variable(s)


Proceso (cálculo)
Variables a usar a ingresar para reportar

n n Hacer{ suma
i Leer n;
denominador
suma Si(n<= 0)
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

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 denominador 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.

20 Manual
Código C/C++:

Universidad Continental | Manual 21


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.

Sub tema 4.1 Definición de Estructuras de Control Repetitiva: Menú de Opciones

El menú de opciones le va a permitir crear un conjunto acciones que se puede

realizar dada una selección del usuario, según las condiciones iniciales que se

hayan recopilado.

El menú de opciones se puede crear usando las estructuras de control

repetitivas.

De la teoría a la práctica

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

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

Verifique el ingreso de datos y todos los casos que pudieran darse al ingresar

datos.

Propuesta de Solución sin Menú de opciones:


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

control repetitivas, como el DO – WHILE, pero no permitiría seleccionar si es

depósito, retiro o ver saldo, si no que obliga a realizar todas operaciones, y como

consecuencia puede tomar más tiempo de ejecución de las tareas del usuario.

22 Manual
Código C/C++:

Propuesta de Solución con Menú de opciones:


.
El caso planteado se puede mejorar haciendo uso solo de las estructuras de

control repetitivas, como el DO – WHILE, para presentar un menú de opciones,

validando el ingreso, permitiendo seleccionar una opción u otra, como:

depósito, retiro o ver saldo.

Universidad Continental | Manual 23


Código C/C++:

Menú a mostrar

Opciones de Menú
a ejecutar, en el
switch y por cada
case.

Repetición de Menú

24 Manual
Ejemplo 2: Elabore un programa, el cual permita calcular el monto a pagar

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

Solución con Menú de opciones:

Universidad Continental | Manual 25


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.

Sub tema 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.

26 Manual
Fuente: Propia

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 27


Contador

Acumulador

Cuenta clientes

Acumula Montos Finales

28 Manual
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ú.

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


.

Acumulador

Contadores

Universidad Continental | Manual 29


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.
Variable de Recorrido: espacio de memoria que se inicializa con un valor y
puede ser modificado al incrementarse o decrementarse.

30 Manual
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 31


32 Manual

S-ar putea să vă placă și