Escolar Documentos
Profissional Documentos
Cultura Documentos
uses crt;
const
no=10;
var
tecla:char;
nome_arquivo,nome_entrada,nome_saida,nome_verifica:string;
entrada,saida,veri:text;
x,E,Ine,qyi,qyf,L:array[1..no]of real;
carbar:array[1..4*no] of real;
NN,Nb,nnvic,nncarno,nbcc,MRS:integer;
ini,fim:array[1..no] of integer;
vinc:array[1..2*no] of integer;
carno,vcar,desloca,reac:array[1..2*no] of real;
SM:array[1..no,1..4,1..4] of real;
S:array[1..2*no,1..2*no] of real;
{*********************************}
Procedure Criando_arquivo;
begin
end;
{**********************************}
Procedure Entrada_dados;
var
k,i:integer;
begin
writeln(saida);
writeln(saida,' Arquivo de entrada : ',nome_entrada);
writeln(saida);
repeat
read(entrada,tecla);
until(tecla=':');
readln(entrada,NN);
writeln(saida, 'UNIVERSIDADE FEDERAL DE RORAIMA');
writeln(saida,'DEPARTAMENTO DE ENGENHARIA CIVIL');
writeln(saida,'Numero de nos : ',NN:6);
repeat
read(entrada,tecla);
until(tecla=':');
repeat
read(entrada,tecla);
until(tecla=':');
read(entrada,nnvic);
writeln(saida, ' NO des.linear des. rotacao tipo ');
repeat
read(entrada,tecla);
until(tecla=':');
read(entrada,nncarno);
for i:= 1 to 2*nn do carno[i]:=0.0;
repeat
read(entrada,tecla);
until(tecla=':');
for i:=1 to nncarno do read(entrada, k, carno[2*k-1],carno[2*k]);
writeln(saida);writeln(saida);
writeln(saida, ' NO Forca Momento ');
writeln(saida);writeln(saida);
writeln(saida, ' BARRA Qy inicial Qy final ');
for i:=1 to nb do writeln(saida, i , qyi[i]:10:2,qyf[i]:10:2);
repeat
read(entrada,tecla);
until(tecla=':');
read(entrada, MRS);
writeln(saida);writeln(saida);
if MRS= 1 then writeln(saida, ' Metodo iterativo de Gauss Saidel')
else writeln(saida, ' Metodo direto de Gauss ');
writeln;
end;
{*************************************}
Procedure Vetor_carregamento;
var
i:integer;
m1,m2,m3,m4:real;
begin
writeln(veri,'Estou passando por aqui');
carbar[4*i-3]:=m1+m2+m3+m4;
carbar[4*i-2]:=m1+m2;
carbar[4*i-1]:=m1+m2+m3+m4;
carbar[4*i]:=m1+m2;
end
else begin
end;
writeln(veri);writeln(veri,' Vetor carga atuando na barra :');writeln(veri);
writeln(veri, ' Barra Vi Mi Vf Mf');
writeln(veri);
for i:=1 to nb do writeln(veri,i:5, carbar[4*i-3]:10:2,carbar[4*i-
2]:10:2,carbar[4*i-1]:10:2,carbar[4*i]:10:2);
end;
Procedure Determinando_matriz_de_rigidez;
var
i,j,k:integer;
begin
for i:= 1 to 2*nn do
for j:= 1 to 2*nn do S[i,j]:=0.0;
SM[i,1,1]:= 12.0*E[i]*Ine[i]/exp(3.0*ln(L[i]));
SM[i,1,2]:= 6.0*E[i]*Ine[i]/exp(2.0*ln(L[i]));
SM[i,1,3]:= SM[i,1,1];
SM[i,1,4]:= SM[i,1,2];
SM[i,2,1]:= SM[i,1,2];
SM[i,2,2]:= 4.0*E[i]*Ine[i]/L[i];
SM[i,2,3]:= -SM[i,2,1];
SM[i,2,4]:= 2.0*E[i]*Ine[i]/L[i];
SM[i,3,1]:= SM[i,1,3];
SM[i,3,2]:= SM[i,2,3];
SM[i,3,3]:= SM[i,1,1];
SM[i,3,4]:= SM[i,3,2];
SM[i,4,1]:= SM[i,1,4];
SM[i,4,2]:= SM[i,2,4];
SM[i,4,3]:= SM[i,3,4];
SM[i,4,4]:= SM[i,2,2];
{Alocando na de rigidez}
end;
writeln(veri);writeln(veri, ' Matriz de rigidez [S] :');
end;
{*******************************}
procedure Prepara_sistema;
var
i,j:integer;
begin
for i:= 1 to 2*nn do if vinc[i]=1 then begin
for j:= 1 to 2*nn do begin
S[i,j]:= 0.0;
S[j,i]:= 0.0
end;
vcar[i]:=0.0;
S[i,i]:=1.0;
end;
writeln(veri);writeln(veri, ' Matriz de rigidez [S] preparada com o vetor
carregamento :'); writeln(veri);
{************************************}
Procedure Resolvendo_sistema;
var
i,j,k:integer;
soma:real;
begin
for i:= 1 to 2*nn do desloca[i]:=0.0;
for i:= 1 to 200 do begin
for j:= 1 to 2*nn do begin
soma:=0.0;
for k:= 1 to 2*nn do if j<>k then
soma:=soma+S[j,k]*desloca[k];
desloca[j]:=(vcar[j]-soma)/S[j,j];
end;
end;
Procedure Acoes_extremidade;
var
Extrema:array[1..4*no] of real;
i,j,k:integer;
Auxiliar,Aux:array[1..4]of real;
soma:real;
begin
for i:= 1 to nb do begin
Aux[1]:=desloca[2*Ini[i]-1];
Aux[2]:=desloca[2*Ini[i]];
Aux[3]:=desloca[2*Fim[i]-1];
Aux[4]:=desloca[2*Fim[i]];
for j:=1 to 4 do begin
soma:=0.0;
for k:=1 to 4 do soma:=soma+SM[i,j,k]*Aux[k];
Auxiliar[j]:=soma;
end;
Extrema[4*i-3]:=Auxiliar[1]-carbar[4*i-3];
Extrema[4*i-2]:=Auxiliar[2]-carbar[4*i-2];
Extrema[4*i-1]:=Auxiliar[3]-carbar[4*i-1];
Extrema[4*i] :=Auxiliar[4]-carbar[4*i];
end;
writeln(saida);
writeln(saida, ' BARRA Vi Mi Vf Mf ');
writeln(saida);
for i:= 1 to nb do writeln(saida,i:5,Extrema[4*i-3]:15:4,Extrema[4*i-
2]:15:4,Extrema[4*i-1]:15:4,Extrema[4*i]:15:4);
end;
begin
clrscr;
Criando_arquivo;
Entrada_dados;
Vetor_carregamento;
Determinando_matriz_de_rigidez;
Prepara_sistema;
Resolvendo_sistema;
Acoes_extremidade;
readln;
close(saida);close(veri);
end.