Anda di halaman 1dari 13

1.- Escribir un programa modular que determine el mayor de 2 nmeros MODULOPRINCIPAL 1.- Analisis 1.1.

- Entender el problema Datos Resultados 15, 10 15 -30, 20 20 60, 60 60 1.2.- Modelo Si Nri1 >= Nro2 El mayor es Nro1, si no el mayor es Nro2 1.3.- Especificacin del algoritmo Diccionario de variables Resultados Mayor= Mayor de los dos nmeros: entero Datos Nro1 = Primer nmero: entero Nro2 = Segundo nmero: entero Pre Cond {| Verdadera|} Accin que debe realizar el algoritmo Determinar el mayor de dos nmeros Post Cond {|(Mayor>=Nro1) y (Mayor >= Nro2)|} 2.- Diseo Modulo principal Inicio {Leer los nmeros} Leer(Nro1) Leer(Nro2) {Determinar el mayor}

DeterminarMayor(Nro1, Nro2, Mayor) {Escribir el mayor} Escribir(Mayor) Fin Modulo DterminarMayor 1.- Analisis 1.1.- Entender el problema. Similar al modulo principal 1.2.- Modelo Similar al modulo principal 1.3.- Especificacion del algoritmo Similar al modulo principal 2.- Diseo 2.1.- Descripcin del algoritmo DeterminarMayor(Nro1, Nro2:entero, var Mayor:entero) Inicio Si Nro1 >= Nro2 Entonces Mayor Nro1 Caso contrario Mayor Nro2 Fin{DterminarMayor} 2.- Escribir un programa para determinar el mayor de 4 nmeros utilizando el modulo mayor de 2 numeros El anlisis y los otros pasos son los mismos que el ejercicio anterio, solamente cambiaremos el modulo principal y agregaremos dos variables ms, que son Nro3 = tercer nmero: entero Nro4 = cuarto numero: entero

Entonces el diseo para este caso es Modulo principal Inicio {Leer los nmeros} Leer(Nro1) Leer(Nro2) Leer(Nro3) Leer(Nro4) {Determinar el mayor} DeterminarMayor(DeterminarMayor(Nro1,Nro2,Mayor),Deter minarMayor(Nro3,Nro4,Mayor),Mayor); {Escribir el mayor} Escribir(Mayor) Fin Implementando en el lenguajes de programacin PASCAL (y en otros lenguajes) sera as Utilizando el mtodo de procedimientos {****************MODULO DETERMINAR EL MAYOR*******} procedure DeterminarMayor(Nro1,Nro2:integer; var Mayor:integer); begin if Nro1>Nro2 then Mayor:=Nro1 else Mayor:=Nro2; end;

Utilizando el mtodo de funciones {****************MODULO DETERMINAR EL MAYOR*******} function DeterminarMayor(Nro1,Nro2:integer; var Mayor:integer):integer; var Maximo:integer; begin if Nro1>Nro2 then Mayor:=Nro1 else Mayor:=Nro2; DeterminarMayor:=Mayor; end; La diferencia entre procedure y function es que procedure devuelve uno o ms valores, y function un solo valor 3.- Escribir un programa para determinar el mayor de N nmeros utilizando el modulo mayor de 2 nmeros Los procedimientos son los mismos que los ejercicios anteriores, la diferencia est en que se aumentan dos variables ms MODULOPRINCIPAL 1.- Analisis 1.1.- Entender el problema N Datos 5 15, 10, 3, 8, 1 10 -30, 20, 5, 7, 15, 21, -50, 3, 9, 10

Resultados 15 20

1.2.- Modelo Si Nri1 >= Nro2 El mayor es Nro1, sini el mayor es Nro2 1.3.- Especificacin del algoritmo Diccionario de variables Resultados Mayor= Mayor de N nmeros: entero Datos Nro1 = Primer nmero: entero Nro2 = Segundo nmero: entero Variables auxiliares N = Tamao del conjunto de nmeros : entero I = Contador para los N nmeros Pre Cond {| Verdadera|} Accin que debe realizar el algoritmo Determinar el mayor de dos nmeros Post Cond {|(Mayor>=Nro1) y (Mayor >= Nro2)|} {*****************MODULO PRINCIPAL****************} Inicio {Leer el tamao del conjunto N y los nmeros} Leer(N) Leer(Nro1) {Determinar el mayor} Mayor:=Nro1;{hacemos que el 1er nmero sea el mayor} I 1 {Contador inicia en 0} Repetir I I + 1 { contador se incrementa en 1} Leer(Nro2) Mayor:=DeterminarMayor(Mayor,Nro2); Hasta que I = N {Escribir el mayor} Escribir(Mayor)

Fin El cdigo en pascal es: {*****************MODULO PRINCIPAL****************} var Nro1,Nro2:integer; Mayor :integer; N,I :integer; begin clrscr; write('Ingrese el tamao '); readln(N); {Leer los numeros} write('Nro1: '); readln(Nro1); {Determinar el mayor} Mayor:=Nro1;{hacemos que el 1er nmero sea el amyor} i:=1; repeat begin I:=I+1; write('ingrese el siguiente dato '); readln(Nro2); Mayor:=DeterminarMayor(Mayor,Nro2); end; until I=N; {Escribir el mayor} write('El mayor es: ',Mayor); readkey; end. Calcular el seno de un ngulo segn la serie ( )

El anlisis se hizo anteriormente. Recordaremos algunos pasos: Angulo = 60, convertimos el gulo a radianes: X=Angulo * 3.1416/180=1.0472 Empesaremos por el diseo {====MODULO PRINCIPAL======} Inicio {Leer el ngulo} LeerNroReal(0,360,Angulo) {Calcular el seno} CalcularSeno(Angulo,Seno) {Escribir seno} Escribir Seno Fin {=====MODULO LeerNroReal=====} 1.- Analisis 1.1.- Entender el problema Leer un nmero entre un valor mnimo y mximo ejemplon entre 0 y 20 1.2.- Modelo No requiere modelo 1.3.- Especificacin del mdulo Diccionario de variables Resultados NroReal= nmero real :real Datos Minimo= valor mnimo que puede tomar el nmero:real Maximo= valor mximo que puede tomar el nmero:real Pre cond {|Minimo<=mximo|} Accin que debe realizar el modulo Leer un nmero real validando entre mnimo y mximo

Post cond {|Minnimo<=NroReal<=Maximo|} 2.- Diseo 2.1.- Descripcin del mdulo Procedimiento LeerNroReal(Entrada Minimo, Maximo Salida NroReal) Inicio repetir Leer NroReal Si (NroReal < Minimo) or (NroReal > mximo) Entonces Escribir(ERROR. Nmero fuera de rango) Hasta que (Minimo<=NroReal) and (NroReal<Maximo) Fin {=====Modulo calcular seno ==========} Procedimiento CalcularSeno(Angulo, Seno) Inicio {convertir angulo a radianes} X Angulo*3.1416/180 {evaluar expresin} Seno 0 Signo 1 Repetir Kk+2 CalcularPotencia(X,K,Potencia) Calcularfactorial(K,Factorial) SenoSeno+Signo*potencia/Factorial Signo-1*Signo Hasta que potencia/factorial<0.0001 Fin {=====Modulo CalcularPotencia=====} 1.- anlisis 1.1 entender el problema CalculaPotencia(5,3) = 53 = 125 1.2.- Modelo

CalcularPotencia(X,N)=X*X*X*X*X*.*X(N vece) 1.3.- Especificacin del modulo Resultados Potencia= resultado de elecar X al exponente N:real Datos X = Numero cuya potencia se desea calcular:real N = Exponente :entero Pre cond {|N>=0|} Accion que debe realizar el modulo Calcular la potencia ensima de un nmero Post cond{|potencia = XN|} 2.-Diseo 2.1 Descripcin del modulo Funcion CalcularPotencia(entradas X,N,salida Potencia) Inicio Potencia1 Para K=1 hasta N hacer Inicio PotenciaPotencia*X Fin CalcularPotenciaPotencia Fin {**********Modulo factorial*****} function CalcularFactorial(N:integer; var Factorial:longint):longint; var{variables locales} K:integer; begin Factorial:=1; for K:=1 to N do begin Factorial:=Factorial*K;

end; CalcularFactorial:=Factorial; end; Elaborar un programa para calcular el mnimo comn mltiplo de N nmeros a partir de un mdulo que calcule el mximo comn divisor de 2 nmeros {===========Modulo principal============} 1.- Analisis 1.1.-Entender el problema con ejemplos MCD de N =4 56, 64, 28, 36 MCD = 4 1.2.- Modelo No requiere modelo 1.3.- Especificacin del algoritmo Diccionario de variables Resultados MCD= mximo comn divisor de N n meros :entero Datos N: conjunto de nmeros del que queremos hallaa el MCD: entero Pre cond {|N>0|] Accin que debe realizar el algoritmo Calcular el mximo comn divisor de N nmeros Post cond {|MCD=MCDN(n)|] 2.- Diseo 2.1 descripccin del algoritmo Inicio {Leer el conjunto de numeros} Leer(N) {Determinar el mximo comn divisor} MCD MCDN(N)

{Mostrar resultados} Escribir(MCD) Fin Ahora veremos cmo se disea el mdulo MCDN(N) 1.- Analisis 1.1.- Entender el problema 56, 64, 28, 36 MCD 8 MCD 4

MCD 4 1.2.- Modelo Aux=MCDdos(a,b) A = Aux 1.3.- Especificacion del mdulo Diccionario de variables Resultados MCDN = mximo comn divisor de N nmeros. Entero Datos N = Conjunto de nmeros. Entero a = Primer nmero : entero b = Los siguientes nmeros: entero Variables auxiliares Aux= para almacenar el MCDdos temporal de a y b.entero I = contador para los N nmeros:entero {|N>0|} Accin que debe realizar el modulo Calcular mximo comn divisor de N nmeros Post cond {|MCDN|} 2.- Diseo 2.1- Descripcin del modulo

Inicio Funcin MCDN(N.entero):entero {Leer el primer nmero} Leer(a) {luego leemos los siguientes nmeros (b) dentro de un ciclo} {a partir de la segunda posicin Para I2 hasta N hacer Inicio Leer(b) {hallamo el mximo comn divisor de a y b y lo} {guardamos en Aux} AuxMCDdos(a,b){ mximo comn divisor de 2 numeros} a Aux {auxiliar se le asigna a la variabla a} fin MCDN a{finalmente a es el mximo comn divisor de N} Fin Ahora debemos disear el mdulo (MCDdos) mximo comn divisor de 2 nmeros {==========Modulo MCDdos===========} 1.- Analisis 1.1.- Entender el problema por el metodo de Euclides (divisions sucesivas)

Datos 56 64 18 27 1.2.- Modelo a 18 27 b 27 18 Resto 18 9

Resultados 8 9 18 9 0

Resto = a mod b y a b b Resto 1.3.- Especificacin del mdulo Diccionario de variables Resultados MCDDos = mximo comn divisor de 2 numeros:entero Datos a = nmeros enteros positivos b = nmeros enteros positivos Variable auxiliar Residuo = el residuo de una divisin.entero pre cond {|a>0 y b>0|} Accin que debenrealizar el modulo Calcular el mximo comunn divisor de 2 numeros Post cond {|MCDdos de a y b|} 2.- Diseo 2.1- Descripccion del mdulo Funcin MCDdos(a, b:entero):entero Inicio Mientras b > 0 hacer Inicio Residuo a mod b a b {intercambia} b Residuo fin MCDdos a{el ultimo valor de a es el MCD} fin

Anda mungkin juga menyukai