Ir ao conteúdo
  • Cadastre-se

Pascal/Delphi É possível juntar estes dois scripts?


Posts recomendados

olá
tenho um script referente a uma formula que calcula a energia cinética de uma gota de chuva simulada. tentei criar uma interface para rodar de background desta forma. só que não consegui juntar as duas. alguém pode me dizer se isso é possivel?

program enerchuva;
uses crt;
const
  g = 9.81;
var
  //txtarq: text;
  i, j, n: integer;
  //ch, fixatela: char;
  ch : char;
  c2, k1, k2, k3, k4, ecn, ecs, 
  tempoprec, t, dt, v, tfim, alt, 
  l, hb, deltad, ca, vou, ps, d, ip: real;

procedure entra_dados;
begin
	
  clrscr; gotoxy(8,8);
  writeln('   forneca os seguintes dados: ');
  write  ('- intensidade de precipitacão, mm h-1.......  i  = '); readln(ip);
  write  ('- diâmetro medio das gotas; mm............  d  = ' ); readln(d);
  write  ('- pressão nos bicos,  psi, ........................  p  = '); readln(ps);
  write  ('- altura  do  bico, m, .............................. h  = '); readln(hb);
  write  ('- duração da precipitação, h,......... t  ='); readln(tempoprec);
end;

function f (a, b: real): real;
begin
  f := g - c2 * sqr(v) 
end;

procedure calcula_velocidade;
begin
  t := 0;
  dt := 0.001;
  tfim := 2;
  alt := hb - 0.30;
  c2 := exp(ln(0.4671)-0.9859 * ln(d));
  vou := 0;
  vou := 0.95 * sqrt((2 * 9.81) * (ps * (10/14.2)));
  v := vou;
  deltad := 0;
  while (t = 0) do
  begin
    k1 := dt * f(t,v);
    k2 := dt * f(t + dt/2, v + k1/2);
    k3 := dt * f(t + dt/2, v + k2/2);
    k4 := dt * f(t + dt  , v + k3);
    t := t + dt;
    v := v + (1/6) * (k1 + 2 * k2 + 2 * k3 + k4);
    deltad := v * dt;
    alt := alt - deltad;
  end;
end;

procedure calcula_energias_cinetica;
begin
  l := ip * tempoprec;
  ecs := ((sqr(v)*l)/2);
  ecn := ((2.27093 * (ln(ip)) + 17.124)) * l;
end; 

procedure mostra_resultados;
begin
  clrscr;
  gotoxy(14,2);
  writeln('-------------------------------------------------------------------');
  writeln('  dados de entrada:');
  writeln('- intensidade de precipitação...............i = ', ip:3:1,' mm h-1');
  writeln('- diâmetro metro medio das gotas .....d50 =  ', d:3:2,' mm');
  writeln('- pressão nos bicos............................. ps =  ', ps:3:1,' psi.');
  writeln('- altura  do bico ............................... hb =  ', hb:3:1,' m');
  write  ('- duração da precipitação, h,.................t='); readln(tempoprec);
  writeln('-------------------------------------------------------------------');
  gotoxy(14,12);
  writeln('-------------------------------------------------------------------');
  writeln('  dados de saida:');
  writeln;
  writeln('- velocidade inicial da gota ..........  vou  = ', vou:3:2, ' m s-1');
  writeln('- velocidade final da gota ..............vf  =  ', v:3:2, ' m s-1');
  writeln('- energia cinética simulada......... ecs = ', ecs :3:2, ' j m-2');
  writeln('- energia cinética da chuva......... ecn = ', ecn :3:2, ' j m-2');
  writeln('- relação ecs / ecn ............re = ', (ecs/ecn)*100:3:0, ' %');
  writeln('-------------------------------------------------------------------');
end;

begin
  clrscr;
  entra_dados;
  calcula_velocidade;
  calcula_energias_cinetica;
  mostra_resultados;
  readkey;
end.
   program enerchuva;

	var coluna,linha:integer;
			letra:char;
			dica:string;
			
begin

  		textbackground(cyan);  //escolhe a cor do fundo azul
			clrscr;
			coluna:=1;linha:=30;
			gotoxy(coluna,linha);textcolor(lightgreen);  
	
			for coluna:=1 to 100 do //desenha o grmado
			write (#219);
			
	
			coluna:=1;linha:=31;textcolor(brown); //desenha o solo
			for coluna:=1 to 80 do begin
			write (#219);
			for linha:=1 to 15 do
		  write(#219);
			end;
			
			
			coluna:=3;linha:=10;textcolor(8); //desenha o simulador
			gotoxy(coluna,linha);
			for linha:=10 to 29 do begin
			gotoxy(coluna,linha);write(#219,#219);
			end;
			
			coluna:=3;linha:=10;
			for coluna:=3 to 20 do begin	
			gotoxy(coluna,linha);write(#219);       //desenha o simulador
			end;
			
			coluna:=20;linha:=12;textcolor(blue);   //desenha gotas de chuva
		  gotoxy(coluna,linha);write(#219);      
		  
		  coluna:=20;linha:=18;textcolor(blue);   //desenha gotas de chuva
		  gotoxy(coluna,linha);write(#219);
		  
		  coluna:=20;linha:=24;textcolor(blue);   //desenha gotas de chuva
		  gotoxy(coluna,linha);write(#219);
		  
		  coluna:=15;linha:=18;textcolor(blue);
		  gotoxy(coluna,linha);write(#219);
		                                           //desenha gotas de chuva
		  coluna:=25;linha:=18;textcolor(blue);
		  gotoxy(coluna,linha);write(#219);
		  
		  coluna:=25;linha:=24;textcolor(blue);
		  gotoxy(coluna,linha);write(#219);
		                                            //desenha gotas de chuva
		  coluna:=25;linha:=24;textcolor(blue);
		  gotoxy(coluna,linha);write(#219);
		  
		  coluna:=15;linha:=24;textcolor(blue);
		  gotoxy(coluna,linha);write(#219);
		                                           //desenha gotas de chuva            
		  coluna:=10;linha:=24;textcolor(blue);
		  gotoxy(coluna,linha);write(#219);
		  
		  coluna:=30;linha:=24;textcolor(blue);
		  gotoxy(coluna,linha);write(#219);
		  
		  coluna:=30;linha:=29;textcolor(blue);     //desenha gotas de chuva
		  gotoxy(coluna,linha);write(#219);
		  
		  coluna:=10;linha:=29;textcolor(blue);
		  gotoxy(coluna,linha);write(#219);
		  
		  coluna:=5;linha:=29;textcolor(blue);
		  gotoxy(coluna,linha);write(#219);
		  
		  coluna:=15;linha:=29;textcolor(blue);       //desenha gotas de chuva
		  gotoxy(coluna,linha);write(#219);
		  
		  coluna:=20;linha:=29;textcolor(blue);
		  gotoxy(coluna,linha);write(#219);
		                                              //desenha gotas de chuva
		  coluna:=25;linha:=29;textcolor(blue);
		  gotoxy(coluna,linha);write(#219);
		  
		  coluna:=35;linha:=29;textcolor(blue);       //desenha gotas de chuva
		  gotoxy(coluna,linha);write(#219);
		  
		  coluna:=3; linha:=41;
		  gotoxy(coluna, linha); textcolor(white);textbackground(brown);  //escreve o nome do programa
		  write('programa enerchuva');
		  
		  
		  
		  
		  
		  
		  
			end.
			
			
			

 

ener.png

interface.png

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Em relação ao código do segundo programa:

  • Em alguns casos, seria mais prático definir os valores das coordenadas do GotoXY diretamente na função;
  • Na animação, poderia colocar um Delay() para dar atraso entre as gotas;

 

Fiz uma tentativa de reorganização geral do código:

program enerchuva;
const
  retangulo = #219;
  tempoPadrao = 100;
var
  coluna, linha: integer;
  letra: char;
  //dica: string;
begin
//desenha o céu
TextBackground(cyan); 
ClrScr;

//desenha o gramado
GotoXY(1,30); TextColor(LightGreen);
for coluna:=1 to 120 do 
  write  (retangulo);
  
//desenha o solo
for coluna:=1 to 80 do
  begin
    TextColor(7); write (retangulo); //COLOQUEI UMA COR QUALQUER PARA TESTAR
    TextColor(brown);
    for linha:=1 to 15 do
      write(retangulo);
  end;

//desenha o simulador
coluna:=3; TextColor(8); 
GotoXY(3,linha);
for linha:=10 to 29 do
begin
  GotoXY(coluna,linha);
  write(retangulo,retangulo);
end;
coluna:=3; linha:=10;
for coluna:=3 to 20 do begin	
  GotoXY(coluna,linha);
  write(retangulo);
end;

//desenha gotas de chuva
TextColor(blue);
GotoXY(20,12); write(retangulo); Delay(tempoPadrao);
GotoXY(20,18); write(retangulo); Delay(tempoPadrao);
GotoXY(20,24); write(retangulo); Delay(tempoPadrao);
GotoXY(15,18); write(retangulo); Delay(tempoPadrao);
GotoXY(25,18); write(retangulo); Delay(tempoPadrao);
GotoXY(25,24); write(retangulo); Delay(tempoPadrao);
GotoXY(25,24); write(retangulo); Delay(tempoPadrao);
GotoXY(16,24); write(retangulo); Delay(tempoPadrao);
GotoXY(10,24); write(retangulo); Delay(tempoPadrao);
GotoXY(30,24); write(retangulo); Delay(tempoPadrao);
GotoXY(30,29); write(retangulo); Delay(tempoPadrao);
GotoXY(10,29); write(retangulo); Delay(tempoPadrao);
GotoXY( 5,29); write(retangulo); Delay(tempoPadrao);
GotoXY(15,29); write(retangulo); Delay(tempoPadrao);
GotoXY(20,29); write(retangulo); Delay(tempoPadrao);
GotoXY(25,29); write(retangulo); Delay(tempoPadrao);
GotoXY(35,29); write(retangulo); Delay(tempoPadrao);

//escreve o nome do programa
GotoXY(3,40); textcolor(white); textbackground(brown);  
write('programa enerchuva');
end.

 

@Jefferson Gomes Confessor, qual seria a tua ideia ao juntar um programa com o outro?

 

Como mais ou menos deveria funcionar?

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...