Autor Beitrag
MelBel
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Sa 14.12.13 15:31 
Hey Leute, ich bins wieder :D
hab diesmal ne neue Aufgabe bekommen, bei der ich wieder nur die Hälfte hinbekommen habe :(

Vielleicht könnt ihr mir dabei helfen:

Schreiben Sie eine Funktion, die ohne Verwendung der Multiplikation und der Division (*, /, %), also nur mit Addition und Subtraktion :

das Produkt zweier ganzer Zahlen berechnet
den Quotienten zweier ganzer Zahlen berechnet

x*5 bedeutet zum Beispiel: 5-mal x Addieren. Für welche Zahlen terminiert Ihr Programm(=kommt zu einem Ende)?

Ich bin soweit gekommen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
using System;

  class Aufgabe2 {
    static void Main() {
    
    int z1;
    int z2;
    int z3;
    Console.WriteLine("Geben Sie ihre erste Zahl ein ");
    z1 = Convert.ToInt32(Console.ReadLine());
    
    Console.WriteLine("Geben Sie ihre zweite Zahl ein ");
    z2 = Convert.ToInt32(Console.ReadLine());
    
    for(int i=0; i < z2; i++) {
      z3 = z1 + z1;
    
    Console.WriteLine(" Ihre Multiplikation ergab "+z3);
    }
    
    }
  }


Jetzt habe ich da 3 Probleme:
1. Das Multiplizieren funktioniert soweit, nur gibt der mir am Schluss das "Ihre Multiplikation ergab..." so oft aus, wie oft ich die erste Zahl "mal" genommen hab. Wie beheb ich das, bzw was muss ich ändern?

2. Ich komm ums verrecken nicht darauf wie ich das ganze mit "geteilt" mache, ohne das Zeichen zu benutzen, hättet ihr da eine Idee?

3. Um das Programm zu terminieren, kann ich ja einfach eine Zahl bestimmen, zu der das Programm dann zum Ende kommt oder?


Diesmal ist es die richtige Aufgabe :D

LG Melanie

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Sa 14.12.13 15:59 
1.) Ein Schleife benutz man um etwas n*mal auszuführen. Du hast deine Console.WriteLine in die Schleife gepackt also wird es auch n*mal ausgeführt. Was musst du also tun damit es nur 1 mal ausgeführt wird?

2.) Annahme A/B. Dann musst du B von A solange subtrahieren bis der Rest kleiner B ist. Und die Anzahl Subtraktionen musst du addieren. Das ist dann das Ergebnis.

3.) Das Verstehe ich jetzt nicht. Das Programm ist zu ende wenn du das Ergebnis hast. Da muss man nichts annehmen. Es gibt nur Aufgaben die zu keinem Ende der Schleife führen. Zum Beispiel die Division durch 0 würde nach meinem beschriebenen Vorgehen in 2.tens nie enden und zu einer Endlosschleife führen. Diese Fälle solltest du erkennen und abfangen.

Sorry Papa :cry:


Zuletzt bearbeitet von Ralf Jansen am Sa 14.12.13 16:05, insgesamt 1-mal bearbeitet

Für diesen Beitrag haben gedankt: MelBel
papa69
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 79
Erhaltene Danke: 23

Win 10, Ubuntu
C#, Java, C
BeitragVerfasst: Sa 14.12.13 16:04 
...grr, Ralf J. war mal wieder schneller...

zu 3.) ich glaube, damit ist die "Division" gemeint, also was passiert z.B. bei 13 : 4 ???

_________________
Daniel Bauer
... fatal ist nur, wenn sich das Licht am Ende des Tunnels als entgegenkommender ICE entpuppt ...

Für diesen Beitrag haben gedankt: MelBel
MelBel Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Sa 14.12.13 16:35 
1.) Aus der Schleife auspacken? :D (hätte ich ja auch selber drauf kommen können :D :D

2.)
ausblenden C#-Quelltext
1:
2:
for(int i=z2; i < z2; --i)
    z3 = z1 - z2;

könnte das so klappen?
Hab gerade leider keine SDK zur Hand um es zu probieren :/

Edit: ah, die Anzahl der Subtraktionen hab ich vergessen, welche variable wäre es denn dann?

3.) theoretisch kann ich dann sagen:
ausblenden C#-Quelltext
1:
2:
3:
4:
if (z2=0)
{
    System.Windows.Forms.Application.Exit();
}

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
papa69
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 79
Erhaltene Danke: 23

Win 10, Ubuntu
C#, Java, C
BeitragVerfasst: Sa 14.12.13 17:27 
@Ralf: ist ja nicht schlimm (es ist ja nur eher selten, dass ich auch mal eine Antwort habe :roll: )

@MelBel: es gibt ja NICHT NUR for-Schleifen..., und dann nicht unbedingt auf Null prüfen... aber der Ansatz ist richtig ... die "Schleifendurchgänge" kannst Du ja "mitzählen"

Mach das einmal in Theorie (auf Papier), :idea: dann kommst Du drauf.

Viel Glück!

_________________
Daniel Bauer
... fatal ist nur, wenn sich das Licht am Ende des Tunnels als entgegenkommender ICE entpuppt ...

Für diesen Beitrag haben gedankt: MelBel
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Sa 14.12.13 20:16 
Zu 1.

Wie kann denn das Multiplizieren funktionieren?

Du rechnest dann z2-mal z1 + z1.
Ich hab das bei mir mal exakt so laufen lassen, wie du es im Eingangspost geschrieben hast und mir wird bei 5 mal 3 dann 3 mal 10 ausgegeben.

Warum das 3 mal da steht, hat Ralf schon gesagt, aber das Ergebnis stimmt dennoch nicht.

Du müsstest z3 von Anfang an auf 0 setzen und dann drei mal z3 = z3 + z1; rechnen. Oder auch kurz: z3 += z1;


Zu 2.

Ich gebe zu, ich hab auch keine Ahnung, wie man Division nach stellen soll :D
Erst jetzt weiß ich genau das, was Ralf geschrieben hat, wirklich die Division, die C# uns bietet, ist das aber auch nicht, weil keine Kommastellen möglich sind.

Geht es überhaupt, das nur mit Addition und Subtraktion ohne große Algorithmen nach zu bilden?
Die einzige Idee, die ich hätte, wäre die gute alte Schriftliche Rechnung, wie wir sie in der Schule gelernt haben.
Da muss man dann zwar auch dividieren, aber in keinem großen Maße und Kommastellen sind nicht nötig. Diese "kleinen" Divisionen könnte man dann mit dem Weg von Ralf realisieren.
Bloß, was passiert, wenn die Division theoretisch unendlich Nachkommastellen hat? Da müsste dann irgendwo eine Grenze gezogen werden, sonst läuft das ewig weiter.


Zu 3.

Das versteh ich auch nicht so ganz :D




Zitat:
ausblenden C#-Quelltext
1:
2:
for(int i=z2; i < z2; --i)
    z3 = z1 - z2;


Das würde nicht funktionieren, denn die Schleife läuft ja so lange, bis die Bedingung nicht mehr erfüllt ist.
Da die Bedingung hier ist, dass i kleiner als z2 ist, du i aber gleich zu Beginn auf z2 setzt, ist sie nie erfüllt.

Ich würde da auch eine while-Schleife empfehlen. Du kannst dann irgendeine Zähler-Variable vorher deklarieren (heißt bei mir meist counter), die im innern der Schleife immer um eins erhöht wird.
Die Bedingung der Schleife ist dann (um bei A/B zu bleiben): Rest >= B (Rest wurde vorher natürlich gleich A gesetzt)
Im Innern der Schleife wird dann der Counter gezählt und Rest -= B;

Das Ergebnis der Division ist dann der Inhalt von Counter und der Rest der Division (Bei 13/4 wäre der Rest 1) ist dann der Inhalt von der vorher erstellten Variable Rest.

Den Rest solltest du dann auch so mit ausgeben lassen, denn wenn du das nicht tust, stimmt das Ergebnis streng genommen nicht mehr, oder du musst Nachkommastellen beachten und dann wird's kompliziert.

Die Division durch 0 musst du natürlich abfangen, aber bitte nicht mit ein Application.Exit.
Besser wäre aber, wenn du vor der eigentlichen Berechnung schaust, ob durch 0 geteilt wird und wenn ja, wird eine entsprechende Fehlermeldung angezeigt.

Was passiert, wenn eine Zahl negativ ist:
Wenn A negativ ist, hast du als Rest immer A.
Wenn B negativ ist, hast du eine Endlosschleife.

Eine Idee, wie man das einfach lösen könnte, wäre, wenn du von Vornherein schaust, ob eine Zahl negativ ist und wenn ja, wird sie positiv gesetzt (mal -1). Du merkst dir gleichzeitig, ob eine oder beide Zahlen negativ war, denn im Nachhinein kannst du dann schauen, welches Vorzeichen das Ergebnis haben soll. Wenn beide negativ sind, dann ist es positiv, wenn nur eine negativ ist, ist das Ergebnis auch negativ.




PS:
Sorry für den Roman, ich hoffe, ich sehe das nicht wieder zu kompliziert :D

Für diesen Beitrag haben gedankt: MelBel
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Sa 14.12.13 20:55 
Zitat:
Ich würde da auch eine while-Schleife empfehlen. Du kannst dann irgendeine Zähler-Variable vorher deklarieren (heißt bei mir meist counter), die im innern der Schleife immer um eins erhöht wird.


Das geht mit einer for Schleife haargenau so. Eigentlich sogar besser.

Für diesen Beitrag haben gedankt: MelBel
papa69
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 79
Erhaltene Danke: 23

Win 10, Ubuntu
C#, Java, C
BeitragVerfasst: Sa 14.12.13 21:05 
...also ich glaube, ihr denkt zu kompliziert...(eigentlich ist das Mathematik der einfachsten Sorte -> zumindest erinnere ich mich an meine (Grund-)Schulzeit und wie ich das Rechnen der höheren Ordnung (Mal und Geteilt) gelernt habe...da ich aber aus dem "tiefsten" ~Osten~ komme und weit vor der Wende das Rechnen erlernt habe, bin ich da wohl etwas im Vorteil.. hehe)

zu 1.) Palladin hat da Recht. Du solltest Dir den Rechenweg wirklich mal auf Papier aufschreiben (ich habe dafür 5 Zeilen gebraucht...habe 3*4 "ausgerechnet und es kam tatsächlich 12 raus 8) ) Bei der Multiplikation nimmst Du ja 1.Zahl "mal" die 2.Zahl, musst also die 2.Zahl 1.Zahl-mal (==so oft) mit sich selber addieren...nicht mehr und nicht weniger :)

zu 2.) Das funktioniert eigentlich genauso. Nur das Du das "Ergebnis" der Subtraktion zum Weiterrechnen brauchst, und nicht etwa Zahl1
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
Pseudocode: für die Rechnung 13 : 3 ( = 4 Rest 1 ) --> Zahl1 : Zahl2 = Endergebnis

Ergebnis = 0
Durchlauf = Zahl1

Schleife ( mit Bedingung  !! )
Durchlauf = Durchlauf - Zahl2
Ergebnis++

Endergebnis = Ergebnis "REST" Durchlauf



Ob for- oder while-Schleife ist sehr wahrscheinlich Geschmackssache, ich würde bei meinem Wissensstand eher zu einer while-Schleife tendieren.

zu 3.) Das "Ende" des Rechenweges ist da wohl gemeint (mit Ausgabe des Ergebnisses) und sehr wahrscheinlich NICHT das Ende des Programms.

_________________
Daniel Bauer
... fatal ist nur, wenn sich das Licht am Ende des Tunnels als entgegenkommender ICE entpuppt ...

Für diesen Beitrag haben gedankt: MelBel
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Sa 14.12.13 21:25 
@Ralf Jansen:

Das ist wahrscheinlich wirklich Geschmackssache.
Entweder du baust die zusätzliche Bedingung noch mit im Schleifen-Kopf ein, was ich nicht schön finde, oder du prüft im Rumpf und brichst dann die Schleife ab, was ich auch nicht mag. :D

@papa69:

Da hast du schon einmal den Vorteil, dass du dich überhaupt noch an deine Grundschulzeit erinnern kannst :D
Ich weiß nur noch wenige Dinge, wie z.B. schriftliches Rechnen der Grundrechenarten.

Wobei ich das Dividieren ja ungefähr so beschrieben hab, wie du im Pseudocode, aber da kann es auch gut sein, dass ich einfach zu kompliziert geschrieben habe :D
Für Counter wäre der Name Ergebnis vielleicht besser gewesen, bloß ist das so eine Gewohnheitssache, dass ich eine zählende Variable Counter (oder ähnlich) nenne :D



Zu 3.

Frag da am besten nochmal nach.
Du kannst ja auch ein bisschen weiter gehen und einen kleinen Taschenrechner basteln.

Ein kleines Menü, wo du dann mit Ziffern, die der Nutzer eingeben muss, die jeweilige Rechenart auswählt.
1 bis 4 sind dann die Rechenarten, 0 bedeutet das Beenden des Programms.
Wenn du nicht bewusst Beenden auswählst, rechnet e die Aufgabe und fragt dich danach einfach nochmal, welche Rechenart du willst. Ließe sich auch relativ leicht mit einer while-Schleife lösen und eine gute Übung ist das für den Anfang allemal. ^^

Für diesen Beitrag haben gedankt: MelBel
MelBel Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: So 15.12.13 17:25 
Uhh danke erstmal für die zahlreichen Antworten :)

Ich hab's jetzt auch gerade gemerkt, dass ich die falsche Multiplikation reingefügt habe :)

hier ist richtige:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
using System;

  class Aufgabe2 {
    static void Main() {
    
    int z1;
    int z2;
    int z3;
    Console.WriteLine("Geben Sie ihre erste Zahl ein ");
    z1 = Convert.ToInt32(Console.ReadLine());
    
    Console.WriteLine("Geben Sie ihre zweite Zahl ein ");
    z2 = Convert.ToInt32(Console.ReadLine());
    z3 = 0;
    for(;z2>0; --z2) {
    z3 = z3 + z1;
    
    
    }
    Console.WriteLine(" Ihre Multiplikation ergab "+z3);
    }
    }


2.) Im Klartext heisst das ja, wenn ich 13:3 annehmne = 4 Rest 1
ausblenden Quelltext
1:
2:
3:
4:
5:
     Durchlauf = zahl1 (13)
     Ergebnis = 0
     for ( Bedinungen)
     Durchlauf(13) = Durchlauf(13) - zahl2(3)
     Ergebnis++


dadurch wäre es nach einem Durchlauf so:
Durchlauf = 10
Ergebnis = 1

Code:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
     while( z1>z2)
    { 
      Durchlauf = Durchlauf - z2
      Ergebnis++

     }
        Endergebnis = Ergebnis + Durchlauf



Würde das so stimmen?


Wäre es möglich, wenn ich ganz am Anfang frage "Geben sie für eine Multiplikation 1 ein, für eine Division 2"? Dann würde ich eine Anweisung machen für if eingabe = 1 (multiplikationcode) else eingabe = 2 (divisionscode)

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 15.12.13 19:02 
Denk nochmal über die Where Bedingung nach. Was kommt bei dir im Moment bei z.B. 5/5 (Operator) raus und auf welche Variablen müsstest du tatsächlich vergleichen. Wirklich z1 und z2?

Für diesen Beitrag haben gedankt: MelBel
MelBel Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: So 15.12.13 19:17 
Oh stimmt, 5/5 würde 0 rauskommen.

ausblenden C#-Quelltext
1:
while(Durchlauf >= zahl2)					

zusammengefasst:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
while( Durchlauf>=zahl2)

    Durchlauf = Durchlauf - z2
    Ergebnis++
}
Endergebnis = Ergebnis + Durchlauf

da würde dann 1 rauskommen bei 5/5

Wäre das so richtig?

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 15.12.13 19:41 
Probiers aus ;)

Für diesen Beitrag haben gedankt: MelBel
MelBel Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: So 15.12.13 20:29 
Alles klappt soweit :)
mal funktioniert, geteilt funktioniert. Nur ein kleines Problem gibts noch:
Bei zb 10/4 (allgemein bei Kommazahlen) wird aufgerundet, sprich dann kommt da 4 raus, wobei eigentlich 3 rauskommen sollte
Sollte ich da statt int, double nehmen?

Edit: okay mit double klappts auch nicht :(
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 15.12.13 20:44 
Zitat:
Bei zb 10/4 (allgemein bei Kommazahlen) wird aufgerundet, sprich dann kommt da 4 raus, wobei eigentlich 3 rauskommen sollte

Also wenn du denkst bei 10/4 kommt 3 anstatt 4 raus hast du größere Probleme ;) Denk nochmal scharf nach.

Zitat:
Sollte ich da statt int, double nehmen?


In der Informatik ergibt eine ganze Zahl / eine ganze Zahl immer eine ganze Zahl. Es ändert sich durch die grundlegenden Mathematikoperationen nicht der Datentyp. Das Ergebnis wäre also eine ganze Zahl und ein Rest (oder Modulus) der ebenfalls eine ganze Zahl ist. Und deine Aufgabenstellung lautet das du ganze Zahlen nehmen sollst.

Für diesen Beitrag haben gedankt: MelBel
MelBel Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: So 15.12.13 21:43 
Natürlich kommt nicht 3 raus ;)
2,5 -> 3
Aber es kommt ja 4 in dem Code raus, ist das normal?:D
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 15.12.13 22:01 
Nein. Da musst du nochmal über deinen Code nachdenken. Vielleicht würde dir jetzt ein wenig debuggen helfen? Also den Code schön schrittweise ausführen schauen was in den Variablen steht und Rückschlüsse ziehen was da anders läuft als du es erwartest.

Für diesen Beitrag haben gedankt: MelBel
papa69
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 79
Erhaltene Danke: 23

Win 10, Ubuntu
C#, Java, C
BeitragVerfasst: So 15.12.13 22:10 
ich glaube, Du hast da noch einen "Denkfehler".
Mir kommt es so vor, als würdest Du Dein Endergenis tatsächlich "addieren", solltest es aber als String zusammensetzen. Vlt.hilft Dir das weiter ;-)

_________________
Daniel Bauer
... fatal ist nur, wenn sich das Licht am Ende des Tunnels als entgegenkommender ICE entpuppt ...

Für diesen Beitrag haben gedankt: MelBel
MeierZwoo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 94
Erhaltene Danke: 11

Win 7, DOS5
Delphi 2007 Architect, BP7/TP5, LISP, PS
BeitragVerfasst: Mo 16.12.13 03:16 
Wie man Division durch fortlaufende Subtraktion bis zum Rest Null oder einer bestimmten Anzahl Nachkommastellen ersetzt, findet man ausgezeichnet in Rechenanweisungen zu mechanischen 4-spezies-Maschinen (und auch zu Abaki) beschrieben.

Für diesen Beitrag haben gedankt: MelBel
MelBel Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mo 16.12.13 16:41 
Das Debuggen hat wirklich geholfen :D

Das Endergebnis wäre ja dann nur der "zähler" in der Schleife :)

Also:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
Durchlauf = z1;
Ergebnis = 0;
while( Durchlauf>=z2)
{
  Durchlauf = Durchlauf - z2;
  Ergebnis++;    
}
    
Console.WriteLine("Ihre Division ergab = " + Ergebnis);

Das Ganze zusammengefasst, leider funktioniert dass bei mir mit "if" bzw "else if" Anweisung nicht so wirklich.
Bei mir kommt der Fehler, dass ich int nicht in Bool konvertieren kann, die Zeilenangabe sagt, dass ein Fehler bei der If und else if Anweisung liegt. Das mit dem "bool" hab ich nicht so ganz hinbekommen :/

Hier mal der komplette Code:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
using System;

  class Aufgabe2 {
    static void Main() {
    
    int z1;
    int z2;
    int z3;
    int z4;
    
    int Ergebnis;
    int Durchlauf;
    
    
    Console.WriteLine("Geben Sie ihre erste Zahl ein ");
    z1 = Convert.ToInt32(Console.ReadLine());
    
    Console.WriteLine("Geben Sie ihre zweite Zahl ein ");
    z2 = Convert.ToInt32(Console.ReadLine());
    
    Console.WriteLine("Für eine Multiplikation geben Sie eine 1 ein, für eine Division eine 2 ");
    z4 = Convert.ToInt32(Console.ReadLine());
    
    z3 = 0;
    
    if(z4 = 1)
    {
      for(;z2>0; --z2) {
    z3 = z3 + z1;
    }
    Console.WriteLine(" Ihre Multiplikation ergab "+z3);
    }
    
    
    else if(z4=2)   {
    Durchlauf = z1;
    Ergebnis = 0;
    while( Durchlauf>=z2)
    {
    Durchlauf = Durchlauf - z2;
    Ergebnis++;
    
    }
    
    Console.WriteLine("Ihre Division ergab = " + Ergebnis);
    }
    }
    }


Moderiert von user profile iconTh69: C#-Tags hinzugefügt. Bitte demnächst selber - der Lesbarkeit wegen - hinzufügen.