Du kannst keine neue Antwort schreiben
Seiten (2): [1] 2 »

Autor Thema 
Tom

Grand Master of Rocketry


Administrator

Tom

Registriert seit: Aug 2000

Wohnort: Neustadt

Verein: T2 , SOL-1

Beiträge: 5257

Status: Offline

Beitrag 110392 , Rechnen mit Bascom [Alter Beitrag29. Dezember 2006 um 19:58]

[Melden] Profil von Tom anzeigen    Tom eine private Nachricht schicken   Besuche Tom's Homepage    Mehr Beiträge von Tom finden

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


Administrator

CharlyMai

Registriert seit: Mär 2005

Wohnort: Fuhrberg

Verein: SOLARIS-RMB e.V. (P2;T2) / AGM / TRA#21598

Beiträge: 1977

Status: Offline

Beitrag 110435 [Alter Beitrag30. Dezember 2006 um 12:01]

[Melden] Profil von CharlyMai anzeigen    CharlyMai eine private Nachricht schicken   Besuche CharlyMai's Homepage    Mehr Beiträge von CharlyMai finden

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


Administrator

Tom

Registriert seit: Aug 2000

Wohnort: Neustadt

Verein: T2 , SOL-1

Beiträge: 5257

Status: Offline

Beitrag 110501 [Alter Beitrag31. Dezember 2006 um 14:08]

[Melden] Profil von Tom anzeigen    Tom eine private Nachricht schicken   Besuche Tom's Homepage    Mehr Beiträge von Tom finden

Zitat:
Original geschrieben von CharlyMai

Ist so .....


viele Grüße, und einen guten Rutsch ...

Pierre




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


Moderator

Stefan Wimmer

Registriert seit: Aug 2000

Wohnort: Berlin

Verein: Deutsche Experimental Raketen Arbeitsgruppe (DERA)

Beiträge: 2398

Status: Offline

Beitrag 110814 [Alter Beitrag04. Januar 2007 um 20:11]

[Melden] Profil von Stefan Wimmer anzeigen    Stefan Wimmer eine private Nachricht schicken   Besuche Stefan Wimmer's Homepage    Mehr Beiträge von Stefan Wimmer finden

Zitat:
Original geschrieben von Tom

hmmm....
dann werde ich mich durchringen und mich auch mal in C für µController versuchen...


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... big grin)

It's the Government - it doesn't have to make sense! (B. Kaplow in r.m.r)
hybrid

SP-Schnüffler

hybrid

Registriert seit: Mai 2005

Wohnort:

Verein:

Beiträge: 675

Status: Offline

Beitrag 110821 [Alter Beitrag04. Januar 2007 um 21:05]

[Melden] Profil von hybrid anzeigen    hybrid eine private Nachricht schicken   Besuche hybrid's Homepage    Mehr Beiträge von hybrid finden

Ähm, Stefan?
Wenn ich mich nicht täusche kürzt sich "/log(exp(1))" zu "/1", was man auch kpl. weglassen kann big grinbig grinbig grin
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


Administrator

CharlyMai

Registriert seit: Mär 2005

Wohnort: Fuhrberg

Verein: SOLARIS-RMB e.V. (P2;T2) / AGM / TRA#21598

Beiträge: 1977

Status: Offline

Beitrag 110836 [Alter Beitrag04. Januar 2007 um 23:07]

[Melden] Profil von CharlyMai anzeigen    CharlyMai eine private Nachricht schicken   Besuche CharlyMai's Homepage    Mehr Beiträge von CharlyMai finden

Zitat:
Temperature = (Beta / ((log(V_ADC/(V_ref-V_ADC))/log(exp(1))) + (Beta/T_amb))) - T_zero;



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


Administrator

Neil

Registriert seit: Aug 2000

Wohnort: Delft

Verein: SOLARIS

Beiträge: 7776

Status: Offline

Beitrag 110856 [Alter Beitrag05. Januar 2007 um 08:45]

[Melden] Profil von Neil anzeigen    Neil eine private Nachricht schicken   Neil besitzt keine Homepage    Mehr Beiträge von Neil finden

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

hybrid

Registriert seit: Mai 2005

Wohnort:

Verein:

Beiträge: 675

Status: Offline

Beitrag 110862 [Alter Beitrag05. Januar 2007 um 13:03]

[Melden] Profil von hybrid anzeigen    hybrid eine private Nachricht schicken   Besuche hybrid's Homepage    Mehr Beiträge von hybrid finden

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. wink
Und den Code natürlich auch big grinbig grinbig grin!

Geändert von hybrid am 05. Januar 2007 um 13:04

Neil

99.9% harmless nerd


Administrator

Neil

Registriert seit: Aug 2000

Wohnort: Delft

Verein: SOLARIS

Beiträge: 7776

Status: Offline

Beitrag 110895 [Alter Beitrag05. Januar 2007 um 19:29]

[Melden] Profil von Neil anzeigen    Neil eine private Nachricht schicken   Neil besitzt keine Homepage    Mehr Beiträge von Neil finden

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

hybrid

Registriert seit: Mai 2005

Wohnort:

Verein:

Beiträge: 675

Status: Offline

Beitrag 110898 [Alter Beitrag05. Januar 2007 um 20:14]

[Melden] Profil von hybrid anzeigen    hybrid eine private Nachricht schicken   Besuche hybrid's Homepage    Mehr Beiträge von hybrid finden

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 wink

Grüße
Malte
Seiten (2): [1] 2 »
[Zurück zum Anfang]
Du kannst keine neue Antwort schreiben