Está en la página 1de 16

UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA UNAN- MANAGUA RURD

FACULTAD DE CIENCIAS E INGENIERIAS DEPARTAMENTO DE COMPUTACIN LICENCIATURA EN CIENCIAS DE LA COMPUTACIN

Estructuras Discretas Teora de Conjuntos. Profesor: Roberto Morales

INDICE

Objetivo1 Introduccin.3 Desarrollo4 Conclusiones.5 Recomendaciones6 Bibliografa..7

OBJETIVO Atravez de la teora de conjunto del modulo de Matemtica Discreta elaborar un programa en turbo pascal. INTRODUCCIN

DESARROLLO En Turbo Pascal es un poco diferente ya que hay que insertar lneas de cdigo de programacin para que un conjunto pueda realizar las dif. Aplicaciones.

program Trabajo; --------- Nombre del Programa. uses crt;

type numeros = 1..255; conjunto = set of numeros; ---------- declarando los conjuntos.

var U:conjunto; A:conjunto; B:conjunto; C:conjunto; AuB,BuC,AnC,DF:conjunto; opcion:byte; AuBuC,AnBnC:Conjunto; aux:conjunto; m,x,a1,b1,max_elem,i,c1:integer; resp:char;

variablespararealizarlasoperaciones

procedure menu; begin clrscr; writeln('**** MENU PRINCIPAL ****'); writeln('1..Mostrar Los Conjuntos'); writeln('2..LLenar Los Conjuntos'); writeln('3..Operaciones de Conjuntos'); writeln('4..Salir del programa'); writeln('Elija una opcion : '); readln(opcion); end;{fin de menu principal}

Men Principal

procedure mostrar; begin writeln('Los conjuntos vacios y luego llenos'); readln; end; Procedimientos para llenar los conjuntos

Mostrar conjuntos

Procedure Llenar_U(var U: conjunto); Begin write('Escriba la cantidad de elementos que desea para su conjunto :{U} '); readln(max_elem); clrscr; for i:=1 to max_elem do begin write('Introduzca los elementos del conjunto U:'); readln(x); U:=U+[x]; end; readln; End; Procedure Llenar_A(var A : Conjunto); Begin write('Escriba la cantidad de elementos que desea para el conjunto :{A} '); readln(max_elem); clrscr; for i:=1 to max_elem do begin write('Introduzca los elementos del conjunto A :'); readln(x); A:=A+[x]; end; readln; End; Procedure Llenar_B(var B : Conjunto); Begin write('Escriba la cantidad de elementos que desea para el conjunto :{B} '); readln(max_elem); clrscr; for i:=1 to max_elem do begin write('Introduzca los elementos del conjunto B :'); readln(x); B:=B+[x];

end; readln; End; Procedure Llenar_C(var C : Conjunto); Begin write('Escriba la cantidad de elementos que desea para el conjunto :{C} '); readln(max_elem); clrscr; for i:=1 to max_elem do begin write('Introduzca los elementos del conjunto C :'); readln(x); C:=C+[x]; end; readln; End;

Men secundario llenar los conjuntos procedure menu1; var opcion1:byte; begin repeat clrscr; writeln('**** LLenar Conjuntos ****'); writeln('1..LLenar Conjuntos U'); writeln('2..LLenar Conjunto A'); writeln('3..LLenar Conjuntos B'); writeln('4..LLenar Conjuntos C'); writeln('5..Menu Principal'); writeln('Seleccione una opcin : '); readln(opcion1); case opcion1 of 1:begin clrscr; title; Llenar_U(U); end; 2:begin clrscr; title;

Llenar_A(A); end; 3:begin clrscr; title; Llenar_B(B); end; 4:begin clrscr; title; Llenar_C(C); end; 5:menu; end; until opcion1 =5; end;

Procedimientos para realizar las operaciones de conjunto procedure AunB(var AuB:conjunto;A,B:conjunto); begin AuB:=A + B; end; procedure BunC(var BuC:conjunto;B,C:conjunto); begin BuC:= B + C; end; procedure AntC(var Anc:conjunto;A,C:conjunto); begin AnC:= A*C; end; procedure AunBunC(var AuBUC:conjunto;A,B,C:conjunto); begin AuBuC:=A + B + C; end; procedure AntBntc(var AnBnC:conjunto;A,B,C:conjunto); begin AnBnC:=A * B * C; end; procedure difsim(var df:conjunto;A,B,C:conjunto); begin DF:=(B + C)-(B*C) + (A + (B + A)-(B * A)); end;

Procedimientos para imprimir los conjuntos y operaciones Procedure Imprimir_U(U:Conjunto); var i : integer; Begin write(' U:=[ '); for i := 0 to 9 do if i in U then write(i,' '); write(']'); writeln; end; Procedure Imprimir_A(A:Conjunto); var i : integer; Begin write(' A:=[ '); for i := 0 to 9 do if i in A then write(i,' '); write(']'); writeln; end; Procedure Imprimir_B(B:Conjunto); var i : integer; Begin write(' B:=[ '); for i := 0 to 9 do if i in B then write(i,' '); write(']'); writeln; end; Procedure Imprimir_C(C:Conjunto); var i : integer;

Begin write(' C:=[ '); for i := 0 to 9 do if i in C then write(i,' '); write(']'); writeln; end; Procedure Imp_AunB(AUB:Conjunto); var i : integer; Begin writeln(' El resultado de (A u B) es: '); write(' AUB:=[ '); for i := 0 to 9 do if i in AuB then write(i,' '); write(']'); writeln; end;

Procedure Imp_BunC(BUC:Conjunto); var i : integer; Begin writeln(' El resultado de (B u C) es: '); write(' BuC:=[ '); for i := 0 to 9 do if i in BuC then write(i,' '); write(']'); writeln; end; Procedure Imp_AntC(AnC:Conjunto); var i : integer; Begin writeln(' El resultado de (A n C )es: '); write(' AnC:=[ ');

for i := 0 to 9 do if i in AnC then write(i,' '); write(']'); writeln; end; Procedure Imp_AunBunC(AUBuC:Conjunto); var i : integer; Begin writeln(' El resultado de (A u B u C) es: '); write(' AuBuC:=[ '); for i := 0 to 9 do if i in AuBuC then write(i,' '); write(']'); writeln; end; Procedure Imp_AntBntC(AnBnC:Conjunto); var i : integer; Begin writeln(' El resultado de (A n B n C) es: '); write(' AnBnC:=[ '); for i := 0 to 9 do if i in AnBnC then write(i,' '); write(']'); writeln; end;

procedure imp_dif(DF:conjunto); var i:integer; begin writeln('El resultado de (B u C)-(B n C) u (A u (B u A)-(B n A)) es:'); write(' DF:= [ '); for i:= 0 to 9 do if i in DF then

write(i,' '); write(']'); writeln; end;

Men secundario Operaciones de los conjuntos procedure menu2; var opcion2:byte; begin repeat writeln('**** Operaciones de Conjutos ****'); writeln('1..A + B '); writeln('2..B + C '); writeln('3..A * C '); writeln('4..A + B + C '); writeln('5..A * B * C '); writeln('6..(B + C) -(B * C) + (A + (B + A)-(B * A) '); writeln('7..Retorno Menu Principal'); writeln('Elija una opcion : '); readln(opcion2); case opcion2 of 1:begin clrscr; title; AunB(AuB,A,B); Imprimir_U(U); Imprimir_A(A); Imprimir_B(B); Imp_AunB(AUB); end; 2:begin title; BunC(BuC,B,C); Imprimir_U(U); Imprimir_B(B); Imprimir_C(C); Imp_BunC(BUC); end; 3:begin clrscr; title; AntC(Anc,A,C); Imprimir_U(U);

Imprimir_A(A); Imprimir_C(C); Imp_AntC(AnC); end; 4:begin title; AunBunC(AuBUC,A,B,C); Imprimir_U(U); Imprimir_A(A); Imprimir_B(B); Imprimir_C(C); Imp_AunBunC(AUBuC); end; 5:begin title; AntBntc(AnBnC,A,B,C); Imprimir_U(U); Imprimir_A(A); Imprimir_B(B); Imprimir_C(C); Imp_AntBntC(AnBnC); end; 6:begin title; difsim(df,A,B,C); Imprimir_U(U); Imprimir_A(A); Imprimir_B(B); Imprimir_C(C); imp_dif(DF); end; 7:menu end; until opcion2 = 7; end;

Begin principal del programa el primer menu.

BEGIN {principal} TextBackground(1); clrscr; repeat title; menu; case opcion of 1:begin title; Imprimir_U(U); Imprimir_A(A); Imprimir_B(B); Imprimir_C(C); mostrar; end; 2:begin title; menu1; end; 3:begin title; menu2; end; end; until opcion = 4; end.

CONCLUSIONS En si la teora de conjunto en turbo Pascal es un sinnmero de cdigos de programacin con el fin de demostrar que todo se puede sistematizar. RECOMENDACIONES Se recomienda que en el modulo de introduccin a la programacin se debera de tomar en cuenta esta temtica para poder tener conocimientos slidos sobre programacin de conjuntos. Bibliografia Donis Santiago Montoya Poveda.