Entwickler-Ecke
C# - Die Sprache - Array -Algorithmus - x.length
Nickname2526 - So 08.06.08 22:31
Titel: Array -Algorithmus - x.length
Hi ich habe mal wieder eine Übungsaufgabe, da bin ich mir nicht ganz sicher was richtig ist:
Erstmal die Aufgabe:
Array - Algorithmus 01
INPU/output: Gegeben seinen ein initialisiertes Rang-1-array "x" von double-werten, eine initialisierte double-variable"y" und eine nicht initialisierte int-variable "h"
| Zitat: |
//1: x,y
double xh;
h=0
for(int i=0; i < x.length ; i++)
{
//2: i
xh = x[i];
if (xh < y) h++;
//3: xh , h
}
//4: h
|
INPUT 1:
x= new double [] {0,2,-4};
y=2;
Meine frage ist nur welcher wert ist für
x.length richtig?
bei eindimensional -> letzter wert -1 = länge ?? Oder?
da ist x.lenght = 3 oder ist das -5 ?
Das ist mein problem bei der Aufgabe. Also ich tendiere ja zu 4 aber ich bin mir eben nicht sicher. Mathematisch wäre ja -4 - 1 = -5 .
Wäre schön wenn mir jemand helfen würde. Danke an euch. Schön abend noch ^^
Th69 - Mo 09.06.08 09:03
Überleg doch mal genau. Die Länge eines Arrays ist doch unabhängig von den Wertinhalten.
Nickname2526 - Mo 09.06.08 10:08
das gier habe ich bereits gelesen und oben steht eine übung dazu. Folgendes ist eine Grundlage:
Hier:(
http://www.galileocomputing.de/openbook/visual_csharp/visual_csharp_03_004.htm#Xxx999741) unter 3.5.7 steht wie man die länge bzw. die Gesamtanzahl angiebt.
| Zitat: |
Bei einem eindimensionalen Array wird uns Length ebenfalls die Anzahl der Elemente liefern. In Schleifen, die für jedes Array-Element einmal durchlaufen werden sollen, benötigen wir jedoch meist den letzten Index des Arrays. Dieser ist um genau eins niedriger als der Wert, der von Length zurückgegeben wird, also:
letzterArrayIndex = Array-Bezeichner.Length – 1; |
Ich weiß nur nicht ob man den Betrag -1 rechnen soll oder nicht.
oder ist die länge : x.length=3 weil 3 elemte enthalten sind ?
Bei mehrdimensionalen ist die bezichner.length = produkt der enthaltenen elemente, dann waäre ja in meinen beispiel x.length = (0*2*4)= 0 ?
also ich bin total durcheinander, gerade ???
THX
Th69 - Mo 09.06.08 12:12
| Zitat: |
oder ist die länge : x.length=3 weil 3 elemte enthalten sind ?
|
Exakt!
Die Berechnung mit "Length - 1" bezieht sich auf den Index des letzten Elementes des Arrays, da diese bei 0 beginnen, d.h. du benötigst für die Schleife 3 Durchgänge mit den Indizes 0, 1 und 2 (daher: Länge - 1).
Wenn du z.B. rückwärts die Schleife durchlaufen willst, dann mußt du eben den obersten Index kennen und dann bis auf 0 runterzählen:
C#-Quelltext
1: 2:
| for(int i = x.length - 1; i >= 0 ; i--) ... |
Und bei mehrdimensionalen Arrays werden auch nur die Anzahl der Elemente multipliziert, d.h. z.B. double[5, 4] ergibt 20 (= 5 * 4) Elemente (egal welche Werte dieses Array beinhaltet).
Du solltest dir sonst noch mal das Kapitel über Arrays in dem Lehrbuch (oder Tutorial) deiner Wahl nachlesen...
Nickname2526 - Mo 09.06.08 12:37
Danke. Hab das Programm mitlerweile gelöst ^^ . Kann ja die lösung davon mal Posten , falls das jemadn interessiert?
Danke danke nochmal. Schön tag noch.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!