Suche Script in beliebiger Sprache

  • Allgemein

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Suche Script in beliebiger Sprache

    Suche ein möglichst einfaches Script, dass mir den mathematischen Ausdruck 2^2^2^2^2 ausgerechnet in eine txt kopiert.

    Also am besten iwas was ich direkt in windows ausführen kann. Kann mir einer so ein Programm machen?

    Wichtig: Das Programm sollte beliebig ausbaubar sein, d.h. ich will mich dann auch an 2^2^2^2^2^2 heranwagen!

    Greetz,
    Fireball
  • Klingt schwer nach Hausaufgabe ;)

    Naja habs mal in C++ gemacht:

    PHP-Quellcode

    1. std::string in = "2^2^2^2"; // Eingabe-Zeichenkette
    2. size_t pos = -1;
    3. long double result = 2.0f;
    4. // ^ suchen und pro gefundenes zeichen potenzieren
    5. while((pos = in.find_last_of("^")) != -1) {
    6. in.erase(pos); // dann zeichen löschen
    7. result *= result;
    8. }
    9. //Ergebnis in txt Datei schreiben
    10. std::ofstream outputFile("filename.txt", std::ios::out);
    11. outputFile << result;
    Alles anzeigen


    Müsstest du denke ich auch ganz einfach in eine andere Sprache übersetzen können...
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • Dankeschön! nee, is keine hausaufgabe^^ ... hatte aber info von der 9. bis 13. Klasse in der Schule
    Geht um ne Wette mit nem Kollegen.
    Wie kann ich das Programm nun ausführen? Muss ich das erst kompilieren? Wenn ja, wie?
    Ich kann nur Java und Logo^^

    PS: Also ich weiss, dass 2^2^2^2^2 inner ASCII-Textdatei ca. 19 KB groß ist. Meint ihr 2^2^2^2^2^2 (also ein ^2 mehr) passt noch auf ne 250 GB HDD?^^
  • Wenn du Java kannst, schreibst in java um... die Syntax ist doch fast die selbe... Das prinzip bleibt ja gleich...

    An sonsten musst du dir nen c++ compiler installieren und den source damit kompilieren... z.B. Code::Blocks (IDE), DevC++ (IDE), MS Visual Studio (IDE), MinGW (Kommandozeilen compiler), GCC (Kommandozeilen compiler)...
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • Fireball schrieb:

    wie soll ichs in java umschreiben, wenn ich die syntax von c++ nicht verstehe?^^


    -> Java

    PHP-Quellcode

    1. String expression = new String("2^2^2^2");
    2. StringBuffer in = new StringBuffer(expression);
    3. int pos = -1;
    4. long result = 2;
    5. while((pos = expression.lastIndexOf("^")) != -1) {
    6. in.delete(pos, expression.length());
    7. expression = in.toString();
    8. result *= result;
    9. }
    10. try{
    11. // Create file
    12. BufferedWriter out = new BufferedWriter(new FileWriter("out.txt"));
    13. out.write(result);
    14. //Close the output stream
    15. out.close();
    16. }catch (Exception e){//Catch exception if any
    17. System.err.println("Error: " + e.getMessage());
    18. }
    Alles anzeigen


    Ich find da gibts schon ne gewisse ähnlichkeit... ;)
    Der javacode ist nicht getestet, müsste aber theoretisch so klappen

    *edit*
    Die fehler kommen weil ich nur den relevanten programmauszug gepostet habe, damit das kompiliert wird musst du das so einfügen:

    PHP-Quellcode

    1. #include <string>
    2. #include <fstream>
    3. int main() {
    4. /* Ab hier den code von oben */
    5. /* copy and paste */
    6. return 0;
    7. }
    Alles anzeigen
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • ich glaub wir ham in der schule nur mist gelernt. Und ich hab mich immer gewundert warum das da alles so einfach war^^
    von dem hier versteh ich nix^^
    aber auch wenn ich filename.txt mit C:\filename.txt ersetze, finde ich da nix.

    Quellcode

    1. std::ofstream outputFile("C:\filename.txt", std::ios::out);


    Hab das Script über Dev-C++ gestartet.

    //edit:
    aaah doch, ich habs gefunden^^

    //edit²:
    Nächste Prob^^
    Das Script gibt 4.29497e+009 aus.
    Ich brauch aber alles hintereinander geschrieben! Ohne Potenzen etc.
  • Hä? Klar passt das Ergebnis... rechne das mal mim Taschenrechner, da komm ich auf das selbe Ergebnis

    19.000 Stellen? Wie kommst du denn auf so eine idee?

    *edit*
    Ach, ok, jetzt seh ich wo evtl. mein verständnis problem war...
    So muss das verstanden werden.... 2^(2^(2^(2^2)))
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • Ok, das ist wiederum nicht so leicht umzusetzen.

    long double ist in c++ der variablentyp mit dem größt möglichen Wertebereich:
    1.9E-4951 .. 1.1E4932 (kann auf verschiedenen Systemen variieren)

    Programme wie derive oder maple benutzen spezielle Datentypen um diese riesigen werte berechnen zu können. Standardmäßig ist so ein Typ in c++ nicht vorhanden, es gibt da allerdings bibliotheken die einem solche Möglichkeiten geben (z.B. The GNU MP Bignum Library )

    Ich kann morgen vielleicht mal schauen das ich die lib eingebunden bekomme und dann das programm abänder, allerdings wird daas deutlich komplizierter für dich ohne c++ Kenntnisse...

    *edit*
    Es kann sein das Java schon solche Klassen für BigNumbers bereit stellt
    *edit2*
    In Java gibt es eine Klasse: BigInteger - Die sollte eine solche genauigkeit hinbekommen

    *edit3*
    Hier die (diesmal hoffentlich) korrekte Java Lösung:

    PHP-Quellcode

    1. import java.io.BufferedWriter;
    2. import java.io.FileWriter;
    3. import java.math.BigInteger;
    4. public class Main {
    5. public static void main(String args[]) {
    6. String expression = new String("2^2^2^2^2");
    7. StringBuffer in = new StringBuffer(expression);
    8. int pos = -1;
    9. BigInteger x = new BigInteger("2");
    10. BigInteger result = new BigInteger("2");
    11. while((pos = expression.lastIndexOf("^")) != -1) {
    12. in.delete(pos, expression.length());
    13. expression = in.toString();
    14. result = x.pow(result.intValue());
    15. }
    16. try{
    17. BufferedWriter out = new BufferedWriter(new FileWriter("c:\\out.txt"));
    18. out.write(result.toString());
    19. out.close();
    20. }catch (Exception e){
    21. System.err.println("Error: " + e.getMessage());
    22. }
    23. }
    24. }
    Alles anzeigen
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]