Wäre es nicht mal wieder an der Zeit...

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Wäre es nicht mal wieder an der Zeit...

Beitrag von ts-soft »

rolaf hat geschrieben:Einfach den "Rüssel" auf den Tisch legen, wer den kürzesten hat, hat gewonnen. :wink:
Das sagst Du ja nur, weil Du dann wahrscheinlich gewonnen hast :bounce:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Re: Wäre es nicht mal wieder an der Zeit...

Beitrag von rolaf »

ts-soft hat geschrieben:Das sagst Du ja nur, weil Du dann wahrscheinlich gewonnen hast :bounce:
:allright: :lol:
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Wäre es nicht mal wieder an der Zeit...

Beitrag von ts-soft »

Wenn bis 20:42 kein kürzerer Beitrag kommt, habe ich wohl gewonnen :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
The Shark
Beiträge: 37
Registriert: 03.03.2011 00:03

Re: Wäre es nicht mal wieder an der Zeit...

Beitrag von The Shark »

Code: Alles auswählen

EnableExplicit
Global b,i,m=1000,C$="+-<>.,[]",p,f.s,l.s,s.s,c.s,o.s,w.s
Macro T
Procedure
EndMacro
Macro E
EndProcedure
EndMacro
Macro X
Case
EndMacro
Macro Y
EndIf
EndMacro
T U()
Print(#CRLF$+#CRLF$+"Press ENTER to exit")
Input()
CloseConsole()
End
E
T Z(m$)
PrintN(m$)
U()
E
Macro a(d=1)
b=d
Repeat
i+d
If Mid(o,i)="]"
b-1
ElseIf Mid(o,i)="["
b+1
Y
Until b=0
EndMacro
If OpenConsole()=0
MessageRequester("Error","Unable to open console.")
End
Y
Print("Filename (blank to use std in)...? ")
f=Input()
If f=""
Repeat
l=Input()
s+l
Until l=""
Else
OpenFile(1,f)
Repeat
l=ReadString(1)
s+l
Until Eof(1)
CloseFile(1)
Y
For i=1 To Len(s)
c=Mid(s,i)
If FindString(C$,c)
o+c
Select c
X "["
b+1
X "]"
b-1
EndSelect
Y
Next
If b
Z("Uneven brackets")
Y
Dim _.b(m)
For i=1 To Len(o)
Select Mid(o,i)
X "+"
_(p)+1
X "-"
_(p)-1
X "."
Print(Chr(_(p)))
X ","
If w=""
w=Input()
Y
_(p)=Asc(Left(w,1))
w=Mid(w,2)
X ">"
p+1
If p>m
m+1000
ReDim _(m)
Y
X "<"
p-1
If p<0
Z("Memory pointer out of range")
Y
X "["
If _(p)=0
a()
Y
X "]"
If _(p)<>0
a(-1)
Y
EndSelect
Next
U()
944

--------------------
Kann mir jemand sagen, was daran falsch ist:

Code: Alles auswählen

Macro m(a,b,c)
Macro a
b
c#ndMacro
EndMacro

m(e,EndProcedure,e)
Zuletzt geändert von The Shark am 16.04.2012 11:17, insgesamt 1-mal geändert.
Bild
Bild
Benutzeravatar
7x7
Beiträge: 591
Registriert: 14.08.2007 15:41
Computerausstattung: ganz toll
Wohnort: Lelbach

Re: Wäre es nicht mal wieder an der Zeit...

Beitrag von 7x7 »

Code: Alles auswählen

EnableExplicit
Global b,i,m=1000,C$="+-<>.,[]",p,f.s,l.s,s.s,c.s,o.s,w.s
Macro X
Case
EndMacro
Macro V
EndIf
EndMacro
Macro T
Procedure
EndMacro
Macro E
EndProcedure
EndMacro
T U()
Print(#CRLF$+#CRLF$+"Press ENTER to exit")
Input()
CloseConsole()
End
E
T Z(m$)
PrintN(m$)
U()
E
Macro a(d=1)
b=d
Repeat
i+d
If Mid(o,i)="]"
b-1
ElseIf Mid(o,i)="["
b+1
V
Until b=0
EndMacro
If OpenConsole()=0
MessageRequester("Error","Unable to open console.")
End
V
Print("Filename (blank to use std in)...? ")
f=Input()
If f=""
Repeat
l=Input()
s+l
Until l=""
Else
OpenFile(1,f)
Repeat
l=ReadString(1)
s+l
Until Eof(1)
CloseFile(1)
V
For i=1 To Len(s)
c=Mid(s,i)
If FindString(C$,c)
o+c
Select c
X "["
b+1
X "]"
b-1
EndSelect
V
Next
If b
Z("Uneven brackets")
V
Dim _.b(m)
For i=1 To Len(o)
Select Mid(o,i)
X "+"
_(p)+1
X"-"
_(p)-1
X "."
Print(Chr(_(p)))
X ","
If w=""
w=Input()
V
_(p)=Asc(Left(w,1))
w=Mid(w,2)
X ">"
p+1
If p>m
m+1000
ReDim _(m)
V
X "<"
p-1
If p<0
Z("Memory pointer out of range")
V
X "["
If _(p)=0
a()
V
X "]"
If _(p)<>0
a(-1)
V
EndSelect
Next
U()
@The Shark: Hatte die gleiche Idee wie du...bei mir sind's aber nur 943

Wie soll denn der Code überhaupt auf Lauffähigkeit überprüft werden? Habe keine Ahnung von BrainFuck-Programmierung (überhaupt halte ich diesen Code nicht für besonders PureGolf-geeignet)
- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Wäre es nicht mal wieder an der Zeit...

Beitrag von ts-soft »

Code: Alles auswählen

EnableExplicit
Global b,i,m=999,C$="+-<>.,[]",p,f.s,l.s,s.s,c.s,o.s,w.s
Macro X
Case
EndMacro
Macro V
EndIf
EndMacro
Macro T
Procedure
EndMacro
Macro E
EndProcedure
EndMacro
T U()
Print(#CRLF$+#CRLF$+"Press ENTER to exit")
Input()
CloseConsole()
End
E
T Z(m$)
PrintN(m$)
U()
E
Macro a(d=1)
b=d
Repeat
i+d
If Mid(o,i)="]"
b-1
ElseIf Mid(o,i)="["
b+1
V
Until b=0
EndMacro
If OpenConsole()=0
MessageRequester("Error","Unable to open console.")
End
V
Print("Filename (blank to use std in)...? ")
f=Input()
If f=""
Repeat
l=Input()
s+l
Until l=""
Else
OpenFile(1,f)
Repeat
l=ReadString(1)
s+l
Until Eof(1)
CloseFile(1)
V
For i=1 To Len(s)
c=Mid(s,i)
If FindString(C$,c)
o+c
Select c
X "["
b+1
X "]"
b-1
EndSelect
V
Next
If b
Z("Uneven brackets")
V
Dim _.b(m)
For i=1 To Len(o)
Select Mid(o,i)
X "+"
_(p)+1
X"-"
_(p)-1
X "."
Print(Chr(_(p)))
X ","
If w=""
w=Input()
V
_(p)=Asc(Left(w,1))
w=Mid(w,2)
X ">"
p+1
If p>m
m+999
ReDim _(m)
V
X "<"
p-1
If p<0
Z("Memory pointer out of range")
V
X "["
If _(p)=0
a()
V
X "]"
If _(p)<>0
a(-1)
V
EndSelect
Next
U() 
941 :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Wäre es nicht mal wieder an der Zeit...

Beitrag von NicTheQuick »

Also schon ts-softs erster Code funktioniert bei mir nicht. Bei Eingabe von folgendem Code kommt keine Ausgabe:

Code: Alles auswählen

++++++++[>++++[>++>+++>+++>+<<<<-]>+>->+>>+[<]<-]>>.>
>---.+++++++..+++.>.<<-.>.+++.------.--------.>+.>++.+++.
Normalerweise sollte das so aussehen:

Code: Alles auswählen

Press ENTER to exitFilename (blank to use std in)...? 
++++++++[>++++[>++>+++>+++>+<<<<-]>+>->+>>+[<]<-]>>.>
>---.+++++++..+++.>.<<-.>.+++.------.--------.>+.>++.+++.

Hello World!


Press ENTER to exit
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Wäre es nicht mal wieder an der Zeit...

Beitrag von ts-soft »

Dein Orginal-Code ist aber auch Fehlerhaft, Zeile 90 z.B.
Der Code wurde bisher lediglich gekürzt und nicht verändert, keine Ahnung warum es nicht mehr gehen sollte?
Mangels Ahnung von Gehirnfick, hab ich das auch nicht testen können.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Wäre es nicht mal wieder an der Zeit...

Beitrag von NicTheQuick »

Ja, den Originalcode habe ich auch gar nicht getestet, Stargate wollte ihn nur mit Zeilenumbrüchen haben. Ich dachte sowieso wir wählen noch und legen nicht schon fest. ;) Aber man muss beim Originalcode ja nur das ".b" beim Redim weg machen, dann läuft's.

Aber dass keine Ausgabe kommt, ist natürlich schlecht. Dann kann man auch gleich alles wegkürzen. ^^
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Wäre es nicht mal wieder an der Zeit...

Beitrag von ts-soft »

Fehler liegt evtl. in der Globalisierung aller Variablen, aber im Orginal wurden ja auch nur manche Variablen deklariert.

Startcode sollte IMHO auch Variablendeklaration erforderlich machen. Ich wollte den aber nicht erst noch anpassen,
weil ich dachte es würde auch so gehen. Fremdcode ohne EnableExplicit fasse ich normalerweise ja nicht an :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten