Seite 1 von 2

Exponent

Verfasst: Di, 16.04.2013 21:37
von erikafuchs
Hi Leute,
hat jemand eine Idee, wie ich einen beliebigen Exponenten ausgeben kann? Also z.B. mit print 10 hoch 7?
Grüße
Pit

Re: Exponent

Verfasst: Di, 16.04.2013 21:56
von F3K Total
Vielleicht so:

Code: Alles auswählen

print 10^7
Gruß R
EDIT: Die Eingabe ist unter Linux etwas schwierig, das Dach geht so: STRG + SHIFT + U5E also: print 10 -> STRG+SHIFT halten, U5E eintippen STRG+SHIFT loslassen, 7 eintippen
EDIT2: Es geht bei mir auch, indem ich die Circumflex-Taste zweimal nacheinander tippe. Bis 10^13 kommt 10000000000000 ab 10^14 : 1E+14

Re: Exponent

Verfasst: Di, 16.04.2013 22:27
von erikafuchs
Das wäre ja zu schön!
Leider ist oO schlau und rechnet das Ergebnis aus. Ich möchte aber eine Anzeige mit einem Exponenten (also dem Exponenten als hochgestellter Zahl).
Pit

Re: Exponent

Verfasst: Di, 16.04.2013 22:30
von F3K Total
Hallo Pit,
es wäre schön, wenn du schreiben würdest, was du als Ausgangsgröße hast und was du dann wo und wie ausgegeben haben möchtest.
Raten ist doof.
Gruß R

Re: Exponent

Verfasst: Di, 16.04.2013 22:41
von erikafuchs
Sorry - dann will ich das mal probieren:
Ich vermute, ich bin den Meisten hier schon mit meinem Rechenprogramm bekannt. Mein nächstes Projekt sind jetzt die Potenzgesetze. Ich erzeuge mit Zufallszahlen beliebige Aufgaben die die Schüler zusammenfassen müssen. Also z.B. Aufgabe: "2^5 * 2^3" -> Ergebnis "2^8". Das soll jetzt aber mit "richtigen" Eponenten (also hochgestellten Zahlen) dargestellt werden. (Ich weiss auch nicht, wie man diese Exponenten hier im Forum eingeben kann).
Besser so?
Pit

Re: Exponent

Verfasst: Di, 16.04.2013 23:24
von F3K Total
Besser, aber noch nicht gut,
F3K Total hat geschrieben:und was du dann wo und wie ausgegeben haben möchtest
Ich habe gerade probiert eine solche Darstellung in Calc hinzubekommen, es ist mir gelungen indem ich reinen Text in die Zelle geschrieben und diesen formatiert habe.
EX.png
EX.png (1.21 KiB) 2478 mal betrachtet
Die entsprechenden Eigenschaften der Zeichen sind:

Code: Alles auswählen

.CharEscapement
.CharEscapementHeight
Mit einer Writer Tabelle sehe den Vorteil, mit Zeichenvorlagen arbeiten zu können.
D.h. du erzeugst Basis und Exponenten und baust diese im Makro mit dem entsprechenden Cursor zu einem formatierten Text zusammen.

Gruß R

Re: Exponent

Verfasst: Mi, 17.04.2013 00:03
von Karolus
Hallo
Am einfachsten wird es sein eine Eingabe ala '5^8 zu tätigen und per S&E-Script das ^zeichen nebst den Ziffern danach durch das|die entsprechende|n Superscript-zeichen auszutauschen. Für einen erfahrenen Makrocoder wie Pit dürfte das ja kein Problem sein.
BTW.: hoch² und hoch³ liegen auf 'meiner' Linuxtastatur auf 'AltGr+2' bzw 'AltGr+3 ( die 2+3 über den Buchstaben )

Karolus

Re: Exponent

Verfasst: Mi, 17.04.2013 00:10
von erikafuchs
Besser, aber noch nicht gut
ok ... stimmt. Die Aufgabenstellung erfolgt im Textfeld eines Dialogs. Bei ² und ³ habe ich das bei ähnlichen Aufgaben hinbekommen, da die ja auch auf der Tastatur zu finden sind (na ja, beim Mac nicht), bei höheren Exponenten habe ich jetzt halt keine Ahnung wie ich die über ein Makrobefehl ausgebe. Die Antwort erfolgt auch in einem Textfeld - allerdings werde ich dann halt das Dach, also 2^3 anstelle von 2³- akkzeptieren müssen.

Re: Exponent

Verfasst: Mi, 17.04.2013 00:21
von erikafuchs
Für einen erfahrenen Makrocoder wie Pit
... vielen Dank für die Blumen, aber hier ist Quantität nicht Qualität. Nur weil ich ständig Fragen hier stelle, heißt das nicht, dass ich zu den Fortgeschrittenen gehöre. Das kann man ja auch daran sehen, dass ich immer nur Fragen stelle, aber bisher noch keine Fragen beantworten konnte.
per S&E-Script das ... Superscript-zeichen
... das kommt mir aus einer fernen Vergangenheit aus meinen Gehversuchen mit dBase bekannt vor. Kannst du mir das näher erklären?

Re: Exponent

Verfasst: Mi, 17.04.2013 00:31
von erikafuchs
was du dann wo und wie ausgegeben haben möchtest
also das auch noch sicherheitshalber - das könnte so aussehen:

Code: Alles auswählen

zahl1=fix(rnd()*10)
zahl2=fix(rnd()*10)
zahl3=fix(rnd()*10)
Aufgabe=zahl1 & "^" & zahl2 &" * " & zahl1 &"^" & zahl3 & " = ?"
print aufgabe
... Jetzt möchte ich halt nicht das Dach haben, sondern zahl2 und zahl3 sollen als Exponent dastehen.

Re: Exponent

Verfasst: Mi, 17.04.2013 08:35
von Karolus
Hallo

Code: Alles auswählen

import re

suprex = re.compile(r'\^(\d+)')

def su_repl( match):
    return to_sup( match.group(1))

def to_sup(s):
    sups = {u'0': u'\u2070',
            u'1': u'\xb9',
            u'2': u'\xb2',
            u'3': u'\xb3',
            u'4': u'\u2074',
            u'5': u'\u2075',
            u'6': u'\u2076',
            u'7': u'\u2077',
            u'8': u'\u2078',
            u'9': u'\u2079'}

    return ''.join(sups[ char ] for char in s)


def abc(event):
    t = event.Source.Text
    event.Source.setText( suprex.sub( su_repl, t ) )
 
Binde die Funktion abc an das Ereignis 'Modifiziert' des Textfeldes.

Apropos: Deine gezeigte Aufgabe in Python:

Code: Alles auswählen

from random import randint
a, b, c = [ randint(1,10) for _ in range(3)]
print u'{0:d}{1} * {0}{2} = '.format(a, to_sup(str(b)), to_sup(str(c))) 
Karolus

Re: Exponent

Verfasst: Mi, 17.04.2013 16:37
von F3K Total
Hallo,
hier noch ein Basic-Ansatz:

Code: Alles auswählen

Sub Main
    aUnicode = array(8304,185,178,179,8308,8309,8310,8311,8312,8313)
    for i = 0 to ubound (aUnicode)
        msgbox "2" & chr(aunicode(i))
    next i
End Sub
Gruß R

Re: Exponent

Verfasst: Mi, 17.04.2013 20:51
von erikafuchs
Lieber Karolus, prima, danke!
Lieber R
hier noch ein Basic-Ansatz:
= genial!
Pit

Re: Exponent

Verfasst: Mi, 17.04.2013 21:20
von Karolus
erikafuchs hat geschrieben:Lieber Karolus, prima, danke!
Lieber R
hier noch ein Basic-Ansatz:
= genial!
Pit
Hui, dann übersetz ich das mal geschwind :

Code: Alles auswählen

def main():
    for zahl in (8304, 185, 178, 179, 8308,
                 8309, 8310, 8311, 8312, 8313):
        print( u'2{0}'.format( unichr( zahl))) 
:lol:

Re: Exponent

Verfasst: Mi, 17.04.2013 21:20
von F3K Total
Hi,
ich wollte es ausprobieren, anbei ein verbesserungswürdiges Beispiel, was aber ohne Circumflex auskommt.
Gruß R