Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
FACULTAD DE INGENIERÍA
PROGRAMA ACADÉMICO PROFESIONAL INGENIERÍA
DE SISTEMAS
Algorítmica básica
SEM 2008-II
Modularidad
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)
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
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
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
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]
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(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.ReadLine();
}
}
}
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
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