An was programmiert ihr gerade so?



  • naja nee, is dumm wenn die Server grad mal down sind oder sonnst was... sicher ist sicher. Zudem is das Ding schon fertsch.. mach grad Probelauf (seit 4 Stunden) mit ner 500kb Wortliste *freu* problem ist dabei nur das Denic bei zu vielen Anfagen den Dienst verweigert, von daher gehts halt langsam. Aber ich bin ja noch jung, ich kann ja warten 😃

    //Edit Zudem ist was ich progge stehts nur eine Lösung persönlicher Probs. Wenn mal was gutes bei raus kommen sollte geb ichs ja auch gern weiter aber in erster Linie progge ich nur aus "bequemlichkeit" *wie konfus* 😉



  • Die meiste Zeit verbringe ich mit OWBasic, einem BASIC-Compiler/Interpreter für den CASIO PV. Im Moment bin ich dabei, Funktionszeiger und BREAK und CONTINUE für Schleifen zu implementieren.
    Ansonsten programmiere ich noch an ein paar OWBasic-Programmen auf dem PV.

    Moritz



  • So ein Zufall - programmiere auch gerade in der Freizeit an einem
    Basic Interpreter/Compiler. Habe dazu einen vorhandenen rudimentären Integer Basic
    Interpreter in vierlei Hinsicht "getunt", Floating Point, Mathe-Routinen usw.
    als nächstes kommen noch Strings, lokale Variablen hinzu und vielleicht
    Ganzzahl-Arithmetik mit beliebig langen Zahlen und FP mit beliebig hoher
    Genauigkeit.

    Ich brauche das nämlich immer wieder mal zum Schreiben kleinerer
    Mathe-Hilfsprogramme und habe keine Lust, für jede lineare Regression oder Umrechnung von dB in Prozent gleich ein C- oder Mathematica-Programm zu schreiben.



  • B. Dynbreth schrieb:

    Ich brauche das nämlich immer wieder mal zum Schreiben kleinerer
    Mathe-Hilfsprogramme und habe keine Lust, für jede lineare Regression oder Umrechnung von dB in Prozent gleich ein C- oder Mathematica-Programm zu schreiben.

    Warum nicht? Bei so kleinen Hilfsprogrammen ist die Sprache aus meiner Sicht nahezu völlig egal. Ich habe mir damals mein Programm zur linearen Regression in Java geschrieben. Zeig mal, inwiefern so ein Programm leichter mit Basic geschrieben werden kann.

    import java.io.*;
    import java.util.*;
    
    public class Regression
    {
       public static void main (String [] args)
       {
          do
          {
             doRegression();
             System.out.println();
             System.out.print("Nochmal? (yes/no) : ");
          } while (read().equals("yes"));
    
       }
    
       public static void doRegression()
       {
          LinkedList<Double> xList = new LinkedList<Double>();
          LinkedList<Double> yList = new LinkedList<Double>();
          String currentValue = null;
          do
          {
             System.out.print("Bitte nächsten x-Wert eingeben : ");
             currentValue = read();
             if (currentValue.equals("")) break;
             double x = Double.parseDouble(currentValue);
             System.out.print("Bitte nächsten y-Wert eingeben : ");
             currentValue = read();
             if (currentValue.equals("")) break;
             double y = Double.parseDouble(currentValue);
             xList.add(x);
             yList.add(y);
          } while (!currentValue.equals(""));
    
          int count = xList.size();
          double [] xArray = new double [count];
          double [] yArray = new double [count];
          int i = 0;
          for (Double value : xList)
          {
             xArray[i] = value;
             ++i;
          }
          i = 0;
          for (Double value : yList)
          {
             yArray[i] = value;
             ++i;
          }
    
          double xSum = 0;
          double ySum = 0;
          for (i = 0 ; i < xArray.length ; ++i)
          {
             System.out.println ((i+1) + ". x = " + xArray[i] + " y = " + yArray[i]);
             xSum += xArray[i];
             ySum += yArray[i];
          }
          double xMean = xSum / (double)xArray.length;
          double yMean = ySum / (double)yArray.length;
          System.out.println ("x Durchschnitt : " + xMean);
          System.out.println ("y Durchschnitt : " + yMean);
    
          double b1 = 0;
          double b2 = 0;
          for (i = 0 ; i < xArray.length ; ++i)
          {
             b1 += xArray[i]*yArray[i];
             b2 += xArray[i]*xArray[i];
          }
          b1 -= ((double)xArray.length)*xMean*yMean;
          b2 -= ((double)xArray.length)*xMean*xMean;
          double b = b1 /b2;
          double a = yMean - b*xMean;
          System.out.println ("Geradengleichung : " + b + " * x + " + a);
    
          double sb1 = 0;
          double sb2 = 0;
          double sa1 = 0;
          for (i = 0 ; i < xArray.length ; ++i)
          {
             sb1 += (yArray[i] - b *xArray[i] - a) * (yArray[i] - b *xArray[i] - a);
             sb2 += (xArray[i] - xMean) * (xArray[i] - xMean);
             sa1 += xArray[i] * xArray[i];
          }
          double sb = sb1 / (((double)xArray.length - 2) * sb2);
          double sa = sb * sa1 / (double)xArray.length;
          sb = Math.sqrt(sb);
          sa = Math.sqrt(sa);
          System.out.println ("Standardabweichung der Steigung : " + sb);
          System.out.println ("Standardabweichung des y-Achsen-Abschnittes : " + sa);
       }
    
       public static String read()
       {
          try
          {
             BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
             return reader.readLine();
          }
          catch (IOException e)
          {
          }
          return null;
       }
    }
    


  • Hi, ich progge momentan an einem Programm.



  • gregor:
    das geht allerdings kürzer in Basic. Es fallen schon alle "double", "static",
    "void", "int" etc.. weg, Funktionsnamen werden zu Zeilennummern,
    da ist das Programm schon nur noch halb so lang. "PRINT X=..." ist halt kürzer
    als system.out.prinln(...).

    Mal eben eine Rekursion zu programmieren oder einen Dreizeiler für irgendeine
    Umrechnung oder Summe fällt mir in Basic leichter als in Java oder C++ und
    kürzer ist es in Basic auf jeden Fall.

    Außerdem will ich als übernächstes in mein Basic eine Ganzzahl-Arithmetik beliebiger Länge einbauen,
    damit erweitert sich die Anwendbarkeit als "programmierbarer
    High-End Taschen-Rechner" für mich nochmal erheblich.

    Natürlich habe ich nicht vor, Computer-Algebra-Software oder ein Statistik-Paket
    in Basic zu programmieren - Prinzip: für jedes Problem die Sprache, mit der
    man am schnellsten zum zufriedenstellenden Ergebnis kommt.
    Für einen Dreizeiler um einen Fixpunkt einer Funktion auszurechnen, will
    ich nicht groß mit "#include<math> using namespace std static public main...."
    und solchem Zinnober Zeit verschwenden.

    Grüße



  • @B. Dynbreth: Kann ich immer noch nicht nachvollziehen. Letztendlich sind das doch Programme, die man in nahezu allen Sprachen einfach mal auf die Schnelle runterprogrammieren kann, ohne dass sich einem auch nur das geringste Problem stellt. Wenn das in Basic ein bischen kürzer ist, dann bringt einem das vielleicht eine Zeitersparnis von 2 Minuten bei 30 Minuten Programmierzeit. Das ist nichts, was in meinen Augen einen nennenswerten Unterschied macht. Ich würde da immer die Sprache nehmen, die einem am geläufigsten ist. Für die meisten hier wird das wohl C++ sein. Wenn es bei dir Basic ist, dann ist das auch ok. Aber es gibt aus meiner Sicht keinen allgemeingültigen Grund Basic hier gegenüber anderen Sprachen zu bevorzugen.

    Ok, aber wir kommen wohl vom Thema ab (meine Schuld, sorry). Hier wollten glaube ich noch ein paar Leute ihre aktuellen Projekte vorstellen.



  • Gregor:
    Die Menschen sind eben verschieden; da es sich bei den bei mir öfter mal
    anfallenden Nebenrechnungen um Sachen wie Invertieren von 2x2-Matrizen
    oder Fixpunkten reeller Fkt. handelt, die man mit Geduld und Taschenrechner
    auch mit Papier und Bleistift rechnen könnte, und nicht um Sachen, für die
    sich ein ausgefeiltes C++ Programm wirklich lohnen würde, ist es für mich
    eben schneller, so was in ein paar Zeilen Basic zu machen; wenn Du lieber
    Java oder C++ dazu nimmst: prima! Mir ist der formale Aufwand "#include<cmath>" usw. dabei nur ein
    bischen hoch; das fällt mit einem passenden Basic-Dialekt ja fast alles weg bis auf
    die reine Rechenvorschrift - und darum geht es mir eigentlich.



  • Ich hab grad für mein Studium nen kleines Programm fertig gestellt das die Einstellwinkel für eine Satellitenempfangsanlage für geostationäre Satelliten aus gegebenen Positionen für Beobachter und Satelliten berechnet. Nichts großes, sind nur 1600 Zeilen Code. Momentan spiele ich nen bissle mit Comega rum, diese Konzeptsprache fasziniert mich grad und hoffe echt stark das einiges davon in C# 3.0 einfließen wird.

    using System;
    
    public class Test { 
    
    	public int* GetNumbers(int start, int end) {
    		for(int i = start; i < end; i++) {
    			yield return i;
    		}
    	}
    
    	public int* GetEvenNumbersXPathStyle() {
    		stream = GetNumbers(0,20);
    		return stream[it%2 == 0];
    	}
    
    	public int* GetEvenNumbersSqlStyle() {
    		return select it from GetNumbers(0,20) where it%2 == 0;
    	}
    
        static void Main() {
            Test t = new Test();
            t.GetEvenNumbersXPathStyle().{ Console.WriteLine(it); };
            Console.WriteLine("\n");
            t.GetEvenNumbersSqlStyle().{ Console.WriteLine(it); };
            Console.ReadLine();
        }
    }
    

    Gibt zweimal die geraden Zahlen von 0-20 aus 🙂 Geil *sfg*



  • Ich habe gerade ein Hobby-Projekt auf der SEGA Dreamcast in Arbeit. Infos, Videos und Bildmaterial unter http://www.kharchi.de/dcscode/index.html


Anmelden zum Antworten