Discussion:
[FreePascal] Potenzierung
(zu alt für eine Antwort)
Volker Englisch
2016-10-17 16:08:02 UTC
Permalink
Ich bräuchte zum ersten Mal die Potenzfunktion in Pascal. Die will aber
leider nicht so wie ich das erwarten würde. Antwort vom Compiler:

ei.pas(16,26) Error: Operator is not overloaded
ei.pas(21,2) Fatal: There were 1 errors compiling module, stopping

Das ist genau die Stelle, an der das ** steht. Ok, der Exponent ist
keine Ganzzahl - aber das sollte doch kein Problem sein, oder?
Vielleicht hat ja jemand eine Idee, woran das liegen könnte. Google
brachte irgendwie auch nichts sinnvolles zu der Fehlermeldung.

cu
Volker

---------------------------------- cut -------------------------------

program ei;

const Ts: real = 8;
Ti: real = 67;
Hoehe: real = 405;

var Masse: real;
Tw: real;
Zeit: real;

begin
write('Masse in Gramm: ');
readln(Masse);

Tw := 100 - (405 / 285);
Zeit := 0.465 * (Masse ** (2/3)) * ln(0.76 * ((Tw - Ts) / Tw - Ti));

writeln(Zeit);
end.
G.B.
2016-10-18 08:17:04 UTC
Permalink
Post by Volker Englisch
Ok, der Exponent ist
keine Ganzzahl - aber das sollte doch kein Problem sein, oder?
Vielleicht hat ja jemand eine Idee, woran das liegen könnte.
Im Konjunktiv: Die Potenz ist nur (wie üblich) für ganzzahlige
Exponenten definiert. Bei Brüchen wie 2/3 im Exponenten würde
ich in die Bestandteile zerlegen und die entsprechenden
Operationen suchen. Wurzeln dürfte es geben?
--
"HOTDOGS ARE NOT BOOKMARKS"
Springfield Elementary teaching staff
Volker Englisch
2016-10-18 16:52:58 UTC
Permalink
Post by G.B.
Post by Volker Englisch
Ok, der Exponent ist
keine Ganzzahl - aber das sollte doch kein Problem sein, oder?
Vielleicht hat ja jemand eine Idee, woran das liegen könnte.
Im Konjunktiv: Die Potenz ist nur (wie üblich) für ganzzahlige
Exponenten definiert. Bei Brüchen wie 2/3 im Exponenten würde
ich in die Bestandteile zerlegen und die entsprechenden
Operationen suchen. Wurzeln dürfte es geben?
Ja. Algebra ist allerdings lange her - ich werde mich wohl wieder
einlesen müssen...
Thomas Koenig
2016-10-18 19:06:54 UTC
Permalink
Post by Volker Englisch
Ich bräuchte zum ersten Mal die Potenzfunktion in Pascal. Die will aber
ei.pas(16,26) Error: Operator is not overloaded
ei.pas(21,2) Fatal: There were 1 errors compiling module, stopping
Das ist genau die Stelle, an der das ** steht. Ok, der Exponent ist
keine Ganzzahl - aber das sollte doch kein Problem sein, oder?
Ich kenne die Variante jetzt nicht, aber es macht schon einen
Unterschied, ob der Exponent eine Ganzzahl ist oder nicht.

Für eine Ganzzahl kann man die Potenz mit Multiplikationen und ggf.
einer Division erledigen.

Für eine Floating Point - Zahl kann man die Identität

a**b = exp(ln(a)*b)

ausnutzen.
Post by Volker Englisch
Zeit := 0.465 * (Masse ** (2/3)) * ln(0.76 * ((Tw - Ts) / Tw - Ti));
^^^

Das ist in Pascal nicht gleich Null? In Fortran oder C wäre es das.
Volker Englisch
2016-10-19 16:09:34 UTC
Permalink
Post by Thomas Koenig
Post by Volker Englisch
Ich bräuchte zum ersten Mal die Potenzfunktion in Pascal. Die will aber
ei.pas(16,26) Error: Operator is not overloaded
ei.pas(21,2) Fatal: There were 1 errors compiling module, stopping
Das ist genau die Stelle, an der das ** steht. Ok, der Exponent ist
keine Ganzzahl - aber das sollte doch kein Problem sein, oder?
Ich kenne die Variante jetzt nicht, aber es macht schon einen
Unterschied, ob der Exponent eine Ganzzahl ist oder nicht.
Interessant. Ich habe dieses quick-and-dirty Teil mal - leicht
angepasst - in den yabasic-Interpreter geworfen. Der schluckt es (und
das Ergebnis scheint auch ui passen).
Post by Thomas Koenig
Für eine Ganzzahl kann man die Potenz mit Multiplikationen und ggf.
einer Division erledigen.
Für eine Floating Point - Zahl kann man die Identität
a**b = exp(ln(a)*b)
Mit diesem Ausdruck (... * exp(ln(Masse) * (2/3)) [...] läuft zwar der
Compiler durch, es gibt aber einen Runtime Error. Dem werde ich mal auf
den Grund gehen.
Post by Thomas Koenig
Post by Volker Englisch
Zeit := 0.465 * (Masse ** (2/3)) * ln(0.76 * ((Tw - Ts) / Tw - Ti));
^^^
Das ist in Pascal nicht gleich Null? In Fortran oder C wäre es das.
Jetzt stehe ich auf dem Schlauch. Warum sollte 2/3 gleich Null sein?
Ist doch eine normale Division?

Du bringst mich aber auf eine Idee, ich könnte mal meine ziemlich
verstaubten Fortran-Kenntnisse auskramen. Ist ja eigentlich genau für
Fortran prädestiniert.
Thomas Koenig
2016-10-19 19:07:41 UTC
Permalink
Post by Volker Englisch
Jetzt stehe ich auf dem Schlauch. Warum sollte 2/3 gleich Null sein?
Ist doch eine normale Division?
Integer-Division. Das Ergebnis ist auch ein Integer und wird
in Richtung Null abgerundet.

gfortran warnt da sogar dazu:

$ cat a.f90
program main
print *,2/3
end program main
$ gfortran -Wall a.f90
a.f90:2:11:

print *,2/3
1
Warning: Integer division truncated to constant »0« at (1) [-Winteger-division]

Ich sehe gerade, dass Pascal dazu den eigenen div-Operator hat.
Nicht verkehrt.
Post by Volker Englisch
Du bringst mich aber auf eine Idee, ich könnte mal meine ziemlich
verstaubten Fortran-Kenntnisse auskramen. Ist ja eigentlich genau für
Fortran prädestiniert.
:-)
Volker Englisch
2016-10-21 06:11:41 UTC
Permalink
Post by Thomas Koenig
Post by Volker Englisch
Jetzt stehe ich auf dem Schlauch. Warum sollte 2/3 gleich Null sein?
Ist doch eine normale Division?
Integer-Division. Das Ergebnis ist auch ein Integer und wird
in Richtung Null abgerundet.
Faszinierend.

$ cat t.pas
PROGRAM t;

begin
writeln(2/3);
end.

$ ./t
6.6666666666666667E-0001
$ cat t.for
PROGRAM T
PRINT *,2/3
END

$ f95 -L/usr/local/lib
$ ./a.out
0

$ f95 --version
G95 (GCC 4.0.3 (g95 0.92!) Dec 6 2011)
Copyright (C) 2002-2008 Free Software Foundation, Inc.

Noch ein Ausflug nach COBOL:

$ cat t.cob

IDENTIFICATION DIVISION.
PROGRAM-ID. T.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
01 ZAHL PIC 9V99999.
01 ZAHL-Z PIC 9.99999.
*
PROCEDURE DIVISION.
DIVIDE 2 BY 3 GIVING ZAHL.
MOVE ZAHL TO ZAHL-Z.
DISPLAY ZAHL-Z.
STOP RUN.

$ ./t
0.66666

cu
Volker
Volker Englisch
2016-10-26 16:57:34 UTC
Permalink
Post by Volker Englisch
Du bringst mich aber auf eine Idee, ich könnte mal meine ziemlich
verstaubten Fortran-Kenntnisse auskramen. Ist ja eigentlich genau für
Fortran prädestiniert.
:-)
Done. Heraus kam dabei folgendes (mein "Wissen" stammt noch von FORTRAN
77, wie man bestimmt sieht. Interessanterweise kommt ein brauchbares
Ergebnis heraus. Auch wenn der Zweck des Programmes vielleicht etwas
strange rüberkommt...

PROGRAM EI
C
C ******************************************************************
C BERECHNUNG DER KOCHDAUER EINES HÜHNEREIS
C ANHAND SEINER MASSE IN GRAMM
C ******************************************************************
C
C TS = SIEDETEMPERATUR DES WASSERS
C T = ZEIT IN MINUTEN
C HOEHE = STANDORTHOEHE UEBER MEERESSPIEGEL
C M = MASSE
C TK = TEMPERATUR ZU BEGINN
C TI = TEMPERATUR ZU ENDE
C MIN = MINUTEN
C SEK = SEKUNDEN
C H = HAERTE
C
IMPLICIT NONE
REAL TS, T
INTEGER HOEHE, M, TK, TI, MIN, SEK
CHARACTER*1 H
PARAMETER ( HOEHE = 405, TK = 8 )
C
100 PRINT 530
READ(*,'(A)$') H
IF(H.EQ.'1') THEN
TI = 62
ELSE IF(H.EQ.'2') THEN
TI = 67
ELSE IF(H.EQ.'3') THEN
TI = 82
ELSE IF(H.EQ.'') THEN
GO TO 900
ELSE
PRINT 540
TI = 0
END IF
IF(TI.EQ.0) GO TO 100
C
PRINT 500
READ(*,'(I3)$') M
C
TS = 100. - (405. / 285.)
T = 0.465 * (M ** (2./3.)) * ALOG(0.76 * ((TS - TK) / (TS - TI)))
C
MIN = INT(T)
SEK = (T - MIN) * 100.
SEK = INT((SEK * 60. / 100.) + 0.5)
WRITE(*,510), MIN
WRITE(*,520), SEK
C
500 FORMAT('GEBEN SIE DIE MASSE DES EIS EIN: ', $)
510 FORMAT('MINUTEN .......................: ', I2)
520 FORMAT('SEKUNDEN ......................: ', I2)
530 FORMAT('1=FLÜSSIG, 2=WEICH, 3=HART ....: ', $)
540 FORMAT('UNGÜLTIGE EINGABE')
C
900 END
Thomas Koenig
2016-10-26 20:15:22 UTC
Permalink
Post by Volker Englisch
Post by Volker Englisch
Du bringst mich aber auf eine Idee, ich könnte mal meine ziemlich
verstaubten Fortran-Kenntnisse auskramen. Ist ja eigentlich genau für
Fortran prädestiniert.
:-)
Done. Heraus kam dabei folgendes (mein "Wissen" stammt noch von FORTRAN
77, wie man bestimmt sieht. Interessanterweise kommt ein brauchbares
Ergebnis heraus. Auch wenn der Zweck des Programmes vielleicht etwas
strange rüberkommt...
$ gfortran -Wall -pedantic foo.f
foo.f:21:17:

CHARACTER*1 H
1
Warning: Obsolescent feature: Old-style character length at (1)

Ist noch in Ordnung, heißt mittlerweile character(len=1)

foo.f:25:17:

READ(*,'(A)$') H
1
Warning: Extraneous characters in format at (1)

Beim Einlesen geht ein Dollarzeichen als "nicht zur nächsten
Zeile springen" nicht. In mordernem Fortran könnte
man ADVANCE="NO" verwenden.

[...]

foo.f:52:52:

500 FORMAT('GEBEN SIE DIE MASSE DES EIS EIN: ', $)
1
Warning: GNU Extension: $ descriptor at (1)

Auch das macht man mittlerweile mit ADVANCE="NO"

foo.f:47:12:

SEK = (T - MIN) * 100.
1
Warning: Possible change of value in conversion from REAL(4) to
INTEGER(4) at (1) [-Wconversion]

SEK ist Integer, das andere ist Real. Könnte so gemeint sein,
wie ist es mit der Rundung?

foo.f:49:18:

WRITE(*,510), MIN
1
Warning: Legacy Extension: Comma before i/o item list at (1)

Das Komma gehört da nicht hin.

Ansonsten: Sieht schon ganz gut aus :-)
Volker Englisch
2016-10-27 16:40:59 UTC
Permalink
Post by Thomas Koenig
Post by Volker Englisch
Post by Volker Englisch
Du bringst mich aber auf eine Idee, ich könnte mal meine ziemlich
verstaubten Fortran-Kenntnisse auskramen. Ist ja eigentlich genau für
Fortran prädestiniert.
:-)
Done. Heraus kam dabei folgendes (mein "Wissen" stammt noch von FORTRAN
77, wie man bestimmt sieht. Interessanterweise kommt ein brauchbares
Ergebnis heraus. Auch wenn der Zweck des Programmes vielleicht etwas
strange rüberkommt...
$ gfortran -Wall -pedantic foo.f
Interessant. Mein f95 hat alles geschluckt...
Post by Thomas Koenig
READ(*,'(A)$') H
Beim Einlesen geht ein Dollarzeichen als "nicht zur nächsten
Zeile springen" nicht. In mordernem Fortran könnte
man ADVANCE="NO" verwenden.
Stimmt. Ich habe leider kein gfortran. Hätte es den Fehler ohne
-pedantic geschluckt?
Post by Thomas Koenig
500 FORMAT('GEBEN SIE DIE MASSE DES EIS EIN: ', $)
1
Warning: GNU Extension: $ descriptor at (1)
Hilfe :-) Ich hätte geschworen, dass ich das schon zu Zeiten so codiert
habe, als es GNU noch gar nicht gab. Naja, errare humanum est...
Post by Thomas Koenig
SEK = (T - MIN) * 100.
1
Warning: Possible change of value in conversion from REAL(4) to
INTEGER(4) at (1) [-Wconversion]
SEK ist Integer, das andere ist Real. Könnte so gemeint sein,
wie ist es mit der Rundung?
War eigentlich Absicht, aber ich habe den Ausdruck etwas geändert -
wegen der Rundung.
Post by Thomas Koenig
WRITE(*,510), MIN
1
Warning: Legacy Extension: Comma before i/o item list at (1)
Das Komma gehört da nicht hin.
Stimmt. Aber auch da hat f95 nicht gemotzt.
Post by Thomas Koenig
Ansonsten: Sieht schon ganz gut aus :-)
Danke ;-) Und danke für die Korrekturen - ist doch lange her.
Thomas Koenig
2016-10-27 17:37:39 UTC
Permalink
Post by Volker Englisch
Post by Thomas Koenig
Post by Volker Englisch
Post by Volker Englisch
Du bringst mich aber auf eine Idee, ich könnte mal meine ziemlich
verstaubten Fortran-Kenntnisse auskramen. Ist ja eigentlich genau für
Fortran prädestiniert.
:-)
Done. Heraus kam dabei folgendes (mein "Wissen" stammt noch von FORTRAN
77, wie man bestimmt sieht. Interessanterweise kommt ein brauchbares
Ergebnis heraus. Auch wenn der Zweck des Programmes vielleicht etwas
strange rüberkommt...
$ gfortran -Wall -pedantic foo.f
Interessant. Mein f95 hat alles geschluckt...
Post by Thomas Koenig
READ(*,'(A)$') H
Beim Einlesen geht ein Dollarzeichen als "nicht zur nächsten
Zeile springen" nicht. In mordernem Fortran könnte
man ADVANCE="NO" verwenden.
Stimmt. Ich habe leider kein gfortran.
gfortran ist i.d.R. bei Linux- Distributionen dabei,
meist als separates Paket.

Unter Windows funktioniert cygwin ganz gut, mit mingw habe
ich eher gemischte Erfahrungen.
Post by Volker Englisch
Hätte es den Fehler ohne
-pedantic geschluckt?
Mit der gleichen Warnung.
Post by Volker Englisch
Post by Thomas Koenig
500 FORMAT('GEBEN SIE DIE MASSE DES EIS EIN: ', $)
1
Warning: GNU Extension: $ descriptor at (1)
Hilfe :-) Ich hätte geschworen, dass ich das schon zu Zeiten so codiert
habe, als es GNU noch gar nicht gab. Naja, errare humanum est...
Ist streng genommen auch keine GNU-Erweiterung, sondern eine
Erweiterung, die gfortran von anderen Compilern übernommen hat.
Wird dann als "GNU extension" bezeichnet.
Post by Volker Englisch
Post by Thomas Koenig
WRITE(*,510), MIN
1
Warning: Legacy Extension: Comma before i/o item list at (1)
Das Komma gehört da nicht hin.
Stimmt. Aber auch da hat f95 nicht gemotzt.
Was für einer isses denn?
Volker Englisch
2016-10-28 16:22:36 UTC
Permalink
Post by Thomas Koenig
Post by Volker Englisch
Post by Volker Englisch
READ(*,'(A)$') H
Beim Einlesen geht ein Dollarzeichen als "nicht zur nächsten
Zeile springen" nicht. In mordernem Fortran könnte
man ADVANCE="NO" verwenden.
Stimmt. Ich habe leider kein gfortran.
gfortran ist i.d.R. bei Linux- Distributionen dabei,
meist als separates Paket.
Älteres FreeBSD. Ab Version 7.irgendwas ist gfortran nicht mehr drin.
Aber der f95 tuts bei der Masse, die ich in FORTRAN schreibe, auch...
Post by Thomas Koenig
Post by Volker Englisch
Post by Volker Englisch
500 FORMAT('GEBEN SIE DIE MASSE DES EIS EIN: ', $)
1
Warning: GNU Extension: $ descriptor at (1)
Hilfe :-) Ich hätte geschworen, dass ich das schon zu Zeiten so codiert
habe, als es GNU noch gar nicht gab. Naja, errare humanum est...
Ist streng genommen auch keine GNU-Erweiterung, sondern eine
Erweiterung, die gfortran von anderen Compilern übernommen hat.
Wird dann als "GNU extension" bezeichnet.
Wie hat man das in FORTRAN 77 ohne die Extension codiert? Gar nicht?
Post by Thomas Koenig
Post by Volker Englisch
Stimmt. Aber auch da hat f95 nicht gemotzt.
Was für einer isses denn?
G95 (GCC 4.0.3 (g95 0.92!) Jan 31 2011)
Copyright (C) 2002-2008 Free Software Foundation, Inc.

Eigentlich interessant, denn die GCC-Version passt nicht nur
installieren... Aber es funktioniert ;-)
Thomas Koenig
2016-10-28 17:29:58 UTC
Permalink
Post by Volker Englisch
Post by Thomas Koenig
Post by Volker Englisch
Hilfe :-) Ich hätte geschworen, dass ich das schon zu Zeiten so codiert
habe, als es GNU noch gar nicht gab. Naja, errare humanum est...
Ist streng genommen auch keine GNU-Erweiterung, sondern eine
Erweiterung, die gfortran von anderen Compilern übernommen hat.
Wird dann als "GNU extension" bezeichnet.
Wie hat man das in FORTRAN 77 ohne die Extension codiert? Gar nicht?
Gar nicht, deshalb gab es ja diese (durchaus weit verbreitete)
Erweiterung :-)
Post by Volker Englisch
Post by Thomas Koenig
Post by Volker Englisch
Stimmt. Aber auch da hat f95 nicht gemotzt.
Was für einer isses denn?
G95 (GCC 4.0.3 (g95 0.92!) Jan 31 2011)
Copyright (C) 2002-2008 Free Software Foundation, Inc.
Naja, g95 ist seit Ewigkeiten (siehe Erscheinungsjahr) nicht mehr
unterstützt. gfortran ist mittlerweile deutlich besser.

Allerdings spricht auch nix dagegen, Code durch verschiedene
Compiler zu jagen, wenn man sie zur Verfügung hat. Irgendeiner
davon spuckt typischerweise noch eine sinnvolle oder nützliche
Warnung aus.
G.B.
2016-10-27 10:59:20 UTC
Permalink
Post by Volker Englisch
Post by Volker Englisch
Du bringst mich aber auf eine Idee, ich könnte mal meine ziemlich
verstaubten Fortran-Kenntnisse auskramen. Ist ja eigentlich genau für
Fortran prädestiniert.
:-)
Done. Heraus kam dabei folgendes (mein "Wissen" stammt noch von FORTRAN
77, wie man bestimmt sieht. Interessanterweise kommt ein brauchbares
Ergebnis heraus. Auch wenn der Zweck des Programmes vielleicht etwas
strange rüberkommt...
So jugendlichen Dialekte.

(Ich sollte eine App draus machen, mit einstellbaren "Eier Fertig!"-Sound.
Dazu eine revolutionäre Gewichts-Sensorik, hergestellt aus einem
neuen, fantastisch durchsichtigen, piezoelektrischen Material.
Man legt es auf den Bildschirm des Smartphones, darauf das Ei,
zum wiegen per kapazitiver Übertragung.)

Alte Skriptingsprache:

* PROGRAM EI
*
* ******************************************************************
* BERECHNUNG DER KOCHDAUER EINES HÜHNEREIS
* ANHAND SEINER MASSE IN GRAMM
* ******************************************************************
*
* TS = SIEDETEMPERATUR DES WASSERS
* T = ZEIT IN MINUTEN
* HOEHE = STANDORTHOEHE UEBER MEERESSPIEGEL
* M = MASSE
* TK = TEMPERATUR ZU BEGINN
* TI = TEMPERATUR ZU ENDE
* MIN = MINUTEN
* SEK = SEKUNDEN
* H = HAERTE
*
DEFINE('HOEHE()'); DEFINE('TK()')
DIGIT = "1234567890"
OUTPUT(.PROMPT,11, 'TW', '-') :(FORMAT)
*
L100 PROMPT = $'530'
H = TRIM(INPUT)
IDENT(H) :S(END)
H POS(0) ANY("123") RPOS(0) :S<CODE(' :(TI' H ')')>
TERMINAL = $'540'
TI = 0 :(TI)
TI1 TI = 62 :(TI)
TI2 TI = 67 :(TI)
TI3 TI = 82 :(TI)
TI EQ(TI, 0) :S(L100)
*
PROMPT = $'500'
INPUT POS(0) SPAN(DIGIT) . M :F(L100)
*
TS = 100. - (HOEHE() / 285.)
T = 0.465 * (M ** (2. / 3.)) * LOG(0.76 * ((TS - TK()) / (TS - TI)))
*
MIN = CONVERT(T, 'INTEGER')
SEK = (T - MIN) * 100.
SEK = CONVERT((SEK * 60. / 100.) + 0.5, 'INTEGER')
OUTPUT = $'510' LPAD(MIN, 2)
OUTPUT = $'520' LPAD(SEK, 2) :(END)
*
FORMAT $'500' = 'GEBEN SIE DIE MASSE DES EIS EIN: '
$'510' = 'MINUTEN .......................: '
$'520' = 'SEKUNDEN ......................: '
$'530' = '1=FLÜSSIG, 2=WEICH, 3=HART ....: '
$'540' = 'UNGÜLTIGE EINGABE'
+ :(L100)
*
HOEHE HOEHE = 405 :(RETURN)
TK TK = 8 :(RETURN)

END
Volker Englisch
2016-10-27 16:46:51 UTC
Permalink
Post by G.B.
Post by Volker Englisch
Post by Volker Englisch
Du bringst mich aber auf eine Idee, ich könnte mal meine ziemlich
verstaubten Fortran-Kenntnisse auskramen. Ist ja eigentlich genau für
Fortran prädestiniert.
:-)
Done. Heraus kam dabei folgendes (mein "Wissen" stammt noch von FORTRAN
77, wie man bestimmt sieht. Interessanterweise kommt ein brauchbares
Ergebnis heraus. Auch wenn der Zweck des Programmes vielleicht etwas
strange rüberkommt...
So jugendlichen Dialekte.
:-)
Post by G.B.
(Ich sollte eine App draus machen, mit einstellbaren "Eier Fertig!"-Sound.
Dazu eine revolutionäre Gewichts-Sensorik, hergestellt aus einem
neuen, fantastisch durchsichtigen, piezoelektrischen Material.
Man legt es auf den Bildschirm des Smartphones, darauf das Ei,
zum wiegen per kapazitiver Übertragung.)
Smartphone? Moderner Schnickschnack :-) Siemens S1 rules ;-) Die Idee
für das Programm entstand ehrlich gesagt rein aus "akademischem
Interesse"...
Post by G.B.
DEFINE('HOEHE()'); DEFINE('TK()')
DIGIT = "1234567890"
OUTPUT(.PROMPT,11, 'TW', '-') :(FORMAT)
Die Notation erinnert mich an irgendetwas, ich komme nur nicht drauf,
an was. ALGOL? Wäre aber keine Scriptingsprache.
G.B.
2016-10-27 17:13:36 UTC
Permalink
Post by Volker Englisch
Post by G.B.
DEFINE('HOEHE()'); DEFINE('TK()')
DIGIT = "1234567890"
OUTPUT(.PROMPT,11, 'TW', '-') :(FORMAT)
Die Notation erinnert mich an irgendetwas, ich komme nur nicht drauf,
an was. ALGOL? Wäre aber keine Scriptingsprache.
SNOBOL-4 8->
Volker Englisch
2016-10-28 16:25:38 UTC
Permalink
Post by G.B.
Post by Volker Englisch
Post by G.B.
DEFINE('HOEHE()'); DEFINE('TK()')
DIGIT = "1234567890"
OUTPUT(.PROMPT,11, 'TW', '-') :(FORMAT)
Die Notation erinnert mich an irgendetwas, ich komme nur nicht drauf,
an was. ALGOL? Wäre aber keine Scriptingsprache.
SNOBOL-4 8->
Wow. Dazu musste ich jetzt erst mal googeln. Interessante Sprache. Hast
Du die PDP-10 etwa noch kennen gelernt?

V.
G.B.
2016-10-29 13:31:37 UTC
Permalink
Post by Volker Englisch
Post by G.B.
Post by Volker Englisch
Post by G.B.
DEFINE('HOEHE()'); DEFINE('TK()')
DIGIT = "1234567890"
OUTPUT(.PROMPT,11, 'TW', '-') :(FORMAT)
Die Notation erinnert mich an irgendetwas, ich komme nur nicht drauf,
an was. ALGOL? Wäre aber keine Scriptingsprache.
SNOBOL-4 8->
Wow. Dazu musste ich jetzt erst mal googeln. Interessante Sprache. Hast
Du die PDP-10 etwa noch kennen gelernt?
Kein bisschen. Nur festgestellt, dass die ein oder andere
ziemlich gute Idee als Folge der Vorhersagbarkeiten der
menschlichen Kaufmannsnatur den Gang alles teuren gegangen ist.
Bei SNOBOL-4 soll die unzeitgemäße Steuersyntax auch eine
Rolle gespielt haben.
--
"HOTDOGS ARE NOT BOOKMARKS"
Springfield Elementary teaching staff
G.B.
2016-10-20 19:32:05 UTC
Permalink
Post by Volker Englisch
Jetzt stehe ich auf dem Schlauch. Warum sollte 2/3 gleich Null sein?
Ist doch eine normale Division?
Bei Ganzzahlen steht p/q in vielen Sprachen für Teilen mit Rest.
Demnach ist die Frage: Wie viele Vielfache von 3 sind in 2 enthalten?
--
"HOTDOGS ARE NOT BOOKMARKS"
Springfield Elementary teaching staff
Volker Englisch
2016-10-21 06:12:29 UTC
Permalink
Post by G.B.
Post by Volker Englisch
Jetzt stehe ich auf dem Schlauch. Warum sollte 2/3 gleich Null sein?
Ist doch eine normale Division?
Bei Ganzzahlen steht p/q in vielen Sprachen für Teilen mit Rest.
Demnach ist die Frage: Wie viele Vielfache von 3 sind in 2 enthalten?
Wieder etwas gelernt. Von C habe ich bisher größtmöglichen Abstand
gehalten, vielleicht ist mir das deshalb nicht aufgefallen.

cu
Volker
Lesen Sie weiter auf narkive:
Loading...