14000 DATAKarnaugh & simplificacion logica 14010 DEFCHR$(252)="1C22A2A21C" 14020 CLS:PRINT" Funciones l"CHR$(252"gicas booleanas"TAB(0"Funci"CHR$(252"n f="F$;:CLEAR:LOCATE10,1:INPUT@200;F$:FLAG=0:IFF$>""THEN14750ELSE14020 14030 IF1ANDFLAG;RETURN 14040 IFLEFT$(F$,1)="S"GOTO14240ELSEIFLEFT$(F$,1)="P"GOTO14280 14050 CLS:PRINT"Analizando formula"TAB(0; 14060 G$="((":V=0:FORI=1TOLEN(F$:$=MID$(F$,I,1:PRINTCHR$(5)+STR$(RND(I*100/LEN(F$,-1))+"%"; 14065 IFMID$(F$,I,4)="+S0("GOTO14160 14070 IF($>="A"AND$<="Z")OR($>="a"AND$<="z";GOSUB14200:GOTO14150ELSEP=0 14080 IF$="*";G$=G$+")*(":GOTO14150 14090 IF$="+";G$=G$+")OR(":GOTO14150 14100 IF$="(";G$=G$+"(":GOTO14150 14110 IF$=")"OR$="]";G$=G$+"))":GOTO14150 14120 IF$="[";G$=G$+"1XOR(":GOTO14150 14130 IF$=" "GOTO14150 14140 CLS:PRINTMID$(F$,1-(I-17)*(I>16,31;TAB(0CSR(-(I-1)*(I<16)-16*(I>=16;CHR$(227"Error";:$=INPUT$(1,@:GOTO14000 14150 NEXT 14160 CLS:PRINT"Construyendo tabla de verdad :"TAB(0; 14170 DIMT(2^V-1),V(V-1),W(V-1:FORJ=0TO2^V-1:PRINTCHR$(5)+STR$(RND(J/(2^V-1)*100,-1))+"%";:M=2^V:FORK=0TOV-1:M=M\2:V(K)=-((J ANDM)>0:W(K)=1-V(K:NEXT:T(J)=VALF(G$:NEXT 14175 IFMID$(F$,I,4)="+S0(";CLS:PRINT"Asignando elementos indefinidos"TAB(0;:G$="":S=2:I=I+4:GOTO14262 14180 FLAG=FLAG+1:RETURN 14190 END 14200 A=(ASC($)AND(255XOR32)-64:IFV="A"AND$<="Z";G$=G$+"V"ELSEG$=G$+"W" 14230 G$=G$+"("+MID$(STR$(A-1),2)+")":P=1:RETURN 14240 'SN(...) 14250 CLS:PRINT"Contruyendo tabla de verdad :"TAB(0;:S=1 14260 V=VAL(MID$(F$,2,1:DIMT(2^V-1:G$="":I=4 14262 FORI=I TOLEN(F$:PRINTCHR$(5)+STR$(RND(I/LEN(F$)*100,-1))+"%";:$=MID$(F$,I,1:IF$>="0"AND$<="9";G$=G$+$ELSEIF$=","OR$=")";T(VAL(G$))=S:G$=""ELSE14140 14265 IF$=")";IFMID$(F$,I,5)=")+S0(";I=I+4:G$="":S=2 14270 NEXT:FLAG=FLAG+1:RETURN 14280 'PN(..) 14290 CLS:PRINT"Contruyendo tabla de verdad :"TAB(0;:S=1 14300 V=VAL(MID$(F$,2,1:DIMT(2^V-1:G$="":FORI=4TOLEN(F$:PRINTCHR$(5)+STR$(RND(I/LEN(F$)*100,-1))+"%";:$=MID$(F$,I,1:IF$>="0"AND$<="9";G$=G$+$ELSEIF$=","OR$=")";T(2^V-1-VAL(G$))=S:G$=""ELSE14140 14305 IF$=")";IFMID$(F$,I,5)=")+P0(";I=I+4:G$="":S=-1 14310 NEXT:FORI=0TO2^V-1:T(I)=1-T(I:NEXT:RETURN 14320 'Tabla de verdad 14330 GOSUB14030 14340 CLS:PRINT"No ";:FORI=1TOV:PRINTCHR$(64+I;:NEXT:PRINT" f";:I=0 14350 POKE32,I\10+48:POKE33,(I MOD10)+48:FORJ=0TOV-1:POKE34+V-J,48-((I AND2^J)>0:NEXT:POKE36+V,ASC(MID$("01x",1+T(I),1:LOCATE0,3:LOCATE0,0:T=ASC(INPUT$(1,@:IFT=30ANDI;I=I-1ELSEIFT=31ANDI<2^V-1;I=I+1ELSEIFT=29;I=0ELSEIFT=28;I=2^V-1ELSEIFT=13;RETURN 14360 GOTO14350 14370 'Tabla de Karnaugh 14380 IF2ANDFLAG;RETURNELSEGOSUB14030 14390 XM=VALF(MID$("22448",V,1:YM=VALF(MID$("12244",V,1:ERASEK:DIMK(XM,YM 14400 CLS:PRINT"Construyendo tabla de Karnaugh"TAB(0; 14410 FORJ=1TOYM:FORI=1TOXM:PRINTCHR$(5)+STR$(RND((XM*(J-1)+I-1)*100/2^V,-1))+"%";:K(I,J)=T(XM*(ASC(MID$("0132",J))-48)+ASC(MID$("01326754",I))-48:NEXT:NEXT 14420 FLAG=FLAG+2:RETURN 14430 'Muestra Karn 14440 GOSUB14370 14450 E$=" ":IFXM=8;E$="" 14460 CLS:A=1+LOGXM/LOG2:B=1+LOGYM/LOG2:PRINT" "E$;:FORI=1TOXM:PRINTMID$("000001011010110111101100",I*3-A+2,A-1E$;:NEXT:POKE31,0:LOCATE0,1:PRINTCHR$(5; 14470 J=1 14480 PRINTCHR$(5;MID$("00011110",J*2-B+2,B-1;:FORI=1TOXM:PRINT" "MID$("01x",1+K(I,J),1;:NEXT 14490 C=ASC(INPUT$(1,@:IFC=30ANDJ>1;J=J-1:GOTO14480ELSEIFC=31ANDJ2)*(T(I)<>T(K:NEXT:IFF;S$=S$+CHR$(64+J-32*(SGN(2^(V-J)ANDI)=1-Q))+MID$("+*",Q+1,1ELSEFORL=1TOLEN($:K=M XORASC(MID$($,L,1:$=$+CHR$(K:NEXT 14570 IF(T(I)=Q)AND(0=D(I;NEXT:S$=LEFT$(S$,LEN(S$)-1)+MID$(")*(+",Q*3+1,3:E$(E)=$:E=E+1:FORJ=1TOLEN($:K=ASC(MID$($,J,1:D(K)=D(K)+1:NEXT:IFLEN(S$)>4ANDQ=0;IFMID$(S$,LEN(S$)-4,1)="(";S$=LEFT$(S$,LEN(S$)-5)+MID$(S$,LEN(S$)-3,1)+"*(" 14580 NEXT:IFS$="("ORS$="+"ORS$=")*(";S$="f"+CHR$(48+Q)+"="+CHR$(48+T(0ELSEIFQ;S$="f1="+MID$(S$,2,LEN(S$)-2ELSES$="f0="+LEFT$(S$,LEN(S$)-2 14590 PRINTCHR$(11"Eliminando grupos redundantes"TAB(0;:K=4:FORI=0TOE-1:PRINTCHR$(5STR$(RND(I/(E-.9999)*100,-1"%";:$=E$(I:FORJ=1TOLEN($:M=ASC(MID$($,J:IFT(M)=2ORD(M)>1;NEXTELSE14620 14600 IFMID$(S$,K,1)<>MID$("*+",Q+1,1)ANDKMID$("*+",Q+1,1)ANDK1;POKE32*Y+1,228ELSEPOKE32*Y+1,0 14680 IFX(Y)1;X(Y)=X(Y)-1:GOTO14670ELSEIFT=28ANDX(Y)7">"CHR$(9; 14770 IFFLAG-7;FORI=1TO400:$=INKEY$:IF$="";NEXT:$="C"ELSE14780ELSE$=INPUT$(1 14780 IF$="V";GOSUB14320ELSEIF$="K";GOSUB14430ELSEIF$="S";GOSUB14640ELSEIF$="C";GOSUB14720 14790 GOTO14750