Laden...

Forenbeiträge von bababune Ingesamt 10 Beiträge

17.06.2015 - 20:57 Uhr

@ MarsStein - erstmal danke für die Hilfe mit dem Modulo

aber ehrlich gesagt steh ich grad aufm Schlauch inwiefern dass mir helfen soll.

sind doch alle verwendeten vom Typ "int" also integer wodurch...:
"Der Wert des Ergebnisses liegt zwischen 0 und dem absoluten Wert von number2.

Die Argumente des Operators Modulo können Gleitkommazahlen sein, sodass 5.6 % 0.5 den Wert 0.1 zurückgibt. "

...nicht zutreffen kann. Oder wie meintest du des ?

Vielen Dank schonmal
Bababune aka Johnny

17.06.2015 - 12:50 Uhr

Hey erstmal vielen Dank für eure tollen Hilfestellungen und Anregungen !

Hab meinen finalen Code mit der "Musterlösung" meiner Professorin verglichen und komplett des selbe (bis auf namen von Variablen) . Also sollts stimmen - stimmt aber net.

Ich komm net drauf was ich noch verändern soll weil aus meiner Sicht is der Code schlüssig 😦

Den Link mit dem Debugger hab ich mir jetz 5 mal durchgelesen versteh aber immer noch nicht wie ich Zeile für Zeile durchgehen kann. Bei mir gibts nur Step over oder step into aber kein step into new instance . (Visual Studio 2012 Ultimate) aber dass hier is wohl Offtopic das lern ich schon noch 😃

falls noch wer draufkommt was ich ändern muss um nur die Zahlen auszugeben die ich Suche wäre Klasse!

Lg Bababune

16.06.2015 - 17:42 Uhr

Ah danke schonmal ich werd die == fälle gleich mal überprüfen bzw überarbeiten wenn nötig super tip schonmal, danke!
Mfg Johnny

Also den einen == true den ich drin hatte hab ich jetzt durch den tip verbessern können zu != null.

Jedoch gibt mir die Console jetzt alle Zahlen von 1 -100 aus und nicht nur die Perfekten Zahlen!

Fehler hab ich jetzt keinen mehr drin. (Zumindest wird keiner mehr angezeigt)!

Vielen Dank schonmal 😃

16.06.2015 - 17:24 Uhr

Hallo Leute,
bin gerade über einer Übungsaufgabe habe diese fertig jedoch find ich meinen Fehler nicht! Es wird kein Fehler angezeigt aber die Console gibt nichts aus! Hab euch auch gleich kommentare hin damit ihr (hoffentlich) den (vorhandenen) Fehler sofort erkennt.
Danke schonmal für die Hilfe/Anregungen 😃

Aufgabenstellung:
a)Schreiben Sie eine Funktion, die feststellt, ob eine Zahl eine perfekte Zahl ist. Eine perfekte Zahl ist eine Zahl, die die Summe aller ihrer Teiler ist (außer sich selbst). Beispiel: 28 = 14 + 7 + 4 + 2+1 ist perfekt
b) Schreiben Sie ein C#-Programm, das alle perfekten Zahlen zwischen 1 und 100 ausgibt. Verwenden Sie dazu die Funktion aus a)

Mein Code:


static bool PerfekteZ(int zahl)
        {
            bool isok=false;
            int summe = 0;
            // alle Teiler zu zahl bestimmen
            // Summe der Teiler berechnen
            for (int i=1; i <= zahl/2; i++)
            {
                if (i % zahl == 0) // Teiler gefunden
                {
                    summe += i; // Summieren

                    if (zahl == summe) // Summe mit Zahl vergleichen
                    {
                        isok = true;
                    }
                    else
                    {
                        isok = false;
                    }
                }
                else
                {
                    isok = false;
                }
            }

            if (isok == true) // Ausgabe
            {
                Console.WriteLine("Perfekte Zahl: {0}", zahl);
            }
            return isok;
        }
        static void Main()
        {
            int n=0;
            do 
            {   PerfekteZ(n);
                n++;
                
            }while (n <= 100);
        }

Mfg Johnny aka Bababune

12.06.2015 - 13:54 Uhr

So hab das ganze nochmal überarbeitet! Console zeigt keine Fehlermeldung an !
Jedoch bin ich mit der Ausgabe noch nicht zufrieden!

Bsp: 4 - Konsole gibt aus:
Ihr konvertierter Integer: 44
Ihr konvertierter String: "44"

Bsp: 1234 - Konsole gibt aus:
Ihr konvertierter Integer: 12341
Ihr konvertierter Integer: 123412
Ihr konvertierter Integer: 1234123
Ihr konvertierter Integer: 12341234
Ihr konvertierter String: "12341234"

hat das was mit dem ganzZahl+=c zu tun?
muss ich da zwangweise nen neuen string anlegen? des müsste doch so gehen oder ?


        static int ConvertToInt(string ganzZahl)
        {
            int erg = 0;
            foreach (char c in ganzZahl)
            {
                if (c <= 47 && c >= 58)
                {
                    erg = -1;
                    Console.WriteLine("Ihr konvertierter Integer:{0}",erg);
                }
                else
                {
                    ganzZahl += c;
                    erg= Convert.ToInt32(ganzZahl);
                    Console.WriteLine("Ihr konvertierter Integer:{0}", erg);
                }
            }
            return erg;
        }

        static string ConvertToString(int positiv)
        {
            string zahl="";
            if (positiv < 0)
            {
                zahl = "\"\"";
                Console.WriteLine("Ihr konvertierter Sting:{0}", zahl);
            }
            else
            {
                zahl = Convert.ToString(positiv);
                Console.WriteLine("Ihr konvertierter String:\"{0}\"", zahl);
            }
            return zahl ;
        }


        static void Main(string[] args)
        {
            

            Console.WriteLine("Bitte geben Sie eine ganze Zahl ein");
            string eingabe = Console.ReadLine();

            int endergebnis = ConvertToInt(eingabe);

            
         
            ConvertToString(endergebnis);

        }
    }
}
 
12.06.2015 - 13:21 Uhr

Hallo ihr ! und vielen dank schonmal für die schnellen antworten!
@Pralin - bei a) hab ich was vergessen:


else
                {
                    ganzZahl += c;
                    erg= Convert.ToInt32(ganzZahl);
                }
 

so geht die else da, des convertieren hab ich vergessen.

zu c) danke ! Hatte nen Denkfehler ^^

und p.s. ist keine hausaufgabe ich lern blos grad auf die Prüfungen 😉

@coffee - die abfrage hab ich gemacht um den eingegebenen string auf zahlen zu filtern , sprich dass er nur noch ziffern enthält , also mit hilfe einer ASCII Table

@ beide - sry bei meinem ersten post vor längerem hats gleich funktioniert in zukunft achte ich drauf dass der code als code angezeigt wird 😃

12.06.2015 - 13:02 Uhr

Hey Leute ! Hier mein Code mit Angabe der Übungsaufgabe an welcher ich gerade sitze!
a) müsste passen b) auch
c) komm ich nicht drauf inwiefern ich noch nen integer reinbringen soll. Also ich versteh die angabe in dem zusammenhang net wirklich!

a) Schreiben Sie eine Funktion ConvertToInt:
Die Funktion erhält als Parameter einen string, der eine positive ganze Zahl in Form von Ziffern enthält.Als Rückgabewert liefert die Funktion die entsprechende Zahl vom Typ int. Falls der übergebene string fehlerhafte Zeichen (d.h. Zeichen, die keine Ziffern sind) enthält, soll die Funktion den Wert -1 liefern.

b) Schreiben Sie eine Funktion ConvertToString:
Die Funktion erhält als Parameter eine positive ganze Zahl (int). Als Rückgabewert liefert die Funktion die Zahl in Form eines string. Aus der Zahl (z.B.) 243 wird also der string "243". Falls die übergebene Zahl negativ ist, soll ein leerer String "" zurückgegeben werden.

c) Schreiben Sie zusätzlich ein Main, das die beiden Funktionen aufruft, d.h. lesen Sie einen string von der Console ein, übergeben diesen an die erste Funktion und speichern Sie das Ergebnis in einer int Variablen. Übergeben Sie weiterhin eine int Variable an die zweite Funktion speichern Sie das Ergebnis in einer string Variablen.

static int ConvertToInt(string ganzZahl)
        {
            int erg = 0;
            foreach (char c in ganzZahl)
            {
                if (c <= 47 && c >= 58 )
                {
                    erg = -1;
                }
                else
                {
                    ganzZahl += c;
                    erg = Convert.ToInt32(ganzZahl);
                }
            }
            return erg;
        }

        static string ConvertToString(int positiv)
        {
            string zahl="";
            if (positiv < 0)
            {
                zahl = "";
                Console.WriteLine(zahl);
            }
            else
            {
 
            }
            return zahl ;
        }

        static void Main(string[] args)
        {
            
            Console.WriteLine("Bitte geben Sie eine ganze Zahl ein");
            string eingabe = Console.ReadLine();
 
            ConvertToInt(eingabe);
            ConvertToString(positiv);

Vielen Dank schonmal für eure Antworten ! 🙂
Mfg Johnny

02.06.2015 - 16:35 Uhr

Und wie fügt man einzelne Zeichen in nen anderen string?

einfach neuen string anlegen? in der true if schleife unten?

while (  eingabeok == true) 
{
string neu =  test
}

mit so ner schleife? hab heut schon x aufgaben gemacht sorry dass ich mich grad so anstell -.-

02.06.2015 - 13:51 Uhr

Danke erstmal für die Antwort ! Ok Compilermeldungen in Zukunft selbst Googln 😉
Ja ich weiß dass ich noch n blutiger Anfänger bin! T_T
Steh grad aufm Schlauch weil ich net weiß wie ich hier filtern soll!

02.06.2015 - 13:33 Uhr

Hallo Leute ich komme bei einer Übungsaufgabe nicht weiter! Vielen Dank schonmal für die Lösungstips!

Hier die Angabe der Aufgabe:

Erstellen Sie ein C#-Programm, das einen rudimentären Test eines einzulesenden Strings hinsichtlich der Gültigkeit für eine Telefonnummer vornimmt und etwaige Strukturierungszeichen aus dem String entfernt. Ein Ergebnisstring mit den Ziffern der Telefonnummer, aber ohne die Strukturierungszeichen soll ausgegeben werden. Es soll gelten:

Eine Telefonnummer besteht nur aus den Ziffern 0-9.
Die Zeichen ‘(‘, ‘)‘, ‘-‘ sind als Strukturierungszeichen erlaubt, werden aber nicht mit in den Ergebnisstring übernommen.
Alle anderen Zeichen führen zu einer Fehlermeldung und dem Abbruch des Programms.

Mögliche Abläufe:
Telefonnummer: (0911)5880-1668
091158801668

Telefonnummer: (0911)A123-456
Fehlerhafte Eingabe


Mein Code im Moment:

  
       
        static void Main(string[] args)
        {
            Console.WriteLine("Bitte geben Sie eine Telefonnummer ein:");
            string nummer = Console.ReadLine();
            bool eingabeok = false;
            string ausgabe;

            foreach (char test in nummer)
            {
                if (test <= 39 && test >= 58) // ASCII-Werte
                {
                    eingabeok = false;
                }
                if (test >= 48 && test <= 57 | test == 40 | test == 41 | test == 45) // ASCII-Werte
                {
                
                    eingabeok = true;
                    ausgabe = nummer;
                    ;
                }

            }
            if (eingabeok == true)
            {
                 
                Console.WriteLine("Nummer: {0} ", ausgabe);
            }
            if (eingabeok == false)
            {
                Console.WriteLine(" Fehlerhafte Eingabe! Bitte versuchen Sie es erneut!");
            }
            Console.ReadLine();
        }
    }
}

Meine Probleme:
1.Wie gebe Ich den String ohne die erlaubten Sonderzeichen ( , ) , - aus?
2. Warum erkennt er mir unten in der If-Schleife die Variable ausgabe nicht? (Use of unassigned variable 'ausgabe' ) steht da aber ich deklarier sie doch oben und in der schleife!

Vielen Dank schonmal