AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [C++] Problem mit Schleifen und Arrays
Thema durchsuchen
Ansicht
Themen-Optionen

[C++] Problem mit Schleifen und Arrays

Ein Thema von The Lord · begonnen am 11. Nov 2007 · letzter Beitrag vom 11. Nov 2007
Antwort Antwort
The Lord

Registriert seit: 19. Sep 2005
Ort: Dortmund
125 Beiträge
 
Turbo Delphi für Win32
 
#1

[C++] Problem mit Schleifen und Arrays

  Alt 11. Nov 2007, 13:59
Hi,

also ich musste anfangen in C++ zu programmieren und stoße des öfteren auf Probleme. Meistens finden sich die Fehler in der Schreibweise. Hier versteh ich nicht, warum es nicht so funktioniert, wie es soll:

Erstmal der Quellcode:

Code:
int zahlen[]={0};
int ergebnisse[]={0};

[...]

int k = 0; //Zählvariable für die Ergebnisse   
   
   for(int i=0;i<n;i++)
   {         
      for(int j=i;j<n;j++)
      {         
         e=zahlen[i]+zahlen[j];         
         cout << zahlen[i] << " + " << zahlen[j] << " = " << e << "\n\n";
         ergebnisse[k]=e;
         k++;
      }
      cout << "-----\n\n\n";      
   }

   for(int i=0;i<10+1;i++)
   {
      cout << i << ": " << ergebnisse[i] << "\n";
   }
Meine Aufgabe ist Zahlen miteinander zu addieren. Die erste Bedingung war, dass sich die Paare nicht wiederholen (also nicht 5+9 und 9+5, außer sie haben das gleiche Ergebnis). Die neue Bedingung ist nun, dass auch keine Ergebnisse mehr doppelt angezeigt werden dürfen.

Ich glaube es geht auch über die Schleifen, weil sich ein bestimmtes Muster ergibt, aber ich habe mir gedacht, dass ich die bereits errechneten Ergebnisse in einem Array speichere und dann mit den neuen Vergleiche und somit entscheide, ob das neue dargestellt werden darf oder nicht.

Aber sobald ich versuche die Ergebnisse in dem gleichnamigen Array zu speichern ändern sich die Ergebnisse selbst. Das verstehe ich nicht und sehe auch nicht wo mein Fehler liegt. Liegt es an der neuen Zählvariablen k?

Ich bin dankbar für jede Hilfe

LG Alex
Alexander
Dunkel die andere Seite ist...
Klappe Yoda und iss deinen Toast!
  Mit Zitat antworten Zitat
Torpedo

Registriert seit: 21. Dez 2003
410 Beiträge
 
#2

Re: [C++] Problem mit Schleifen und Arrays

  Alt 11. Nov 2007, 14:09
Es funktioniert nicht, weil die 2 Arrays beide nur ein Feld haben, also nur ergebnisse[0] und zahlen[0], du aber auf noch mehr zugreifst.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: [C++] Problem mit Schleifen und Arrays

  Alt 11. Nov 2007, 14:11
Ich nehme mal an das der Array zahlen in ... gefüllt wurde.
Markus Kinzler
  Mit Zitat antworten Zitat
The Lord

Registriert seit: 19. Sep 2005
Ort: Dortmund
125 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: [C++] Problem mit Schleifen und Arrays

  Alt 11. Nov 2007, 14:17
Zitat von mkinzler:
Ich nehme mal an das der Array zahlen in ... gefüllt wurde.
Ja. Das habe ich nur weggelassen, weil es ja funktioniert.

Code:
cout << "Anfangswert: \n";
   cin >> start;

   cout << "Schritte: \n";
   cin >> step;

   cout << "Entwert: \n";
   cin >> limit;

   cout << "\n\n";


   
   for(int i=start,j=0;i<=limit;i=i+step,j++)
   {               
      zahlen[j]=i;         
      n=j;
   }

   n=n+1;
Aber ich habe jetzt mal das Array mit den Ergebnisse als ergebnisse[10] deklariert und es funktioniert. Ich muss nur wissen, wieviele Plätze ich maximal brauche.
Alexander
Dunkel die andere Seite ist...
Klappe Yoda und iss deinen Toast!
  Mit Zitat antworten Zitat
Torpedo

Registriert seit: 21. Dez 2003
410 Beiträge
 
#5

Re: [C++] Problem mit Schleifen und Arrays

  Alt 11. Nov 2007, 14:21
Zitat von The Lord:
Ich muss nur wissen, wieviele Plätze ich maximal brauche.
Müssten das nicht unendlich viele sein? 1+1, 1+2, 1+3, ....., 1+unendlich
  Mit Zitat antworten Zitat
The Lord

Registriert seit: 19. Sep 2005
Ort: Dortmund
125 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: [C++] Problem mit Schleifen und Arrays

  Alt 11. Nov 2007, 14:26
Zitat von Torpedo:
Zitat von The Lord:
Ich muss nur wissen, wieviele Plätze ich maximal brauche.
Müssten das nicht unendlich viele sein? 1+1, 1+2, 1+3, ....., 1+unendlich
Ja!

Ich hab gerade keine gute Idee. Oder ich habe mir überlegt, alle Werte in einem mehrdimensionalen Array zu speichern.
Und am Ende nur die auszugeben, die nicht doppelt vorkommen.
Alexander
Dunkel die andere Seite ist...
Klappe Yoda und iss deinen Toast!
  Mit Zitat antworten Zitat
Torpedo

Registriert seit: 21. Dez 2003
410 Beiträge
 
#7

Re: [C++] Problem mit Schleifen und Arrays

  Alt 11. Nov 2007, 14:28
Wenn es wirklich bis unendlich geht, dann ist das Programm ja ganz einfach:
Code:
void rechne() {
   cout<<"Ergebnis: unendlich\n";
}

Bist du sicher dass du die Aufgabenstellung richtig verstanden hast?
  Mit Zitat antworten Zitat
The Lord

Registriert seit: 19. Sep 2005
Ort: Dortmund
125 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: [C++] Problem mit Schleifen und Arrays

  Alt 11. Nov 2007, 14:37
Ok also nochmal von ganz vorne:

Die Aufgabe besteht aus 3 Teilen.

Teil a): war trivial. => funktioniert

Teil b): Man soll einen Startwert, den Schritt und einen Entwert zum Füllen eines Arrays benutzen.
z.B. 1,4,13

Also die Zahlen die man verwenden soll sind dann: 1,5,9,13

Dann soll man alle addieren, so dass sie nicht doppelt vorkommen, nur die Ergebnisse dürfen doppelt vorkommen.

=> funktioniert

Teil c): Nun sollen auch die doppelten Ergebnisse nicht mehr angezeigt / berechnet werden.

Also es gibt meiner Meinung nach 2 Lösungsansätze:
1.) Man kann da ein Muster erkennen, aber ich kann es damit nicht umsetzen
2.) Ich wollte die jeweiligen Ergebnisse speichern, nach dem Berechnen vergleichen und dann, falls das Ergebnis vorher nicht berechnet wurde, die Addition darstellen.
Alexander
Dunkel die andere Seite ist...
Klappe Yoda und iss deinen Toast!
  Mit Zitat antworten Zitat
Torpedo

Registriert seit: 21. Dez 2003
410 Beiträge
 
#9

Re: [C++] Problem mit Schleifen und Arrays

  Alt 11. Nov 2007, 14:40
Ich weiß nicht ob es funktioniert, du kannst es ja mal ausprobieren:
Ich denke es müsste reichen, wenn man so zählt:
1+1
1+2
..
1+endwert
2+2
2+3
...
2+endwert
3+3
3+4
...
3+endwert
...
...
endwert+endwert
  Mit Zitat antworten Zitat
The Lord

Registriert seit: 19. Sep 2005
Ort: Dortmund
125 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: [C++] Problem mit Schleifen und Arrays

  Alt 11. Nov 2007, 14:45
So habe ich es gemacht. Aber ich muss mal schauen, ich habe das nur mit dem Entwert anders...

http://www.nieronator.de/img/addieren.jpg
Alexander
Dunkel die andere Seite ist...
Klappe Yoda und iss deinen Toast!
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:01 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