AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von citybreaker · begonnen am 7. Jun 2005 · letzter Beitrag vom 8. Jun 2005
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
citybreaker
(Gast)

n/a Beiträge
 
#1

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

  Alt 7. Jun 2005, 15:41
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?
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

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

  Alt 7. Jun 2005, 15:44
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;
  Mit Zitat antworten Zitat
Benutzerbild von Boombuler
Boombuler

Registriert seit: 14. Mär 2003
Ort: Osnabrück
244 Beiträge
 
Delphi 2009 Professional
 
#3

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

  Alt 7. Jun 2005, 15:49
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
"Look at you, Hacker. A pathetic creature of meat and bone, panting and sweating as you run through my corridors. How can you challenge a perfect, immortal machine?"
SwapIt Highscore:
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#4

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

  Alt 7. Jun 2005, 15:51
um ne 3. möglichkeit zu präsentieren, die kk (komplizierter und kürzer ) 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
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#5

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

  Alt 7. Jun 2005, 15:53
Ich würde aber raten, g vorher 0 zu setzen. Man weiß ja nie.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
citybreaker
(Gast)

n/a Beiträge
 
#6

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

  Alt 7. Jun 2005, 15:53
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?
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#7

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

  Alt 7. Jun 2005, 15:54
das kann man aber auch mit hilfe der mathematik umformen und muss dann nicht iterativ/rekursiv rechnen.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#8

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

  Alt 7. Jun 2005, 16:06
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;
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#9

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

  Alt 7. Jun 2005, 16:07
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;
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
simonko

Registriert seit: 2. Jun 2005
125 Beiträge
 
#10

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

  Alt 7. Jun 2005, 16:57
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz