4Danke
ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
998
998
EMPFEHLEN
-
Ich bin dabei ein programm in Visual Studio C++ zu entwickeln ( bin unerfahren) und habe nun folgendes Problem. Ich möchte eine Klasse anlegen die folgendes macht
Ich schreibe in Sie eine Art "Tabelle"
1. sie errechnet mir den wert n = y + z
2. mit dem errechneten n möchte ich aus folgender "Tabelle" die zugehörigen Werte H, G, T mir zum weiteren rechnen entnehmen.
Tabelle
n H G T
1 8 11 3
2 7 55 6
3 4 43 8
4 6 41 7
5 3 30 11
3. ich rechne mit den Werten weiter z.B. OP = (H * G) + T
Wie realiesiere ich das vorallem das mit der Tabelle wie lege ich diese an?
Ich bedanke mich im Vorraus für eure Antwort
-
Hi und Willkommen bei tutorials.de

Ich bin mir nicht ganz sicher, ob ich dich richtig verstanden habe, aber:
Du suchst wahscheinlich ein zweidimensionales Array.
Bei deiner Tabelle, ist da n immer 1-2-3-4...durchnummeriert oder nicht?
Wenn es so nummeriert ist brauchst du n gar nicht mitspeichern.
Ein Array ist prinzipiell einmal eine Menge von Variablen, zB nicht nur ein int, sondern 20.
Statt
legt man das dann so an:Code cpp:1
int i;
Code cpp:1
int i[20];
Auf die einzelnen ints kannst du mit den [] Klammern und einer Nummer zugreifen (die praktisch dein n ist):
zB i[2], i[17] usw...
Zu zählen begonnen wird bei 0.
Ein "int i[20]" hat also 20 ints von i[0] bis i[19].
Für deine Tabelle brauchst du jetzt ein sogenanntes zweidimensionales Array.
=ein Array, das wieder aus mehreren Array aus ints... besteht.
Ein normales (eindimensionales) Array wäre daher mit einer Zeile deiner "Tabelle" vergleichbar.
Ein zweidim. Array ist dann ein Array aus Zeilen, also eine ganze Tabelle.
Angelegt wird das für zB 4 Zeilen mit jeweils 8 Spalten mit ints so:
Code cpp:1
int meinarray[4][8];
Da bei 0 zu zählen begonnen wird, ist die vierte Spalte aus der zweiten Zeile: meinarray[1][3]
Wenn du jetzt deine H-G-T-Tabelle hast, sind das drei Spalten.
Angenommen, du hast 100 solche HGT´s, ist das dann
Code cpp:1
int tabelle[100][3];
Aus der ersten Zeile sind dann H tabelle[0][0], G tabelle[0][1] und T tabelle[0][2].
Noch was: Bitte beachte in Zukunft die Netiquette, der du bei deiner Anmeldung zugestimmt hast.
Einen Link findest du jederzeit ganz unten.
Gruß
-
danke für die flotte antwort!
kann man die tabelle nicht irgendwie mit Set/Get einlesen und anlegen und dann jenachdem welches n ich herausbekomme die zugehörigen werte entnehmen?
gruß
-
danke für die flotte antwort!
kann man die tabelle nicht irgendwie mit Set/Get einlesen und anlegen und dann jenachdem welches n ich herausbekomme die zugehörigen werte entnehmen?
gruß
-
Hallo,
da möglicherweise feststeht, welche Einträge in einer Tabellenzeile enthalten sein sollen (H, G und T), würde ich statt des zweidimensionalen Arrays lieber ein struct für die Daten einer Zeile verwenden und diese dann in ein eindimensionales Array stecken. Da macht die Sache etwas übersichtlicher
Code cpp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
typedef struct { int H; int G; int T; } TableData; TableData aTableData[100]; // legt eine Tabelle mit 100 Zeilen an // Füllen der n-ten Zeile (n darf natürlich nicht größer als 99 sein) int n = 10; aTableData[n].H = 8; aTableData[n].G = 11; aTableData[n].T = 3; // Rechnen mit Werten der n-ten Zeile (n darf natürlich nicht größer als 99 sein) int n = 10; int OP = (aTableData[n].H * aTableData[n].G) + aTableData[n].T;
Ich hoffe Zuweisung und Zugriff wird aus meinem obigen Beispiel klar. Das n interpretiere ich mal als laufende Nummer und entspricht daher dem Index des Arrays. Beachte, dass bei C/C++ die Indexierung immer mit 0 beginnt.
Das obige Beispiel realisiert ein sogenanntes statisches Array, d.h. die Anzahl der Arrayelemente, respektive der Tabellenzeilen ist festgelegt und unveränderbar. Falls die Anzahl der Zeilen vorher nicht bestimmbar ist, muss eine dynamische Datenstruktur verwendet werden, z,B. die Klasse "vector" aus der C++ - Klassenbibliothek.
Gruß
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
SUPER ANTWORT DANKE******
abher habe eins ist mir nicht klar mein n ist kein INDEX das heist meine Tabelle könnte auch so aus sehen wie mache ich es dann?
Tabelle
Tabelle
n H G T
1.2 8 11 3
2.7 7 55 6
4.9 4 43 8
5.0 6 41 7
5.5 3 30 11
-
Das 'n' kann man auf jeden Fall noch mit in die struct aufnehmen:
Code cpp:1 2 3 4 5 6 7
typedef struct { int n; int H; int G; int T; } TableData;
Deinen vorletzten Post hatte ich so interpretiert, dass 'n' als so eine Art Schlüssel zur Identifizierung der Tabellenzeile dienen soll. Wenn Werte mehrfach vorkommen können (wie in deinem letzten Beispiel) funktioniert das natürlich nicht.
Gruß
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
Wenn du durch n die anderen Werte finden möchtest, musst du alle durchgehen und prüfen, wo dein n ist.
Ich hab mich mal beim Code von MCoder bedient:
Code cpp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
typedef struct { int H; int G; int T; } TableData; TableData aTableData[100]; //Füllen... int i,OP,suchn=33; //zB wenn du n=33 haben willst for(i=0;i<100;i++) { if(aTableDate.n==suchn) { OP = (aTableData[i].H * aTableData[i].G) + aTableData[i].T; //mach noch was mit OP } }
Gruß
Ähnliche Themen
-
Webservice: Visual Studio 2008 vs Visual Studio 2010 Express for Windwos Phone
Von Johannes7146 im Forum .NET Web und KommunikationAntworten: 4Letzter Beitrag: 27.09.10, 23:06 -
Fehlersammlung ! Projekt von Visual Studio 6 auf Visual Studio 8 portieren
Von sand13r im Forum VisualStudio & MFCAntworten: 3Letzter Beitrag: 07.08.08, 15:23 -
Konvertieren eines Visual Studio 7 Projektes in Visual Studio 6
Von Ulrich Michalik im Forum C/C++Antworten: 2Letzter Beitrag: 18.11.04, 19:20 -
Visual Studio 2003 und Visual Studio 2002 parallel auf einem Rechner
Von LissiOne im Forum .NET ArchivAntworten: 2Letzter Beitrag: 16.11.04, 17:12 -
Eine Frage im zusammenhang von Visual BASIC und Visual STUDIO
Von CodeControl im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 29.09.04, 09:20





Zitieren



Login






