示例#1
0
    def impartiriSuccesive():
        """
            Citeste o baza si un numar in acea baza
            Citeste baza destinatie, baza care este mai mica decat baza in care a fost citit numarul
            Gesticuleaza procesul de convertire a numarul in baza destinatie folosind algoritmul de impartiri succesive

        """
        print("\nNumarul: ".upper())
        mesaj_citire = "Citeste o baza strict mai mare decat 2: "
        mesaj_atentionare = "\n           Baza sursa trebuie sa fie un numar strict mai mare decat 2, dar mai mic decat egal decat 16\n".upper(
        )
        baza = Console.citesteBaza(mesaj_citire, mesaj_atentionare, 3, 16)
        numar = Console.citesteInstanta(baza)
        numar = Operatii(numar[0], numar[1])
        nr = Console.fromList_toString(numar.getNumar())
        bz = numar.getBaza()

        print("\nbaza destinatie: ".upper())
        mesaj1 = "Citeste o baza mai mica decat baza sursa in care vrei sa fie convertit rezultatul: "
        mesaj2 = "\n           Baza trebuie sa fie un numar mai mic decat baza numarului citit si mai mare egala decat 2\n".upper(
        )
        baza = Console.citesteBaza(mesaj1, mesaj2, 2, numar.getBaza())

        numar = Conversii.impartiriSuccesive(numar, baza)
        #return "Rezultatul este: {}".format(Console.fromList_toString(numar))
        return "\nREZULTAT: {}({})  = {}({})".format(
            nr, bz, Console.fromList_toString(numar), baza)
示例#2
0
    def substitutie():
        """

            Apeleaza functiile de converitire a unui numar dintr-o baza mai mica intr-o alta mare prin substitutie.
        """

        print("\nNumarul: ".upper())
        mesaj_citire = "Citeste o baza strict mai mica decat 16: "
        mesaj_atentionare = "\n           Baza sursa trebuie sa fie un numar strict mai mic decat 16, dar mai mare sau egal decat 2\n".upper(
        )
        baza = Console.citesteBaza(mesaj_citire, mesaj_atentionare, 2, 15)
        numar = Console.citesteInstanta(baza)
        numar = Operatii(numar[0], numar[1])
        nr = Console.fromList_toString(numar.getNumar())
        bz = numar.getBaza()

        print("\nbaza destinatie: ".upper())
        mesaj1 = "Citeste o baza mai mare decat baza data in care vrei sa fie convertit numarul: "
        mesaj2 = "\n           Baza trebuie sa fie un numar mai mare decat baza numarului citit si mai mica  sau egala decat 16\n".upper(
        )
        baza = Console.citesteBaza(mesaj1, mesaj2, numar.getBaza(), 16)

        numar = Conversii.substitutie(numar, baza)
        #return "Rezultatul este: {}".format(Console.fromList_toString(numar))
        return "\nREZULTAT: {}({})  = {}({})".format(
            nr, bz, Console.fromList_toString(numar), baza)
示例#3
0
    def impartire():
        """
            Imparteste un numar care se afla intr-o baza de la 2 la 16, la o cifra care se afla in aceeazi baza ca numarul.

        """
        print("\nNumarul: ".upper())
        numar = Console.citesteInstanta()
        numar = Operatii(numar[0], numar[1])

        nr = Console.fromList_toString(numar.getNumar())
        baza = numar.getBaza()

        while True:

            print("\nCifra: ".upper())
            cifra = Console.citesteCifra(numar.getBaza())
            if cifra == 0:
                print("\n           Cifra trebuie sa fie diferita de 0.\n".
                      upper())
            else:
                break

        rez = Operatii.impartire(numar, cifra)
        #return "Catul impartirii este {}, iar restul este {}".format(Console.fromList_toString(cifra[0]), cifra[1])
        return "\nREZULTAT: {}({}) / {}({}) = {} rest {}".format(
            nr, baza, cifra, baza, Console.fromList_toString(rez[0]), rez[1])
示例#4
0
    def scadere():
        """
            Scaderea a noua numere in baze identice sau diferite, si afisarea rezultatului intr-o a treia baza.
            Se face verificarea ca descazutul sa fie mai mare decat scazatorul, altfel utilizatorul este atentionat cu un mesaj.
        """
        print("\nDescazutul: ".upper())
        numar1 = Console.citesteInstanta()
        numar1 = Operatii(numar1[0], numar1[1])

        while True:
            try:

                print("\nScazatorul: ".upper())
                numar2 = Console.citesteInstanta()
                numar2 = Operatii(numar2[0], numar2[1])
                print("\nBaza destinatie: ".upper())
                baza = Console.citesteBaza(
                    "Cisteste o baza in care vrei sa se afle rezultatul: ")

                nr1 = Console.fromList_toString(numar1.getNumar())
                nr2 = Console.fromList_toString(numar2.getNumar())
                baza1 = numar1.getBaza()
                baza2 = numar2.getBaza()

                numar1 = Console.converteste(numar1, baza)
                numar2 = Console.converteste(numar2, baza)
                Validator.compare(numar1.getNumar(), numar2.getNumar())
                break
            except ValueError as msg:
                print(msg)

        #return "Rezultatul scaderii este: {}".format(Console.fromList_toString(Operatii.scadere(numar2, numar1)))
        return "\nREZULTAT: {}({}) - {}({}) = {}({})".format(
            nr1, baza1, nr2, baza2,
            Console.fromList_toString(Operatii.scadere(numar2, numar1)), baza)
示例#5
0
    def adunare():
        """
           Adunarea a doua numere naturale intr-o baza citita de la tastatura(2-16).
           Numerele pot sa fie in aceeasi baza sau nu.
        """
        print("\nPrimul numar: ".upper())
        numar1 = Console.citesteInstanta()
        numar1 = Operatii(numar1[0], numar1[1])

        print("\nAl doilea numar: ".upper())
        numar2 = Console.citesteInstanta()
        numar2 = Operatii(numar2[0], numar2[1])

        print("\nBaza destinatie: ".upper())
        baza = Console.citesteBaza(
            "Citeste o baza destinatie de la 2 la 16 in care vrei sa se afle rezultatul: "
        )

        nr1 = Console.fromList_toString(numar1.getNumar())
        nr2 = Console.fromList_toString(numar2.getNumar())
        baza1 = numar1.getBaza()
        baza2 = numar2.getBaza()

        numar1 = Console.converteste(numar1, baza)
        numar2 = Console.converteste(numar2, baza)

        return "\nREZULTAT: {}({}) + {}({}) = {}({})".format(
            nr1, baza1, nr2, baza2,
            Console.fromList_toString(Operatii.adunare(numar1, numar2)), baza)
示例#6
0
    def inmultire():
        """
            Inmulteste un numar  care se afla intr-o baza de la 2 la 16, cu o cifra care se afla in aceeasi baza ca numarul.
        """
        print("\nNumarul: ".upper())
        numar = Console.citesteInstanta()
        numar = Operatii(numar[0], numar[1])
        nr = Console.fromList_toString(numar.getNumar())
        baza = numar.getBaza()

        print("\nCifra: ".upper())
        cifra = Console.citesteCifra(numar.getBaza())

        #return "Rezultatul inmultirii este: {}".format(Console.fromList_toString(Operatii.inmultire(numar,cifra)))
        return "\nREZULTAT: {}({}) * {}({}) = {}({})".format(
            nr, baza, cifra, baza,
            Console.fromList_toString(Operatii.inmultire(numar, cifra)), baza)
示例#7
0
    def bazaIntermediara():
        """
            Citeste o baza(2-16) si un numar in aceeasi baza
            Citeste o baza destinatie cuprinsa intre 2 si 16
            Gesticuleaza procesul de convertire a numarului folosindu-se de algoritmul de convertire folosind o baza intermediara
        :return:
        """

        print("\nNumarul: ".upper())
        numar = Console.citesteInstanta()
        numar = Operatii(numar[0], numar[1])
        nr = Console.fromList_toString(numar.getNumar())
        bz = numar.getBaza()

        print("\nbaza destinatie: ".upper())
        baza = Console.citesteBaza(
            "Citeste o baza de la 2 la 16 in care vrei sa se afle numarul: ")

        numar = Conversii.conversieBazaIntermediara(numar, baza)
        #return "Rezultatul este: {}".format(Console.fromList_toString(numar))
        return "\nREZULTAT: {}({})  = {}({})".format(
            nr, bz, Console.fromList_toString(numar), baza)