Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Mathe Problem 1+2-3 ... +99-100 (https://www.delphipraxis.net/47187-mathe-problem-1-2-3-99-100-a.html)

citybreaker 7. Jun 2005 16:41


Mathe Problem 1+2-3 ... +99-100
 
Hallo,

ich hab da mal ein kleines Denkproblem. Ich hoffe mir
kann jemand auf die spränge helfen.
Ich hab eine Mathe Aufgabe die ich mit dem Pc lösen möchte.

Undzwar:
Zitat:

1+2-3+4-5+6-7 .... +99-100 =

So jetzt habe ich flogendes gemacht
Delphi-Quellcode:
var i,e: integer;
    a: Array [1..100] of Integer;
begin
  e := 0;
  for i := 1 to 100 do begin
    a[i] := i;
    g := g + a[i] - a[i+1];
    // ListBox1.Items.Add(IntToStr(a[i]));
  end;
  Caption := IntToStr(e);
end;
Das ganze klappt natürlich mal wieder nicht. Hat jemand ne Idee?

Dax 7. Jun 2005 16:44

Re: Mathe Problem 1+2-3 ... +99-100
 
So könnts gehen:

Delphi-Quellcode:
var
  Num, i: Integer;
  b: Boolean;

Num := 1;
b := True;
for i := 2 to 100 do
begin
  if b then
    Num := Num + i
  else
    Num := Num - i;
  b := not b;
end;

Boombuler 7. Jun 2005 16:49

Re: Mathe Problem 1+2-3 ... +99-100
 
Also wenn du dir das mal vorstellst was du da machst sieht das ungefähr so aus:

G := 1 - 2 + 2 - 3 + 3 - 4 + 5 - 6...

also
Delphi-Quellcode:
var
  g:integer;
begin
  for i := 1 to 100 do
    if (i mod 2 = 0) or (i = 1) then
      g := g + i
    else
      g := g - i;
end;
das sollte besser gehn...
habs aber net getestet nur fix runtergetippt...

PS: Poste das obwohl wieder jemand schneller war...


Greetz
Boombuler

JasonDX 7. Jun 2005 16:51

Re: Mathe Problem 1+2-3 ... +99-100
 
um ne 3. möglichkeit zu präsentieren, die kk (komplizierter und kürzer :mrgreen: ) is:
Delphi-Quellcode:
function EinsBisHundert: integer;
var
  i: integer;
begin
  result := 1;
  for i := 2 to 100 do
    inc(result, (ord(not odd(i)) * 2 - 1) * i); //Das lange dings vor dem i gibt entweder +1 oder -1, also entweder dazu- oder wegzählen
end;
Ich mag kurze schleifen und wenig ifs :mrgreen:

leddl 7. Jun 2005 16:53

Re: Mathe Problem 1+2-3 ... +99-100
 
Ich würde aber raten, g vorher 0 zu setzen. Man weiß ja nie. ;)

citybreaker 7. Jun 2005 16:53

Re: Mathe Problem 1+2-3 ... +99-100
 
Vielen dank, war wohl mal wieder auf'm falschen Dampfer.
Klappen beide möglichkeiten. :)

Eine Frage habe ich noch warum fangt ihr die Schleife mit der 2 an?

nailor 7. Jun 2005 16:54

Re: Mathe Problem 1+2-3 ... +99-100
 
das kann man aber auch mit hilfe der mathematik umformen und muss dann nicht iterativ/rekursiv rechnen.

JasonDX 7. Jun 2005 17:06

Re: Mathe Problem 1+2-3 ... +99-100
 
Zitat:

Zitat von nailor
das kann man aber auch mit hilfe der mathematik umformen und muss dann nicht iterativ/rekursiv rechnen.

Stimmt:
Delphi-Quellcode:
uses math;
//...
function AlternierendeSumme(von: integer): integer;
begin
  SetRoundMode(rmUp);
  result := (ord(not odd(von)) * 2 - 1) * round(von / 2) + 2;
  SetRoundMode(rmNearest);
end;

glkgereon 7. Jun 2005 17:07

Re: Mathe Problem 1+2-3 ... +99-100
 
ma ne frage:

ist nicht

a + a+1 - a+2 + a+3 .... - a+n

automatisch gleich

a-(n/2)

wenn n gerade ist?

(a=Anfang, n=Anzahl der schritte sozusagen)

da immer zwei zahlen insgesamt gesehen eins abziehen?

also:
Delphi-Quellcode:
function WieHeisstDas(Anfang, N: Int64):Int64;
begin
//Für gerades N
  Result:=Anfang-(N Div 2);
//Für jedes N
  Result:=Anfang-(N Div 2) + (N Mod 2) * (Anfang + N);
end;

simonko 7. Jun 2005 17:57

Re: Mathe Problem 1+2-3 ... +99-100
 
Gauß hatte sich überlegt, dass man anstatt die Zahlen der Reihe nach zu addieren, sie sozusagen immer an den beiden Enden der Folge addieren kann, also statt 1 + 2 + 3 + ...

+ 100 rechnete er (1 + 100) + (2 + 99) + ... + (50 + 51). Er erhielt genau 50 zweiteilige Summen, von denen jede = 101 betrug. Daher konnte er auch multiplizieren: 50 mal 101 = 5050.

vielleicht findest du auch was mit minus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:40 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz