Ankündigung

Einklappen
Keine Ankündigung bisher.

Array(Feld) deklarieren und die anzahl der Arrays später bestimmen

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Array(Feld) deklarieren und die anzahl der Arrays später bestimmen

    Guten Tag.
    Ich bin ein Blutiger Anfänger und soll ein Programm schreiben was Dezimalzahlen in Dualzahl und Dualzahlen in Dezimalzahlen umrechnet.
    Die Funktion für die umrechnung von Dezimalzahlen in Dualzahlen habe ich schon fertig, war einfach.
    Aber die Funktion von Dualzahlen in Dezimalzahlen, da hänge ich noch fest und werde mir nicht schlüssig wie ich das am besten schreibe.
    Weil wenn ich das über eine normale Variable wie int oder long mache ist irgendwann mal schluss und der wertebereich überrundet sich, also fängt wieder bei null an(unsinged).
    Daher wollte ich das über ein Array deklarieren zb. dual[index]. Wo die anzahl der Arrays bei der eingabe des Anwenders bestimmt wird. Damit die Dualzahl zb. 1111 1111 1111 1111
    nicht so wie sie jetzt da steht bearbeitet wird. Sonder die einzelnen 1 en einzeln bearbeitet werden.
    Mein Algorithmus wäre ungefähr so:
    1. Variable dual als Feld deklarieren int dual[index];
    Anzahl der Felder noch nicht bestimmt
    2. Einlesen der Werte in die einzelnen Felder, jede Eingabe ist auch gleich bestätigung ohne Enter. Solange bis er ohne Wert enter eingibt.
    3. Bei der eingabe auch die Anzahl der Felder bestimmen.

    Wäre super wenn jemand mir da mal einen Anstoss geben würde. Wie gesagt bin noch blutiger Anfänger.

    Gruß Martin

  • #2
    Hallo!

    Du hast leider nicht erwähnt, ob du in C oder C++ programmierst.

    Daher mal allggemein:

    PHP-Code:
    #include <iostream>
    #include <cmath>

    using namespace std;

    int BinaryToDecimal(long long);

    int main()
    {
        
    long long n;

        
    cout << "Enter a binary number: ";
        
    cin >> n;

        
    cout << << " in binary = " << BinaryToDecimal(n) << "in decimal";
        return 
    0;
    }

    int BinaryToDecimal(long long n)
    {
        
    int decimalNumber 00remainder;
        while (
    n!=0)
        {
            
    remainder n%10;
            
    /= 10;
            
    decimalNumber += remainder*pow(2,i);
            ++
    i;
        }
        return 
    decimalNumber;

    PHP-Code:
    #include <iostream>
    #include <cmath>
    using namespace std;

    long long DecimalToBinary(int);

    int main()
    {
        
    int nbinaryNumber;

        
    cout << "Enter a decimal number: ";
        
    cin >> n;
        
    binaryNumber DecimalToBinary(n);
        
    cout << << " in decimal = " << binaryNumber << " in binary" << endl ;
        return 
    0;
    }

    long long DecimalToBinary(int n)
    {
        
    long long binaryNumber 0;
        
    int remainder1step 1;

        while (
    n!=0)
        {
            
    remainder n%2;
            
    cout << "Step " << step++ << ": " << << "/2, Remainder = " << remainder << ", Quotient = " << n/<< endl;
            
    /= 2;
            
    binaryNumber += remainder*i;
            
    *= 10;
        }
        return 
    binaryNumber;

    Zuletzt geändert von R. Fischer; 17.03.2019, 12:11.

    Kommentar


    • #3
      Also dann brauche ich für die duale Zahl kein Array deklarieren. Aber noch nicht ganz verstehe was diese zeile bewirkt: decimalNumber += remainder*pow(2,i);
      ++
      i;

      könnest du mir das kurz erklären.

      Gruß Martin

      Kommentar


      • #4
        Achso. C++ schreibe ich.

        Kommentar


        • #5
          Hi pro_maddin1981!

          Wenn du ohnehin mit C++ arbeitest, warum verwendest du dann nicht die STL?

          Genauer gesagt std::bitset.

          https://en.cppreference.com/w/cpp/utility/bitset/bitset

          PHP-Code:
          #include <bitset>
          #include <string>
          #include <iostream>
          #include <climits>

          int main()
          {
              
          // empty constructor
              
          std::bitset<8b1// [0,0,0,0,0,0,0,0]

              // unsigned long long constructor
              
          std::bitset<8b2(42);          // [0,0,1,0,1,0,1,0]
              
          std::bitset<70bl(ULLONG_MAX); // [0,0,0,0,0,0,1,1,1,...,1,1,1] in C++11
              
          std::bitset<8bs(0xfff0);      // [1,1,1,1,0,0,0,0]

              // string constructor
              
          std::string bit_string "110010";
              
          std::bitset<8b3(bit_string);       // [0,0,1,1,0,0,1,0]
              
          std::bitset<8b4(bit_string2);    // [0,0,0,0,0,0,1,0]
              
          std::bitset<8b5(bit_string23); // [0,0,0,0,0,0,0,1]

              // string constructor using custom zero/one digits
              
          std::string alpha_bit_string "aBaaBBaB";
              
          std::bitset<8b6(alpha_bit_string0alpha_bit_string.size(),
                                
          'a''B');         // [0,1,0,0,1,1,0,1]

              // char* constructor using custom digits
              
          std::bitset<8b7("XXXXYYYY"8'X''Y'); // [0,0,0,0,1,1,1,1]

              
          std::cout << b1 << '\n' << b2 << '\n' << bl << '\n' << bs << '\n'
                        
          << b3 << '\n' << b4 << '\n' << b5 << '\n' << b6 << '\n'
                        
          << b7 << '\n';

          cu

          Kommentar


          • #6
            Hallo.
            Gute frage. Aber kannst du ja nicht wissen, aber soweit bin ich noch garnicht. Das mit dem std hat mich einwenig verwirrt, aber das kann man ja schreiben wie man will. Ich schreib oben unter den einführen der headerdateien immer using namespace std;. Ich schau gleich mal in mein schlaues Buch. Weil laut den Studienunterlagen war das noch nicht dranne.

            Besten dank. Bei weiteren fragen würde ich mich gern nochmal an die wenden.

            Gruß Martin

            Kommentar

            Lädt...
            X