You are on page 1of 13

Universidad Ricardo Palma

FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA INFORMATICA
DEPARTAMENTO ACADMICO DE INGENIERA

Programacin digital

UNIDAD TEMTICA N 5

Programacin Modular
Profesor Augusto Cortez Vsquez

Conocer la tecnica de programacion


Objetivos

modular

Conocer la sintaxis de llamadas a funciones

Proporcional ejemplo de programacion modular

Programacin Modular:

Un problema complejo puede resolverse dividindolo en mdulos mas pequeos,


llamados subproblemas. De esta manera, en lugar de resolver una tarea compleja y
tediosa, resolvemos otras ms sencillas y a partir de ellas llegamos a la solucin.

Si traslados este mtodo a la programacin, se puede crear y trabajar con subprogramas


para resolverlos los problemas. A estos subprogramas se les suele llamar mdulos, de ah
viene el nombre de programacin modular.

Augusto Cortez Vsquez Pgina 1


Ejemplo 1
Programa que verifica si un nmero es par

Verificar si un nmero es par

Especificacin:

num B

num : variable que denota el nmero a verificar


B : variable booleana que denota el valor resultado de la verificacin

Precondicion : num Z
Funcion Verifica( num: entero)dev (mensaje: cadena texto)
Postcondicion : B : num mod 2 = 0

Implementacin
Fun Principal() Fun Verifica( n)
Inicio Inicio
Leer num Si n Modulo 2 = 0
Si Verifica(num) Retornar verdad
Escribir num+ es par Sino
Fi nSi Retornar falso
Fin FinSi
Fin

Augusto Cortez Vsquez Pgina 2


Ejemplo 2

Programa que muestra un men de figuras geomtricas

class Program
{

// esta funcion es de tipo void, lo cual quiere decir que no devuelve nada
static void cuadrado()
{ int l, A;
System.Console.WriteLine("ingrese el lado del cuadrado ");
l = int.Parse(System.Console.ReadLine());
A = l * l;
System.Console.WriteLine("el area del cuadrado es " + A);
}

static int triangulo()


{
// esta function es de tipo int, lo cual quiere decir que devuelve un dato de tipo
entero
int b, h ,A;
System.Console.WriteLine("ingrese la base del triangulo ");
b = int.Parse(System.Console.ReadLine());
System.Console.WriteLine("ingrese la altura");
h = int.Parse(System.Console.ReadLine());
A = (b * h) / 2;
return A;
// retorna resultado a la funcin que la llamo
}

static void Main(string[] args)


{
cuadrado();
System.Console.WriteLine(" El rea del traingulo es + triangulo());
System.Console.ReadLine();

}
}

Ejemplo 3

Programa que muestra los N primeros nmeros perfectos


class Program
{

Augusto Cortez Vsquez Pgina 3


static bool perfecto(int x)
{
int s, i;
s = 0;
for (i = 1; i < x; i++)
if (x % i == 0)
s = s + i;
if (x == s)
return true;
else return false;
}

static void Main(string[] args)


{
int N, c, v;
System.Console.Write(" Ingrese N ");
N = int.Parse(System.Console.ReadLine());
v = 6;
c = 0;
while (c < N)
{
if (perfecto(v))
{
System.Console.WriteLine("el nmero " + v + " es perfecto");
c = c + 1;

}
v = v + 1;
}

System.Console.ReadLine();
}

}
}

Ejemplo 4

Programa que muestra un men de figuras geomtricas


class Program
{
static int menu()
{ int opcion;
System.Console.WriteLine("\tMenu\n\n");
System.Console.WriteLine(" 1 ==> cuadrado ");
System.Console.WriteLine(" 2 ==> triangulo ");
System.Console.WriteLine(" 3 ==> circulo ");
System.Console.WriteLine(" 4 ==> factorial ");
System.Console.WriteLine(" 5 ==> Perfecto ");
System.Console.WriteLine(" 0 ==> salir ");
System.Console.Write(" \n\n que opcion vas a elegir ");
opcion = int.Parse(System.Console.ReadLine());
return opcion;
}

Augusto Cortez Vsquez Pgina 4


static void cuadrado()
{ int l, A;
System.Console.WriteLine("ingrese el lado del cuadrado ");
l = int.Parse(System.Console.ReadLine());
A = l * l;
System.Console.WriteLine("el area del cuadrado es " + A);
}

static void triangulo()


{
int b, h ,A;
System.Console.WriteLine("ingrese la base del triangulo ");
b = int.Parse(System.Console.ReadLine());
System.Console.WriteLine("ingrese la altura");
h = int.Parse(System.Console.ReadLine());
A = (b * h) / 2;
System.Console.WriteLine("el area del triangulo es " + A);
}

static void circulo()


{ double r, A;
System.Console.WriteLine("ingrese radio ");
r = double.Parse(System.Console.ReadLine());
A = Math.PI * Math.Pow(r, 2);
System.Console.WriteLine("el area del circulo es " + A);
}

static void factorial()


{
int N, I, F;
System.Console.WriteLine("ingrese numero ");
N = int.Parse(System.Console.ReadLine());
F = 1;
I = 1;
while(I<=N)
{
F = F * I;
I = I + 1;
}
System.Console.WriteLine("el factorial de " +N +" es " +F);
}

static void Main(string[] args)


{ int opc;
opc = menu();
while (opc!=0)
{ switch ( opc)
{
case (1): cuadrado();break;
case (2): triangulo(); break;
case (3): circulo(); break;
case (4): factorial(); break;
default: System.Console.WriteLine("error ese opcion no existe"); break;

Augusto Cortez Vsquez Pgina 5


}
opc = menu();
}
System.Console.WriteLine("sali del menu");
System.Console.ReadLine();
}
}
}

Augusto Cortez Vsquez Pgina 6


Ejemplo 5
Programa que muestra un men de mezcladoras de cemento

class Program
{ // Autor : Augusto Cortez Vasquez
static int menu()
{ int opcion;
System.Console.WriteLine("\tMezcladoras de cement \n\n");
System.Console.WriteLine(" 1 ==> Mezclador de cemento estacionario ");
System.Console.WriteLine(" 2 ==> Mezclador de cemento mvil ");
System.Console.WriteLine(" 3 ==> Mezclador de cemento elctrico ");
System.Console.WriteLine(" 4 ==> Mezcladores a gasolina y diesel ");
System.Console.WriteLine(" 0 ==> salir ");
System.Console.Write(" \n\n que opcion vas a elegir ");
opcion = int.Parse(System.Console.ReadLine());
return opcion;
}

static void CementoEstacionario()


{ System.Console.WriteLine("Como su nombre lo sugiere, los mezcladores de cemento estacionario ");
System.Console.WriteLine("no estn diseados para ser transportados de ubicacin a ubicacin. ");
System.Console.WriteLine("son usados para proyectos de construccin de gran escala,.");
}

static void MezcladorMovil()


{ System.Console.WriteLine("Usados para preparar concreto en una ubicacin y transportarlo a otra ");
System.Console.WriteLine("A menudo son instalados en la parte trasera de grandes camiones ");

Augusto Cortez Vsquez Pgina 7


System.Console.WriteLine("A menudo se usan para mezclar cemento para aceras y estructuras viales ");
}

static void Main(string[] args)


{ int opc;
opc = menu();
while (opc!=0)
{ switch ( opc)
{
case (1): CementoEstacionario ();break;
case (2): MezcladorMovil(); break;
default: System.Console.WriteLine("error ese opcion no existe"); break;
}
opc = menu();
}
System.Console.WriteLine("sali del menu");
System.Console.ReadLine();
}
}
}

Ejemplo 6

Programa que muestra un men de operaciones aritmticas

class Program
{ static int menu()
{
int opc;
System.Console.WriteLine("\n\t MENU\n\n ");
System.Console.WriteLine(" 1 adicion \n");
System.Console.WriteLine(" 2 sustraccion\n ");
System.Console.WriteLine(" 0 salir \n\n");
System.Console.Write(" elija una de las opciones mosyradas ");
opc = int.Parse(System.Console.ReadLine());
return opc;
}
Augusto Cortez Vsquez Pgina 8
static void suma()
{
int A, B,C;
System.Console.WriteLine("\n\t SUMA\n\n ");
System.Console.WriteLine(" ingresa el primer numero: ");
A = int.Parse(System.Console.ReadLine());
System.Console.WriteLine(" ingresa el segundo numero: ");
B = int.Parse(System.Console.ReadLine());
C = A + B;
System.Console.WriteLine(" la suma es " + C );
}
static void resta()
{
int A, B, C;
System.Console.WriteLine(" ingresa el primer numero: ");
A = int.Parse(System.Console.ReadLine());
System.Console.WriteLine(" ingresa el segundo numero: ");
B = int.Parse(System.Console.ReadLine());
C = A - B;
System.Console.WriteLine(" la resta es " + C);
}

static void Main(string[] args)


{
int opc;
opc = menu();
while (opc != 0)
{
switch (opc)
{
case 1: suma(); break;
case 2: resta(); break;
case 3: resta(); break;
case 4: resta(); break;
default: System.Console.WriteLine(" opcion errada, elija otra vez "); break;
}
opc = menu();
}
}
}
}

Augusto Cortez Vsquez Pgina 9


Programacin digital

Ejemplo 7

Programa que muestra un men de cajero automtico

class Program
{ static int Saldo=0;
static int menu()
{ int opc;
System.Console.WriteLine("\n\t CAJERO\n\n ");
System.Console.WriteLine(" 1 Deposito \n");
System.Console.WriteLine(" 2 Retiro\n ");
System.Console.WriteLine(" 3 Saldo\n ");
System.Console.WriteLine(" 0 salir \n\n");
System.Console.Write(" elija una de las opciones mostradas ");
opc = int.Parse(System.Console.ReadLine());
return opc;
}
static void Deposito()
{ int C;
System.Console.WriteLine("\n\t DEPOSITO\n\n ");
System.Console.WriteLine(" ingresa cantidad a depositar : ");
C = int.Parse(System.Console.ReadLine());
Saldo = Saldo + C;
System.Console.WriteLine(" la suma es " + C );
}

static void Retiro()


{ int C;
System.Console.WriteLine("\n\t RETIRO\n\n ");
Augusto Cortez Vsquez Pg. 10
Programacin digital

System.Console.WriteLine(" ingresa cantidad a retirar : ");


C = int.Parse(System.Console.ReadLine());
if (C > Saldo)
System.Console.WriteLine(" No se puede retirar ms de lo que tiene : "+Saldo);
else
Saldo = Saldo - C;
System.Console.WriteLine(" Su saldo es " + Saldo);
}

static void MuestraSaldo()


{ System.Console.WriteLine("\n\t SALDO\n\n ");
System.Console.WriteLine(" Tu saldo es : "+Saldo);
}

static void Main(string[] args)


{ int opc;
opc = menu();
while (opc != 0)
{ switch (opc)
{
case 1: Deposito(); break;
case 2: Retiro(); break;
case 3: MuestraSaldo(); break;
default: System.Console.WriteLine(" opcion errada, elija otra vez "); break;
}
opc = menu();
}
}
}

Ejemplo 8

Men de Pases y capitales

Augusto Cortez Vsquez Pg. 11


Programacin digital

class Program
{

static int menupais()


{
int opc;
System.Console.WriteLine("\n P A I S E S ");
System.Console.WriteLine("\n ############### \n\n\n");

System.Console.WriteLine("[1] Peru ");


System.Console.WriteLine("[2] Mozambique ");
System.Console.WriteLine("[3] Francia ");
System.Console.WriteLine("[4] Ecuador ");
System.Console.WriteLine("[0] Salir ");
System.Console.WriteLine("\n\n Elige un pais ");
opc = int.Parse(System.Console.ReadLine());
return opc;
}

static int menuciudad()


{
int opc;
System.Console.WriteLine("\n C A P I T A L E S ");
System.Console.WriteLine("\n ############### \n\n\n");
System.Console.WriteLine("[1] Ankara ");
System.Console.WriteLine("[2] Quito ");
System.Console.WriteLine("[3] Paris ");
System.Console.WriteLine("[4] Lima ");
System.Console.WriteLine("[0] Salir ");
System.Console.WriteLine("\n\n cual es la capital del pais elegido ");
opc = int.Parse(System.Console.ReadLine());
return opc;

}
static void Main(string[] args)
{
int pais, ciudad;
System.Console.WriteLine("ingrese una opcion del menu ");
pais = menupais();
ciudad = menuciudad();
while (pais != 0)
{
switch (pais)
{
case 1: if ( ciudad == 4) System.Console.WriteLine("acertastes" );
else System.Console.WriteLine(" revisa coquito te equivoqastes");
break;
case 2:
Augusto Cortez Vsquez Pg. 12
Programacin digital

if (ciudad == 4) System.Console.WriteLine("acertastes");
else System.Console.WriteLine(" revisa coquito te equivoqastes");
break;

}
pais = menupais();
ciudad = menuciudad();
}
System.Console.ReadLine();

}
}

Ejercicio
1 Provea una especificacin, implementacin y codificacin usando
programacin modular mediante un men de opciones
para
a) Convertir grados Fahrenheit a grados Celsius
b) Convertir grados Celsius a grados Fahrenheit
c) Convertir grados Kelvin a grados Fahrenheit
d) Convertir grados Kelvin a grados Celsius

2 Provea un ejemplo libre de programacin modular

REFERENCIAS BIBLIOGRFICAS Y OTRAS FUENTES


1) [CEVALLOS 1996] Javier Cevallos Sierra Curso de Programacion C++; Edit Rama
Universidad de Alcala Madrid Espaa.
2) [CORTEZ 2011] Cortez Vasquez,Augusto. Matematica Discreta, Edit San Marcos Lima 2011
3) [CORTEZ 2010] Cortez Vsquez,Augusto. Algortmica, EDit EsVega Lima Peru 2010.
4) [CORTEZ 2013] Cortez Vasquez,Augusto. Algoritmia, Tecnicas Algoritmicas, Edit
CEPREDIM UNMSM Lima 2013
5) [JOYANES 1999] Joyanes Aguilar Luis Estructura de datos, Algoritmos, abstraccin y
objetos; Mc Graw Hill 1999.
6) [FERGUNSON 2003] La Biblia del C Sharp Edit. Anaya

Augusto Cortez Vsquez Pg. 13

You might also like