[ bobans72 @ 11.10.2014. 08:43 ] @
Pozz...

Treba mi na poslu da napravim aplikaciju za izračunavanje utroška papirnih rolni.
Tako da u tri Edita se unose vrednost u (kg.) i (cm.)
U prvom se unosi težina rolne npr. 800 kg.
U drugom editu se unosi poluprečnik rolne u centimetrima npr. 60 cm.
Kada se utroši neka količina od te rolne treba je ponovo izmeriti poluprečnik i on bude npr. 30 cm.
Taj izmereni poluprečnik ostatka te rolne treba uneti u trećem Editu tako da pritiskom na dugme dobijem ukupnu kilažu tog ostatka u četvrtom Editu.
1.Težina rolne
2.Poluprečnik rolne
3.Poluprečnik ostatka rolne
4.Dobiti ukupnu vrednost u kilogramima.
Ako može neka pomoć ili primer kako se to može izračunati.
Bune me ovi centimetri kako sa njima da dobijem kilažu.
[ dusans @ 11.10.2014. 09:04 ] @
Ako je puna rolna (nema rupu u sredini kao toalet papir) onda može ovako: m2 = m1*(r2^2 /r1^2)
Ako ima rupu u sredini, onda ti treba i taj poluprečnik da bi izračunao.
[ bobans72 @ 11.10.2014. 09:15 ] @
Hvala na brzom odgovoru.
Ima rupu na sredini kroz koju prolazi šipka tako da se treba meriti samo do šipke.
[ dusans @ 11.10.2014. 09:28 ] @
Ako ima rupu na sredini onda može na primer ovako:
Code:

rs = poluprečnik šipke

d1 = početna debljina do šipke
m1 = početna masa

d2 = trenutna debljina do šipke
m2 = trenutna masa

m2 = m1 * ((d2 + rs)^2 - rs^2) / ((d1 + rs)^2 - rs^2)


I da, ako se mere debljine kako si rekao, onda se to ne zove poluprečnik već debljina.

Ako baš unosiš poluprečnike onda je varijanta ovo:
Code:

rs = poluprečnik šipke

r1 = početni poluprečnik
m1 = početna masa

r2 = trenutni poluprečnik
m2 = trenutna masa

m2 = m1 * (r2^2 - rs^2) / (r1^2 - rs^2)


Uglavnom, proračun mase se svodi na proporciju zapremine.
Pošto je širina rolne uvek ista i ne menja se (konstanta), dovoljno je gledati proporciju površine papira na profilu rolne.

[Ovu poruku je menjao dusans dana 11.10.2014. u 10:40 GMT+1]
[ bobans72 @ 11.10.2014. 09:39 ] @
Ne mora to biti baš 100 % tačno ako se ne uklapa za 10 kg. na rolni od 800 kg. ili 1000kg. nije problem.
A kako primeniti ovo u edit poljima.
[ dusans @ 11.10.2014. 09:50 ] @
Račun je tačan onoliko koliko je uniformna gustina namotanog papira i koliko je precizno izmerena debljina.

Kada klikneš na dugme, računaš četvrti edit na osnovu jedne varijante formule za m2 (zavisno od toga da li unosiš poluprečnike ili unosiš debljine).
Kod je trivijalan, ja sam u Delphiju radio pre 15 godina, tako da sintaksu ne znam a i mrzi me da je jurim.
[ bobans72 @ 11.10.2014. 10:00 ] @
Zna li neko kako primeniti ovo m2 = m1 * (r2^2 - rs^2) / (r1^2 - rs^2) u delphiju unošenjem vrednosti u editima.

Ili kako mogu drugačije izračunati ovo u delphiju:

Treba mi na poslu da napravim aplikaciju za izračunavanje utroška papirnih rolni.
Tako da u tri Edita se unosi vrednost u (kg.) i (cm.)
U prvom se unosi težina rolne npr. 800 kg.
U drugom editu se unosi poluprečnik rolne u centimetrima npr. 60 cm.
Kada se utroši neka količina od te rolne treba je ponovo izmeriti poluprečnik i on bude npr. 30 cm.
Taj izmereni poluprečnik ostatka te rolne treba uneti u trećem Editu tako da pritiskom na dugme dobijem ukupnu kilažu tog ostatka u četvrtom Editu.
1.Težina rolne
2.Poluprečnik rolne
3.Poluprečnik ostatka rolne
4.Dobiti ukupnu vrednost u kilogramima.
Ako može neka pomoć ili primer kako se to može izračunati.


[Ovu poruku je menjao bobans72 dana 11.10.2014. u 13:00 GMT+1]
[ savkic @ 11.10.2014. 13:41 ] @
> Zna li neko kako primeniti ovo m2 = m1 * (r2^2 - rs^2) / (r1^2 - rs^2) u delphiju unošenjem vrednosti u editima.

Pretpostavljam da it je problem r2^2, ekvivalent u Delphiju je IntPower ili Power iz Math unita.
Kod otprilike ovako izgleda.

Code:

var
  m2, m1, r1, r2, rs: Integer;
begin
  m1 := IntToStr(edtM1.Text);
  rs := IntToStr(edtRS.Text);
  ... // Ostale dodele

  m2 := m1 * (IntPower(r2, 2) - IntPower(rs, 2) / (IntPower(r1, 2) - IntPower(rs, 2));
end;
[ dusans @ 11.10.2014. 14:45 ] @
Code:

a^2 = a*a
[ bobans72 @ 11.10.2014. 15:34 ] @
Neće tačno izračunavati.

Code:

procedure TForm1.Button1Click(Sender: TObject);
 var
rs, m2, m1, r1, r2: Real;
begin
  m1 := StrToInt(Edit1.Text);
  r1 := StrToInt(Edit2.Text);
  r2 := StrToInt(Edit3.Text);

 m2 := m1 * (IntPower(r2, 2) - IntPower(rs, 2) / (IntPower(r1, 2) - IntPower(rs, 2)));
 //m2 := m1 * (IntPower(d2 + rs,2) - IntPower(rs,2) / (IntPower(d1 + rs,2) - IntPower(rs,2)));

 Edit4.Text:=FloatToStr(m2);

end;


[Ovu poruku je menjao bobans72 dana 11.10.2014. u 19:11 GMT+1]
[ savkic @ 12.10.2014. 00:29 ] @
rs vrednost ti je ostala nepopunjena.
[ bobans72 @ 12.10.2014. 12:00 ] @
Da taj (rs) me i buni što ne znam da li to treba da mi bude neka nepromenljiva vrednost i koja bih to bila ili to moram da postavim na formi još jedan edit za unos.
Pokušao sam izbaciti taj (rs) jer mi on nije ni potreban za unos vrednosti ali kako vidim zbog toga i neće izračunavati tačno.
Meni nije baš potrebno da to izračunava tačno 100% ako se ne slažu 5 i 10 kg. nije problem nego bez ovog najverovatnije (rs-a) neće izračunavati tačno.

Pa sad pitanje šta bih trebao napisati za ovaj (rs) da bih bio i on u funkciji ?
[ dusans @ 12.10.2014. 16:31 ] @
Code:

rs = poluprečnik šipke


Gore je 2 puta napisano šta je rs, ja sad ne znam da li ne čitaš ili šta je u pitanju
i da tu treba neko posebno pojašnjenje oko toga.
I da, to je u tvom slučaju konstantna vrednost, ako je poluprečnik šipke (na koju se stavlja rolna) npr. 5cm onda stavi rs := 5;
Ovo je na kraju kod (pošto si i ispromašivao zagrade, pa da ne bude opet problem):

Code:

procedure TForm1.Button1Click(Sender: TObject);
 var
rs, m2, m1, r1, r2: Real;
begin
  rs := 5;
  m1 := StrToInt(Edit1.Text);
  r1 := StrToInt(Edit2.Text);
  r2 := StrToInt(Edit3.Text);

 m2 := m1 * (r2*r2 - rs*rs) / (r1*r1 - rs*rs);

 Edit4.Text:=FloatToStr(m2);

end;