10 CLS :Esu=.01:Ecu=.0035:Eco=.002
20 PRINT"   Diagrama de Interaccion           Seccion Rectangular":TK$=INPUT$(1)
30 CLS:PRINT"    Datos de la Seccion"
40 PRINT:INPUT"Ancho(m):b=";b,"Canto(m):h=";h,"Recubrim. Sup.(m):r'=";rs,"Recubrim. Inf.(m):r=";ri,"Area Arm. Sup.(cm2):A'=";A,"Area Arm. Inf.(cm2):A =";Ai
50 CLS:PRINT"   Datos de los Materiales"
60 PRINT:INPUT"Res. Horm.(kp/cm2):fck=";fck,"Res. Acero(kp/cm2):fyk=";fyk,"Coef. min. Hormigon:gc=";gc,"Coef. min. Acero:gs=";gs,"Diag. horm.(1>par-rec.2>rec)";DH,"Coef.hormigonado[vert=0.9;norm=1]";ch :Es=2.1e3
65 INPUT "Profundidad f.n.(1>rel.2>real)";PFN
70 CLS:IF PFN=1 THEN INPUT"  Profundidad relativa de la     fibra neutra: X/h=";x ELSE INPUT "Profundidad fibra neutra: X=";X
80 fyd=fyk/gs*1E-3:fcd=10*fck/gc*ch:d=h-ri:Ey=fyd/Es
90 P1=d*Ecu/(Ecu+Esu):P2=h*(Ecu-Eco)/Ecu:IF PFN=1 THEN X=x*h
95 PRINT"fcd="fcd"T/m2","fyd="fyd"T/cm2",CHR$(139)"y=";ROUND(Ey,-8),"canto util:d="d"m","fibra neutra:X="X"m";:GOSUB500:CLS
100 IF X<P1 THEN PRINT:PRINT"Pivote en A":w=Esu/(d-X):GOTO130
110 IF X<h THEN PRINT:PRINT"Pivote en B":w=Ecu/X:GOTO130
120 PRINT:PRINT"Pivote en C":w=Eco/(X-P2)
130 PRINT"Curvatura:w=";ROUND(w,-6);"m";CHR$(158):GOSUB500:CLS:PRINT"   Tensiones en el Acero"
140 Eas=w*(X-rs):IF ABS(Eas)<Ey THEN ss=Es*Eas ELSE ss=fyd*SGNEas
150 Eai=-w*(d-X):IF ABS(Eai)<Ey THEN si=Es*Eai ELSE si=fyd*SGNEai
155 Nas=ss*A:Mas=-Nas*rs:Nai=si*Ai:Mai=-Nai*d
158 PRINT "Armadura superior:",CHR$(139)"'s=";ROUND(Eas,-8),CHR$(142)"'s=";ROUND(ss,-4);"T/cm2","N's=";ROUND(Nas,-3);"T","M's=";ROUND(Mas,-5);"mT":GOSUB 500
159 PRINT "Armadura inferior:",CHR$(139)"s=";ROUND(Eai,-8),CHR$(142)"s=";ROUND(si,-4);"T/cm2","Ns=";ROUND(Nai,-3);"T","Ms=";ROUND(Mai,-5);"mT":GOSUB 500
160 'PRINT:PRINT"Arm.Sup.:Ts=";ROUND(ss,-4);"kp/cm2","Arm.Inf.:Ti=";ROUND(si,-4);"kp/cm2";:GOSUB500
170 CLS:PRINT"   Compresion del Hormigon":IF DH=2 THEN GOTO 294
180 IF X<=0 THEN C1=0:C2=0:X1=0:X1g=0:X2g=0:GOTO250
190 X1=Eco/w
200 IF X<X1 THEN Xs=X ELSE Xs=X1
210 IF X=<h THEN Xi=0 ELSE Xi=X-h
220 C1=.85*fcd*b*X1*((Xs/X1)^2-(Xi/X1)^2+(Xi/X1)^3/3-(Xs/X1)^3/3)
230 X1g=.85*fcd*b*X1^2/C1*(2/3*(Xs/X1)^3-2/3*(Xi/X1)^3-(Xs/X1)^4/4+(Xi/X1)^4/4)
240 C2=.85*fcd*b*(X-Xs):X2g=(X+Xs)/2
250 PRINT"Parte Parab.:C1=";ROUND(C1,-4)"T","Parte Rect. :C2=";ROUND(C2,-4)"T","Compr. Total :C=";ROUND((C1+C2),-4)"T";:GOSUB500
255 CLS:PRINT"X1="X1"m","X1g="X1g"m","X2g="X2g"m";:GOSUB500
260 Nu=Nas+Nai+C1+C2
270 Mu1=A*ss*(X-rs)-Ai*si*(d-X)+C1*X1g+C2*X2g
280 Mu2=Mu1+Nu*(h/2-X)
290 CLS:PRINT"     Esfuerzos Ultimos","Axil Ult.:Nu=";ROUND(Nu,-3)"T","Mom.Fib.X:Mu'=";ROUND(Mu1,-5)"mT","Mom.Fib.h/2:Mu=";ROUND(Mu2,-5)"mT";:GOSUB500:GOTO 300
294 IF X<=0 THEN Nc=0:Mc=0
295 IF X>0 AND X<(h/0.8)  THEN  Nc=0.85*fcd*0.8*X*b:Mc=-Nc*.8*X*0.5
296 IF X>=(h/0.8) THEN Nc=0.85*fcd*h*b*ch:Mc=-Nc*h*0.5
297 Nu=Nas+Nai+Nc:Mu=Mas+Mai+Mc+Nu*0.2559
298 PRINT "Nc=";ROUND(Nc,-3);"T","Mc=";ROUND(Mc,-5);"mT"
299 PRINT "Esfuerzos ultimos":PRINT "Nu=";ROUND(Nu,-3);"T","Mu=";ROUND(Mu,-3);"mT"
300 GOTO70
500 TK$=INPUT$(1):RETURN
