Ergebnis 81 bis 87 von 87
Thema: C++ Kentnisse ?
-
09.02.2015, 17:37 #81Teilchen
-
-
09.02.2015, 17:44 #82
-
09.02.2015, 18:44 #83hayate.sama
AW: C++ Kentnisse ?
Xburn: du musst die bibliothek aufgabe ja nicht sofort machen. Sag wo es hängt und wir helfen dir da und geben falls gewünscht aufgaben dazu
-
09.02.2015, 20:39 #84Xburn
AW: C++ Kentnisse ?
klingt gut
echt nett von dir. vielen dank
naja die aufgabe mit den strukturen, da hapert es. arrays versteh ich zwar, weiß aber nicht sorecht wie ich sie benutze. das gleiche hilt für do und while.
for am besten auch
if habe ich ja verstanden, was für mich schon ein wunder ist. irgendwie brauche ich immer länger etwas zu verstehen ...
-
09.02.2015, 21:37 #85hayate.sama
AW: C++ Kentnisse ?
hmm, wie erklärt man das am besten ?
stell dir mal vor, du schreibst ein Programm, das jede Stunde die aktuelle Temperatur misst und diese mit den letzten 23 Messungen grafisch als Balkendiagramm darstellt. Die aktuelle Messung wird rechts eingefügt und die älteren Messungen wandern nach links.
Natürlich kannst du jetzt 24 Integer Variablen wie "wert1, wert2,..., wert24" definieren.
Aber sobald es darum geht, die Werte um 1 nach links zu verschieben, müsstest du folgendes schreiben:
wert1 = wert2;
wert2 = wert3;
wert3 = wert4;
...
wert23 = wert24;
wert24 = aktuelle_Messung;
viel Fleißarbeit und es können jede Menge Fehler eintreten.
Jetzt mach es mal mit einem Array. Hier musst du nicht 24 Integer Variablen definieren, sondern ein Integer-Array, das 24 Werte speichern kann. Das ist doch viel übersichtlicher, oder?
(achtung, das folgende ist in c#. Aber c++ dürfte da nicht großartig anders sein):
int[] Array1 = new int[24];
hiermit hast du dein Array mit 24 Elementen initialisiert. Da der Indexer beim Array bei 0 anfängt, gilt: Zugriff auf das Element mit (x-1). Das letzte Element ist also nicht Array1[24], sondern Array1[23].
Wert ändern:
Array1[3] = 43; //ändert den Wert des 4. Elements
Wert auslesen:
cout << Array1[3] //liest den Wert des 4. Elements
Wie könntest du erreichen, dass du die oberen Befehle (Werte um 1 nach links verschieben) mit so wenig Code-Zeilen wie möglich realisierst ?
Richtig, mit einer for-schleife (als Beispiel).
for (int i = 0; i < 24; i++) // i ist hier nur innerhalb der for-Schleife und den darin verschachtelten Schleifen gültig.
{
}
Bei einer For-Schleife arbeitest du mit einer begrenzt gültigen (Hilfs)-Variable (zb. "i"). In diesem Beispiel wird i am Schluss den Wert 23 haben, denn die Bedingung oben sagt, dass i kleiner sein muss als 24. Mit dem i kannst du z.B. auf den Index eines Arrays zugreifen, ohne dass du die Index-Stelle selbst eintragen musst. Mit normalen Variablen wie oben geht das nicht.
statt
array1[0] = array1[1];
array1[1] = array1[2];
...
kannst du mit Hilfe einer For-Schleife also schreiben:
for (int i=0; i<23, i++)
{
array1[i] = array1[i+1];
}
natürlich musst du auf das erst kommen. Aber Übung macht den Meister.
Der häufigste Fehler ist, dass du auf eine nicht vorhandene Stelle im Array zugreifst. Folgender Code würde dir einen Fehler verursachen:
for (int i=0; i<24, i++)
{
array1[i] = array1[i+1];
}
weißt du warum ?
Wenn du da irgendwann mal Ãœbung hast, dann kommst du dann auch auf sowas:
Code:panel_daten.Refresh(); Graphics graf = panel_daten.CreateGraphics(); Pen pen1 = new Pen(Brushes.Red, Bar_brightness); //Pen generieren int margin = Bar_margin; //Start im Panel auf x-Achse //Zeichnen graf.DrawLine(new Pen(Brushes.Yellow, 1), 0, panel_daten.Height / 2, panel_daten.Width, panel_daten.Height / 2); //Mittellinie //von links nach rechts zeichnen for (int i = 0; i < Array1.Length; i++) { //Skalierung umrechnen actual_bar = ((float)100 / (float)max_label) * (float)Array1[i]; graf.DrawLine(pen1, (margin - Bar_brightness), 100, (margin - Bar_brightness), (100 - actual_bar)); margin = margin - Bar_brightness - Bar_Abstand; }
-
10.02.2015, 11:23 #86Xburn
AW: C++ Kentnisse ?
for (int i=0; i<23, i++)
{
array1[i] = array1[i+1];
}
naja wenn immer noch
int[] Array1 = new int[24];
gilt, kann ja schlecht array24 ausgegeben werden.
maximal halt array23.
ja das ist halt das zeichnen wie ich mir denken kann.
du bist AE ?
@Hayate: danke sehr für deine mühe !
gruß
-
10.02.2015, 12:41 #87hayate.sama
Ähnliche Themen
-
Englisch kentnisse verbessern?: Hi leute, Wie wir alle wissen ist ja Englisch die meist gesprochene sprache der Welt, und ich wollte mich mal erkundigen ob ihr tipps habt um...
Ich erkenne die Ukraine nicht an als einen Staat aus unseren Reihen. Nunja wie weit können wir noch gehen bei der Unterstützung der Ukraine...
Der Ukraine-Konflikt 2022