Anzeige in Funktion



  • Hallo
    Wie kriege ich das hin das alle Ergebnisse auf einmal angezeigt werden, in einer Funktion. So geht es nicht, er zeigt ganichts an auch keinen Fehler beim compilieren. Was ist falsch?

    [cpp][code]

    #include "stdafx.h"

    using namespace System;
    // Plusrechnung
    Int32 plus() {
    Int32 zahl1, zahl2;

    Console::Write("\n Plus Rechnung");
    Console::Write("\n Eingeben Zahl1 = ");
    zahl1=Convert::ToInt32(Console::ReadLine());

    Console::Write(" Eingeben Zahl2 = ");
    zahl2=Convert::ToInt32(Console::ReadLine());

    return (zahl1 + zahl2);
    }
    //MinusRechnung
    Int32 minus() {
    Int32 zahl1, zahl2;

    Console::Write("\n Minus Rechnung");
    Console::Write("\n Eingeben Zahl1 = ");
    zahl1=Convert::ToInt32(Console::ReadLine());

    Console::Write(" Eingeben Zahl2 = ");
    zahl2=Convert::ToInt32(Console::ReadLine());
    return (zahl1 - zahl2);
    }
    //Malnehmen
    Int32 mal() {
    Int32 zahl1, zahl2;
    Console::WriteLine(" Mal Rechnung");
    Console::Write(" Eingeben Zahl1 = ");
    zahl1=Convert::ToInt32(Console::ReadLine());

    Console::Write(" Eingeben Zahl2 = ");
    zahl2=Convert::ToInt32(Console::ReadLine());
    return (zahl1 * zahl2);
    }
    // Teilen
    Double teilen() {
    Double zahl1, zahl2;
    Console::WriteLine(" Teilen Rechnung");
    Console::Write(" Eigeben Zahl1 = ");
    zahl1=Convert::ToInt32(Console::ReadLine());

    Console::Write(" Eingeben zahl2 ");
    zahl2=Convert::ToInt32(Console::ReadLine());

    return (zahl1 / zahl2);
    }
    Double ausgabe() {
    Double ausgabe;
    Console::WriteLine("\n Ausgeben Ergebnis plus = {0}",plus());
    Console::WriteLine("\n Ausgeben Ergebnis Minus = {0}\n",minus());
    Console::WriteLine("\n Ausgeben Ergebnis Mal = {0}\n",mal());
    Console::WriteLine("\n Ausgeben Ergebnis Teilen = {0:G3}\n",teilen());
    return ausgabe;
    }
    Vielen Dank im Voraus



  • Passiert überhaupt was? Solche Konsolenprogrammen haben die Eigenschaften sich augenblicklich zu schließen, wenn der Code abgearbeit ist. Bei 2 GHz und 20 Codezeilen bekommst du das Öffnen und Schließen des Konsolenfensters gar nicht erst mit, entsprechend scheint es als würde er gar nix anzeigen.



  • Heinerich schrieb:

    Hallo
    Wie kriege ich das hin das alle Ergebnisse auf einmal angezeigt werden, in einer Funktion. So geht es nicht, er zeigt ganichts an auch keinen Fehler beim compilieren. Was ist falsch?

    [cpp][code]

    #include "stdafx.h"

    using namespace System;
    // Plusrechnung
    Int32 plus() {
    Int32 zahl1, zahl2;

    Console::Write("\n Plus Rechnung");
    Console::Write("\n Eingeben Zahl1 = ");
    zahl1=Convert::ToInt32(Console::ReadLine());

    Console::Write(" Eingeben Zahl2 = ");
    zahl2=Convert::ToInt32(Console::ReadLine());

    return (zahl1 + zahl2);
    }
    //MinusRechnung
    Int32 minus() {
    Int32 zahl1, zahl2;

    Console::Write("\n Minus Rechnung");
    Console::Write("\n Eingeben Zahl1 = ");
    zahl1=Convert::ToInt32(Console::ReadLine());

    Console::Write(" Eingeben Zahl2 = ");
    zahl2=Convert::ToInt32(Console::ReadLine());
    return (zahl1 - zahl2);
    }
    //Malnehmen
    Int32 mal() {
    Int32 zahl1, zahl2;
    Console::WriteLine(" Mal Rechnung");
    Console::Write(" Eingeben Zahl1 = ");
    zahl1=Convert::ToInt32(Console::ReadLine());

    Console::Write(" Eingeben Zahl2 = ");
    zahl2=Convert::ToInt32(Console::ReadLine());
    return (zahl1 * zahl2);
    }
    // Teilen
    Double teilen() {
    Double zahl1, zahl2;
    Console::WriteLine(" Teilen Rechnung");
    Console::Write(" Eigeben Zahl1 = ");
    zahl1=Convert::ToInt32(Console::ReadLine());

    Console::Write(" Eingeben zahl2 ");
    zahl2=Convert::ToInt32(Console::ReadLine());

    return (zahl1 / zahl2);
    }
    Double ausgabe() {
    Double ausgabe;
    Console::WriteLine("\n Ausgeben Ergebnis plus = {0}",plus());
    Console::WriteLine("\n Ausgeben Ergebnis Minus = {0}\n",minus());
    Console::WriteLine("\n Ausgeben Ergebnis Mal = {0}\n",mal());
    Console::WriteLine("\n Ausgeben Ergebnis Teilen = {0:G3}\n",teilen());
    return ausgabe;
    }
    Vielen Dank im Voraus

    Du hast recht er zeigt garnichts an. Vorher als ich nur die Mainfunktion hatte funktionierte das Programm



  • Hi Heinrich,

    wo ist Deine main?
    Die wird als Einstiegspunkt benötigt.
    Ich habe Dir mal die Funktion "teilen" angepasst.
    In erster Linie vereinbarst Du da einen Rückgabewert Double aber gibst nur einen Int32 zurück.
    Du Konvertierst die Eingegebene Zahl in einen Int32 und speicherst sie in einen Double.
    Warum? Vereinbare dann doch gleich einen Int32
    Wenn Du einen Double haben möchtest, dann Konvertiere ihn auch in einen Double.
    Du gibst zwar in jeder Funktion Werte zurück, aber Du verarbeitest sie nicht.
    Wenn Du Fragen hast, her damit.

    Double teilen(Double zahl1, Double zahl2) 
    { 
    	Console::WriteLine(" Teilen Rechnung"); 
    
    	return (zahl1 / zahl2);
    } 
    
    Double ausgabe() 
    { 
    	Double ausgabe; 
    	Console::WriteLine("\n Ausgeben Ergebnis plus = {0}",plus()); 
    	Console::WriteLine("\n Ausgeben Ergebnis Minus = {0}\n",minus()); 
    	Console::WriteLine("\n Ausgeben Ergebnis Mal = {0}\n",mal()); 
    	//Console::WriteLine("\n Ausgeben Ergebnis Teilen = {0:G3}\n",teilen()); 
    	return ausgabe; 
    } 
    
    int main(array<System::String ^> ^args)
    {
    	Double zahl1, zahl2;
    
    	Console::Write(" Eigeben Zahl1 = "); 
    
    	zahl1=Convert::ToDouble(Console::ReadLine()); 
    
    	Console::Write(" Eingeben zahl2 = "); 
    
    	zahl2=Convert::ToDouble(Console::ReadLine()); 
    
    	Console::WriteLine(Convert::ToString(teilen(zahl1,zahl2)));
    
        return 0;
    }
    

    Gruß, Doug_HH

    Ach ja, versuche bitte mal den Code in einem C/C++ Code Block zu posten.



  • Heinerich schrieb:

    Heinerich schrieb:

    Hallo
    Wie kriege ich das hin das alle Ergebnisse auf einmal angezeigt werden, in einer Funktion. So geht es nicht, er zeigt ganichts an auch keinen Fehler beim compilieren. Was ist falsch?

    [cpp][code]

    #include "stdafx.h"

    using namespace System;
    // Plusrechnung
    Int32 plus() {
    Int32 zahl1, zahl2;

    Console::Write("\n Plus Rechnung");
    Console::Write("\n Eingeben Zahl1 = ");
    zahl1=Convert::ToInt32(Console::ReadLine());

    Console::Write(" Eingeben Zahl2 = ");
    zahl2=Convert::ToInt32(Console::ReadLine());

    return (zahl1 + zahl2);
    }
    //MinusRechnung
    Int32 minus() {
    Int32 zahl1, zahl2;

    Console::Write("\n Minus Rechnung");
    Console::Write("\n Eingeben Zahl1 = ");
    zahl1=Convert::ToInt32(Console::ReadLine());

    Console::Write(" Eingeben Zahl2 = ");
    zahl2=Convert::ToInt32(Console::ReadLine());
    return (zahl1 - zahl2);
    }
    //Malnehmen
    Int32 mal() {
    Int32 zahl1, zahl2;
    Console::WriteLine(" Mal Rechnung");
    Console::Write(" Eingeben Zahl1 = ");
    zahl1=Convert::ToInt32(Console::ReadLine());

    Console::Write(" Eingeben Zahl2 = ");
    zahl2=Convert::ToInt32(Console::ReadLine());
    return (zahl1 * zahl2);
    }
    // Teilen
    Double teilen() {
    Double zahl1, zahl2;
    Console::WriteLine(" Teilen Rechnung");
    Console::Write(" Eigeben Zahl1 = ");
    zahl1=Convert::ToInt32(Console::ReadLine());

    Console::Write(" Eingeben zahl2 ");
    zahl2=Convert::ToInt32(Console::ReadLine());

    return (zahl1 / zahl2);
    }
    Double ausgabe() {
    Double ausgabe;
    Console::WriteLine("\n Ausgeben Ergebnis plus = {0}",plus());
    Console::WriteLine("\n Ausgeben Ergebnis Minus = {0}\n",minus());
    Console::WriteLine("\n Ausgeben Ergebnis Mal = {0}\n",mal());
    Console::WriteLine("\n Ausgeben Ergebnis Teilen = {0:G3}\n",teilen());
    return ausgabe;
    }
    Vielen Dank im Voraus

    Du hast recht er zeigt garnichts an. Vorher als ich nur die Mainfunktion hatte funktionierte das Programm

    Wenn ich wüste wie das geht das mit dem C++ Code Block Posten würde ich das tun aber ich weis nicht wie das geht erkläre es mir doch mal bitte

    In meiner main steht das wqas in der Ausgabe Funktion steht. Dann zeigt er die Ergebnisse einzeln an, so wie ich die Zahlen eingebe. Er soll sie aber alle auf einmal anzeigen da weis ich nicht wie das geht? Wie du es geschrieben hast sagt er
    error C2660: 'teilen': Funktion akzeptiert keine 2 Argumente



  • edit Doppelpost !



  • Heinerich schrieb:

    Wenn ich wüste wie das geht das mit dem C++ Code Block Posten würde ich das tun aber ich weis nicht wie das geht erkläre es mir doch mal bitte

    Du gibst vor deinem Code [ cpp] ein und nach deinem Code [ /cpp] *

    und so sieht das aus

    int main()
    {
     Int32 zahl;
     return 0;
    }
    

    *ohne die Leerschritte dazwischen!



  • Ok, ich Bau Dir das mal eben.

    Wenn Du das erstmal gesehen hast ist das wirklich nicht schwer zu verstehen.
    Du möchtest quasi zwei Zahlen eingeben und dann alle Ergebnisse der 4 Grundrechenarten auf einmal Ausgeben?
    Die Fehlermeldung hast Du bekommen, weil die Funktion zwei Übergabewerte erwartet hat.
    Mit dem Code posten hast Du verstanden?
    Den Code einfach selektieren und dann auf die Schaltfläche C/C++ unter der Eingabemaske klicken, dass ist die linke Schaltfläche.
    Danach wird der Code in einem C/C++ Block eingebunden.

    int vari;
    

    Gruß Doug_HH



  • So da bin ich wieder.

    Also ich habe nicht allzu viel geändert, nur das ich Dein Beispiel um die Anweisung „Ausgabe“ gekürzt habe.
    Ferner erwartet jetzt jede Funktion zwei Zahlen vom Typ Double, die auf jedem Fall übergeben werden müssen, sonst bekommst Du eine Fehlermeldung.
    Wenn Du Fragen dazu hast, nur zu.

    Gruß, Doug_HH

    #include "stdafx.h"
    using namespace System; 
    
    // Plusrechnung 
    Double plus(Double zahl1, Double zahl2) 
    { 
    	return (zahl1 + zahl2); 
    } 
    
    //MinusRechnung 
    Double minus(Double zahl1, Double zahl2) 
    { 
    	return (zahl1 - zahl2); 
    } 
    //Malnehmen 
    Double mal(Double zahl1, Double zahl2) 
    { 
    	return (zahl1 * zahl2); 
    } 
    
    // Teilen 
    Double teilen(Double zahl1, Double zahl2) 
    { 	
    	return (zahl1 / zahl2);
    } 
    
    int main(array<System::String ^> ^args)
    {
    	Double zahl1, zahl2;
    
    	Console::Write("\nBitte geben Sie die 1. Zahl ein: "); 
    
    	zahl1 = Convert::ToDouble(Console::ReadLine()); //erste Zahl einlesen.
    
    	Console::Write("\nBitte geben Sie die 2. Zahl ein: "); 
    
    	zahl2 = Convert::ToDouble(Console::ReadLine());//zweite Zahl einlesen. 
    
    	Console::WriteLine("\nDas Ergebnis von {0} / {1} = {2}",zahl1,zahl2, teilen(zahl1,zahl2));
    
    	Console::WriteLine("\nDas Ergebnis von {0} * {1} = {2}",zahl1,zahl2, mal(zahl1,zahl2));
    
    	Console::WriteLine("\nDas Ergebnis von {0} - {1} = {2}",zahl1,zahl2, minus(zahl1,zahl2));
    
    	Console::WriteLine("\nDas Ergebnis von {0} + {1} = {2}\n",zahl1,zahl2, plus(zahl1,zahl2));
    
        return 0;
    }
    

Anmelden zum Antworten