Está en la página 1de 7

UNIVERSIDAD ANDINA DEL CUSCO

FACULTAD DE INGENIERÍA
PROGRAMA ACADÉMICO PROFESIONAL INGENIERÍA
DE SISTEMAS
Algorítmica básica
SEM 2008-II

Modularidad

PROCEDIMIENTOS versus FUNCION:

Los procedimientos y funciones son subprogramas cuyo diseño y misión son similares; sin
embargo existen una diferencia entre ellos:
1. Un procedimiento es llamado desde el algoritmo o programa principal mediante su
nombre y una lista de parámetros actuales, al llamar al procedimiento se detiene
momentáneamente el programa que se estuviera realizando y el control pasa al
procedimiento llamado, después que las acciones del procedimiento se regresa a la acción
que inmediatamente la llamo.
2. Las funciones devuelven un valor los procedimientos pueden devolver n valores en forma
de lista de parámetros.
3. El procedimiento se declara igual que la función pero su nombre no esta asociado a
ninguno de los resultados que se obtiene.

Escribir un programa que calcule el promedio de dos notas validando que cada nota este entre
cero y veinte
A) MODULO PRINCIPAL
ANÁLISIS
1.1.1. Entender el problema
Nota1 Validar Nota2 Promedio
(nota entres 0 y 20)
15 Verdadera
Falso 25
Verdadera 20
17.5

1.1.2. Modelo
Validar(Nota1)
Validar(Nota2)
Promedio(Nota1,Nota2)

1.1.3. Especificación del algoritmo


- Diccionario de variables

Resultado
promedio: promedio de las dos notas : real
Datos
Nota1= primera nota: entero
Nota2= segunda nota: entero

- Pre condición
{| 0<= Nota1 <=20 y 0<= Nota2 <=20|}
- Acción que debe realizar el algoritmo

Ing. María Isabel Acurio Gutiérrez iacurio@uandina.edu.pe 1/7


UNIVERSIDAD ANDINA DEL CUSCO
FACULTAD DE INGENIERÍA
PROGRAMA ACADÉMICO PROFESIONAL INGENIERÍA
DE SISTEMAS
Algorítmica básica
SEM 2008-II

Calcular el promedio de dos notas


- Post condición
{|Promedio= (Nota1 +Nota2) / 2|)}

DISEÑO
1.1.4. Psudocódigo
MODULO PRINCIPAL
INICIO(CALCULAR PROMEDIO DE DOS NOTAS)
Leer(Nota 1)
Validar(Nota1)
Leer(Nota2)
Validar(Nota2)
Promedio(Nota1, Nota2)
Escribir(promedio)
FIN

B) MODULO Validar
1.2. ANÁLISIS
1.2.1. Entender el problema
Nota ¿valida?
20 verdadera
21 falsa

1.2.2. Modelo
Si Nota<0 y Nota>20
Falso
CASOCONTRARIO
Verdadero

1.2.3. Especificación del algoritmo


- Diccionario de variables
Resultado
Validar=el valor de la función validar:
Datos
nota= numero a comprobar: entero

Pre condición
{| |}
Acción que debe realizar el algoritmo
Determinar si la nota esta comprendida entre 0 y 20

Post condición
{| determinar nota valida o no|)}

1.3. DISEÑO

Ing. María Isabel Acurio Gutiérrez iacurio@uandina.edu.pe 2/7


UNIVERSIDAD ANDINA DEL CUSCO
FACULTAD DE INGENIERÍA
PROGRAMA ACADÉMICO PROFESIONAL INGENIERÍA
DE SISTEMAS
Algorítmica básica
SEM 2008-II

1.3.1. Pseudocódigo
VALIDAR(nota: entero): booleano
INICIO
Si Nota<0 y Nota>20
Falso
CASOCONTRARIO
Verdadero
FIN

C) MODULO PROMEDIO
1.4. ANÁLISIS
1.4.1. Entender el problema
Nota 1 Nota 2 Promedio
15 20 17.5

1.4.2. Modelo
(Nota1+ Nota2)/2
1.4.3. Especificación del algoritmo
- Diccionario de variables
Resultado
PROMEDIO=promedio de las notas: real
Datos
Nota1= primera nota: entero
Nota2= segunda nota: entero

Pre condición
{| 0<= Nota1 <=20 y 0<= Nota2 <=20
Acción que debe realizar el algoritmo
Calcular el promedio de dos números

Post condición
{| Promedio=(nota1+nota2)/2)}

1.5. DISEÑO
1.5.1. Pseudocódigo
PROMEDIO(nota1: entero,nota2:entero): float
INICIO
(nota1+nota2) /2
FIN

CODIFICACIÓN
using System;
namespace Ejercicios
{
class Modularidad
{

[STAThread]

Ing. María Isabel Acurio Gutiérrez iacurio@uandina.edu.pe 3/7


UNIVERSIDAD ANDINA DEL CUSCO
FACULTAD DE INGENIERÍA
PROGRAMA ACADÉMICO PROFESIONAL INGENIERÍA
DE SISTEMAS
Algorítmica básica
SEM 2008-II

public static Boolean validar(int nota)


{
if (nota<0 ||nota>20)
return false;
else
return true;
}
public static float Promedio(int nota1, int nota2)
{
return (nota1+nota2)/2;
}

static void Main(string[] args)


{
//
// TODO: agregar aquí código para iniciar la aplicación
//
int nota1,nota2;
float Notapromedio;
Boolean estado;

do
{
Console.Write("ingrese nota 1 : " );
nota1=int.Parse(Console.ReadLine());
estado=validar(nota1);}
while (estado==false);

do
{
Console.Write("ingrese nota 2 : " );
nota2=int.Parse(Console.ReadLine());
estado=validar(nota2);}
while (estado==false);

Notapromedio=Promedio(nota1,nota2);
Console.WriteLine("la nota promedio es: "+
Notapromedio );

}
}
}

Escribir un programa utilizando modularidad que determine si un número es primo


DISEÑO
Pseudocódigo
MODULO PRINCIPAL
INICIO(Determinar si un muero es primo o no)
Leer(N)
Primo(N)
SI Primo=verdadero
Escribir(Primo)
CASO CONTRARIO

Ing. María Isabel Acurio Gutiérrez iacurio@uandina.edu.pe 4/7


UNIVERSIDAD ANDINA DEL CUSCO
FACULTAD DE INGENIERÍA
PROGRAMA ACADÉMICO PROFESIONAL INGENIERÍA
DE SISTEMAS
Algorítmica básica
SEM 2008-II

Escribir(No es Primo)
FIN

MODULO PRIMO
Primo(N: entero): booleano
INICIO
PARA I← 2 HASTA I← N/2
Inicio
SI (N MOD I = 0)
falso
retornar a modulo principal
Fin
verdadero
FIN

using System;

namespace Modularidad
{
/// <summary>
/// Descripción breve de Class1.
/// </summary>
class Modulos
{
/// <summary>
/// Punto de entrada principal de la aplicación.
/// </summary>
[STAThread]
public static Boolean Primo(int N)
{
for(int i=2; i<=N/2; i++)
{
if(N%i==0)
{
return false;
}
}
return true;
}
static void Main(string[] args)
{
//
// TODO: agregar aquí código para iniciar la aplicación
//

Console.Write("ingrese numero: " );


int N=int.Parse(Console.ReadLine());
if (Primo(N)==true)
Console.Write("Numero Primo" );
else
Console.Write("Numero no es Primo " );

Ing. María Isabel Acurio Gutiérrez iacurio@uandina.edu.pe 5/7


UNIVERSIDAD ANDINA DEL CUSCO
FACULTAD DE INGENIERÍA
PROGRAMA ACADÉMICO PROFESIONAL INGENIERÍA
DE SISTEMAS
Algorítmica básica
SEM 2008-II

Console.ReadLine();

}
}
}

3 Utilizando una funcion, elabore un algoritmo que permita convertir un número


de base ocho a base decimal
A) MODULO PRINCIPAL
ANÁLISIS
1.5.2. Entender el problema
Num8 BASE10 Num10
15 5*1+1*8 = 13
243 3*1+4*8+2*8*8 =163

DISEÑO
1.5.3. Psudocódigo
MODULO PRINCIPAL
INICIO(Convertir de base 8 a base 10)
Leer(Num8)
Num10 ← BASE10(Nun8)
Escribir(Num10)
FIN

B) MODULO BASE10
1.6. DISEÑO
1.6.1. Pseudocódigo
Función BASE10(Numero: entero): entero
INICIO
Contador ←1
Mientras(numero>0)
inicio
residuo ←Numero MOD10;
N10 ← N10+residuo*Contador;
Numero ←Numero DIV 10;
Contador ←Contador*8;
fin
retornar N10
FIN

CODIFICACIÓN ejercicio en clase

Ing. María Isabel Acurio Gutiérrez iacurio@uandina.edu.pe 6/7


UNIVERSIDAD ANDINA DEL CUSCO
FACULTAD DE INGENIERÍA
PROGRAMA ACADÉMICO PROFESIONAL INGENIERÍA
DE SISTEMAS
Algorítmica básica
SEM 2008-II

2.Utilizando un procedimiento, elabore un algoritmo que permita convertir un número de


base ocho a base decimal
A) MODULO PRINCIPAL
ANÁLISIS
Entender el problema
Num8 BASE10 Num10
15 5*1+1*8 = 17
243 3*1+4*8+2*8*8 =363

DISEÑO
2.1.1. Psudocódigo
MODULO PRINCIPAL
INICIO(Convertir de base 8 a base 10)
Num10 ←10
Leer(Num8)
BASE10(Nun8,Num10)
Escribir(Num10)
FIN

B) MODULO BASE10
2.2. DISEÑO
2.2.1. Pseudocódigo
BASE10(Numero: entero, N10: entero)
INICIO
Contador ←1
Mientras(numero)
inicio
residuo ←Numero MOD10;
N10 ← N10residuo*Contador;
Numero ←N DIV 10;
Contador ←Contador*8;
fin

FIN

CODIFICACIÓN ejercicio en clase

Ing. María Isabel Acurio Gutiérrez iacurio@uandina.edu.pe 7/7

También podría gustarte