Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: C# selbst erstellte Methode in Main aufrufen (blutiger Anfänger)

  1. #1
    Neuer Benutzer
    Registriert seit
    26.04.2018
    Beiträge
    6

    Lächeln C# selbst erstellte Methode in Main aufrufen (blutiger Anfänger)

    Guten Abend zusammen,

    ich habe im Rahmen meines Studiums eine Programmieraufgabe bekommen wo ich leider nicht weiter komme.....

    Ich soll ein Programm schreiben das eine Methode enthält die mir den Wallischen Produkt berechnet und ausgibt.
    Dabei darf in der Klasse keine Ein-/Ausgabefunktionen wie beispielsweise Console.WriteLine verwendet werden.

    Da ich ein Anfänger in C# und in der Programmierung im Allgemeinen bin, würde ich mich über Hilfe sehr freuen.


    Mein Code:

    Code:
    using System;
    
    public class WallischesProdukt{
    	public static void Main() {
    		
    		Ausgabe();
    	
    	
    	}
    	
    	public static double Ausgabe(double n, double pi, double diff){
    		
    		double n = 1.0;
    		const double pi= Math.PI;
    		double diff = 0;	
    		
    		for(int i = 2; i <= 1000; ++i) {
    			
    		if(i % 2 == 0) 
            n *= (i / ( i - 1.0 ) );
    		
    		else 
            n *= ( ( i - 1.0 ) / i );
    		
    		return n*2 - pi;
    		
    		}
    	}
    }
    Ich bedanke mir schon mal im Voraus für eure Hilfe

    VG,
    Andi

  2. #2
    CodePlanet Staff Avatar von StarShaper
    Registriert seit
    10.09.2005
    Beiträge
    63

    Standard

    Hallo!

    Du sollst eine Methode schreiben, die dir das Wallische Produkt berechnet und ausgibt, aber keine Ein-/Ausgabefunktionen enthält?

    Das macht keinen Sinn. Soll es nun intern nur berechnet werden oder soll es auch ausgegeben werden?

    Cu

  3. #3
    Neuer Benutzer
    Registriert seit
    26.04.2018
    Beiträge
    6

    Standard

    Hallo StarShaper,

    Danke für deine Antwort, unten findest du die Aufgabe.
    So wie ich das Verstanden habe darf die Klasse keine Ein/Ausgabefunktion haben:

    Programmieren Sie eine C#-Klasse
    WallisschesProdukt, welche eine Methode enthält, die das wallissche Produkt bis zum n-ten
    Faktor berechnet und zurückgibt. Diese Klasse darf keine Ein-/Ausgabefunktionen wie bspw.
    Console.WriteLine() enthalten. Schreiben Sie ein Hauptprogramm, in dem Sie in einer for-
    Schleife für alle n von 1 bis 1000 das Produkt ausgeben. Vergleichen Sie die berechneten
    Ergebnisse mit dem konstanten Wert Math.PI (etwa indem Sie zusätzlich die Differenz Ihres
    berechneten Wertes zu Math.PI ausgeben). Die Produktformel zur Berechnung des wallisschen
    Produkts ist nicht zu verwenden.

    Was meinst du? Ich verzweifle echt an dieser Aufgabe.

  4. #4
    CodePlanet Staff Avatar von StarShaper
    Registriert seit
    10.09.2005
    Beiträge
    63

    Standard

    Da steht drinnen, dass du keine Zwischenergebnisse oder dergleichen ausgeben darfst. Es sollen also keinerlei Werte auf der Konsole oder in einer Datei ausgegeben werden.

    Es geht nur darum, dass du eine Klasse mit einer Methode zur Berechnung des Wallisschen Produkts programmierst.

    In der Main-Methode sollst du die Klasse dann anwenden und von 1 bis 1000 das Produkt berechnen.

    Eigentlich ganz einfach.

    Wo genau liegt nun dein Problem?

    Cu

  5. #5
    Neuer Benutzer
    Registriert seit
    26.04.2018
    Beiträge
    6

    Standard

    Mein Problem liegt darin das ich die Aufgabenstellung nicht so ganz verstehe....

    Ich habe das so verstanden das ich eine eigene Methode schreibe die den Wallischen Produkt berechnet und diese soll dann in der Main Methode abgerufen werden
    Deswegen habe ich versucht mir das berechnete Ergebnis in einer Konsole ausgeben zu lassen.

    Könntest du mir das in einem kurzen Pseudocode erklären?

    Sorry wenn ich so doofe fragen stelle aber ich habe gerade erst mit programmierung angefangen und ich weiß nicht genau was von mir verlangt wird.

    Vielen Dank im voraus.

  6. #6
    CodePlanet Staff Avatar von StarShaper
    Registriert seit
    10.09.2005
    Beiträge
    63

    Standard

    Im Prinzip sollst du eine Klasse schreiben. Zum Beispiel.

    PHP-Code:
    public class Person
    {
        
    // Field
        
    public string name;

        
    // Constructor that takes no arguments.
        
    public Person()
        {
            
    name "unknown";
        }

        
    // Constructor that takes one argument.
        
    public Person(string nm)
        {
            
    name nm;
        }

        
    // Method
        
    public void SetName(string newName)
        {
            
    name newName;
        }

    Statt Person schreibst du eben eine Klasse WallisschesProdukt und darin hast du dann eine Methode Caclulate(int factor).

    In deiner Mein Methode schreibst du dann eine for-Schleife, die von 1 bis 1000 immer die Methode Caclulate() aufruft.

  7. #7
    CodePlanet Staff Avatar von StarShaper
    Registriert seit
    10.09.2005
    Beiträge
    63

    Standard

    Übrigens kannst du ja für Testzwecke natürlich das Ergebnis auch in der Konsole anzeigen. Nur bei der Abgabe musst du es halt rauslöschen.

  8. #8
    Neuer Benutzer
    Registriert seit
    26.04.2018
    Beiträge
    6

    Standard

    Okay also im prinzip werde ich jetzt versuche die Methode Calculate in der Main Methode aufzurufen.

    Selbst erstellte Methoden rufe ich in meiner Main folgend auf:


    Code:
    public class WallischesProdukt{
    	public static void Main() {
    		
    		Calculate(int); 
    		
    		
    		
    		
    	}
    		
    		public Calculate(int )
    		
    		double n = 1.0;
    		const double pi= Math.PI;
    		double diff = 0;	
    		
    		for(int i = 2; i <= 1000; ++i) {
    			
    		if(i % 2 == 0) 
            n *= (i / ( i - 1.0 ) );
    		
    		else 
            n *= ( ( i - 1.0 ) / i );
    Vg,
    Andi

  9. #9
    CodePlanet Staff Avatar von StarShaper
    Registriert seit
    10.09.2005
    Beiträge
    63

    Standard

    Nicht ganz richtig.

    Die Methode main() ist eine statische Methode und Haupteinsprungspunkt deines Programmes. Jedes Programm hat eine main() Methode.

    Du brauchst eine eigene Klasse namens WallisschesProdukt.

    PHP-Code:
    public static void Main() 
    {
        
    WallisschesProdukt w;
        
    double d 0.0;
        
        for(
    int i1000; ++i)
        {   
            
    w.Calculate(i); 
            
    Console.WiriteLine(d);
        }

    Deine main() Methode darf durchaus ein Console.WiriteLine() enthalten. Das steht ja in der AUfgabenstellung.

    Nur deine Klasse WallisschesProdukt darf das nicht.

    Cu
    Geändert von StarShaper (29.04.2018 um 15:26 Uhr)

  10. #10
    Neuer Benutzer
    Registriert seit
    26.04.2018
    Beiträge
    6

    Standard

    Super danke, langsam fange ich an zu verstehen.

    Warum hast du "WallisschesProdukt w;" in die Zeile eingefügt?
    Ist das nicht meine Klasse die ich zuvor bereits in "public class WallischesProdukt" deklariert habe?

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •