Autor | Thema |
---|---|
Tom
Grand Master of Rocketry
Registriert seit: Aug 2000 Wohnort: Neustadt Verein: T2 , SOL-1 Beiträge: 5257 Status: Offline |
Beitrag 110392
, Rechnen mit Bascom
[29. Dezember 2006 um 19:58]
Hallo Leute,
ich wollte eine Rechenoperation mit Bascom durchführen: otto = 1 / ((a+b)/2)*(c-d)+e durchführen. Was das jetzt machen soll sein mal dahingestellt. Das Problem ist aber scheinabr der Compiler von Bascom, denn er lässt es nicht zu, dass ich mehr als 2 Variablen gleichzeitig verarbeite und ich jede Zwischenrechnung in eine Hilfsvariable schreiben müsste ? Ist das so ? Gruß Tom |
CharlyMai
Foren-Prediger
Registriert seit: Mär 2005 Wohnort: Fuhrberg Verein: SOLARIS-RMB e.V. (P2;T2) / AGM / TRA#21598 Beiträge: 1977 Status: Offline |
Beitrag 110435
[30. Dezember 2006 um 12:01]
Ist so .....
viele Grüße, und einen guten Rutsch ... Pierre •"Der Glaube an eine bestimmte Idee gibt dem Forscher den Rückhalt für seine Arbeit. Ohne diesen Glauben wäre er verloren in einem Meer von Zweifeln und halbgültigen Beweisen." Konrad Zuse •Konstruiere ein System, das selbst ein Irrer anwenden kann, und so wird es auch nur ein Irrer anwenden wollen. SOLARIS-RMB e.V. AGM |
Tom
Grand Master of Rocketry
Registriert seit: Aug 2000 Wohnort: Neustadt Verein: T2 , SOL-1 Beiträge: 5257 Status: Offline |
Beitrag 110501
[31. Dezember 2006 um 14:08]
Zitat: hmmm.... dann werde ich mich durchringen und mich auch mal in C für µController versuchen... Schau mer mal. Gruß Tom |
Stefan Wimmer
Grand Master of Rocketry
Registriert seit: Aug 2000 Wohnort: Berlin Verein: Deutsche Experimental Raketen Arbeitsgruppe (DERA) Beiträge: 2398 Status: Offline |
Beitrag 110814
[04. Januar 2007 um 20:11]
Zitat: Jo, mach' mal! Da gehen dann problemlos auch solche Sachen: Temperature = (Beta / ((log(V_ADC/(V_ref-V_ADC))/log(exp(1))) + (Beta/T_amb))) - T_zero; (Das ist die Zeile, die aus dem ADC-Wert eines Spannungsteilers aus 10K Widerstand und 10K NTC die Temperatur berechnet - siehe die frühen Kurs-Bausatz Fotos. Ich bin ja mal gespannt, wie das dann in Bascom aussehen wird... ) It's the Government - it doesn't have to make sense! (B. Kaplow in r.m.r) |
hybrid
SP-Schnüffler Registriert seit: Mai 2005 Wohnort: Verein: Beiträge: 675 Status: Offline |
Beitrag 110821
[04. Januar 2007 um 21:05]
Ähm, Stefan?
Wenn ich mich nicht täusche kürzt sich "/log(exp(1))" zu "/1", was man auch kpl. weglassen kann Der Compiler bekommt das m.E. nicht wegoptimiert. Grüße Malte Geändert von hybrid am 04. Januar 2007 um 21:07 |
CharlyMai
Foren-Prediger
Registriert seit: Mär 2005 Wohnort: Fuhrberg Verein: SOLARIS-RMB e.V. (P2;T2) / AGM / TRA#21598 Beiträge: 1977 Status: Offline |
Beitrag 110836
[04. Januar 2007 um 23:07]
Zitat: Ich möchte mal behaupten, dass mindestens 30% der Kursteilnehmer nicht einmal wissen, was ein /log(ep(1)) ist ... ohne hier jemanden bestimmtes zu erwähnen. Weiterhin ist es eine EINFÜHRUNG in EINE LEICHT ZU ERLERNENDE Programmiersprache, wobei natürlich Kompromisse eingegangen werden müssen .... Weiterhin kann man (fast) jede Formel so zerlegen, dass nur noch 2 Variablen (3 mit Ergebnis) pro Schritt zur Berechnung notwendig sind. Dieses Bedeutet wiederum dass allgemeine Rechenregeln beherrscht sein müssen wie z.B. die Binomischen Formeln etc. Wer das ganze Später einmal auf ASSEMBLER-Basis Programmieren möchte (Die Sprache die der Prozessor WIRKLICH versteht) müsste die Formel sowieso so erweitern. NICHTS anderes macht der Compiler in C, wobei dann die Umsetzung von BASIC in ASSEMBLER wieder leichter fällt ...... (Um hier ausser dem Hochgelobten C auch einmal Assembler ins Spiel zu bringen) Pierre Geändert von CharlyMai am 04. Januar 2007 um 23:08 •"Der Glaube an eine bestimmte Idee gibt dem Forscher den Rückhalt für seine Arbeit. Ohne diesen Glauben wäre er verloren in einem Meer von Zweifeln und halbgültigen Beweisen." Konrad Zuse •Konstruiere ein System, das selbst ein Irrer anwenden kann, und so wird es auch nur ein Irrer anwenden wollen. SOLARIS-RMB e.V. AGM |
Neil
99.9% harmless nerd
Registriert seit: Aug 2000 Wohnort: Delft Verein: SOLARIS Beiträge: 7776 Status: Offline |
Beitrag 110856
[05. Januar 2007 um 08:45]
Hi,
das zerlegen der Formel in Teilformeln dient auch der Übersicht und der späteren Fehlersuche. So kann man sehr schnell mal ein Fehler einbauen bei der Verschachtelung. ( vor * vor -+. Gruß Neil Die Erde ist eine Scheibe. Egal in welche Richtung sich die Menschheit bewegt, sie geht immer auf einen Abgrund zu. |
hybrid
SP-Schnüffler Registriert seit: Mai 2005 Wohnort: Verein: Beiträge: 675 Status: Offline |
Beitrag 110862
[05. Januar 2007 um 13:03]
also bitte Neil...
Ich finde den Funktionsumfang von BASCOM wirklich sehr beachtlich, und einiges ist auch einfacher zu nutzen als z.B. in C, aber die Inkompetenz der BASCOM-Entwickler, einen funktionierenden Expression-Evaluator zu integrieren, so zu erklären, geht wirklich zu weit! Wenn man Formeln erst in Einzelterme runterbrechen muß, dann ist das kein Qualitäts und Sicherheitsgewinn für den Code, sondern das führt zu schlecht lesbarem/wartbarem Code und viel eher zu Fehlern. Das ist wirklich Aufgabe eines Compilers. Das heißt natürlich nicht, daß man seine Formeln VOR der Implementierung noch mal genau ansehen sollte. Grüße Malte PS: Ich möchte bitte denjenigen sehen, der Fließkommaarithmetik auf dem AVR in Assembler programmiert. Und den Code natürlich auch ! Geändert von hybrid am 05. Januar 2007 um 13:04 |
Neil
99.9% harmless nerd
Registriert seit: Aug 2000 Wohnort: Delft Verein: SOLARIS Beiträge: 7776 Status: Offline |
Beitrag 110895
[05. Januar 2007 um 19:29]
Hi,
ich wollte mit der Äußerung nicht BASCOM oder deren Nutzer schlecht machen. Ich wollte nur sagen, das es eben auch andere Gründe gibt mal eine Formel zu zerlegen. So habe ich z.B. in Excel eine kleine Tabelle gemacht um die Flugbahn einer Rakete zu berechnen. Da geht auch sowas rein wie Höhenabhäniger Luftdruck und Luftwiderstand. Das könnte ich alles in eine Formel packen um die auf die Rakete wirkende Kraft auszurechnen. Wenn da jetzt ein Fehler drin ist, muss ich alles durchsuchen, was sehr aufwendig ist. Da ich aber erst aus der Höhe den Luftdruck berechne und den dann nutze um den Luftwiderstand zu berechnen, gleichzeitig aus der Schubkurve die Kraft des Motors berechnet wird, ist nachher die Berechnung der resultierende Kraft eine einfache Addition. Wenn also hier ein Fehler versteckt ist, so kann ich durch konstantes setzen einer der größen schneller den Fehler finden, als wenn ich alles in eine super große Formel gepackt hätte. Gruß Neil Die Erde ist eine Scheibe. Egal in welche Richtung sich die Menschheit bewegt, sie geht immer auf einen Abgrund zu. |
hybrid
SP-Schnüffler Registriert seit: Mai 2005 Wohnort: Verein: Beiträge: 675 Status: Offline |
Beitrag 110898
[05. Januar 2007 um 20:14]
Das wollte ich auch nicht. Ich wundere mich über die Bascom-Entwickler.
Es ist doch völlig ok, sinnvolle Zwischenergebnisse zu berenchnen und zu speichern/anzuzeigen (wie z.B. höhenabhängiger Luftdruck) Aber wenn es Excel plötzlich nur noch zwei Operanden pro Formel gäbe, wäre das schon ziemlich nervig Grüße Malte |