RitaLopes Posted December 15, 2013 at 06:34 PM Report #537744 Posted December 15, 2013 at 06:34 PM (edited) Boa tarde, Estou a fazer um programa que consiste em determinar ao fim de quanto tempo um determinado tanque deixa de escoar agua, tendo este mesmo tanque uma abertura. A minha duvida está na parte dos calculos, ou seja eu tenho de usar uma formula até à abertura do tanque e outra para depois. esta formula tem potencias e tenho de chamar um procedimento POTENCIA para dentro de um outro. Não estou a conseguir formular o procedimento potencia e pô-lo dentro de outro com a formula de calculo para H1 ou H2, sendo H1 até a abertura do tanque e H2 depois dessa abertura. Procedure Q_1 (Var Q:Matriz3; Lc:real; H1,H2:Matriz; i,n:integer); begin {VolumedaFatia:= AreaTanque*(H2/40)} {H1[0]:=H1[0];H2[0]:=H2[0] for i:=1 to 40 do b é o expoente a é a base if H1[i-1]>=0 then caudal1(H1[i-1],H2[i-2],Lc,Q[i]) else cauldal2(H2[i-1],Lc,Q[i]) H1[]:=H1[i-1]-H1[i] END; Procedure Caudal1 (var Q:matrizCaudal;H1:MatrizAlturas1;H2:MatrizAlturas2) Q1:=(2/3)*u*Lc*sqrt(2g)*((H2^(3/2))-(H1^(3/2))) begin P1:=H1; P2:=H2; potencia(3/2,P1,P2) Q1:=(2/3)*u*Lc*sqrt(2g)*((H2^(3/2))-(H1^(3/2))) end; Procedure Caudal2 (H2:MatrizAlturas2;3/2:real) Q2:= 1.83*Lc*H2^(3/2) begin P2:= H2^(3/2); potencia(3/2,P2) Q2:=1.83*Lc*P2 end; Procedure Tempos (Var TempoParcial,TempoTotal:Matriz1; Q:matriz3) TempoParcial[i]:=volume/Q[i] for i:=1 to 40 do TempoTotal[i]:=TempoTotal[i-1]+TempoParcial[i]; Procedure Potencia(b:real;var a:real); b:=3/2; a:=H1 begin if a>0 then a:=exp(b*ln(a)) else a:=0 EStou mesmo enrascada, e a desesperar com isto Agradecia uma ajudinha Obrigado Rita 🙂 Edited December 15, 2013 at 07:00 PM by thoga31 GeSHi
thoga31 Posted December 15, 2013 at 07:02 PM Report #537745 Posted December 15, 2013 at 07:02 PM Bem-vinda ao P@P. As dúvidas devem ser colocadas no quadro correspondente à dúvida ou à linguagem, o quadro "Sugestões, Críticas ou Dúvidas relativas ao P@P" é, como o nome indica, para sugestões, críticas e dúvidas acerca do fórum em si. Explica melhor os cálculos que tens de realizar e onde estás a ter dúvidas. É em implementação ou em é em termos matemáticos? Atenção: o teu código está todo dentro de comentários. É suposto? Cumprimentos. Knowledge is free!
thoga31 Posted December 15, 2013 at 08:47 PM Report #537761 Posted December 15, 2013 at 08:47 PM Não cries duplicados, o tópico já está no quadro correcto. Responde às minhas questões. Knowledge is free!
RitaLopes Posted December 16, 2013 at 03:47 PM Author Report #537836 Posted December 16, 2013 at 03:47 PM Boa tarde, sou novata nisto e daí ter postado em varios sitios diferentes, as minhas desculpas. os calculos estao como comentarios porque como essa parte nao funciona era para conseguir rodar o programa à mesma. O programa consiste em determinar ao fim de quanto tempo um determinado tanque deixa de escoar agua e determinar tambem por metode iterativo o momento em que ocorre a trnsiçao entre o primeiro momento H1 (sendo este, até a agua chegar a abertura do tanque) e H2(estando a agua abaixo do limite da abertura).. as formulas para estes dois momentos estão nos procedimentos Caudal1 e caudal2, depois de calculados serao guardados no array Q. tenho de ter em atenção que o decrescimo da agua é constante. como as formulas de calculo tem potencias foi pedido um procedimento POTENCIA para ser chamado dentro do procedimento Caudal1 e caudal 2. caso nao esteja muito explicita a minha explicação envio em anexo os requisitos do programa. A entidade gestora de uma barragem pretende um programa de cálculo automático que lhe permita controlar os tempos de abertura da comporta garantindo que o nível de água na barragem não ultrapassa a cota de segurança previamente estabelecida. Como modelo exploratório considera-se a utilização de um reservatório prismático, rectangular vertical, com uma comporta na parede lateral, conforme indicado na figura, em relação ao qual se pretende obter o tempo que o nível da água demora a atingir o bordo inferior da comporta. 2. OBJECTIVO Desenvolver uma aplicação em Pascal que permita: 1. Determinar o tempo ao fim do qual o tanque deixa de escoar água; 2. Determinar, por método iterativo, o momento em que ocorre a transição entre o primeiro e o segundo tipo de escoamento, concretamente entre a situação 1 (H1>0) e a situação 2 (H1=0); 3. Escrever para ficheiro de texto, a informação necessária para, recorrendo ao Excel, elaborar os gráficos que traduzem a visualização gráfica dos caudais em função do tempo; 3. PRESSUPOSTOS Na elaboração do programa serão considerados os seguintes pressupostos: 1. Variáveis independentes: • Área do tanque; • Altura de água acima do Bordo Superior da comporta; • Altura de água acima do Bordo Inferior da comporta • Largura da comporta 2. A largura da comporta não pode ser superior a 2 m nem inferior a 5 cm 3. O decréscimo de H2O deve ser constante e igual a 1/40 de H2 4. Algoritmos associados ao escoamento • Situação 1 (H1>0) 2 3 μ. . 2. g . 2/ 1/ • Situação 2 (H1≤0) 1,83 . . 2/ Em que: • Q – Caudal (m3/s) • μ – Coeficiente de vazão (±=0,6) • Lc – Largura da comporta (m) • G – Aceleração da gravidade (m/s2) • H1 – Altura de água acima do bordo superior da comporta • H2 – Altura de água acima do bordo superior da comporta Os algoritmos apresentados são expressões simplificadas e apenas são aplicados para água. 4. METODOLOGIA Cada grupo deverá analisar a metodologia adequada à resolução do problema. Sugere-se no entanto especial atenção para os seguintes aspetos: 4.1 Análise do problema Identificando: • Objetivo • Elementos de Input • Elementos de Output • Algoritmos 4.2 Pseudocódigo Descrição de forma hierarquizada das etapas a realizar tendo em vista a tradução do algoritmo. 4.3 Utilização de variáveis de fácil identificação É obrigatória a utilização das variáveis identificadas em seguida1: • H1 – Altura de água acima do bordo superior da comporta • H2 – Altura de água acima do bordo superior da comporta • Lc – Largura da comporta • AreaTanque – Área do Tanque • Delta_H2 – Decréscimo constante de H20 • Q – Caudal • TempoParcial – Tempo parcial • TempoTotal – Tempo total Algumas das variáveis poderão sofrer ajustamentos decorrentes da utilização de “arrays” uni ou bidimensionais. 4.4 Escrita legível do programa Para permitir que facilmente se identifiquem as tarefas bem como as estruturas utilizadas e respetiva abrangência. Embora a indentação tenha um papel meramente estético, recomenda-se a sua utilização por forma a permitir uma leitura do código fonte muito mais fácil (“read-friendly”). 4.5 Utilização de comentários Recomenda-se a utilização de comentários ao longo do programa, nomeadamente no que respeita à identificação das variáveis e procedimentos. 4.6 Utilização de procedimentos Em especial para situações de tarefas individualizadas, sendo de utilização obrigatória os seguintes: • Écran de Apresentação (Moldura) • “Password” de acesso ao Programa (Password) • Registo e validação de inputs através do teclado (LerDadosTeclado) • Ler dados a partir de ficheiro (LerDadosFicheiro) • Visualização de resultados no ecrã (ResultadosEcran) • Escrita de resultados em Ficheiro (EscreverResultadosFicheiro) • Escrita de dados para gráfico (EscreverDadosFicheiroParaGrafico) Obrigado pel'atenção aguardo atenciosamente uma resposta Rita
thoga31 Posted December 16, 2013 at 08:57 PM Report #537885 Posted December 16, 2013 at 08:57 PM Bom, eu não vou ler o enunciado, é extremamente extenso, além de que também tenho vida. Posto isto, volto a perguntar: qual é a tua dúvida em específico? É em código ou é na implementação em Pascal? Em qualquer dos casos, indica os pontos onde estás a sentir dificuldades. Knowledge is free!
RitaLopes Posted December 17, 2013 at 12:39 AM Author Report #537932 Posted December 17, 2013 at 12:39 AM A minha grande dúvida é no código. é em por os resultados que me dão depois para os arrays respectivos, em chamar o procedure Potencia para dentro dos procedimentos caudal1 e caudal2 e dado o resultado envia los para o array Q_1. Obrigado pel'atenção
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now