Está en la página 1de 37

Manual de Programación

Universidad Politécnica del Valle de Toluca


 Nombre del Docente (Autor) M.T.I Martha Ma. Montes de Oca Herrera
 Título del material Manual de Programación Estructurada. Estructuras de
Control
 Año de publicación: 2020
 Área del conocimiento a la que pertenece (se selecciona del catálogo*)
 Idioma del Material: Español
 Palabras clave (que faciliten la búsqueda del material) Programación,
estructuras de control, lenguaje c
Manual de Programación
Manual de Programación

Programación Estructurada
Objetivo El alumno creará programas a través del uso de
seudocódigos, conocerá y manejará las estructuras de control
que le permitan resolver los problemas utilizando las técnicas
de programación estructurada y modular, y realizando las
pruebas de escritorio necesarias para corroborar dicha solución.

Sinopsis Tema Actividades

Definición El alumno conocerá que es la


programación estructurada y la
utilidad en la creación de programas.

Creación de programas El alumno diseñará una solución al


problema haciendo uso de los
algoritmos y seudocódigos para
realizar una compa-
ración entre estos.

Estructuras de control El estudiante conocerá la


definición, sintaxis y utilidad de
cada una de las estructuras en
cuestión dentro de la
creación de programas.

Módulos El alumno definirá y diseñará una


solución alternativa a los problemas
haciendo uso de la programación
modular, creando los módulos y
subrutinas correspondientes.

Prueba de escritorio El alumno definirá el concepto, así


como realizará la prueba
correspondiente a la solución
planteada a través de un seudocódigo
para verificar el funciona-
miento correcto de dicha solución.

Conocimientos Diseño de seudocódigos y módulos utilizando las estructuras


de control y realizar la prueba de escritorio para verificar la
solución.
Manual de Programación

Definición Es una técnica diseñada de manera vertical y secuencial para la


creación de programas simples o complejos, de tal manera
que éstos sean fáciles de entender, codificar, compilar y depurar.
(Joyanes Aguilar & Zahonero Martinez, 2005)

Características  Diseño de manera vertical,


 Debe existir jerarquía usando sangría entre todas las líneas
de código y las estructuras de control,
 Se define el cuerpo principal del programa (main),
 Se declaran y colocan todas las variables, estructuras de
con- trol y de datos así como los resultados,
 Se finaliza terminando el cuerpo principal (main).

Representación Se visualiza como un sólo bloque rectangular de manera vertical.

//Comentarios del programa


Librerias

main(){//Inicio del main

Colocar las líneas


nece- sarias que den
la solu- ción al
problema.
 variables,

prinft,

scanf,

cin,

cout,

if/esle,

for,

while,

Manual de Programación

do/while

switch
getch();
return
0;

}//Fin del
main

Representación gráfica de la programación estructurada.


Manual de Programación

Ejemplos A continuación se presenta un programa simple para representar la


estructura básica de la programación estructurada con todos sus
elementos.
Los colores representan la forma en la que el compilador Borlan
C++ representa cada línea de código de acuerdo a lo siguiente.
 Comentarios, color azul y en cursiva.
 Librerías, en color verde.
 Variables, estructuras de control y de datos, en color negro.
Más adelante en el capítulo 4 se proseguirá de lleno a la creación
de programas completos utilizando ésta técnica de programación.
/*Estas líneas representan un comentario dentro del programa que el
Manual de Programación

Primer programa
en C++
compilador pasa por alto y no lo considera como parte de las líneas de código a ejecutar*/
//Definición de las librerías
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <math.h>
main(){//Definición e inicio del main principal
//Inicio del cuerpo del programa
int a,b,c;
double x1,x2,x;
cout<<"Escribe los valores de A, B y C ";
cin>>a>>b>>c;
if (sqrt(pow(b,2)-4*a*c) >= 0){
x1 = (double)(-b + (sqrt(pow(b,2)-4*a*c)))/2*a; x2 = (double)(-b -
(sqrt(pow(b,2)-4*a*c)))/2*a; cout<<"\nLa raíz positiva ="<<x1;
cout<<"\nLa raíz negativa ="<<x2;
}
else
cout<<"\nValores no validos para a, b y c";
//Fin del cuerpo del
programa
getch();
return 0;
}//Fin del main principal

Creación de Programas
Definición Antes de entrar de lleno al mundo de la programación, es impor-
tante recalcar que para ello se requiere de la aplicación de la
lógica al 100%, así como del razonamiento y pensamiento
intelectual, ya que todos los problemas a resolver antes de
codificarlos, requieren pasar por una serie de etapas que
permitan discernir cada una de éstas para llegar a la
representación más simple del problema en cuestión. (Joyanes
Aguilar & Zahonero Martinez, 2005)
Para ello se deben tomar en cuenta cada una de las siguientes re-
comendaciones para tratar de resolver los problemas de la mejor
manera y convertirse en un buen programador. Cabe
mencionar que para lograr éste cometido se requiere de
práctica constante para poder llegar a conocer y dominar los
elementos inherentes a ésta y dominar la técnica.
Manual de Programación

Recomendaciones Estos diez pasos representan una guía para crear programas bien
estructurados de tal manera que sean fáciles de elaborar si se toma
en cuenta cada uno de estos.

• Colocando en la parte superior un comentario alusivo


1 a lo que hará y solucionará el programa.

• Dentro del comentario, colocar el nombre del autor,


2 fecha, versión y última modificación del programa.

• Colocar únicamente las librerías necesarias útiles


3 para correr el programa.

• Definir el main principal, agregando un comentario


4 de inicio.

• Definir las variables necesarias del tipo de dato


correspondiente, de preferencia que el nombre tenga
5 que ver con el valor a manipular.
• Identificar que datos de entrada proporcionados por
el usuario necesito para ejecutar el programa y son
6 parte de la solución.
• Identificar de las variables antes definidas, cuáles
7 serán de salida como producto de la solución.
• Colocar a lo largo de todo el programa comentarios
en cada línea de código que no sea fácil de
8 comprender y en cada estructura de control.
• Siempre debe existir jerarquía respecto a las líneas
9 de código dejando sangría entre cada una de estas.
• Lo anterior permite agrupar por bloques las acciones
que realiza cada estructura de control, ayuda a no
10 cometer errores y corregir de manera más fácil el
programa.

Instrucciones para crear programas.


Manual de Programación

Ejemplo Obtener el promedio de edad de cinco personas para determinar el


potencial humano de la empresa Nysox, las cuales se mencionan a
continuación.
Realizar el algoritmo y seudocódigo para hacer una comparación
entre cada uno de éstos, al finalizar imprimir el resultado.
Juan tiene 23, Ana 24, Raúl 28, Viridiana 21 y Leo 29,

Algoritmo 1. Saber o conocer las edades de las cinco personas,


2. Realizar la suma de las edades y el resultado dividirlo entre el
número total de personas,
3. Imprimir el resultado de la división.
Inicio
Seudocódigo Entero Juan=23, Ana=24, Raúl=28, Viridiana=21, Leo=29;
Flotante Promedio=0;
Promedio = (Juan + Ana + Raúl + Viridiana + Leo)/5;
Imprimir (El promedio de edad = Promedio);
Fin

Comparación Observar que el algoritmo es una serie de pasos o instrucciones


que indican cada una de las acciones u operaciones a realizar, en
otras palabras es la receta o instrucciones a seguir para hallar la
solución al problema en cuestión.
Por otra parte, haciendo uso de la definición de seudocódigo, utili-
zamos un lenguaje natural para traducir cada uno de los pasos del
algoritmo definiendo las variables necesarias así como las opera-
ciones básicas a realizar y la impresión del resultado final.

Algoritmo Traducción a seudocódigo


Inicio
1. Saber las edades de las cinco personas.
Entero Juan = 23, Ana = 24, Raúl = 28;
Entero Viridiana = 21, Leo=29;
Flotante Promedio=0;

2. Realizar la suma de las edades y el re-


sultado dividirlo entre número total de Promedio=(Juan+Ana+Raúl+Viridiana+Leo)/5;
personas.
Imprimir (El promedio de edad = Promedio);
3. Imprimir el resultado de la división.
Fin
Traducción de algoritmo a seudocódigo.
Manual de Programación

Ejemplos Utilizar las recomendaciones anteriores (creación de programas)


para traducir o codificar el seudocódigo del problema anterior para
crear el programa que imprima el resultado.
Nota: en ocasiones por la naturaleza misma del problema no todas
las recomendaciones están presentes, considere las necesarias.

Seudocódigo Codificación del Programa en C


Inicio main(){//Inicio
Entero Juan = 23, Ana = 24, Raúl = 28; int Juan = 23, Ana = 24, Raúl = 28;
Entero Viridiana = 21, Leo=29; int Viridiana = 21, Leo=29;
Flotante Promedio=0; float Promedio=0;
Promedio=(Juan+Ana+Raúl+Viridiana+Leo)/5; Promedio=(Juan+Ana+Raúl+Viridiana+Leo)/5;
Imprimir (El promedio de edad = Promedio); printf(“El promedio de edad =%f”, Promedio);
Fin getch();
return 0;
}//Fin
Traducción de seudocódigo a programa

Solución A continuación se demuestra paso a paso la utilidad de las reco-


mendaciones para la creación de programas.
Comentarios /*Este programa imprimirá el promedio de edad de cinco personas
definidas por el programador.
Autor: Israel Gutiérrez López.
Fecha de creación: 15-08-2001. Versión 1.0.
Fecha de modificación 18-08-2011.
Realizado en lenguaje de programación C*/
Librerías //Definición de las librerías
#include <stdio.h>
#include <conio.h>
Main principal //Definición e inicio del main principal
main(){
Variables int Juan = 23, Ana = 24, Raúl = 28;
int Viridiana = 21, Leo=29;
float Promedio=0;
Comentario //Suma las edades y divide el resultado entre cinco
Operaciones Promedio=(Juan + Ana + Raúl + Viridiana + Leo)/5;
Datos de salida printf(“El promedio de edad =%f”, Promedio);
//Imprime el resultado final del promedio
Jerarquía getch();
return 0;
}//Fin del main
Manual de Programación

Ejemplos, continúa… Modificar el problema anterior para pedir al usuario que introduz-
ca las edades de cada una de las personas y obtener el promedio.
Comentarios /*Este programa imprimirá el promedio de edad de cinco personas
proporcionadas por el usuario.
Autor: Israel Gutiérrez López.
Fecha de creación: 15-08-2001.
Versión 1.0.
Fecha de modificación 18-08-2011.
Realizado en lenguaje de programación C*/
Librerías //Definición de las librerías
#include <stdio.h>
#include <conio.h>
Main principal //Definición e inicio del main principal
main(){
Variables int Juan, Ana, Raúl, Viridiana, Leo;
float Promedio=0;
Datos de entrada printf(“Escribe la edad de Juan”);
proporcionados por scanf(“%d”,&Juan);
el usuario printf(“\nAna ”);
scanf(“%d”,&Ana);
printf(“\nRaúl ”);
scanf(“%d”,&Raúl);
printf(“\nViridiana ”);
scanf(“%d”,&Viridiana);
printf(“\nLeo ”);
scanf(“%d”,&Leo);
Comentario //Suma las edades y divide el resultado entre cinco
Operaciones Promedio=(Juan + Ana + Raúl + Viridiana + Leo)/5;
Datos de salida printf(“El promedio de edad =%f”, Promedio);
//Imprime el resultado final del promedio
Jerarquía getch();
return 0;
}//Fin del main
Manual de Programación

Ejemplos, continúa… Mismo problema anterior pero ahora codificado en C++.


Comentarios /*Este programa imprimirá el promedio de edad de cinco personas
proporcionadas por el usuario.
Autor: Israel Gutiérrez López.
Fecha de creación: 15-08-2001, Versión 1.0.
Fecha de modificación 18-08-2011.
Realizado en lenguaje de programación C++*/
Librerías //Definición de las librerías
#include <stdio.h>
#include <conio.h>
#include <iostream.h>//Se agrega esta librería para programar en C++
Main principal //Definición e inicio del main principal
main(){
Variables int Juan, Ana, Raúl, Viridiana, Leo;
float Promedio=0;
Datos de entrada cout<<“Escribe la edad de Juan”;
proporcionados por cin>>Juan;
el usuario cout<<“\nAna ”;
cin>>Ana;
cout<<“\nRaúl ”;
cin>>Raúl;
cout<<“\nViridiana ”;
cin>>Viridiana;
cout<<“\nLeo”;
cin>>Leo;
Comentario //Suma las edades y divide el resultado entre cinco
Operaciones Promedio=(Juan+Ana+Raúl+Viridiana+Leo)/5;
Datos de salida cout<<“El promedio de edad =”<<Promedio;
//Imprime el resultado final del promedio
Jerarquía getch();
return 0;
}//Fin del main
Ejercicios Utilizar la guía para la creación de programas para diseñar el
algoritmo, el seudocódigo y el programa final de los siguientes
problemas.
1. Realizar un programa que pida al usuario introducir tres
números a, b, y c, e imprimir como resultado final la suma,
resta, multiplicación y el promedio, además de ello
verificar que número es el mayor y menor de los tres, para
cada caso imprimir el resultado con su mensaje
correspondiente.

Estructuras de Control

Selección Este tipo de estructura es útil para hacer la comparación de un


valor respecto a un abanico de posibilidades en la cual sólo un
valor o varios deben de cumplirse estrictamente para poder
ejecutar o llevar a cabo una cierta tarea, acción, proceso o
actividad que devolverá un resultado final.

Simple Es la sentencia más fácil que pueda existir, la utilidad de ésta se


ve reflejada cuando comparamos un valor con respecto a otro,
esto es, si cierta condición es verdadera entonces se lleva cabo
una actividad o acción cualquiera que sea, en otro caso, no se
hace absolutamente nada.
“Sólo se ejecutan las acciones si la condición es verdadera y
tiene que verificar todas las condiciones una por una hasta
terminar con todas ellas sin importar que alguna sea
verdadera”.

Sintaxis Si (condición es verdadera) entonces


Cuerpo de acciones a ejecutar
Diagrama

Fig. 2 Diagrama de flujo de selección simple

Ejemplos Si (mes = marzo ) entonces


Inicia la primavera

Si (hora >=15:00 y hora <=15:05) entonces


Puedes entrar a clase
Doble Existe la posibilidad de ejecutar una acción no importa el resultado
de la condición si es verdadera o falsa, alguna de las dos alternati-
vas invariablemente se lleva a cabo.
Es decir, si la condición resulta verdadera entonces se realizan sus
actividades, si no, también se realizan las actividades aún cuando
la condición resulta negativa, “si no es Chana es Juana”.
“Se ejecuta una de las dos acciones, ya sea uno u otra, verifica
una a una hasta terminar con todas ellas”.

Sintaxis Si (condición es verdadera) entonces


Cuerpo de acciones a ejecutar 1
Si no (parte negativa)
Cuerpo de acciones a ejecutar 2

Diagrama

Fig. 3 Diagrama de flujo de selección doble

Ejemplos Si (contraseña es correcta ) entonces


Bienvenido a tu perfil
Si no
Verifica que tu contraseña sea correcta

Si (hora >=15:00 y hora <=15:05) entonces


Puedes entrar a clase
Si no
Nos vemos la siguiente clase
Anidada Es la combinación consecutiva de la sentencia de selección doble,
esto es, se coloca el encabezado de la selección doble y en la parte
negativa cuando no se cumple la condición se vuelve a iniciar la
definición de una nueva condición las veces que sea necesario.
“La verificación de las condiciones termina cuando alguna es
verdadera, puede ser al principio a la mitad o al final”

Sintaxis Si (condición1 es verdadera) entonces


Cuerpo de acciones a ejecutar 1
Si no Si (condición2 es verdadera) entonces
Cuerpo de acciones a ejecutar 2
Si no Si (condición3 es verdadera) entonces
Cuerpo de acciones a ejecutar 3
Si no (caso por default si no fue alguna de las anteriores)
Cuerpo de acciones a ejecutar 4

Diagrama

Fig. 4 Diagrama de flujo de selección anidada

Ejemplos Si (fecha = 21 de Marzo) entonces


Inicio de la primavera
Si no Si (fecha = 24 de Febrero) entonces
Es día de la bandera
Si no Si (fecha = 1 de Mayo) entonces
Este día no se trabaja
Si no Si (fecha = 16 de Septiembre) entonces
Día de la independencia
Si no (caso por default si no fue alguna de las anteriores)
No hay evento para esa fecha
Ciclos Cuando se requiere ejecutar de manera consecutiva, iterativa o
repetitiva una cierta actividad, acción, proceso, tarea desde un va-
lor inicial hasta un valor final o viceversa, incluso detenerse cuan-
do un evento pase o por petición directa del usuarios se hace uso
de las estructuras cíclicas para lograr el cometido.
Cada ciclo se repetirá las veces que sea necesario siempre y cuan-
do la condición a verificar sea verdadera, en otra caso se detiene.

Ciclo Para Permite repetir un conjunto de instrucciones un cierto número de-


terminado de veces, con la peculiaridad que la variable que se uti-
liza como contador se incrementa o decrementa automáticamente
de uno en uno, de dos en dos o en la cantidad deseada según la
naturaleza del problema.
“Útil cuando se tienen que resolver problemas que involucran
repetir un determinado número de veces una actividad”.

Sintaxis Simple:
Para (valor inicial; hasta valor final; inc) hacer
Cuerpo de acciones a ejecutar
Completa:
Para (i = 0; hasta 10; i = i + 1) hacer
Cuerpo de acciones a ejecutar

Diagrama

Fig. 5 Diagrama de flujo del ciclo para

Ejemplos Para (i = 1; hasta 100; i = i + 1) hacer


Cuerpo de acciones a ejecutar

Para (i = 100; hasta 1; i = i - 1) hacer


Cuerpo de acciones a ejecutar
Ciclo Mientras En este tipo de estructura, el cuerpo de acciones a ejecutar se repite
mientras se cumple una determinada condición, la variable que se
utiliza como contador se incrementa o decrementa automáticamen-
te dentro del cuerpo de acciones a ejecutar de uno en uno, de dos
en dos o en la cantidad deseada según la naturaleza del problema.
“Útil cuando se tienen que resolver problemas que involucran
repetir un determinado número de veces una actividad pero él
usuario puede obligar a que la condición sea negativa para termi-
nar el ciclo, conocido como valor bandera”.

Sintaxis Mientras (condición es verdadera) hacer


Cuerpo de acciones a ejecutar
Incremento o decremento.
Fin mientras

Diagrama
Inicio

Acciones a
Condición realizar
Incremento

Fin

Fig. 6 Diagrama de flujo del ciclo mientras

Ejemplos Entero i = 1, suma = 0;


Mientras (i <= 10) hacer
suma = suma + i;
i = i + 1;
Fin mientras

Entero i = 10, suma = 0;


Mientras (i >= 1) hacer
suma = suma + i;
i = i - 1;
Fin mientras
Ciclo Funciona de la misma manera que el ciclo mientras, la única dife-
Hacer/mientras rencia es que éste ciclo primero ejecuta las acciones a realizar y
posteriormente verifica la condición para saber si es verdadera o
falsa y poder continuar con el ciclo repitiendo dichas acciones.
“La característica principal, es que primero ejecuta y después
verifica, lo que asegura que por lo menos se ejecuta una vez”.

Sintaxis Hacer
Cuerpo de acciones a ejecutar
Incremento o decremento
Mientras (condición es verdadera)

Diagrama
Inicio

Acciones a
realizar Condición
Incremento

Fin

Fig. 7 Diagrama de flujo del ciclo hacer/mientras

Ejemplos Entero f = 1, i = 1;
Hacer
f = f * i;
i = i + 1;
Mientras (i<=6);

Entero suma = 0, contador = 1;


Hacer
suma = suma + contador;
contador = contador + 1;
Mientras (i<=10);
Selección múltiple Nos permite elegir directamente una opción dentro de un abanico
de posibilidades.

Switch A diferencia de la selección simple, doble y anidada donde se ver i-


fican condiciones aquí se verifican casos, en otras palabras, si la
condición es verdadera entonces, para ésta estructura es:
En caso de que sea igual entonces ejecutar las acciones.

Sintaxis En caso de que sea(valor)


Caso 1:
Cuerpo de acciones a ejecutar
Caso 2:
Cuerpo de acciones a ejecutar
Caso 3:
Cuerpo de acciones a ejecutar
Caso por default:
Cuerpo de acciones a ejecutar
Fin casos

Diagrama Inicio

Caso 1 Acciones a
V
realizar

Caso 2 Acciones a
V
realizar

Caso por Acciones a


default V
realizar

Fin

Fig. 8 Diagrama de flujo de la selección múltiple


Switch, continúa… Ejemplos Entero calificación;
Escribe la calificación;
Guarda (calificación);
En caso de que sea(calificación)
Caso 10:
Calificación excelente
Caso 9:
Calificación muy buena
Caso 8:
Calificación buena
Caso por default:
Calificación regular
Fin casos

Cadena mes;
Escribe el mes;
Guarda(mes)
En caso de que sea(mes)
Caso marzo:
Inicia la primavera
Caso junio:
Inicia el verano
Caso septiembre:
Inicia otoño
Caso diciembre:
Inicia invierno
Caso por default:
Mes equivocado
Fin casos
Ejemplos Diseñar el seudocódigo utilizando las estructuras de control para
resolver el siguiente problema.
Imprimir el resultado final de la suma de cada uno de los elemen-
tos de la serie armónica regular.

Solución A partir de este momento se debe hacer uso de todo lo anterior


mente visto iniciando con el ciclo de vida, las recomendaciones
para crear programas, y por supuesto las estructuras de control.

Análisis Lo primero que se debe realizar, es un análisis detallado de todos


los elementos involucrados en la serie, es decir, preguntas como:
 ¿Qué valores de entrada necesito?
 ¿Qué valores de salida?
 ¿Qué tipo de datos manipula la serie?
 ¿Cómo se comporta la serie?
 ¿Existe algún patrón definido?
 ¿Cuáles son los valores por los que pasa la serie?
 ¿Qué operaciones están involucradas, en qué orden?
 ¿Qué tipo de dato será el resultado final?
 ¿Existe algún condicionante para poder resolver la serie?
 ¿Qué estructuras de control me permiten simular el
c o m portamiento de dicha serie, pasando por los valores
desde uno hasta n, considerando que cada dos valores en
la serie se debe hacer la resta de dicho numero?
Observando la serie, nos damos cuenta que está bien definida, es
decir, el valor inicial es uno, a partir de ello se deben realizar las
operaciones correspondientes hasta llega al valor final n.
El procedimiento a seguir, indica que el primer número lo tengo
que sumar, el segundo restar, el tercero nuevamente sumar, el
cuarto restar y así sucesivamente hasta llevar a n, sin embargo,
éste análisis aún es abstracto.
Análisis, continúa… Profundizando aún más en el análisis (recordar que ésta fase es la
más importante en la solución del problema), nos preguntamos:
¿Qué tienen en común todos los valores de la serie que se van a
sumar o que se van a restar?

Respuesta; analizando la serie obtenemos la solución, si los valo-


res son impares se suman si no se restan.
Algo más, los valores que aparecen en la serie son consecutivos, es
decir, se incrementa de uno en uno partiendo del valor inicial hasta
llegar al valor final, la única condición para hacer esto ya la sabe-
mos, los impares se suman y los pares se restan.
Todo lo anterior son indicativos para diseñar el seudocódigo final
incluyendo las estructuras de control que se deben utilizar, a de-
más de ello las variables con su valor inicial y el tipo de datos de
éstas.

Diseño del Tomando en cuenta las instrucciones para diseñar un buen seu-
seudocódigo docódigo proseguimos a la creación del mismo.
Inicio
Entero suma = 0, i, n;
Escribe el valor de n;
Guardar (n);
Para (i = 1 hasta n i = i +1)
Si (el residuo de i / 2 = 0) entonces //es par
suma = suma - i;
Si no
suma = suma + i; //es impar
Fin para
Imprimir (La suma es =, suma);
Fin

Explicación Inicio representa el encabezado de la definición del seudocódigo.


La línea, Entero suma = 0, i, n, indica que se están definiendo tres
variables que son la i, n y suma, ésta última definida con valor
inicial cero, todas ellas de tipo entero. La definición de las varia-
bles siempre inicia con el tipo de dato y en seguida el nombre de la
variable la cual puede ser definida con valor inicial ó no.
Explicación, con- La líneas, Escribe el valor de n y Guardar (n), la primera pide al
tinúa… usuario que escriba a través del teclado el valor final de la serie
que es n, la segunda guarda el valor proporcionado por el usuario
en la variable definida n.
El ciclo a utilizar para hacer la suma y resta de todos los elementos
de la serie en este caso es “Para”, ya que por las características
propias de la serie es la mejor opción por los valores inicial y final
que están bien definidos, también se puede resolver utilizando
mientras o hacer/mientras, para este ejemplo se diseñará el seu-
docódigo para los tres ciclos.
Identificando el ciclo que vamos a utilizar procedemos a definirlo
a través de la línea:
Para (i = 1; hasta n; i = i +1),
Significa de manera literal, para i igual a uno hasta n con un in-
cremento de i más uno hacer lo siguiente, la línea:
Si (el residuo de i / 2 = 0) entonces,
Si el residuo de i dividido entre dos es igual a cero entonces,
suma = suma – i;
suma es igual al valor actual de la suma menos el valor actual de i
(par ), Si no, la línea:
suma = suma + i;
suma es igual al valor actual de la suma más el valor actual de i
(impar), termina el ciclo Fin para, la línea:
Imprimir (La suma es =, suma);
Imprime el mensaje en pantalla, La suma es igual al valor final que
tenga la variable suma.
Inicio
Ciclo mientras Entero suma = 0, i = 1, n;
Escribe el valor de n;
Guardar (n);
Mientras (i <= n)
Si (el residuo de i / 2 = 0) entonces //es par
suma = suma - i;
Si no
suma = suma + i; //es impar
i = i + 1;
Fin mientras
Imprimir (La suma es =, suma);
Fin
Inicio
Ciclo Entero suma = 0, i = 1, n;
Hacer/mientras Escribe el valor de n;
Guardar (n);
Hacer
Si (el residuo de i / 2 = 0) entonces //es par
suma = suma - i;
Si no
suma = suma + i; //es impar
i = i + 1;
Mientras (i <= n);
Imprimir (La suma es =, suma);
Fin

Conclusión Observar que las dos únicas diferencias que existen entre el ciclo
Para respecto al Mientras y Hacer/mientras en la ejecución de cada
uno de estos es:
1. En los dos últimos siempre se debe definir el valor inicial de la
variable i = 1, y se hace al momento de definir la variable al
inicio del seudocódigo.
2. El incremento de dicha variable se coloca como parte del cuer-
po de acciones a ejecutar por dicho ciclo.
Programación Modular

Definición Técnica de programación que utiliza el método denominado


“divide y vencerás”, en la cual, la creación de los programas se
basa en diseñar funciones, módulos o procedimientos, que son
segmentos
de código diseñados cada uno para realizar una tarea específica
y se colocan fuera de la definición del main principal, son
independientes entre sí pero pertenecen al mismo programa.

Características El diseño es de manera vertical, se define el cuerpo principal


del programa (main), y dentro de éste se mandan llamar ó
ejecutar las funciones o módulos en cuestión creados para
resolver el problema.
El segmento de código de las funciones o módulos se coloca
fuera del main, debajo de las librerías y antes de la definición
del main, o en la parte inferior una vez definido y finalizado el
main princi- pal.
Existe una restricción si el código de las funciones o módulos se
coloca en la parte la inferior del main principal, se debe definir
lo que se le conoce como Prototipo de las funciones o módulos
in- mediatamente después de la definición de las librerías.
Lo siguiente es única y exclusivamente para cuando se quiera
pro- gramar de ésta manera, a continuación se define la
estructura gene- ral de un prototipo para la definición de una
función y posterior- mente de un prototipo.
De no ser así, se omite la definición del prototipo y se prosigue
a colocar el código de dicha función o prototipo en la parte
inferior del programa una vez terminado el main principal.
Para una función Estructura La utilidad de una función dentro de un progra-
ma es devolver un valor específico de cualquier
tipo de dato.

• Tipo de dato que va a devolver,


1

• Nombre de la función,
2

• Tipo de dato de los parámetros que


3 va a recibir entre paréntesis.

Instrucciones para definir el prototipo de una función.

Definición
1 2 3

Tipo_dato nombre_función (Tipo_dato);

Entero Alusivo a la Entero


Flotante operación a Flotante
Doble realizar Arreglos

Definición del prototipo de una función

 Entero Factorial (Entero); Flotante


 Seno (Entero, Flotante); Doble
 Coseno (Flotante, Doble); Entero
 Ordear (Entero, Entero [ ]);

Ejemplos en C  int factorial (int);


 float coseno (int, int [ ]);
 int registro (char);
Donde los corchetes [ ] en ambos casos, repre-
senta que la función recibe un parámetro de tipo
entero pero éste es un arreglo.
Para un modulo Estructura La utilidad de un modulo es realizar una tarea
específica dentro de un programa e incluso puede
imprimir el resultado de dicha tarea.
A diferencia de una función éste puede o no de-
volver un valor.
• Se antepone el prefijo void para
1 indicar que se trata de un modulo,

• Nombre del modulo,


2

• Tipo de dato de los parámetros que


3 puede o no recibir entre paréntesis.

Instrucciones para definir el prototipo de un modulo.

Definición
1 2 3

void nombre_modulo (Tipo_dato);

Entero
Alusivo a la
Flotante
tarea a
Carácter
realizar
Arreglos

Definición del prototipo de un modulo

 void altas ()
 void bajas (Entero);
 void consultas (carácter);
 void modificaciones (Entero, Carácter);

Ejemplos en C  void altas();


 void bajas(int);
 void consultas(char);
 void modificaciones(int, char);
Parámetro Representa el tipo de dato o la variable que puede recibir o manipu-
lar tanto las funciones como los módulos dentro de su segmento de
código, su utilidad se define en varios casos.
1. En la definición del prototipo, sólo se coloca el tipo de dato
sin el nombre de la variable.
 int factorial (int);
 float seno (int, int);
 void mi_modulo (int);
 void otro_modulo (char);
2. En el momento que se manda a llamar para llevar a cabo su
ejecución dentro del main, se sustituye el tipo de dato por el
nombre real de la variable que va a recibir.
 factorial (número);
 seno (base, exponente);
 mi_modulo (suma);
 otro_modulo (letra);
3. En la definición del código de dicha función o modulo se
coloca como definición de una variable el tipo de dato más
el nombre de la variable y ésta recibirá una copia del valor
real de la variable que tiene el modulo o función cuando fue
llama dentro del main principal.
 int factorial (int num);
 float seno (int x, int y);
 void mi_modulo (int suma);
 void otro_modulo (char letra);

Explicación Cada función o modulo es independiente del resto de los demás


incluso del main principal, cada uno de estos contiene código es-
pecífico (var, if, if/else, for, while, do/while) que realiza su función
y termina.
Cada función o modulo puede ejecutarse tantas veces sea necesario
hasta que termine el main principal, incluso desde una función o
modulo puede ejecutarse.
Representación Se visualiza como varios bloques de manera vertical.

//Comentarios del programa


Librerías

//Prototipo de las funciones


int factorial (int);

//Prototipo de los módulos


void mi_modulo (int);

main(){//Inicio del main


//Llamada de F y M
factorial (n);
mi_modulo (suma);
getch();
return 0;
}//Fin del main

int factorial(int m){


Código necesario para
realizar la tarea específica
de ésta función.
}

void mi_modulo(int s){


Código necesario para
realizar la tarea específica
de éste modulo.
}

Representación gráfica de la programación modular


Ejemplos Realizar un programa utilizando la Técnica de Programación Mo-
dular. Sólo para este caso utilizar la representación anterior para
colocar cada línea de código en el lugar que le corresponde.
//Comentario de lo que hace el programa
Librerías #include<stdio.h>
#include<conio.h>
//Prototipo de la función
Prototipos int factorial (int);
//Prototipo del modulo
void mi_modulo (int);
/*Para la ejecución de las funciones ó módulos, sólo se debe colocar el
Main principal nombre de cada uno de éstos y como parámetro el nombre de la variable
que va a recibir*/
main(){//Inicio del main
int n, suma;
printf(“Escribe el valor de n y suma”);
scanf(“%d,%d”,&n,&suma);
printf(“n! = %d”, factorial (n)); //Llamada de la función factorial
mi_modulo (suma); //Llamada del modulo
getch();
return 0;
}//Fin del main
/*Observe que el main principal para este ejemplo no lleva una sola línea
de código de las estructuras de control if, if/else, for, while, do/while,
únicamente manda a traer ó ejecutar funciones ó procedimientos defini-
dos como prototipos, y éstos son los que contienen todo el código necesa-
rio para realizar su tarea.*/
int factorial(int m){
Crear la función /*Código necesario para realizar la tarea específica de ésta función
que es calcular el factorial de cualquier numero entero */
} //fin función factorial
void mi_modulo (int s){
Crear el modulo /* Código necesario para realizar la tarea
específica de éste modulo */
}//fin del modulo bajas
#include<stdio.h>
Programa #include<conio.h>
int factorial (int);
void mi_modulo (int);
main(){
int n, suma;
printf(“Escribe el valor de n y suma”);
scanf(“%d, %d”, &n, &suma);
printf(“n! = %d”, factorial (n));
mi_modulo (suma);
getch();
return 0;
}
int factorial(int m){
int f = 1;
for (i=1; i<=m; i++)
f = f * i;
return f;
}
void mi_modulo (int s){
int total = 0;
for (i=1; i<=s; i++)
total = total + i;
printf(“Estas dentro del modulo mi_modulo\n”);
printf(“El valor del modulo es = %d”, total);
}
Prueba de Escritorio

Definición Es una prueba que se hace de manera formal línea por línea al
resultado final del diseño del seudocódigo, se simulan valores
reales que va a manipular el programa final, es decir, se
verifica si las
operaciones, estructuras de control y de datos son correctas y
por consiguiente devolverá resultados correctos. (Joyanes
Aguilar & Zahonero Martinez, 2005)
Normalmente se representa a través de una tabla de valores que
involucra las variables en cuestión para ver los valores que va
to- mando cada una de éstas y mostrar el valor final de cada una.

Ejemplos Realizar la prueba de escritorio al siguiente seudocódigo para


verificar si es capaz de realizar la suma correcta de la serie de la
parte inferior si el valor de n= 6.

Inicio
Entero suma = 0, i,
n; Escribe el valor
de n; Guardar (n);
Para (i = 1 hasta n i = i
+1)
Si (el residuo de i / 2 = 0) entonces //es par
suma = suma
– i; Si no
suma = suma + i; //es impar
Fin
para
Imprimir (La suma es =,
suma);
Fin

Procedimiento Valor final de n = 6


Valores de i = 1 2 3 4 5 6
suma = suma - 1
1–2 2–4 3 – 6 = –3
si i es par
suma = suma + i
1 –1 + 3 –2 + 5
si i es impar
Prueba de escritorio

La suma es = –3.
¿La prueba de escritorio devuelve el resultado real de la serie?
Ejercicios Utilizando las estructuras de control, diseñar el algoritmo y
seudocódigo para resolver los siguientes problemas.

Serie 1

Serie 2

Serie 3

Serie 4

Serie 5

Serie 6

Serie 7

Serie 8

Serie 9

Problema 10
Determinar si un número proporcionado por el usuario es múltiplo
de 2, 3 o 5. En cada caso imprimir un mensaje indicando si
dicho número es múltiplo de los números en cuestión.
En otro caso puede ser que dicho número sea múltiplo de 2 y 3,
2 y 5, 3 y 5 o incluso hasta de los tres, imprimir en cada caso el
mensaje correspondiente.

Ejercicios Utilizando la solución de cada uno de los problemas antes ya re-


sueltos, ahora con la técnica de programa modular diseñar el
programa correspondiente para cada caso.
Es decir, crear un módulo para cada caso que imprima el
valor final de cada serie.

Serie 2

Serie 4

Serie 5

Serie 7

Serie 9

Trabajos citados
Joyanes Aguilar , L., & Zahonero Martinez, I. (2005). Programaciòn en C . Metodología, algoritmos
y estructuras de control. México: McGrawHill.

También podría gustarte