Tool gesucht



  • Hallo,

    gibt es eigentlich einen Befehl, der eine numerische gegebene Zahl, in ihren sprachlichen Ausdruck (String) umwandelt. Das könnte man für map gut gebrauchen. Ich will das aber nicht für die Zahlen bis 1 Mio per Hand machen....

    Danke für den Tip



  • std::to_string
    


  • Ich glaub, Du hast mich mißverstanden, ich will, daß er die integer-Zahl 62, in den deutschen String "Zweiundsechzig" umwandelt .....





  • ne gibts nicht in der std. ist aber ne gute übung das selbst zu schreiben!



  • brak schrieb:

    gibt es eigentlich einen Befehl, der eine numerische gegebene Zahl, in ihren sprachlichen Ausdruck (String) umwandelt. Das könnte man für map gut gebrauchen.

    Nein. Das kann man nicht gut gebrauchen.
    Ende.

    Was für ein Problem willst Du denn damit lösen?



  • hihihi ... ich verfolge deine Threads immer so beiläufig ... 🙂
    und du bist immernoch auf der Suche nach einer dynamischen Matrix... google mal 😉
    Und versuch das erstmal mit vector und push_back zu lösen, bevor du dich an was anderes wagst.



  • Lymogry schrieb:

    hihihi ... ich verfolge deine Threads immer so beiläufig ... 🙂
    und du bist immernoch auf der Suche nach einer dynamischen Matrix... google mal 😉
    Und versuch das erstmal mit vector und push_back zu lösen, bevor du dich an was anderes wagst.

    ich würde ihm hier eher zum policy-pattern raten...
    eine policy für die sprache und eine policy für die genauigkeit.

    hihih nun hab ich lust bekommen das zu implementieren, mal schauen was sich daraus ergibt.



  • asdgsdgsa schrieb:

    Lymogry schrieb:

    hihihi ... ich verfolge deine Threads immer so beiläufig ... 🙂
    und du bist immernoch auf der Suche nach einer dynamischen Matrix... google mal 😉
    Und versuch das erstmal mit vector und push_back zu lösen, bevor du dich an was anderes wagst.

    ich würde ihm hier eher zum policy-pattern raten...
    eine policy für die sprache und eine policy für die genauigkeit.

    hihih nun hab ich lust bekommen das zu implementieren, mal schauen was sich daraus ergibt.

    ähm ... ja ...
    aber schau mal in seine Beträge, so weit ist er bei weitem nicht 😉

    PS: da musste ich jetzt sogar googlen, ich übe auch noch! 😃



  • Da gibts hier ganz sicher irgendwo schon fertige Funktionen aus älteren Threads, bist nicht der erste der sowas will



  • Lymogry schrieb:

    hihihi ... ich verfolge deine Threads immer so beiläufig ... 🙂
    und du bist immernoch auf der Suche nach einer dynamischen Matrix... google mal 😉
    Und versuch das erstmal mit vector und push_back zu lösen, bevor du dich an was anderes wagst.

    mag sein, ich hab jetzt vector und push_back drinne und auch map.

    Ab der Problem ist, ich muß Daten (TestZahl), die ganz primär sind, mit Daten, die tertiär sind, sortierte Teilersumme, verbinden, und zwar mit einer Kette... ich krieg's irgendwie nicht gebacken...

    Das problem bei map ist, daß ich nur zwei Werte verbinden kann, müßte aber bei Value mehrere Werte hinbekommen .... Kann ich bei Value nicht einen Vector platzieren?

    #include <iostream>
    #include <vector>
    #include <map>
    
    using namespace std;
    
    int quot;
    int TestZahl=0;
    int Testbeginn;
    int Testende;
    int DivisionsZeler=0; // zählt die Anzahl der Divisionen
    int PrimZahlZeler=0;
    int TeilerZeler=0; // zählt Anzahl der Teiler bei einer Zahl
    int NichtTrivialeTeilerSumme=0; // Primzahlen haben keine NTTZ, weil sie nur eine triviale Teilersumme haben, die immer 1 + sie selbst ist.
    int TeilerSumme=0; //Teilersumme
    int TeilerSummenZeler(0); // zählt die Anzahl der Teilersummen
    int ZeilenZeler=0;
    vector<int>TeilerSammler(0); //Enthält die einzelnen Teiler
    
    vector<int>TeilerSummenSammler(0); //Enhält alle verschiedenen Teilersummen
    //vector<int>NTTS(0); //NichttrivialeTeilersumme
    
    int main ()
    {
       // cout<< "Geben Sie die Anfangszahl des Bereiches ein: ";
        //cin>>Testbeginn;
        //cout<< "Geben Sie die Endzahl des Bereiches ein: ";
        //cin>>Testende;
        map<int, int> m;
    
        for(int a=1;a<=99;a++) //Durchlauf des Bereiches
            {
                TestZahl=a; //Zuweisung des jeweiligen a-Wertes an die Variable Testzahl
    
            for(int i=1;i<=TestZahl;i=i+1) // Teilersuche - es bestehen hier noch Optimierungsmöglichkeiten
                {
                    quot=TestZahl/i; // Division
                    DivisionsZeler++; // zählt die Divisionen
                    if(0==TestZahl%i) // Wenn Rest Null dann füge in Teilersammlung ein
                    {
                        TeilerSumme=TeilerSumme+quot;
                        TeilerZeler++;
                        TeilerSammler.push_back(quot); // Hier fügt er den Teiler in die Sammlung ein
                        //cout<<" "<<quot <<" ist der "<<TeilerZeler<<". Teiler der Zahl "<<Testzahl<<".  \n";
    
                    }
    
                }
    
                if (TeilerSammler.size()==2) // Primzahltest - Wenn im Vector TeilerSammler nur 2 Werte sich befinden, handelt es sich um eine Primzahl.
                {
                   //cout<<Testzahl<<" (prim) \n";
                    PrimZahlZeler++;
                 }
                else if (TeilerSammler.size()!=2) // die Anweisungen, was bei Nichtprimzahlen zu tun ist
    
                    {
                        ZeilenZeler++;
                        cout<<ZeilenZeler<<". "<<TestZahl<<" - "<<TeilerZeler<<" T. und TS. ="<<TeilerSumme<<endl;
                    for(auto it=TeilerSammler.begin();it!=TeilerSammler.end();it++)
                     {
                         //   cout<<*it;
                         //   if( it!=Teiler.end()-1 )
                         //   cout<<"+";
                       }
                        NichtTrivialeTeilerSumme=TeilerSumme-TestZahl-1;
                        // cout<<"= "<<TeilerSumme<<"=TS,"<<NichtTrivialeTeilerSumme<<"=NTTS.\n";
    
                        if ( std::find(std::begin(TeilerSummenSammler), std::end(TeilerSummenSammler), TeilerSumme) == std::end(TeilerSummenSammler) )
                            {
                                TeilerSummenSammler.push_back(TeilerSumme); //Wenn er in TeilerSummenSammler die Teilersumme nicht findet, fügt er die Teilersumme hinzu. Jetzt soll er noch einen Vector Contaier creiren mit dem Namen der Teilersumme.
                                // vector<vector<int> >TeilerSumme(Testzahl);
                                m[TeilerSumme] = TestZahl; // hier liest er in map ein die Werte
                               TeilerSummenZeler++;
                            }
    
                }
    
                TeilerZeler=0;
                TeilerSumme=0;
                TeilerSammler.clear();
                DivisionsZeler=0;
            }
    
    sort(TeilerSummenSammler.begin(),TeilerSummenSammler.end()); // Sortieren
    cout<<"Dies sind die existenten Teilersummen des Bereiches bis "<<Testende<< endl;
    
    for(auto it=TeilerSummenSammler.begin();it!=TeilerSummenSammler.end();it++)
                {
    //                TeilerZeler++;
    //                cout<<TeilerZeler<<". "<<*it<<" TZ="<<TestZahl<<"";
    //                cout<<" "<<endl;
                }
    
        for(map<int, int>::const_iterator itr(m.begin()); itr != m.end(); ++itr)
            cout << "TeilerSumme " << itr->first << " Vorkommen bei " << itr->second << endl;
    
    cout<<"Es gibt im Bereich von "<<Testbeginn<<" bis "<<Testende<<" genau "<<PrimZahlZeler<<" PrimZahlen und " <<TeilerSummenZeler<<" verschiedene Teilersummen.";
    
        return (0);
    }
    


  • 😮
    was hast du denn da verbock ... 😃

    Allgemeine Frage:
    Womit lernst du C++? 😃
    Eine wirklich sehr essentielle Frage! 🙂



  • Du sollst mich nicht verarschen, ich bastle an C++ rum ... bisher funktioniert es, was ich mache, nur er soll am Ende noch mehr Zahlen ausgeben ... und zwar alle, zu der eine Bestimmte Zahl Teilersumme ist .... kann doch nicht so schwer sein ... ich verzweifel langsam ... habe nur ein altes Buch von Dirk Louis, aber Multimap hat er nicht drinne



  • ICH verarsch dich ganz sicher nicht ... 😉
    Aber so wie das aussieht, hast du C++ weder verstanden, noch kannst du auf dem Wissen aufbauen.
    In deinem Code ist ALLES wild durcheinander. Da ist null System und es funktioniert auch nicht.
    Vergiss dein altes Buch und hol dir was vernünftiges, zb: http://www.amazon.de/Der--Programmierer-Professionell-anwenden-Lösungen/dp/3446426914/ref=sr_1_1?ie=UTF8&qid=1382810529&sr=8-1&keywords=der+c%2B%2B+programmierer
    Und das arbeitest du von Anfang an durch.

    Vergiss diesen ganze Schnick Schnack.. Deine Aufgabe kannst du mit den basalsten Methoden lösen. Du brauchst weder Maps, noch Iteratoren, noch sonstiges ...
    Irgendwas musst du ja bisher gelernt haben? Bleibe erstmal nur bei den Mitteln und liefer einen sauberen compilierfähigen Code ab.

    Musst du deinen Code abgeben?



  • Warum sagts Du, er läuft nicht?

    Hier der Auswurf:
    1. 1 - 1 T. und TS. =1
    2. 4 - 3 T. und TS. =7
    3. 6 - 4 T. und TS. =12
    4. 8 - 4 T. und TS. =15
    5. 9 - 3 T. und TS. =13
    6. 10 - 4 T. und TS. =18
    7. 12 - 6 T. und TS. =28
    8. 14 - 4 T. und TS. =24
    9. 15 - 4 T. und TS. =24
    10. 16 - 5 T. und TS. =31
    11. 18 - 6 T. und TS. =39
    12. 20 - 6 T. und TS. =42
    13. 21 - 4 T. und TS. =32
    14. 22 - 4 T. und TS. =36
    15. 24 - 8 T. und TS. =60
    16. 25 - 3 T. und TS. =31
    17. 26 - 4 T. und TS. =42
    18. 27 - 4 T. und TS. =40
    19. 28 - 6 T. und TS. =56
    20. 30 - 8 T. und TS. =72
    21. 32 - 6 T. und TS. =63
    22. 33 - 4 T. und TS. =48
    23. 34 - 4 T. und TS. =54
    24. 35 - 4 T. und TS. =48
    25. 36 - 9 T. und TS. =91
    26. 38 - 4 T. und TS. =60
    27. 39 - 4 T. und TS. =56
    28. 40 - 8 T. und TS. =90
    29. 42 - 8 T. und TS. =96
    30. 44 - 6 T. und TS. =84
    31. 45 - 6 T. und TS. =78
    32. 46 - 4 T. und TS. =72
    33. 48 - 10 T. und TS. =124
    34. 49 - 3 T. und TS. =57
    35. 50 - 6 T. und TS. =93
    36. 51 - 4 T. und TS. =72
    37. 52 - 6 T. und TS. =98
    38. 54 - 8 T. und TS. =120
    39. 55 - 4 T. und TS. =72
    40. 56 - 8 T. und TS. =120
    41. 57 - 4 T. und TS. =80
    42. 58 - 4 T. und TS. =90
    43. 60 - 12 T. und TS. =168
    44. 62 - 4 T. und TS. =96
    45. 63 - 6 T. und TS. =104
    46. 64 - 7 T. und TS. =127
    47. 65 - 4 T. und TS. =84
    48. 66 - 8 T. und TS. =144
    49. 68 - 6 T. und TS. =126
    50. 69 - 4 T. und TS. =96
    51. 70 - 8 T. und TS. =144
    52. 72 - 12 T. und TS. =195
    53. 74 - 4 T. und TS. =114
    54. 75 - 6 T. und TS. =124
    55. 76 - 6 T. und TS. =140
    56. 77 - 4 T. und TS. =96
    57. 78 - 8 T. und TS. =168
    58. 80 - 10 T. und TS. =186
    59. 81 - 5 T. und TS. =121
    60. 82 - 4 T. und TS. =126
    61. 84 - 12 T. und TS. =224
    62. 85 - 4 T. und TS. =108
    63. 86 - 4 T. und TS. =132
    64. 87 - 4 T. und TS. =120
    65. 88 - 8 T. und TS. =180
    66. 90 - 12 T. und TS. =234
    67. 91 - 4 T. und TS. =112
    68. 92 - 6 T. und TS. =168
    69. 93 - 4 T. und TS. =128
    70. 94 - 4 T. und TS. =144
    71. 95 - 4 T. und TS. =120
    72. 96 - 12 T. und TS. =252
    73. 98 - 6 T. und TS. =171
    74. 99 - 6 T. und TS. =156
    TeilerSumme 1 Vorkommen bei 1
    TeilerSumme 7 Vorkommen bei 4
    TeilerSumme 12 Vorkommen bei 6
    TeilerSumme 13 Vorkommen bei 9
    TeilerSumme 15 Vorkommen bei 8
    TeilerSumme 18 Vorkommen bei 10
    TeilerSumme 24 Vorkommen bei 14
    TeilerSumme 28 Vorkommen bei 12
    TeilerSumme 31 Vorkommen bei 16
    TeilerSumme 32 Vorkommen bei 21
    TeilerSumme 36 Vorkommen bei 22
    TeilerSumme 39 Vorkommen bei 18
    TeilerSumme 40 Vorkommen bei 27
    TeilerSumme 42 Vorkommen bei 20
    TeilerSumme 48 Vorkommen bei 33
    TeilerSumme 54 Vorkommen bei 34
    TeilerSumme 56 Vorkommen bei 28
    TeilerSumme 57 Vorkommen bei 49
    TeilerSumme 60 Vorkommen bei 24
    TeilerSumme 63 Vorkommen bei 32
    TeilerSumme 72 Vorkommen bei 30
    TeilerSumme 78 Vorkommen bei 45
    TeilerSumme 80 Vorkommen bei 57
    TeilerSumme 84 Vorkommen bei 44
    TeilerSumme 90 Vorkommen bei 40
    TeilerSumme 91 Vorkommen bei 36
    TeilerSumme 93 Vorkommen bei 50
    TeilerSumme 96 Vorkommen bei 42
    TeilerSumme 98 Vorkommen bei 52
    TeilerSumme 104 Vorkommen bei 63
    TeilerSumme 108 Vorkommen bei 85
    TeilerSumme 112 Vorkommen bei 91
    TeilerSumme 114 Vorkommen bei 74
    TeilerSumme 120 Vorkommen bei 54
    TeilerSumme 121 Vorkommen bei 81
    TeilerSumme 124 Vorkommen bei 48
    TeilerSumme 126 Vorkommen bei 68
    TeilerSumme 127 Vorkommen bei 64
    TeilerSumme 128 Vorkommen bei 93
    TeilerSumme 132 Vorkommen bei 86
    TeilerSumme 140 Vorkommen bei 76
    TeilerSumme 144 Vorkommen bei 66
    TeilerSumme 156 Vorkommen bei 99
    TeilerSumme 168 Vorkommen bei 60
    TeilerSumme 171 Vorkommen bei 98
    TeilerSumme 180 Vorkommen bei 88
    TeilerSumme 186 Vorkommen bei 80
    TeilerSumme 195 Vorkommen bei 72
    TeilerSumme 224 Vorkommen bei 84
    TeilerSumme 234 Vorkommen bei 90
    TeilerSumme 252 Vorkommen bei 96
    Es gibt im Bereich von 0 bis 0 genau 25 PrimZahlen und 51 verschiedene Teilersummen.Program ended with exit code: 0

    funxioniert offensichtlich ...



  • so, hier mein code für zahlwörter. die vorgegebene englische policy funktioniert bis abs(n) < 999'999.99... korrekt (alles darüber dürfte einfach analog zu implementieren sein). die language-policy dürfte bisschen schwierig zu implementieren sein da man ausnahmen in der entsprechenden sprache speziell behandeln muss (siehe fifteen usw). ich hab im codebeispiel gerade eine eigene kleine accuaracy-policy gemacht um zu zeigen wie einfach und flexibel es ist.

    #include <cstddef>
    #include <string>
    #include <limits>
    #include <cmath>
    #include <iostream>
    namespace Numerals
    {
    	typedef ::std::size_t SizeType;
    	typedef ::std::string StringType;
    	struct BasicLanguagePolicy
    	{
    		virtual ~BasicLanguagePolicy()
    		{
    		}
    		virtual const StringType Digit(SizeType Index) const = 0;
    		virtual const StringType Number(SizeType Index) const = 0;
    		virtual const StringType Positive() const = 0;
    		virtual const StringType Negative() const = 0;
    		virtual const StringType Comma() const = 0;
    	};
    	struct LanguagePolicyEnglish : public BasicLanguagePolicy
    	{
    		virtual const StringType Digit(SizeType Index) const
    		{
    			switch(Index)
    			{
    			case 0:
    				return StringType("noutgh ");
    			case 1:
    				return StringType("one ");
    			case 2:
    				return StringType("two ");
    			case 3:
    				return StringType("three ");
    			case 4:
    				return StringType("four ");
    			case 5:
    				return StringType("five ");
    			case 6:
    				return StringType("six ");
    			case 7:
    				return StringType("seven ");
    			case 8:
    				return StringType("eight ");
    			default:
    				return StringType("nine ");
    			}
    		}
    		virtual const StringType Number(SizeType Index) const
    		{
    			if(Index < 10)
    			{
    				return this->Digit(Index);
    			}
    			else if(Index == 10)
    			{
    				return StringType("ten ");
    			}
    			else if(Index == 11)
    			{
    				return StringType("eleven ");
    			}
    			else if(Index == 12)
    			{
    				return StringType("twelve ");
    			}
    			else if(Index == 13)
    			{
    				return StringType("thirteen ");
    			}
    			else if(Index == 15)
    			{
    				return StringType("fifteen ");
    			}
    			else if(Index == 18)
    			{
    				return StringType("eighteen ");
    			}
    			else if(Index < 20)
    			{
    				StringType Temp(this->Digit(Index));
    				Temp.replace(Temp.size() - 1, 1, "teen ");
    				return Temp;
    			}
    			else if(Index < 100)
    			{
    				StringType Temp;
    				switch(Index / 10)
    				{
    				case 2:
    					Temp = "twenty";
    					break;
    				case 3:
    					Temp = "thirty";
    					break;
    				case 4:
    					Temp = "forty";
    					break;
    				case 5:
    					Temp = "fifty";
    					break;
    				default:
    					Temp = this->Digit(Index / 10);
    					Temp.replace(Temp.size() - 1, 1, "ty");
    					break;
    				}
    				SizeType Digit = Index % 10;
    				if(Digit != 0)
    				{
    					Temp.push_back('-');
    					Temp.append(this->Digit(Digit));
    				}
    				else
    				{
    					Temp.push_back(' ');
    				}
    				return Temp;
    			}
    			else if(Index < 1000)
    			{
    				StringType Temp(this->Digit(Index / 100));
    				Temp.append("hundert ");
    				Temp.append(this->Number(Index % 100));
    				return Temp;
    			}
    			else if(Index < 1000000)
    			{
    				StringType Temp(this->Number(Index / 1000));
    				Temp.append("thousand ");
    				Temp.append(this->Number(Index % 1000));
    				return Temp;
    			}
    			else
    			{
    				return StringType();
    			}
    		}
    		virtual const StringType Positive() const
    		{
    			return StringType();
    		}
    		virtual const StringType Negative() const
    		{
    			return StringType("minus ");
    		}
    		virtual const StringType Comma() const
    		{
    			return StringType("comma ");
    		}
    	};
    	template<class T>
    	struct BasicAccuracyPolicy
    	{
    		virtual ~BasicAccuracyPolicy()
    		{
    		}
    		virtual bool IsPositive(T const& Value) const
    		{
    			return Value > static_cast<T>(0);
    		}
    		virtual bool IsNegative(T const& Value) const
    		{
    			return Value < static_cast<T>(0);
    		}
    		virtual bool HasComma(T const& Value) const
    		{
    			if(::std::numeric_limits<T>::is_integer)
    			{
    				return false;
    			}
    			else
    			{
    				return static_cast<long>((Value - static_cast<long>(Value)) * ::std::pow(static_cast<double>(10), static_cast<int>(this->MaxDecimalPlaces()))) != 0;
    			}
    		}
    		virtual SizeType MaxDecimalPlaces() const
    		{
    			return 3;
    		}
    	};
    	template<class T, class LanguagePolicy, class AccuracyPolicy>
    	struct Numeral;
    	template<class T, class LanguagePolicy, class AccuracyPolicy>
    	::std::ostream& operator<< (::std::ostream&, Numeral<T, LanguagePolicy, AccuracyPolicy> const&);
    	template<class T, class LanguagePolicy = LanguagePolicyEnglish, class AccuracyPolicy = BasicAccuracyPolicy<T> >
    	struct Numeral : private LanguagePolicy, private AccuracyPolicy
    	{
    		friend ::std::ostream& operator<< <T, LanguagePolicy, AccuracyPolicy>(::std::ostream&, Numeral const&);
    		typedef T ValueType;
    		typedef LanguagePolicy LanguagePolicyType;
    		typedef AccuracyPolicy AccuracyPolicyType;
    		ValueType Value;
    		Numeral(ValueType const& Value = ValueType())
    			: Value(Value)
    		{
    		}
    		template<class RhsT, class RhsLanguagePolicy, class RhsAccuracyPolicy>
    		operator Numeral<RhsT, RhsLanguagePolicy, RhsAccuracyPolicy>() const
    		{
    			return Numeral<RhsT, RhsLanguagePolicy, RhsAccuracyPolicy>(this->Value);
    		}
    	};
    	template<class T, class LanguagePolicy, class AccuracyPolicy>
    	::std::ostream& operator<< (::std::ostream& Stream, Numeral<T, LanguagePolicy, AccuracyPolicy> const& Num)
    	{
    		if(Num.IsNegative(Num.Value))
    		{
    			Stream << Num.Negative();
    		}
    		if(Num.IsPositive(Num.Value))
    		{
    			Stream << Num.Positive();
    		}
    		T AbsValue = ::std::abs(Num.Value);
    		SizeType IntValue = static_cast<SizeType>(AbsValue);
    		Stream << Num.Number(IntValue);
    		if(Num.HasComma(AbsValue))
    		{
    			Stream << Num.Comma();
    			for(SizeType DecimalPlace = 0; DecimalPlace < Num.MaxDecimalPlaces(); DecimalPlace++)
    			{
    				Stream << Num.Digit(static_cast<SizeType>((AbsValue - IntValue) * ::std::pow(static_cast<double>(10), static_cast<int>(DecimalPlace + 1))) % 10);
    			}
    		}
    		return Stream;
    	}
    }
    template<class T>
    struct MoreDecimalPlaces : public Numerals::BasicAccuracyPolicy<T>
    {
    	virtual Numerals::SizeType MaxDecimalPlaces() const
    	{
    		return 5;
    	}
    };
    int main()
    {
    	Numerals::Numeral<int> MyInt = 523;
    	std::cout << MyInt << '\n';
    
    	Numerals::Numeral<signed> MySigned = -267301;
    	std::cout << MySigned << '\n';
    
    	Numerals::Numeral<double> MyFloat = 12.7348484974;
    	std::cout << MyFloat << '\n';
    
    	Numerals::Numeral<double, Numerals::LanguagePolicyEnglish, MoreDecimalPlaces<double> > MyFloatWithMoreDecimals = MyFloat;
    	std::cout << MyFloatWithMoreDecimals << '\n';
    
    	std::cin.get();
    }
    

    ausgabe:

    five hundert twenty-three 
    minus two hundert sixty-seven thousand three hundert one 
    twelve comma seven three four 
    twelve comma seven three four eight four
    

    kritik und anregungen erwünscht.



  • lol asdfasdfas
    ich dachte gerade "wtf, wo hat er denn das geklaut ... kann doch nicht sein" 😃
    Dann seh ich, dass DU das geschrieben hast und nicht Brax 😉

    brax schrieb:

    Warum sagts Du, er läuft nicht?

    Weil der Header #include <algorithm> fehlt ...
    Sei's drum .... Du brauchst diese Schnick Schnack Header nicht, um Programmieren zu verstehen und deine Aufgabe zu lösen. Weißt du überhaupt, was die einzelnen Funktionen alles können, die du da aufrufst?
    und dann der Umgang mit std:: oder deine globalen Variabeln oder oder oder ...
    Kauf das Buch. Ein gutgemeinte Rat! 🙂



  • brax schrieb:

    Warum sagts Du, er läuft nicht?

    Weißt du überhaupt, was die einzelnen Funktionen alles können, die du da aufrufst?
    [/quote]

    Also, er läuft .. das möchte ich mal festgestellt haben, auch wenn es nicht normgerecht programmiert ist ... nur habe ich eben Schwierigkeiten, die mir selbst gestellte Aufgabe zu erfüllen.

    Ich hab jetzt schon 3 Programmierbücher ...das beste war aus den 80-iger Jahren, Macroprogrammierung mit WordPerfect - das war gaut geschrieben, jede Funktion eine Seite mit Übungsbeispielen und so ... die modernen Bücher haben wenig Tabelle, viel Fließtext und sind für Leute geschrieben, die sich bemühen aus dem Programmieren eine Geheimsprache zu machen. Es werden tausend Begriffe für ein und dieselbe Sache eingeführt, alles halbenglisch und verklausuliert .... Beamtendeutsch ist dagegen noch Lyrik. Ich will ja auch kein Softwareexperte werden, nur ein bischen Spielen mit den Zahlen ....



  • Das es funktioniert ist ja schon mal ein guter Anfang.
    Die halbe Miete sozusagen.

    Wenn Du jetzt noch den überflüssigen Kram entfernst und dem ganzen eine Struktur gibst - mit Funktionen und lokalen statt globalen Variablen - hast Du viel gelernt.



  • Find ich schon mal gut alte Schachteln durch Teens zu ersetzen. Weiter so!

    Temp.replace(Temp.size() - 1, 1, "teen ");
    

Anmelden zum Antworten