Kleine Fragen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
PureBaser
Beiträge: 180
Registriert: 08.09.2004 21:20
Wohnort: Berlin
Kontaktdaten:

Kleine Fragen

Beitrag von PureBaser »

Hi!
Es sind Ferien und will das Programmieren nun endlich durchziehen!!! Und im Eiltempo entwickeln sich immer einige Fragen, die mir die Hilfe oder die Logik nicht beantworten kann...

1.

Code: Alles auswählen



Procedure Prozedur1(Var1.s,Var2.s)
PrintN(Var1)
PrintN(Var2)
EndProcedure

OpenConsole()
Prozedur1("Eins","Zwei")
CloseConsole()
End
Das seltsame ist, dass die Konsole die Erste Variable in der zweiten Zeile darstellt und die zweite Variable in der Ersten Zeile darstellt, das dürfte es nicht geben!!!

2.

Warum kann ich

Code: Alles auswählen

"Ergebnis.f = ValF(Zahl1$) / ValF(Zahl2$)"
schreiben aber nicht

Code: Alles auswählen

ValF(Zahl1$) / ValF(Zahl2$) = Ergebnis
?

3.

Was sind schneller bzw. bessere Entscheidungen - IF-Entscheidungen oder Select-Case - Entscheidungen ? Wenn Sie die gleiche Funktion bewirken ist die Auswahl doch beliebig?

4.

In der Hilfe wird nicht erklärt, ob der Debugger beim "Executable erstellen" auch eingefügt ist oder nicht? Ist diese Option unabhängig von den Compilereinstellung ("Debugger aktiviert"), d.h. garantiert ein Release?

Thx!!
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

1)

kann ich nicht bestätigen

2)
weil du nicht einen wert funktionen zuweisen kannst, der compiler weis ja nicht was du willst und weil es in PB _leider_ kein "==" gibt

3)
gibt schon einige threads dazu, ich glaube auber, dass ifs schneller sind

4)
doch, irgendwo in der hilfe steht das.
alle befehle wie z.B. Debug "MOIN" werden _nicht_ in die exe mitcompiliert
-.-"
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: Kleine Fragen

Beitrag von ts-soft »

PureBaser hat geschrieben:Hi!
Es sind Ferien und will das Programmieren nun endlich durchziehen!!! Und im Eiltempo entwickeln sich immer einige Fragen, die mir die Hilfe oder die Logik nicht beantworten kann...

1.

Code: Alles auswählen



Procedure Prozedur1(Var1.s,Var2.s)
PrintN(Var1)
PrintN(Var2)
EndProcedure

OpenConsole()
Prozedur1("Eins","Zwei")
CloseConsole()
End
Das seltsame ist, dass die Konsole die Erste Variable in der zweiten Zeile darstellt und die zweite Variable in der Ersten Zeile darstellt, das dürfte es nicht geben!!!
Bei mir wird es in korrekter Reihenfolge dargestellt!
PureBaser hat geschrieben: 3.

Was sind schneller bzw. bessere Entscheidungen - IF-Entscheidungen oder Select-Case - Entscheidungen ? Wenn Sie die gleiche Funktion bewirken ist die Auswahl doch beliebig?
Den Geschwindigkeitsunterschied kannste ausser Acht lassen, ist minimal. Der Rest ist eine Frage des Stils
PureBaser hat geschrieben: 4.

In der Hilfe wird nicht erklärt, ob der Debugger beim "Executable erstellen" auch eingefügt ist oder nicht? Ist diese Option unabhängig von den Compilereinstellung ("Debugger aktiviert"), d.h. garantiert ein Release?

Thx!!
Der Debugger wird lediglich in der Exe, die temporär im Compilers-Verzeichnis entsteht eingefügt, wenn aktiviert. Die normal erstellte Exe enthält diesen nicht!
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
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

@PureBaser
Warum suchst du den Fehler immer bei PureBasic und nicht bei dir?

> Den Geschwindigkeitsunterschied kannste ausser Acht lassen, ist minimal. Der Rest ist eine Frage des Stils
Nunja, bei 500000 Abfragen oder so zeigt sich ein Unterschied von etwa
einer Sekunde...
Bild
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

MVXA hat geschrieben:> Den Geschwindigkeitsunterschied kannste ausser Acht lassen, ist minimal. Der Rest ist eine Frage des Stils
Nunja, bei 500000 Abfragen oder so zeigt sich ein Unterschied von etwa
einer Sekunde...
Aha, und was ist deiner Meinung nach schneller? (Achtung, Fangfrage)
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
PureBaser
Beiträge: 180
Registriert: 08.09.2004 21:20
Wohnort: Berlin
Kontaktdaten:

Beitrag von PureBaser »

Zu 1. Wieder mal den falschen Code gepostet....
Dies passiert bei zwei Input() - Anfragen:

Code: Alles auswählen

Procedure Prod(Var1$,Var2$)
PrintN("")
Print(Var1$)
PrintN(Var2$)
EndProcedure

OpenConsole()

Prod(Input(),Input())

Input()
CloseConsole()
End
Wo ich mich gerade mit den Prozeduren beschäftige, der Code gehr hier nicht:

Code: Alles auswählen

Procedure Beispiel(Var1,Var2)
PrintN("")
PrintN(Val(Var1))     ; hier wird ein String erwartet, obwohl es long-Variablen sind
PrintN(Val(Var2))
EndProcedure

OpenConsole()

Beispiel(1,2)

Input()
CloseConsole()
End
Desweiteren wird die Prozedurenliste nicht aktualisiert, wenn eine Prozedur gelöscht wird oder neukompiliert wird...
Zuletzt geändert von PureBaser am 10.04.2006 20:54, insgesamt 1-mal geändert.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

PrintN erwartet einen String.... Val gibt allerdings eine Long zurück
Bild
Benutzeravatar
PureBaser
Beiträge: 180
Registriert: 08.09.2004 21:20
Wohnort: Berlin
Kontaktdaten:

Beitrag von PureBaser »

@ MVXA: Naja, mir erscheint der Eindruck, dass PureBasic in Verhältnis zu anderen Programmiersprachen sehr viel mehr buggy ist, wenn ich mir so die Foren-Beiträge anschaue. Ich kenne PB und dieses nun seit gut 2 Jahren aber fange erst jetzt richtig an. Da PB relativ zum Lernaufwand wohl das mächtigste Basic für fensterorientierte Windows-Anwendungen ist und vor allem die Community hier tatkräftig unterstützt, kann ich über die Bugs hinwegsehen, zumal pausenlos gefixt wird. Aber du hast auch Recht: Ich bemühe mich um fehlerfreiere Codes bzw. um mehr Vorausdenken! Btw, wo steht das mit 4.) unter der Hilfe?

Danke für eure Mühen :allright:

EDIT: Was für ein DUMMER Fehler von mir im letzten Code :oops:
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

Beitrag von ts-soft »

Zu 1: wurde bereits gesagt, wird alles korrekt ausgegeben
Zu 2: Für Print wird ein String erwartet.

Code: Alles auswählen

Procedure Beispiel(Var1,Var2)
PrintN("")
PrintN(Str(Var1))     ; hier wird ein String erwartet, obwohl es long-Variablen sind
PrintN(Str(Var2))
EndProcedure

OpenConsole()

Beispiel(1,2)

Input()
CloseConsole()
End 
Frage: Was hast Du die letzen 2 Jahre mit PB gemacht? :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
PureBaser
Beiträge: 180
Registriert: 08.09.2004 21:20
Wohnort: Berlin
Kontaktdaten:

Beitrag von PureBaser »

Ok ich hab das Beispiel nochmal editiert
(Ich hab den falschen Code durch den selben falschen Code ersetzt und nun endlich (!!) ist er richtig) Bin wohl etwas übermüdet :freak:

Die letzten zwei Jahre, das war so ein Hin und Her bei den Programmiersprachen zwischen PB, Freebasic, C#, Delphi, Quickbasic et cetera und den Entschluss bis zum Abi nicht proggen zu wollen. Aber mir fehlte Abwechslung im Schullalltag und so ist das Programmieren doch nen guter Streßabbaufaktor!

Code: Alles auswählen

Procedure Prod(Var1$,Var2$) 
PrintN("") 
Print(Var1$) 
PrintN(Var2$) 
EndProcedure 

OpenConsole() 

Prod(Input(),Input()) 

Input() 
CloseConsole() 
End
Zuletzt geändert von PureBaser am 10.04.2006 21:02, insgesamt 1-mal geändert.
Antworten