Avatar billede skindbeni Nybegynder
12. december 2006 - 12:55 Der er 7 kommentarer og
1 løsning

Beregning, hvor der er 2 ubekendte

Hej.

I forbindelse med mit beregningsprogram har jeg brug for at lave en beregning, hvor der er 1½ (2) ubekendte, men kan det lade sig gøre på fornuftig vis?

Regnestykket er
a = b + c hvor
a er det tal, jeg ønsker at finde
b er en værdi, som hentes i en TEdit
c er en værdi, der afhænger af a. (c fremkommer efter en omfattende beregning med a som input).

---
Ovenstående overført til mit skatteprojekt.

Jeg ønsker at finde ud af, hvad min bruttoløn skal være for at få en given udbetaling / nettoløn.

a = bruttoløn
b = ønsket nettoløn
c = skat.
bruttoløn = ønsket nettoløn + skat
Avatar billede psycosoft-funware Nybegynder
12. december 2006 - 17:40 #1
hvis jeg forstår dit spm ret.
så har du tre variabler. to med forskellige værdier fra gang til gang og en med outputtet?

i så fald er det simpelt:   

var
a: float;
b: float;
c: float;
begin
  a := b + c;
  ShowMessage('Beregnet bruttoløn: ' + FloatToStr(a)');
end;

:)
Avatar billede skindbeni Nybegynder
12. december 2006 - 19:54 #2
Måske opfinder jeg bare nogle problemer, som ikke er der ;o)

Men er regnestykket så simpelt, når du kun kender værdien b.

Både a og c er værdier, som du ikke kender. Men c afhænger af a. Det er kun b, der er kendt på forhånd.
Avatar billede psycosoft-funware Nybegynder
12. december 2006 - 21:31 #3
mig bekendt kender man både trækprocenten og bruttolønnen, med mindre du også vil beregne den ud fra en time sats?

var
  BruttoLoen: Float;
  NettoLoen: Float;
  TraekProcent: Float;
begin
  NettoLoen := (BruttoLoen / 100) * TraekProcent;
end;

:)

sidenote: grunden til at jeg bruger float i stedet for ineteger er at float understøtter kommatal hvorimod integer vil give en access violation hvis der bliver skrevet et kommatal til en integer variable :)
Avatar billede skindbeni Nybegynder
12. december 2006 - 21:41 #4
;o)

Problemet er bare, at man så alligevel ikke kender trækprocenten ;o)

Trækprocenten afhænger bl.a. af bruttolønnen. Der ligger en kompliceret beregning bagved, hvor bruttolønnen indgår og derfor er der 2 ubekendte.

Jeg tror, at det er noget lignende Excels funktion, der hedder målsøgning, som jeg har brug for.
Avatar billede psycosoft-funware Nybegynder
12. december 2006 - 21:55 #5
er det muligt at du kan poste koden der beregner trækprocenten? :)
Avatar billede dilling-hansen Nybegynder
13. december 2006 - 22:11 #6
Med lidt inspiration fra psycosoft-funware's kommentare :D
3 Edit's og 1 Button

Edit1 = Brutto
Edit2 = Netto (er så den eneste du skal skrive noget i)
Edit3 = Trækprocent

------

function TraekProcent(b: Extended): Extended;
begin
  result := b*2; //Udregning af trækprocent
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  a: Extended;
  b: Extended;
  c: Extended;
begin
  b := StrToFloat(Edit2.Text);
  c := TraekProcent(b);
  a := b + c;
  Edit1.Text := FloatToStr(a);
  Edit3.Text := FloatToStr(c);
end;
Avatar billede skindbeni Nybegynder
17. december 2006 - 15:09 #7
Jeg prøver selv at arbejde videre.

Det er lidt kompliceret rent skatteteknisk, men en kort historie:

Trækprocenten er slet ikke en del af det her, jeg nævnte det ikke tidligere for at undgå forvirring. Men trækprocenten bruges til at beregne foreløbig skat, mens det er slutskatten, som jeg ønsker at finde.

Dertil beregnes slutskatten som en samlet sum af statsskat, kommuneskat, kirkeskat, fradrag, udbytteskat, ejendomsværdiskat mv.

Men tak for jeres forslag.
Avatar billede psycosoft-funware Nybegynder
18. december 2006 - 17:02 #8
velbekomme :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester