Vous êtes sur la page 1sur 12

AD-140 Diseo de Algoritmos

GUIA DE APRENDIZAJE
Unidad 4
Elaborado por: Randy Alberto Mat Len.

Ingeniera en Redes
MTI Melissa Blanqueto Estrada
Chetumal, Q. Roo, 16 de noviembre de 2011.

Diseo de algoritmos

CONTENIDO
ACTIVIDADES .................................................................................................................................................. 2
PROGRAMA 1. .................................................................................................................................................. 2
PROGRAMA 3. .................................................................................................................................................. 4
PROGRAMA 4. .................................................................................................................................................. 5
PROGRAMA 5. .................................................................................................................................................. 6
PROGRAMA 6. .................................................................................................................................................. 7
PROGRAMA 7. .................................................................................................................................................. 8
PROGRAMA 8. .................................................................................................................................................. 9
PROGRAMA 9. ................................................................................................................................................ 10
PROGRAMA 10. .............................................................................................................................................. 11

Diseo de algoritmos

ACTIVIDADES

U4 Prctica 1

Crear las siguientes funciones utilizandoLazarous y Free Pascal.


PROGRAM A 1.
1. Disear una funcin que calcule la media de tres nmeros ledos del teclado y
poner un ejemplo de su aplicacin.
program prommedio1;

{Autor: Randy alberto mat len


Descripcin: Disear una funcin que calcule la media de tres nmeros ledos
del teclado y poner un ejemplo de su aplicacin.
Fecha: 16/nov/2011.
}
function funcionX(acum:real) :real;
begin
funcionX:= (acum) / 3;
end;
var
i:integer;
media,acum,x:real;
begin
acum:=0;
writeln('-----Calculo de funcion de la media de 3 numeros-----');
for i:=1 to 3 do
begin
writeln('Introduce el valor de X:');
readln(x);
acum:=acum+x;
end;
media:=funcionX(acum);
writeln('El resulatdo de la funcion es:',media:5:2);
readln;
end.

Diseo de algoritmos

2. Disear la funcin FACTORIAL que calcule el factorial de un nmero entero


en el rango de 5 a 50.
.PROGRAM A 2.
program Factorialnum2;
{Autor: Randy alberto mat len
Descripcin: Disear una funcin que calcule el factorial de un numero.
Fecha: 16/nov/2011.
}
var
numero: integer;
function factorial( num : integer) :integer;
begin
if num = 1 then
factorial := 1
else
factorial := num * factorial( num-1 );
end;
begin
writeln('------PROGRAMA QUE CALCULA EL FACTORIAL DE UNA NUMERO
ENTRE 5 Y 50----');
writeln();
writeln( 'Introduce un numero:' );
readln(numero);
if (numero >=5) and (numero <= 50) then
writeln( 'Su factorial es:', factorial(numero) )
else
write('NO se encuentra en el rango');
readln
end.

Diseo de algoritmos

3 .Disear una funcin que encuentre el mayor de dos nmeros enteros.


PROGRAM A 3.
program mayor3;
{Autor: Randy alberto mat len
Descripcin: Disear una funcin que encuentre el mayor de dos nmeros
enteros.
Fecha: 16/nov/2011.
}
function mayor(num1,num2:integer):integer;
begin
if num1> num2 then
begin
writeln('el numero mayor es:',num1);
end
else
begin
writeln('el numero mayor es:',num2);
end;

end;
var
c,num1,num2:integer;
begin
writeln('Introduce el numero 1:');
readln(num1);
writeln('Introduce el numero2:');
readln(num2);
c:=mayor(num1,num2);
readln
end.

Diseo de algoritmos

4. Disear una funcin que calcule X para x, variable real y n variable entera.
PROGRAM A 4.
program potencia4;
{Autor: Randy alberto mat len
Descripcin: Disear una funcin que calcule Xn para x, variable real y n
variable entera;
Fecha: 16/nov/2011.
}
uses math;
function potencia(x:real;n:integer) :real;
begin
writeln('Introduce el valor de x:');
readln(x);
writeln('Introduce el valor de n:');
readln(n);
potencia:= (x**n);
end;
var
c,x:real;
n:integer;
begin
writeln('------Programa que calcula X elevado a una potencia n----');

c:=potencia(x,n);
writeln('el valor de la potencia es:',c:5:2);
readln
end.

Diseo de algoritmos

5. Disear un procedimiento que acepte un nmero de mes, un nmero de da y


un nmero de ao y los visualice en el formato dd/mm/aa. Por ej. Los valores 19,
09,1987 se visualizaran como 19/9/87.
PROGRAM A 5.
program fecha5;
{Autor: Randy alberto mat len
Descripcin: Disear un procedimiento que acepte un nmero de mes, un
nmero de da y un nmero de ao y los visualice en el formato dd/mm/aa.
Por ej. Los valores 19, 09,1987 se visualizaran como 19/9/87..
Fecha: 16/nov/2011.
}
var
Dia,Mes,Fecha: integer;
procedure Imprimir (Dia,Mes,Fecha:integer);
begin
fecha:=Fecha mod 100;
writeln(' ',Dia,'/',Mes,'/',Fecha);
end;
begin
writeln('--PROGRAMA QUE MUESTRA LA FECHA EN EN SIGUIENTE
FORMATO 12/20/89---');
writeln();
repeat
write('Introduce un numero de dia:');
readln(Dia);
if Dia > 31 then
begin
writeln('El numero no es valido. Introduce uno valido');
end;
until Dia<= 31;
repeat
write('Introduce un numero de mes:');
readln(Mes);
if Mes > 12 then
begin
writeln('El numero no es valido. Introduce uno valido');
end;
until Mes <= 12;
write('Introduce un numero de ao:');
readln(Fecha);
writeln('-----------------------------------------------');
writeln('La fecha en el formato requerido es:');
Imprimir(Dia, Mes, fecha); // procedimiento Imprimir
readln
end.

Diseo de algoritmos

6. Disear una funcin que permita devolver el valor absoluto de un nmero.


PROGRAM A 6.
program valorabsoluto6;
{Autor: Randy alberto mat len
Descripcin: programa que calcula la el valor absoluto de un numero.
Fecha: 16/nov/2011.
}
uses math;
function valor(x:real):real;
begin
valor:= abs(x);
end;
var
x,c:real;
begin
writeln('------VALOR ABSOLUTO DE UN NUMERO-------');
writeln();
writeln('Introduce un numero para saber su valor absoluto:');
readln(x);
c:=valor(x);
writeln('El valor absoluto del numero es:',c:5:2);
readln
end.

Diseo de algoritmos

7. Escribir una funcin booleana Digito que determine si un carcter es uno de


los dgitos 0 al 9.
PROGRAM A 7.
PROGRAM escaracter7;
{Autor: Randy alberto mat len
Descripcin: programa que dice si un caracter esta entre 0 y 9.
Fecha: 16/nov/2011
}
Uses Crt;
VAR
carac: CHAR;
respuesta:boolean;
FUNCTION verificar(caracter: CHAR) : BOOLEAN;
var
respuesta:boolean;
BEGIN
verificar := (caracter >= '0') AND (caracter <= '9');
END;
BEGIN
ClrScr;
WRITEln('Introduce un caracter para ver si es numerico.');
READLN(carac);
WRITELN;
IF verificar (carac) THEN
begin
WRITELN('El caracter ',carac,' introducido se encuentra en el rango de 0 a
9:');
end
ELSE
begin
WRITELN('El caracter ',carac,' introducido no se encuentra en el rango de 0 a
9:');
end;
readln
END.

Diseo de algoritmos

8. Escribir una funcin Salario que calcule el salario de un trabajador para un


nmero dado de horas trabajadas y un salario por hora.
PROGRAM A 8.
program salario8;
{Autor: Randy alberto mat len
Descripcin: calcula con una funcin el salario de un trabajador para un
nmero dado de horas trabajadas y un salario por hora.
Fecha: 16/nov/2011.
}
var
resultado,horas,sueldo: real;
function salario(horas, sueldo: real): real;
begin
salario := (sueldo * horas);
end;
begin
writeln('----PROGRAMA QUE CALCULA EL SALARIO DE UN TRABAJADOR------');
writeln();
write('Introduce el numero de horas trabajadas:');
readln(horas);
write('Introduce el sueldo por hora:');
readln(sueldo);
resultado:=salario(horas,sueldo);
writeln('');
writeln('El salario del trabajor es:',resultado:5:2);
writeln('El salario por hora son:',sueldo:5:2);
readln
end.

Diseo de algoritmos

9.El nmero de combinaciones de m elementos tomados de n en n es: (m/n) =


m! / n!(m-n)!. Disear una funcin que permita calcular el nmero combinatorio
(m/n).
PROGRAM A 9.
program combiaciones9;
{Autor: Randy alberto mat len
Descripcin: El nmero de combinaciones de m elementos tomados de n en n
es: (m/n) = m! / n!(m-n)!
Disear una funcin que permita calcular el nmero combinatorio (m/n)
Fecha: 16/nov/2011.
}
uses math;
function factorial( num: integer) :integer;
begin
if num = 1 then
factorial := 1
else
factorial := num * factorial( num-1 );
end;
var
m,n,c:integer;
Resultado:real;
begin
writeln('------Programa que calcula combinaciones de m elementos tomados
de n en n es: (m/n) = m! / n!(m-n)!------');
writeln();
writeln('introduce el valor de m:');
readln(m);
writeln('introduce el valor de n:');
readln(n);
c:=(m-n);
Resultado:=(factorial(m))/(factorial(n))*(factorial(c));
writeln();
writeln('El resultado es de la operacion (m/n): ',Resultado:5:2);
readln

end.

10

Diseo de algoritmos

10. Escribir un procedimiento que convierta un nmero en base 10 a binario.


PROGRAM A 10.
Program DecimalBinario;
{Autor: Randy alberto mat len
Descripcin: programa que convierte un numero de decimal a binario.
Fecha: 16/nov/2011.
}
var
NumeroDecimal:integer;
Procedure Conversion (Numero:integer);
var
Numero_result:integer;
begin
while Numero div 2 <>0 do
begin
Numero_result:=Numero mod 2;
Numero:=Numero div 2;
write (' ',Numero_result);
//readln;
end;
Numero_result:=Numero mod 2;
write (' ',Numero_result);
readln;
end;
begin
writeln('----PROGRAMA QUE CONVIERTE DE DECIMAL A BINARIO-------');
writeln();
writeln ('Escriba un numero en decimal ');
read (NumeroDecimal);
writeln('<<-------------------------------------->>');
write('La conversion de decimal a binariio es:');
Conversion(NumeroDecimal);
readln
end.

11