Vous êtes sur la page 1sur 10

PSEUDOCODIGO DEL PROGRAMA PARA EL ANALISIS Y DISEÑO DE UNA VIGA T

ANALISIS
/* Analisis del diseño de una viga en sección T */

#include<iostream>
#include<math.h>
#include<conio.h>

using namespace std;

int main(){
cout<<"\t\tPROGRAMA PARA VIGAS CON SECCION T"<<endl; cout<<"\tESCUELA
PROFESIONAL DE INGENIERIA CIVIL"<<endl;
cout<<"------------------------------------------------------------"<<endl;
cout<<"INTEGRANTES"<<endl;
cout<<"-AYASTA GONZALES ELVIS"<<endl;
cout<<"-COPIA RODRIGUEZ YAMPIHER"<<endl;
cout<<"-HERRERA JIMENEZ SMITH"<<endl;
cout<<"-LLUEN SAMILLAN JASBED"<<endl;
cout<<"-PURIHUAMAN CALDERÓN EDWIN"<<endl;
cout<<"------------------------------------------------------------"<<endl;
cout<<"PROGRAMA PARA EL ANALISIS DE VIGAS CON SECCION T"<<endl;

//Reconocimiento de las Variables

int nsb,nb1=0,Nb1,Nb2,ncapas=0;
float b,h, hf, bw , d, B1, fc, fy, Db1, Db2, Ab1, Ab2, C, Cm, Cm1, Cm2, Cf, Cb1, Cb, Cmax;
float funcionretorno(int nb1);
float funcionretornar(int nb1);
float Fi,Dsb, cDb1, cDb2, As,As1, As2, Asf, a, Mn, Mu;

//Introduccion de Datos en "cm"

cout<<"\n a) DATOS:"<<endl;
cout<<"\n-Digite el ancho del ala(cm): " <<endl;cin>>b;
cout<<"-Digite la altura de la viga (cm): " <<endl;cin>>h;
cout<<"-Digite el espesor del ala (cm): " <<endl;cin>>hf;
cout<<"-Digite el ancho del alma de la viga(cm): "<<endl;cin>>bw;
cout<<"-Digite la Resistencia a la compresion del concreto (fc, kg-cm2): "<<endl;
cin>>fc;
cout<<"-Digite el Limite de fluencia del acero (fy, kg-cm2): "<<endl;cin>>fy;

do{
cout<<"digite el Nro de barra para estribo"<<endl;cin>>nb1; //Sí está
dentro del bucle te volverá a pedir el numero de estribo
}while (nb1<3||nb1>6);
Dsb=Db1=funcionretorno(nb1);
cout<<"Diametro del estribo es: "<<Dsb<<"pulg"<<endl;
do{
cout<<"Digite el numero de capas del refuerzo"<<endl;cin>>ncapas;
}while (ncapas<1||ncapas>2);

if(ncapas==1){
cout<<"Digite la cantidad de aceros de refuerzo"<<endl;cin>>Nb1;
do{
cout<<"Digite el Nro de barra del acero de refuerzo"<<endl;cin>>nb1;
}while (nb1<3||nb1>12);
Db1=funcionretorno(nb1);cout<<"Diametro del acero es:
"<<Db1<<"pulg"<<endl;
Ab1=funcionretornar(nb1);cout<<"Area del acero es: "<<Ab1<<"cm2"<<endl;

cDb1=Db1/2; d=h-(4+2.54*(Dsb+cDb1));As=Nb1*Ab1; //
cDb1= centroide de la Db1
cout<<"\t\nVALORES ENCONTRADOS: \n"<<"\nEl peralte efectivo es :
"<<d<<"cm"<<endl;
cout<<"El area de refuerzo es: "<<As<<"cm2"<<endl;

else if(ncapas==2){ // si tenemos dos capas, voy a


este caso
cout<<"Digite la cantidad de aceros de refuerzo de la capa
(1)"<<endl;cin>>Nb1;
do{
cout<<"Digite el Nro de barra del acero de refuerzo de la capa
(1)"<<endl;cin>>nb1;
}while (nb1<3||nb1>12);
Db1=funcionretorno(nb1);cout<<"Diametro del acero es:
"<<Db1<<"pulg"<<endl;
Ab1=funcionretornar(nb1);cout<<"Area del acero es: "<<Ab1<<"cm2"<<endl;

cout<<"Digite la cantidad de aceros de refuerzo de la capa


(2)"<<endl;cin>>Nb2;
do{
cout<<"Digite el Nro de barra del acero de refuerzo de la capa
(2)"<<endl;cin>>nb1;
}while (nb1<3||nb1>12);
Db2=Db1=funcionretorno(nb1);cout<<"Diametro del acero es:
"<<Db2<<"pulg"<<endl;
Ab2=Ab1=funcionretornar(nb1);cout<<"Area del acero es:
"<<Ab2<<"cm2"<<endl;

As1=Nb1*Ab1;As2=Nb2*Ab2;As=As1+As2;
cDb2=(((Db1/2)*As1)+((Db1+(Db2/2)+1)*As2))/(As1+As2);
d=h-(4+2.54*(Dsb+cDb2));
cout<<"\t\nVALORES ENCONTRADOS: \n"<<"\nEl peralte efectivo es
:"<<d<<"cm"<<endl<<"el area de refuerzo es: "<<As<<"cm2"<<endl;
}

C=As/(b*d); // cuantia
cout<<"la cuantia es: "<<C<<endl;

Cm1=(0.8*sqrt(fc))/(fy);
cout<<"La cuantia minima (1) es: "<<Cm1<<endl;

Cm2=14/fy;
cout<<"La cuantia minima (2) es: "<<Cm2<<endl;

if (Cm1<Cm2){
Cm=Cm1; cout<<"La cuantia minima es: "<<Cm<<endl;
}
else{
Cm=Cm2, cout<<"La cuantia minima es: "<<Cm<<endl;
}

Asf=0.85*fc*(b-bw)*hf/fy; // calculo del acero final


cout<<"El area del (As2) es: "<<Asf<<endl;

Cf=Asf/(bw*d); // hallamos el valor de la cuantia 2 o cuantia


final
cout<<"La cuantia final es: "<<Cf<<endl;

if(fc<=280){ // calculando el valor B1


B1=0.85;cout<<"el valor de B1 es : "<<B1<<endl;
}
else {
B1=(0.85-(.05*(fc-280)/70));
if(B1>0.65){
B1=B1;cout<<"el valor de B1 es : "<<B1<<endl;
}
else {
B1=0.65;cout<<"el valor de B1 es : "<<B1<<endl;
}
}

Cb1=0.85*B1*fc*6000/(fy*(6000+fy)); // no se comoo se llama


cout<<"El valor de Cb1 es: "<<Cb1<<endl;

Cb=(Cb1+Cf)*bw/b;
cout<<"La cuantia balanceada es: "<<Cb<<endl;

int z; //definiendo zona


cout<<"Definir zona: "<<"\n 1: Con riesgo sismico "<<"; 2: Sin riesgo
sismico"<<endl;cin>>z;
switch(z){
case 1: Cmax= 0.50*Cb;cout<<"La cuantia maxima es : "<<Cmax<<endl;break;
case 2: Cmax= 0.75*Cb;cout<<"La cuantia maxima es : "<<Cmax<<endl;break;
default : cout<<"Defina entre las dos zonas anteriores: "<<endl;break;
}

if (C>Cm&&C<Cmax){ //verificando si el diseño es conforme:


cout<<"DISEÑO CONFORME"<<endl;
}
else {
cout<<"DISEÑO NO CONFORME"<<endl;
}

cout<<"\nConciderando que actua como seccion rectangular\n"<<endl;

a=As*fy/(0.85*fc*b);
cout<<"El valor de (a) es: "<<a<<endl;

Fi=0.9;
if (a<=hf){
cout<<"La viga actua como seccion rectangular"<<endl;
Mn=As*fy*100*(d-a/2); cout<<"MOMENTO NOMINAL: "<<Mn<<endl;
Mu=Fi*Mn; cout<<"MOMENTO CONFIABLE: "<<Mu<<endl;
}
else{
cout<<"La viga actua como seccion T"<<endl;
As1= As- Asf; cout<<"El valor del (As1) es: "<<As1<<endl;
a= As1*fy/(0.85*fc*bw); cout<<"El verdadero valor de (a) es: "<<a<<endl;
Mn=As1*fy*100*(d-a/2)+As2*fy*100*(d-hf/2); cout<<"MOMENTO NOMINAL:
"<<Mn<<endl;
Mu=Fi*Mn; cout<<"MOMENTO CONFIABLE: "<<Mu<<endl;

getch ();
return 0;

}
float funcionretorno(int nb1){
float Db1;
switch (nb1){
case 3: Db1=.375;break;
case 4: Db1=.5;break;
case 5: Db1=.625;break;
case 6: Db1=.75;break;
case 7: Db1=.10714;break;
case 8: Db1=1;break;
case 9: Db1=1.125;break;
case 10: Db1=1.25;break;
case 11: Db1=1.375;break;
case 12: Db1=1.5;break;

}
return Db1;
}

float funcionretornar(int nb1){


float Ab1;
switch (nb1){
case 3: Ab1=0.71;break;
case 4: Ab1=1.27;break;
case 5: Ab1=1.98;break;
case 6: Ab1=2.85;break;
case 7: Ab1=3.88;break;
case 8: Ab1=5.07;break;
case 9: Ab1=6.41;break;
case 10: Ab1=7.92;break;
case 11: Ab1=9.58;break;
case 12: Ab1=11.4;break;

return Ab1;

DISEÑO

//Reconocimiento de las Variables


int nsb,nsbl,nb1, nb, ncapas;
float bw, Mu, hf, Ln, fc, Cr, fy, B1, b1, b2, b3,b, s1, s2, porc;
float Dsb, Asb;
float cde,rec,d1,d2,d,h,Cb1, Cf, Cmin1, Cmin2, Cmin,Cmax, C;
float Dsbl,Asbl;
float funcionretorno(int nb1);
float funcionretornar(int nb1);

//Introduccion de Datos en "cm" excepto el Mu " m"


cout<<"DATOS:"<<endl;
cout<<"\n-Digite el Momento Ultimo (Mu, ton-m): " <<endl;cin>>Mu;
cout<<"-Digite la luz libre de la viga (Ln, cm): "<<endl;cin>>Ln;
cout<<"-Digite la Base del alma (bw, cm): " <<endl;cin>>bw;
cout<<"-Digite el espesor del ala (hf, cm): " <<endl;cin>>hf;
cout<<"-Digite la altura de la viga (h, cm): " <<endl;cin>>h;
cout<<"-Digite el S1 (s1, cm): " <<endl;cin>>s1;
cout<<"-Digite el S2 (s2, cm): " <<endl;cin>>s2;
cout<<"-Digite la Resistencia a la compresion del concreto (fc, kg-cm2), Limite de
fluencia del acero (fy, kg-cm2): "<<endl;cin>>fc;cin>>fy;

//Determinamos el Coeficiente de Riesgo Cr


int z; do{
cout<<"Digite (1) para zona de alto riesgo sismico o (2) para zona de bajo
riesgo sismico: "<<endl;cin>>z;}
while (z<1 || z>2);
if(z==1){Cr=0.5;}

else if(z==2){Cr=0.75;}

//Hallamos B1
if(fc<=280){
B1=0.85;cout<<"-el valor de B1 es : "<<B1<<endl;}

else{
B1=(0.85-(.05*(fc-280)/70));

if (B1>0.65){
B1=B1;cout<<"-el valor de B1 es : "<<B1<<endl;}

else{
B1=0.65;cout<<"-el valor de B1 es : "<<B1<<endl;}

// Diametros para los estribos

//Determino b1
b1=bw+16*hf;

//Determinar b2
b2=bw +(s1+s2)/2;

//Determinar b3
b3= Ln/4;

//CONSIDERANDO QUE ACTUA COMO SECCION RECTANGULAR

//Determinamos el valor de "b"


if(b1<b2){
if(b1<b3){
b=b1;
}
else{
b=b3;
}
}
else{
if(b2<b3){
b=b2;
}
else{
b=b3;
}
}
cout<<" -El valor de b es: " <<b<<"\cm"<<endl;
//Hallamos el peralte efectivo "d"
rec=4; //recubrimiento

cout<<"Considerando que actua como seccion rectangular"<<endl;

do{
cout<<"Digite el Nro de barra del estribo: "<<endl;cin>>nb1; //Sí está
dentro del bucle te volverá a pedir el numero de estribo
}while (nb1<3||nb1>6);
Dsb=Dsb=funcionretorno(nb1);
cout<<"Diametro del estribo es: "<<Dsb<<"cm"<<endl;
do{
cout<<"Digite el Nro de barra a asumir del acero longitudinal:
"<<endl;cin>>nb1; //Sí está dentro del bucle te volverá a pedir el numero de estribo
}while (nb1<3||nb1>11);
Dsbl=Dsbl=funcionretorno(nb1);
cout<<"Diametro del acero longitudinal asumido es: "<<Dsbl<<"cm"<<endl;

d1=h-(rec+Dsb+Dsbl+2.54/2); // peralte efectivo para 2 capas


d2=h-(rec+Dsb+Dsbl/2); //peralte efectivo para 1 capa

cout<<"Digite el numero de capas: "<<endl; cin>>ncapas;


if(ncapas==2){
d=d1;
}
else{
d=d2;
}

cout<<" -El peralte efectivo es (cm): " <<d<<endl;

//Calculo de As
float fi,As,a=0;

fi=0.9;
As=(Mu*100000)/(fi*fy*0.9*d);
a=(As*fy)/(0.85*fc*b);

cout<<"-As= "<<As<<"cm2"<<endl;
cout<<"-a= "<<a<<"cm"<<endl;
cout<<"-a<>hf : "<<endl;

if (a>hf){
cout<<"-LA VIGA ACTUA COMO SECCION T"<<endl;

//Hallamos As2
float As2;
As2=(0.85*fc*(b-bw)*hf)/(fy);
cout<<"-La cantidad de Acero del Ala As2 es: "<<As2<<"cm2"<<endl;

//hallamos Mu2
float Mu2;
Mu2=fi*As2*(fy/1000)*((d/100)-(hf/200));
cout<<"-El mometo en el ala Mu2 es: "<<Mu2<<"tn*m"<<endl;

//calculo de Mu1
float Mu1;
Mu1=Mu-Mu2;
cout<<"-El mometo en el alma Mu1 es: "<<Mu1<<"tn*m"<<endl;

//Proceso iterativo=ai
float As1, a1,Ast, NAF; //Primera Iteracion
As1=(Mu1*pow(10,5))/(fi*fy*(0.9*d)); cout<<"El valor de As1 es: "<<As1<<endl;
a1=As1*fy/(0.85*fc*bw);

float As1i, a1i = 0; //Segunda Iteracion

As1i=(Mu1*pow(10,5))/(fi*fy*(d-a1/2)); cout<<"El valor de As1i es: "<<As1i<<endl;


a1i=As1i*fy/(0.85*fc*bw);

float As1ii, a1ii = 0; //Tercera Iteracion

As1ii=(Mu1*pow(10,5))/(fi*fy*(d-a1i/2)); cout<<"El valor de As1ii es: "<<As1ii<<endl;


a1ii=As1ii*fy/(0.85*fc*bw);

float As1iii, a1iii = 0; //Cuarta Iteracion

As1iii=(Mu1*pow(10,5))/(0.9*fy*(d-a1ii/2)); cout<<"El valor de As1iii es:


"<<As1iii<<endl;
a1iii=As1iii*fy/(0.85*fc*bw);

cout<<"El area del acero del alma es: "<<As1iii<<endl;

Ast=As1iii+As2;
cout<<"El area del acero total: "<<Ast<<endl;

cout<<"\nVERIFICACION DE CUANTIA\n"<<endl;
cout<<"--------------------------";
Cb1=0.85*B1*(fc/fy)*(6000/(6000+fy));
Cf=As2/(bw*d);
Cmax=Cr*(Cb1+Cf)*bw/b; cout<<"El valor de la (Cmax) es: "<<Cmax<<endl;
Cmin1=0.8*sqrt(fc)/fy; cout<<"El valor de la (Cmin1) es: "<<Cmin1<<endl;
Cmin2=14/fy; cout<<"El valor de la (Cmin2) es: "<<Cmin2<<endl;
if(Cmin1<Cmin2){
Cmin=Cmin2; cout<<"El valor de la (Cmin) es: "<<Cmin<<endl;
}else{
Cmin=Cmin1; cout<<"El valor de la (Cmin) es: "<<Cmin<<endl;
}

C=Ast/(b*d); cout<<"El valor de la Cuantia es: "<<C<<endl;

if(C>Cmin&&C<Cmax){
cout<<"EL DISEÑO ES CONFORME";
}else{
cout<<"EL DISEÑO NO CONFORME";
}

else{
cout<<"-LA VIGA ACTUA COMO SECCION RECTANGULAR"<<endl;
}

getch();
return 0;
}

float funcionretorno(int nb1){


float Db1;
switch (nb1){
case 3: Db1=0.95;break;
case 4: Db1=1.27;break;
case 5: Db1=1.59;break;
case 6: Db1=1.91;break;
case 7: Db1=2.22;break;
case 8: Db1=2.54;break;
case 9: Db1=2.86;break;
case 10: Db1=3.18;break;
case 11: Db1=3.49;break;
case 12: Db1=3.81;break;

}
return Db1;

float funcionretornar(int nb1){


float Ab1;
switch (nb1){
case 3: Ab1=0.715;break;
case 4: Ab1=1.27;break;
case 5: Ab1=1.98;break;
case 6: Ab1=2.85;break;
case 7: Ab1=3.88;break;
case 8: Ab1=5.07;break;
case 9: Ab1=6.41;break;
case 10: Ab1=7.92;break;
case 11: Ab1=9.58;break;
case 12: Ab1=11.4;break;

return Ab1;

Vous aimerez peut-être aussi