Sie sind auf Seite 1von 50

INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)

VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

Eng.ª Civil – Licenciatura

DOCENTES: ENG. ARMANDO MARTINS E ENG. PAULO MATEUS

VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

16 de Dezembro de 2010

TRABPRATICO_VIGA CONTINUA_2010_2011

LC 12D - Bárbara Meyrelles, nº 36508


LC 12D - Linda Serranheira, nº 36600
LC 12D - Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

Índice

1. INTRODUÇÃO................................................................................................................ 2
2. OBJECTIVOS ................................................................................................................. 3
3. PRESSUPOSTOS .......................................................................................................... 4
4. ANÁLISE DO PROBLEMA ............................................................................................. 4
4.1. Objectivo ..................................................................................................................... 4
4.2. Input. ........................................................................................................................... 6
4.3. Algoritmo: .................................................................................................................... 7
5. PSEUDOCÓDIGO .......................................................................................................... 8
6. METODOLOGIA ........................................................................................................... 12
6.1. Quadro dos procedimentos ....................................................................................... 12
6.2. Continuação do quadro dos procedimentos (Parâmetros Actuais) ............................ 14
7. RESULTADOS E CONCLUSÕES ................................................................................ 14
8. MANUAL DE UTILIZAÇÃO ........................................................................................... 15
9. WEBGRAFIA............................................................................................................. 24
10. ANEXO1 ................................................................................................................ 25
10.1. Listagem do programa desenvolvido .................................................................. 25
12. ANEXO2 ................................................................................................................ 46
13. ANEXO3 ................................................................................................................ 48
14. ANEXO4 ................................................................................................................ 49
14.1. Identificação completa dos autores do trabalho.................................................. 49

TRABP_VCSAEC_18DEZ
Página 1 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

1. INTRODUÇÃO

Um dos métodos de avaliação da disciplina de Informática e Programação, do curso


de Engenharia Civil do Instituto Superior de Engenharia de Lisboa é a realização de um
trabalho de grupo, que tem por base a elaboração de um programa em Pascal.

Pascal é uma linguagem de programação estruturada, que recebeu este nome em


homenagem ao matemático Blaise Pascal. Foi criada em 1970 pelo suíço Niklaus Wirth,
tendo em mente encorajar o uso do código estruturado. Segundo, Niklaus Wirth esta
linguagem foi criada simultaneamente para ensinar programação estruturada e para ser
utilizada na sua fábrica de software.

Relativamente ao TGV, sabemos que este é constituído por carris soldados uns aos
outros, cada um com um comprimento elevado. Assim, consideramos que se comporta
como uma viga de comprimento infinito. O conjunto solo-balastro reage para cima apenas
naqueles pontos em que a viga desce, enquanto que não reage quando a viga se eleva.
Além disso, apresenta um comportamento elástico módulo (K), isto é, o modulo K varia em
função do tipo de solo em questão. O comportamento elástico está associado à viga, pois as
travessas afundam-se no balastro cada vez que passa um rodado, recuperando o seu
estado imediatamente depois.

TRABP_VCSAEC_18DEZ
Página 2 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

2. OBJECTIVOS

Nos dias de hoje o TGV tem sido alvo de grandes contestações no nosso país, por
isso, um dos nossos objectivos é estudar e calcular a sua alta velocidade e outras variaveis
que estão relacionadas com a mesma. O principal objectivo preside na elaboração de um
programa em Pascal, que tendo por base uma viga sobre apoio elástico contínuo, de
comprimento L, onde são conhecidas algumas variaveis:

 b – Largura da viga (m);


 K – Módulo do solo (N/m2);
 E- Módulo de elasticidade (N/m2);
 MI – Momento de inércia da secção (m4).

Além disso, temos conhecimento que a viga sobre apoio elástico contínuo está sujeita a
uma carga P, aplicada à distância, que permite:

1. Automatizar o cálculo da Flecha


2. Optimizar o programa por forma a que L > 2.5
3. Calcular a flecha em N secções equidistantes
4. Calcular os pontos onde a flecha é nula
5. Guardar em ficheiro de texto os valores obtidos em 3. e 4.
6. Traçar gráfico de Fx
7. Generalizar a utilização do programa para i cargas Pi

TRABP_VCSAEC_18DEZ
Página 3 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

3. PRESSUPOSTOS

Através dos enunciados disponibilizados pelos docentes da disciplina, foi possível a


criação do programa, em que foram disponibilizados os seguintes dados considerados
fulcrais para o desenvolvimento do nosso programa:

 Comprimento da viga L (m);


 O Comprimento da viga : L>2,5 λ;
 Largura da Viga b (m);
 Módulo da Elasticidade E (N/m2);
 Módulo do Solo K (N/m2);
 Momento de inércia da secção MI (m4);

4. ANÁLISE DO PROBLEMA

Análise do Problema (Elementos de Input, Output e Algoritmo, incluindo eventuais


restrições)

4.1. Objectivo: Elaborar um Programa em Pascal que, tendo por base uma viga sobre
apoio elástico contínuo, de comprimento L e onde são igualmente conhecidos:

 b – Largura da viga;
 K – Módulo do solo;

TRABP_VCSAEC_18DEZ
Página 4 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

 E- Módulo de elasticidade;
 MI – Momento de inércia da secção.

Além disso, sabemos que a viga está sujeita a uma carga P, aplicada a uma distância a.
Existem ainda mais variáveis de fácil identificação, tais como:

 a – Distância entre a origem e o ponto de aplicação da Carga (m);


 x – Secção onde se pretende obter o valor da Flecha (m);
 b – Largura da viga (m);
 K – Módulo do solo (N/m2);
 E – Módulo de elasticidade (N/m2);
 MI – Momento de inércia da secção (m4);
 NEQ – Número de Secções Equidistantes;
 NCP – Número de Cargas Pontuais;

Depois de todas as variáveis serem registadas e validadas passamos para os objectivos


principais que são:

 O cálculo da Flecha;
 Os pontos onde a flecha é nula, isto é, os zeros;
 Desenhar um gráfico, onde sejam visíveis os seus zeros (intersecção com o eixo
dos xx).

TRABP_VCSAEC_18DEZ
Página 5 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

4.2. Input: Consideramos os elementos de input da viga e os elementos de input da


carga.

Elementos de Input Viga:

 L – Comprimento da Viga (m);


 b – Largura da viga (m);
 K – Módulo do solo (N/m2);
 E – Módulo da elasticidade (N/m2);
 MI – Momento da Inércia da secção (m4);
 α;
 β.

Elementos de Input Carga:

 P – Valor da carga (N);


 a – Distância entre a origem e o ponto de aplicação da Carga (m);
 x – Secção onde se pretende obter o valor da Flecha (m);
 NEQ – Número de secções equidistantes;
 NCP – Número de cargas pontuais.

TRABP_VCSAEC_18DEZ
Página 6 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

4.3. Algoritmo:

Para o cálculo da flecha foi disponibilizada a seguinte fórmula:

Se 0 ≤ x ≤ a

F(x)=

Se a < x ≤ L

Outras fórmulas também necessárias:

TRABP_VCSAEC_18DEZ
Página 7 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

Restrições (C/):

 b ≥ 0 (positivo);
 P ≠ 0;
 a ≥ 0 Ʌ a ≤ L;
 x> a Ʌ x < L;
 MI > 0;
 NCP 0 < NCP < 50;
 NSEQ > 0;
 L > 2,5λ;
 K > 0;
 E > 0.

5. PSEUDOCÓDIGO

Pseudocódigo

TRABP_VCSAEC_18DEZ
Página 8 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

Inicio

Registar e validar o valor de MI

Se MI ≤ 0 Escrever “Introduzir um valor positivo excepto 0”

Registar e validar o valor de b

Se b <0 Escrever “Introduzir um valor positivo excepto 0”

Registar e validar o valor de E

Se E <0 Escrever “Introduzir um valor positivo excepto 0”

Registar e validar o valor de K

Se K <0 Escrever “Introduzir um valor positivo excepto 0”

Registar e validar o valor de α

TRABP_VCSAEC_18DEZ
Página 9 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

Calcular α

Escrever resultados

Registar e validar o valor de λ

Calcular λ

Escrever resultados

Registar e validar o valor de L

Se L <2,5λ Escrever “O comprimento da viga tem que ser > 2,5λ”

Registar e validar o valor de a

Se a ≤ 0 e se a tiver o mesmo valor que L Escrever “Introduzir um valor positivo e


maior que L”

Registar e validar o valor de x


TRABP_VCSAEC_18DEZ
Página 10 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

Se x≤ 0 e x≤L(2,5λ) Escrever “Introduzir x≥0 e x≥ L(2,5λ)

Registar e validar o valor de P

Se P=0 Escrever “Introduzir um valor diferente de 0”

Registar e validar NEQ

Se NSEQ <0 Escrever “Introduzir um valor positivo excepto 0”

Registar e validar o valor NCP

Se NCP 0<NCP<50 Escrever “Introduzir um maior que 50 e maior que 0”

Fim.

TRABP_VCSAEC_18DEZ
Página 11 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

6. METODOLOGIA

6.1. Quadro dos procedimentos

Parâmetros
Procedimento Variáveis
Acção Por
("Procedure") Locais Por Valor
Variável
Mostra alguns
tópicos que fazem
NomeT ____________ T ___________
parte do ecrã de
apresentação
São as coordenadas
que são utilizadas
no procedimento
Linhas Moldura. O utilizador ____________ Coluna,Linha,Simb __________
poderá ver a linha, a
coluna e o símbolo
utilizado.
Quando o utilizador
introduz a palavra-
Introduzir ____________ ____________ P
chave esta aparece
sob a forma de *
Cria uma moldura à
volta do ecrã de
apresentação e
todos os tópicos
Moldura estão separados por l T ____________
linhas e colunas.
Além disso, o
utilizador dispõe de
mais tópicos.

TRABP_VCSAEC_18DEZ
Página 12 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

Falha Mensagem de erro ____________ mensagem ___________

Registo e validação L,b,K,E,MI,Alfa,


IntDados_Viga de inputs através do Lambda,Sigma
teclado Beta,Omega

Registo e validação
X, NSEQ, a, P,
IntDados_Carga de inputs através do Seccao, dx,MaiorA L
NCP
teclado

Calculo_Flecha Cálculo da Flecha D,E1,E2 Beta,Alfa,a,x,P,L Fx

Beta,Alfa,a,P,xA,
XMedio,FxA,
Calculo dos pontos
Calculo_Zeros ____________
onde a flecha é nula xB,Erro,
FxMedio, i
MaxIteracoes
O tipo de driver
Graf gráfico é detectado H,G ____________ MaxPx,MaxPy
no inicio
Esc_X,Esc_Y,
MaxPx ,MaxPy, x,
Max_Y, Margem, i,
Grafico Desenha o gráfico Texto_X, ____________
soma_flecha,
NSEQ, L
Texto_soma_flecha
L,b,K,E,MI,x,P,a,
Guarda os
GuardarFicheiro Fich, i, j ____________
resultados
NEQ,NCP, SFx
L,b,K,E,MI,x,P,a,
Resultados Mostra os resultados Guardar, i ____________
NSEQ,NCP, SFx
Bloqueia o
programa, caso o
Bloquear utilizador tenha X,l ____________ ____________
errado três vezes a
palavra-chave.
Para aceder ao
Codigo,Password,
programa o
Palavrapass P1,P2,P3,P4,P5, ____________ ____________
utilizador precisa de
Aceder
uma palavra-chave

TRABP_VCSAEC_18DEZ
Página 13 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

6.2. Continuação do quadro dos procedimentos (Parâmetros Actuais)

Procedimento
Parâmetros Actuais
("Procedure")
Moldura
PalavraPass
Trabalho
IntDados_Viga L,b,K,E,MI,Alfa,Beta,Omega
IntDados_Carga L,x,NSEQ,a,P,NCP
Calculo_Flecha Beta,Alfa,a[j],x[i],P[j],L,Fx[i]
Calculo_Zeros Beta,Alfa,a[j],P[j],x[i],x[i+1],Erro,MaxIteracoes
Resultados L,b,K,E,MI,x,P,a,NSEQ,NCP,Soma_Flecha
Graf MaxPx,MaxPy
Grafico MaxPx,MaxPy,x,soma_flecha,NSEQ,L

7. RESULTADOS E CONCLUSÕES

Na elaboração do nosso programa, um dos procedimentos existentes é de carácter


obrigatório, contudo foram efectuadas algumas alterações, isto é, acrescentamos dois
parâmetros ao procedimento de cálculo dos zeros.

Depois de finalizado o trabalho concluímos:

TRABP_VCSAEC_18DEZ
Página 14 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

 A uma carga está sempre associada uma distância, ou seja, à Carga1 (P1)
está associada a distância entre a origem e o ponto de aplicação (a1);
 Na secção isolada, só podemos considerar uma secção. Então é de esperar
que esta não tenha gráfico, nem zeros;
 Se a largura da viga (b) aumenta, o comprimento da viga (L) tem que ser
necessariamente menor. E o inverso também se verifica, logo o b e o L são
inversamente proporcionais;
 Podemos também verificar que o se o Modulo do solo (K), o Momento de
Inércia da secção (MI) e o Módulo da Elasticidade aumentarem, o
comprimento da viga (L) também diminui;
 Se a largura da viga (b) e/ou o Módulo do solo (K) aumentarem, a flecha
diminui;
 O valor da carga (P) é directamente proporcional à flecha no ponto, logo se a
carga (P) aumenta, a flecha também irá aumentar;
 Na prática se calcularmos as flechas introduzindo dois comprimentos
diferentes e o resto das constantes iguais, nomeadamente a distância da
carga à origem (a), as flechas vão-se anular nos mesmos pontos (zeros).
Tendo em conta que o maior comprimento introduzido tem mais zeros do que
o menor comprimento;
 Para cada troço da viga, é necessário verificar se existe um zero. Então, se
F(xn)*F(xn+1)<0 ( o programa vai calcular o zero entre xn e xn+1);

8. MANUAL DE UTILIZAÇÃO

Este programa pode ser executado através de dois processos:

TRABP_VCSAEC_18DEZ
Página 15 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

 Usando o seu ficheiro executável (TRABP_VCSAEC_18DEZ.exe). O programa inicia


apenas com um clique no respectivo ficheiro;

 O outro método está relacionado com o programa FPS, em que o utilizador tem que
possuir este programa no seu computador para poder abrir e executar programas em
Pascal. Então, o utilizador clica no ficheiro (TRABP_VCSAEC_18DEZ.pas) e, de
seguida, carrega na tecla F9 e o programa irá iniciar-se automaticamente.

Após iniciar o programa é necessária a inserção da palavra-chave, onde o utilizador dispõe


de três tentativas. A nossa palavra-chave é CIVIL.

TRABP_VCSAEC_18DEZ
Página 16 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

Após as três tentativas da introdução da palavra-chave errada, uma nova janela aparecerá
advertindo o utilizador para o facto de o programa estar bloqueado. Além disso, o utilizador
é ainda questionado se pretende abandonar o programa.

TRABP_VCSAEC_18DEZ
Página 17 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

Se a resposta for „S‟ o programa é fechado automaticamente. Caso contrário, o programa


volta ao ecrã de apresentação, onde dispõe novamente de três tentativas. Assim que a
palavra-chave estiver correcta o utilizador tem que carregar em qualquer tecla para
continuar.

De seguida, o utilizador é interrogado para introduzir os vários dados da viga, estes são
posteriormente registados e validados.

TRABP_VCSAEC_18DEZ
Página 18 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

Agora o utilizador deve introduzir o Número de Cargas Pontuais. As cargas pontuais estão
limitadas, isto é, NCP>0 e NCP<50. Então, se introduzirmos 2 cargas pontuais, depois o
utilizador tem que introduzir o valor da carga nº1 e da carga nº2. Os valores são registados e
validados.

TRABP_VCSAEC_18DEZ
Página 19 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

Como o utilizador escolheu 2 cargas pontuais, vão existir 2 distâncias entre a origem e o
ponto de aplicação da carga 1 e da carga 2 respectivamente. Os dados são registados e
validados. Depois, o utilizador tem que escolher a opção secção isolada ou secções
equidistantes.

Se a opção escolhida for I (Secções Isoladas), é questionado ao utilizador onde é que a


secção é isolada. Como, na secção isolada só consideramos uma secção, o programa não
irá desenhar o gráfico, apresentando apenas as flechas e a soma das mesmas.

TRABP_VCSAEC_18DEZ
Página 20 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

Por outro lado, se a opção escolhida for a E (Secções equidistantes), é questionado ao


utilizador quantas secções equidistantes são. Posteriormente, são gerados os valores
necessários para o cálculo onde flecha é nula (zeros).

TRABP_VCSAEC_18DEZ
Página 21 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

É facultada ao utilizador a hipótese de guardar o ficheiro como ficheiro de texto (.txt). Caso
este diga que sim, é-lhe pedido o nome do ficheiro que guardará os resultados do
comprimento da viga, largura da viga, módulo do solo, módulo da elasticidade, momento de
TRABP_VCSAEC_18DEZ
Página 22 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

inércia, nº de secções equidistantes, número de cargas pontuais, cargas, valor das


distâncias à origem e, por fim, o cálculo dos zeros.

O gráfico é desenhado e através do mesmo podemos observar a intersecção do gráfico com


o eixo dos xx que correspondem aos pontos onde a flecha é nula.

TRABP_VCSAEC_18DEZ
Página 23 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

O utilizador é questionado se deseja repetir o programa, e caso deseje, o programa volta ao


início, caso contrário o programa fecha automaticamente.

9. WEBGRAFIA

 Imagem da capa - http://1.bp.blogspot.com/_efAwo12br4M/S-


GkyzlSR7I/AAAAAAAAAdc/9XRncpRx4ao/s1600/1%2520tgv-1_generation.jpg
 Texto utilizado na introdução - http://www.htmlstaff.org/ver.php?id=22245 e fichas
dos docentes da disciplina.

TRABP_VCSAEC_18DEZ
Página 24 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

10. ANEXO1

10.1. Listagem do programa desenvolvido

program TRABP_VCSAEC_18DEZ;
uses CRT,Graph;

Const MaxSec=1000;
MaxCarga=50;
MaxIteracoes=5000;
Erro=10E-10;

Type Tab_Peso=array[1..MaxCarga] of real;


Tab_Dist=array[0..MaxSec] of real;

label inicio;
label Trabalho;
label fim;

var Abandonar,seccao:char;
i,j,NCP,NSEQ,MaxPx,MaxPy:integer;
L,b,K,E,MI,Alfa,Beta,Omega,xA,xB,XMedio,FxA,FxB,FxMedio:Real;
P,A:Tab_Peso;
x,Fx,soma_flecha:Tab_Dist;
F:text;
Fich:String[20];

{******************************Nome,Data,Turma**********************************}
TRABP_VCSAEC_18DEZ
Página 25 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

Procedure NomeT(T:integer);
begin

textcolor(white);
Gotoxy(63,02); Write('Trabalho');
Gotoxy(59,03); write('Viga Sobre Apoio');
Gotoxy(58,04); write('Elástico Contínuo');
Gotoxy(58,11); Write('Engenharia Civil');
Gotoxy(59,17); Write('18 - 12 - 2010');
Gotoxy(61,14); Write('Turma 12D');
textcolor(T);
End;

{**************************moldura*********************************************}
procedure Linhas(Coluna,Linha,Simb:integer);
begin

gotoxy(Coluna,Linha);
write(char(Simb))
end;

{*****************************Introduzir Password******************************}
Procedure Introduzir(var P:char);
begin
P:=readkey;
P:=upcase(P);
Textcolor(white);
write('*');
End;

TRABP_VCSAEC_18DEZ
Página 26 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

{******************************moldura,nome,nº aluno************************************}
procedure Moldura(T:integer);
var l:integer;
begin
NomeT(lightblue);

for l:=1 to 25 do Linhas(50,l+1,178);


for l:=1 to 25 do Linhas(80,l+1,178);

for l:=1 to 80 do Linhas(l,01,178);


for l:=1 to 79 do Linhas(l,05,015);
for l:=1 to 79 do Linhas(l,09,015);
for l:=1 to 79 do Linhas(l,19,015);
for l:=1 to 80 do Linhas(l,27,178);

for l:=1 to 25 do Linhas(01,l+1,178);

textbackground(black);
gotoxy(50,07);
writeln(' ');

gotoxy(23,02);
textcolor(lightred);
writeln('ISEL');
gotoxy(04,04);
writeln('Instituto Superior de Engenharia de Lisboa');
Gotoxy(03,11);
textcolor(yellow);
Write('Trabalho realizado por:');

TRABP_VCSAEC_18DEZ
Página 27 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

TextColor(13);
gotoxy(03,16);
Writeln('Linda Serranheira, nº 36600');
gotoxy(03,14);
writeln('Barbara Meyrelles, nº 36508');
gotoxy(03,15);
writeln('Margarida Mendes, nº 36510');
textcolor(white);
textbackground(red);
gotoxy(28,06);
writeln('Informática e Programação');
gotoxy(15,08);
writeln('Docentes: Eng. Armando Martins e Eng. Paulo Mateus');

End;

{************************************Falha************************************}
procedure Falha(mensagem:string);
begin
textcolor(blink);
writeln('Valor incorrecto repita sff ');
textcolor(lightred);
writeln(mensagem);
Textcolor(white);
writeln;
end;

{***************************Introduzir Dados da Viga*****************************}

TRABP_VCSAEC_18DEZ
Página 28 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

procedure IntDados_Viga(var L,b,K,E,MI,Alfa,Beta,Omega:real);


var Lambda,Sigma:real;
const Pi=3.14;
begin
textcolor(lightgreen);
gotoxy(10,01);writeln('--> Introduzir os dados da Viga');
writeln;
textcolor(white);

{*********************************Momento Inercia*******************************}
repeat
write('Introduzir o valor do Momento de Inércia (MI) ');
readln(MI);
if MI<=0 then Falha('MI > 0');
until MI>0;
writeln;
{*******************************Largura*****************************************}
repeat
write('Introduzir a Largura da Viga (b-> metros) ');
readln(b);
if b<=0 then Falha('comprimento > 0');
until b>0;
writeln;

{*********************************Modulo Inercia********************************}
repeat
write('Introduzir Módulo da Elasticidade (E) ');
readln(E);
if E<=0 then Falha('M. Elasticidade > 0');
until E>0;
writeln;

TRABP_VCSAEC_18DEZ
Página 29 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

{******************************Modulo do Solo***********************************}
repeat
write('Introduzir Módulo do Solo (K) ');
readln(K);
if K<=0 then Falha('M. Solo > 0');
until K>0;
writeln;
{***************************Alfa,Lambda,Sigma,Omega*****************************}
Beta:=k*b;
Omega:=Beta/(4*E*MI);
Alfa:=exp(0.25*ln(Omega));
Lambda:=2*Pi/Alfa;
Sigma:=Lambda*2.5;

repeat
write('Introduzir o Comprimento da Viga ( Valor superior a ',Sigma:5:3,' Metros (L))
');
readln(L);
if L<Sigma then Falha('');
until L>Sigma;

end;

{******************************Dados Carga**************************************}
Procedure IntDados_Carga(L:real;Var x:Tab_Dist;Var NSEQ:integer;Var a, P:Tab_Peso;
var NCP:integer);
Var dx,MaiorA:real;
begin
textcolor(lightgreen);
gotoxy(10,01);writeln('--> Introduzir os dados das Cargas');

TRABP_VCSAEC_18DEZ
Página 30 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

writeln;
textcolor(white);
{**************************Nº Cargas Pontuais*************************************}
writeln('Número de Cargas Pontuais - NCP');
writeln;
writeln;
repeat
write('Introduzir o Número de Cargas ');
readln(NCP);
if NCP<=0 then Falha('Nº de Cargas > 0');
if NCP>MaxCarga then Falha('Nº cargas < 50');
until (NCP<MaxCarga) and (NCP>0);

{****************************Introduzir valor Carga************************************}


writeln;
writeln('Valor das Cargas - P');
writeln;

for i:=1 to NCP do begin

write('Introduzir o Valor da Carga N.',i,' ---> ');


readln(P[i]);

end;

{****************************Distancia origem-ponto*****************************}
clrscr;
textcolor(lightgreen);
gotoxy(10,01);writeln('--> Introduzir os dados das Cargas');
writeln;

TRABP_VCSAEC_18DEZ
Página 31 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

writeln;
textcolor(white);
writeln('Distância entre a origem e o Ponto de Aplicação - A');

if NCP=1 then begin

repeat
write('Introduzir a Distância entre a Origem e o Ponto de Aplicação
da Carga 1 (Metros) ');
readln(a[1]);
if a[1]>=L then Falha('Distância < Comprimento da Viga');
until (a[1]<=L) and (a[1]>=0);

writeln;
end;

if NCP>1 then
for i:=1 to NCP do

repeat
write('Introduzir a Distância entre a Origem e o Ponto de
Aplicaçãoo da Carga ',i,' (A < ',L:5:3,' m) ');
readln(a[i]);

if (a[i]>L) or (A[i]<0)
then Falha('Distância < Comprimento da Viga');
writeln;
until (a[i]<=L) and (a[i]>=0);

TRABP_VCSAEC_18DEZ
Página 32 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

MaiorA:=a[1];
for i:=2 to NSEQ do
if a[i]>MaiorA then MaiorA:=a[i];

{****************************Nº Secçoes Equidistantes*****************************}


{****************************Valor seccao correspondente*****************************}
writeln;
writeln('Número de Secções Equidistantes - NSEQ');
writeln;

repeat
writeln('Secção Isolada? (Prima I) ou Secções Equidistantes? (Prima E) ');
Seccao:=Readkey;
Seccao:=upcase(Seccao);
until Seccao in ['I','E'];

writeln;
if Seccao='I' then begin
repeat
write('Secção isolada: Onde? (0 < X < L) ');
readln(x[0]);
if (x[0]<0) or (x[0]>L) then Falha('');
until (x[0]>0) and (x[0]<L);
end;

if Seccao='E' then begin


repeat
write('Secçõeses equidistantes: Quantas? ');

TRABP_VCSAEC_18DEZ
Página 33 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

readln(NSEQ);
if NSEQ<0 then Falha('Nº de seccoes > 0');
if NSEQ>MaxSec then Falha('Nº de Seccoes < 1000');
if NSEQ>0 then begin
for i:=1 to NSEQ do begin
dx:=L/NSEQ;
x[i]:=i*dx;
end;
end;
until (NSEQ>0) and (NSEQ<MaxSec);
end;
end;

{*******************************Calculo da Flecha*********************************}
procedure Calculo_Flecha(Beta,Alfa,a,x,P,L:real;var Fx:real);
var D,E1,E2:real;

begin

D:=P*Alfa/(2*Beta);
E1:=Alfa*(a-x);
E2:=Alfa*(x-a);

If x<=a then Fx:=D*exp(-E1)*(sin(E1)+cos(E1))


else Fx:=D*exp(-E2)*(sin(E2)+cos(E2));

end;

{**************************Calculo dos zeros**********************************}

TRABP_VCSAEC_18DEZ
Página 34 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

Procedure Calculo_Zeros(Beta,Alfa,a,P,xA,xB,Erro:real;MaxIteracoes:integer);
var XMedio:real;
FxA,FxMedio:real;
i:integer;

begin
i:=1;
repeat
XMedio:=(xA+xB)/2;
Calculo_Flecha(Beta,Alfa,a,xA,P,L,FxA);
Calculo_Flecha(Beta,Alfa,a,XMedio,P,L,FxMedio);
If (FxA*FxMedio<0) then xB:=XMedio
else xA:=XMedio;

i:=i+1;

until (abs(FxMedio)<Erro) or (i>MaxIteracoes);


writeln(' Zero = ',XMedio:8:4,' Fx = ',FxMedio:12:10);
end;

{****************************Gráfico******************************************}
Procedure Graf(var MaxPx,MaxPy:Integer);
var H,G:Smallint;
begin
G:=Detect;
InitGraph(G,H,' ');
SetBkColor(white);
MaxPX:=GetMaxX;
MaxPY:=GetMaxY;

TRABP_VCSAEC_18DEZ
Página 35 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

end;

Procedure Grafico(MaxPx,MaxPy:Integer;x,soma_flecha:Tab_Dist;NSEQ:Integer;L:Real);
var Esc_X,Esc_Y:Real;
Max_Y:Real;
Margem:Integer;
i:Integer;
Texto_X:String;

begin

Margem:=Round(0.04*MaxPx);
SetColor(green);

Line(Margem,(MaxPy div 2),MaxPx-Margem,(MaxPy div 2));


Line(Margem,0,Margem,MaxPy);

SETTEXTSTYLE(3,0,5);
SETTEXTJUSTIFY(1,1);
SetColor(Green);
OUTTEXTXY((MaxPx div 2),Margem,'Diagrama de Flechas');

Max_Y:=soma_flecha[1];
for i:=1 to NSEQ do
if soma_flecha[i]>Max_Y then MAx_Y:=soma_flecha[i];

Esc_X:=(MaxPx-2*Margem)/L;

Esc_Y:=(MaxPy-2*Margem)/Max_Y;

TRABP_VCSAEC_18DEZ
Página 36 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

SetColor(White);
for i:=0 to NSEQ
do Line(Margem + round(Esc_X*x[i]),(MaxPy div 2)-10,
Margem + Round(Esc_X*x[i]),(MaxPy div 2)+10);

SetColor(magenta);
MOVETO(Margem,(MaxPy div 2)+round(Esc_Y/2*soma_flecha[0]));
for i:=1 to NSEQ do LINETO(Margem+Round(Esc_X*x[i]),(MaxPy div
2)+Round(Esc_Y/2*soma_flecha[i]));

SETTEXTSTYLE(2,1,1);
SETTEXTJUSTIFY(1,0);

SetColor(Yellow);
for i:=0 to NSEQ do
begin
Str(X[i]:6:2,Texto_X);
OUTTEXTXY(Margem + Round(Esc_X*x[i]),(MaxPy div 2)-10,Texto_X);
end;

SetColor(white);
for i:=0 to NSEQ do Circle(Margem + Round(Esc_X*x[i]),
(MaxPy div 2)+Round(Esc_Y/2*soma_flecha[i]),4);

end;

{****************************Guardar Resultados********************************}
Procedure GuardarFicheiro(L,b,K,E,MI:real;x:Tab_Dist;P,a:Tab_Peso;

TRABP_VCSAEC_18DEZ
Página 37 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

NSEQ,NCP:integer;SFx:Tab_Dist);
var i,J:Integer;

begin
Write('Qual o nome do ficheiro? ');
Readln(Fich);
Assign(F,Fich+'.txt');
rewrite(F);

clrscr;
textcolor(black);
writeln(F,'Comprimento da Viga= ',L:8:3);
writeln(F,'Largura da Viga= ',b:8:3);
writeln(F,'Módulo do Solo= ',K:8:3);
writeln(F,'Módulo da Elasticidade= ',E:8:3);
writeln(F,'Momento de Inérrcia= ',MI:8:3);
writeln(F,'Número de secções equidistantes = ',NSEQ);
writeln(F,'Número de cargas pontuais = ',NCP);

for j:=1 to NCP do begin


writeln(F,'Carga ',j,': ',P[j]:8:3);
writeln(F,'Valor das distâncias à origem = ',a[j]:8:3);
for i:=0 to NSEQ do
begin
writeln(F,i:3,' Flecha = ',Fx[i]:16:8);
writeln(F,'Soma Flechas = ',SFx[i]:16:8);
end;
end;
close(F);
writeln;

TRABP_VCSAEC_18DEZ
Página 38 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

writeln('Nome do ficheiro: ',Fich,'.txt');


Writeln('Ficheiro gravado.');

Readln;

textcolor(white)
end;

{*********************************Guardar Zeros********************************}
{
Procedure Calculo_ZerosFich(Beta,Alfa,a,P,xA,xB,Erro:real;MaxIteracoes:integer; var
Fich:string[20]);
var XMedio:real;
i:integer;
FxA,FxMedio:real;
begin
Assign(F,Fich+'.txt');
i:=1;
repeat
XMedio:=(xA+xB)/2;
Calculo_Flecha(Beta,Alfa,a,xA,P,L,FxA);
Calculo_Flecha(Beta,Alfa,a,XMedio,P,L,FxMedio);
If (FxA*FxMedio<0) then xB:=XMedio
else xA:=XMedio;

i:=i+1;

until (abs(FxMedio)<Erro) or (i>MaxIteracoes);

TRABP_VCSAEC_18DEZ
Página 39 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

Writeln(F,'Zeros da Funcao:');
writeln(F,' Zero = ',XMedio:8:4,' Fx = ',FxMedio:12:10);
close(F);

writeln;
writeln('Nome do ficheiro: ',Fich,'.txt');
Writeln('Ficheiro gravado.');

Readln;

textcolor(white)
end;
}

{********************************Mostrar Resultados****************************}
Procedure Resultados(L,b,K,E,MI:real;x:Tab_Dist;P,a:Tab_Peso;
NSEQ,NCP:integer;SFx:Tab_Dist);
var Guardar:char;
i:integer;
begin

clrscr;
textcolor(yellow);
writeln('Comprimento da Viga= ',L:8:3);
writeln('Largura da Viga= ',b:8:3);
writeln('Módulo do Solo= ',K:8:3);
writeln('Módulo da Elasticidade= ',E:8:3);
writeln('Momento de Inércia= ',MI:8:3);
writeln('Número de secções equidistantes = ',NSEQ);
writeln('Número de cargas pontuais = ',NCP);

TRABP_VCSAEC_18DEZ
Página 40 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

writeln;
writeln;
Readln;
textcolor(white);

for j:=1 to NCP do begin


writeln('Carga ',j,': ',P[j]:8:3);
writeln('Valor das distâncias à origem = ',a[j]:8:3);
writeln
end;

Readln;

for i:=0 to NSEQ do begin


textcolor(cyan);
write(i:3);
textcolor(white);
writeln(Fx[i]:16:8,SFx[i]:16:8);

end;

repeat
writeln;
writeln('Pretende guardar os resultados? (S/N)');
Guardar:=readkey;
Guardar:=UpCase(Guardar);
until Guardar in ['S','N'];

if Guardar='S' then begin


GuardarFicheiro(L,b,K,E,MI,x,P,a,NSEQ,NCP,Fx);
{ Calculo_ZerosFich(Beta,Alfa,a,P,xA,xB,Erro,MaxIteracoes,Fich) }

TRABP_VCSAEC_18DEZ
Página 41 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

end;
end;

{*************************Password Incorrecta**********************************}
Procedure Bloquear;
var X,l:integer;
begin
X:=1;
While X=1 Do begin
TextColor(white);
clrscr;
for l:=1 to 77 do Linhas(l+1,10,205);
for l:=1 to 77 do Linhas(l+1,14,205);
for l:=10 to 12 do Linhas(01,l+1,186);
for l:=10 to 12 do Linhas(79,l+1,186);
Linhas(01,10,201);
Linhas(01,14,200);
Linhas(79,10,187);
Linhas(79,14,188);

end;
End;

{***********************Aceder ao programa*************************************}
Procedure PalavraPass;
var Codigo,Password:string[5];
P1,P2,P3,P4,P5:char;
Aceder:integer;

TRABP_VCSAEC_18DEZ
Página 42 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

begin
Codigo:='CIVIL';
Aceder:=1;
repeat
textbackground(lightblue);
textcolor(yellow);
Gotoxy(04,22); Write(' ':45);
Gotoxy(04,22); write(Aceder,' Tentativa, Introduzir Password -> ');

Introduzir(P1); Introduzir(P2); Introduzir(P3); Introduzir(P4); Introduzir(P5);

Password:=P1+P2+P3+P4+P5;
Aceder:=Aceder+1
until (Codigo=Password) or (Aceder=4);

if Codigo<>Password then Bloquear;

end;

{******************************Bloco Principal*********************************}
begin
repeat
inicio:clrscr;

Moldura(black);
Palavrapass;

Trabalho:clrscr;

TRABP_VCSAEC_18DEZ
Página 43 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

IntDados_Viga(L,b,K,E,MI,Alfa,Beta,Omega);
clrscr;
IntDados_Carga(L,x,NSEQ,a,P,NCP);

if Seccao='I' then begin


Soma_flecha[0]:=0;
for j:=1 to NCP do begin
Calculo_Flecha(Beta,Alfa,a[j],x[0],P[j],L,Fx[j]);
Soma_flecha[0]:=Soma_flecha[0]+Fx[j];
writeln(j:3,' Flecha = ',fx[j]:12:10);
writeln('Soma das flechas = ',soma_flecha[0]:12:10);
end;end;

if Seccao='E' then begin


FOR i:=0 TO NSEQ DO Soma_Flecha[i]:=0;

for j:=1 to NCP do


Begin
Writeln('CARGA SECCAO FLECHA SOMA FLECHAS');
for i:=0 to NSEQ
do begin
Calculo_Flecha(Beta,Alfa,a[j],x[i],P[j],L,Fx[i]);
Soma_Flecha[i]:=Soma_Flecha[i]+Fx[i];
Writeln(P[J]:10:3,X[i]:15:3,Fx[i]:15:8,Soma_Flecha[i]:15:8)
end;
readln;

if NSEQ<>0 then begin


Writeln('Zeros da Funcao:');
for i:=0 to NSEQ-1 do

TRABP_VCSAEC_18DEZ
Página 44 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

if Fx[i]*Fx[i+1]<0 then
Calculo_Zeros(Beta,Alfa,a[j],P[j],x[i],x[i+1],Erro,MaxIteracoes);
Readln;
end; end;

Resultados(L,b,K,E,MI,x,P,a,NSEQ,NCP,Soma_Flecha);

Graf(MaxPx,MaxPy);
Grafico(MaxPx,MaxPy,x,soma_flecha,NSEQ,L);
readln;
CloseGraph;
end;

repeat
writeln('Deseja repetir o programa? (S/N)');
abandonar:=readkey;
abandonar:=upcase(abandonar);
until abandonar in ['S','N'];
textbackground(black)
until abandonar='N';
fim:clrscr;

end.

TRABP_VCSAEC_18DEZ
Página 45 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

12. ANEXO2

12.1. Continuação do Pseudocódigo

Cálculo da flecha

Se x>=0 e x<=a Escrever

Escrever resultados

Se x>a e x≤L Escrever

Escrever resultados

Cálculo dos pontos onde a flecha é nula (zeros)

Se f(a) * f(b) < 0, então calcula o zero entre a e b

Escrever resultados

Guardar em ficheiro os valores obtidos no cálculo da flecha e os pontos onde a flecha é nula
(zeros)

Introduzir „S‟ ou „N‟ para guardar o ficheiro

Se a resposta for „N‟ os valores obtidos não serão guardados

TRABP_VCSAEC_18DEZ
Página 46 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

Se a resposta for „S‟ é pedido que introduza um nome para o ficheiro

O gráfico é desenhado

Questionar o utilizador se pretende abandonar o programa ou não. Se a resposta for „S‟ o


programa fecha automaticamente, caso contrário o programa volta ao ecrã de apresentação.

TRABP_VCSAEC_18DEZ
Página 47 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

13. ANEXO3

TRABP_VCSAEC_18DEZ
Página 48 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510
INFORMÁTICA E PROGRAMAÇÃO – 2010 / 2011 – (1ºS)
VIGA SOBRE APOIO ELÁSTICO CONTÍNUO

14. ANEXO4

14.1. Identificação completa dos autores do trabalho

Identificação do Grupo de Trabalho: 12D-08

Número Nome Endereço Contacto


Foto Assinatura
de Aluno Completo Electrónico Telefónico

Linda
36600 36600@alunos.isel.pt
Sousa 915244528
Serranheira

Bárbara da
36508 Costa Leite 36508@alunos.isel.pt 963610111
Meyrelles

Margarida
Filipa
36510 36510@alunos.isel.pt 969889336
Esteves
Mendes

TRABP_VCSAEC_18DEZ
Página 49 de 50

LC12D – Grupo 12D-08


Bárbara da Costa Leite Meyrelles, nº 36508
Linda Sousa Serranheira, nº 36600
Margarida Filipa Esteves Mendes, nº 36510