Änderung einer Arraylänge

Die Programmiersprache C# und Programmierung im .NET Framework/Mono
DerSamu
Beiträge: 35
Registriert: Sa Dez 23, 2017 3:15 pm

Änderung einer Arraylänge

Beitrag von DerSamu » Do Dez 28, 2017 3:35 pm

Hey und zwar folgendes Problem: Ich muss in einer Zahl die Position von einer bestimmten Ziffer bestimmen, die Zahl, die am weitesten links ist ist die Position 0, die rechts daneben 1 und so weiter. weiter. Da ich Anfangs ja nicht weiß, wie groß die Zahl sein wird und was dann die Länge des Arrays mit den einzelnen Ziffern sein wird, wollte ich wissen, ob es irgendwie möglich wäre die Länge des Arrays während der Laufzeit zu ändern. Weil die Zahl ja weniger Ziffern hat, wenn sie 50 ist als wenn sie zb 2828854 ist.
Ich hoffe man versteht meine Frage :?
lernender Programmierer, hauptsächlich C# und Java

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3091
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Änderung einer Arraylänge

Beitrag von cloidnerux » Do Dez 28, 2017 4:23 pm

Was du suchst ist kein array, sondern eine Liste. Dort kannst du mit "add" Elemente hinzufügen.
Ansonsten kannst du auch einfach durch deine Zahl durchgehen und die Anzahl der Ziffern zählen.
Redundanz macht wiederholen unnötig.
quod erat expectandum

DerSamu
Beiträge: 35
Registriert: Sa Dez 23, 2017 3:15 pm

Re: Änderung einer Arraylänge

Beitrag von DerSamu » Do Dez 28, 2017 4:31 pm

Und wie kann ich die Anzahl der Ziffern zählen?(Wir dürfen keine Listen verwenden)
lernender Programmierer, hauptsächlich C# und Java

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8500
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Änderung einer Arraylänge

Beitrag von Xin » Do Dez 28, 2017 4:52 pm

DerSamu hat geschrieben:Und wie kann ich die Anzahl der Ziffern zählen?(Wir dürfen keine Listen verwenden)
Ich gehe davon aus, dass die Zahl erstmal als 'int' vorliegt.

Du kodierst sie zweimal. Einmal findest Du dabei heraus, wieviele Stellen sie hat und einmal packst Du die Ziffern in das Array.

Alternativ nimmst Du ein Array, das so groß ist, dass jede Zahl reinpasst. Die größte Zahl, die in ein int passt dürfte 2 Milliarden groß sein, also 10 Stellen haben, plus Vorzeichen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

DerSamu
Beiträge: 35
Registriert: Sa Dez 23, 2017 3:15 pm

Re: Änderung einer Arraylänge

Beitrag von DerSamu » Do Dez 28, 2017 4:58 pm

Und das herausfinden der Stelle mache ich einfach, indem ich eine while Schleife mit einen Counter mache, und in dieser while schleife die zahl solange durch 10 dividiere bis sie 0 ist und jedes mal counter++ rechne oder? Oder gibt es einen einfacheren Weg?
lernender Programmierer, hauptsächlich C# und Java

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3091
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Änderung einer Arraylänge

Beitrag von cloidnerux » Do Dez 28, 2017 5:02 pm

Mitunter lässt sich etwas mit dem logarithmus berechnen
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8500
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Änderung einer Arraylänge

Beitrag von Xin » Do Dez 28, 2017 5:08 pm

DerSamu hat geschrieben:Und das herausfinden der Stelle mache ich einfach, indem ich eine while Schleife mit einen Counter mache, und in dieser while schleife die zahl solange durch 10 dividiere bis sie 0 ist und jedes mal counter++ rechne oder? Oder gibt es einen einfacheren Weg?
Ich wüsste nicht.
cloidnerux hat geschrieben:Mitunter lässt sich etwas mit dem logarithmus berechnen
Mit log10 ja.

Grob geraten:

Code: Alles auswählen

int main() 
{
   double value = 10000;
   printf("log10(%lf) = %lf\n", value, floor(log10(value))+1);
   
   return 0;
}
log10 ist aber teurer als die Schleife.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

mfro
Beiträge: 311
Registriert: Mi Jan 16, 2013 4:58 pm

Re: Änderung einer Arraylänge

Beitrag von mfro » Do Dez 28, 2017 5:41 pm

DerSamu hat geschrieben:... Ich muss in einer Zahl die Position von einer bestimmten Ziffer bestimmen, die Zahl, die am weitesten links ist ist die Position 0, die rechts daneben 1 und so weiter. weiter ...
Wenn das und genau das die Aufgabe ist, brauchst Du keine Arrays, nur ein wenig Hirnschmalz.

Mach' dir klar, was es im Dezimalsystem bedeutet, wenn eine Ziffer in einer Zahl an einer bestimmten Position steht (Hinweis: teile die Zahl mal in einer Schleife wiederholt durch 10).

Dann überlegst Du dir, was der Modulo-Operator (%) macht.
It's as simple as that. And remember, Beethoven wrote his first symphony in C.

DerSamu
Beiträge: 35
Registriert: Sa Dez 23, 2017 3:15 pm

Re: Änderung einer Arraylänge

Beitrag von DerSamu » Do Dez 28, 2017 5:50 pm

Nein, die Angabe ist natürlich noch deutlich länger, wollte aber jetzt hier nicht alles reinschicken, weil mir sonst jemand den ganzen Code geschickt hätte, und ich will schon selber nachdenken ;)
Kleine Frage nebenbei, hat nichts damit zu tun: Wenn ich in der Schule C# lerne, würdet ihr sagen, dass es Sinn macht nebenbei C zu lernen? Oder eher Java?
lernender Programmierer, hauptsächlich C# und Java

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8500
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Änderung einer Arraylänge

Beitrag von Xin » Do Dez 28, 2017 6:02 pm

mfro hat geschrieben:Wenn das und genau das die Aufgabe ist, brauchst Du keine Arrays, nur ein wenig Hirnschmalz.
Ähm... ja... haste auch recht :D
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten