Akkordrechner aus QBasic (war: Brauche mal Hilfe!)
Akkordrechner aus QBasic (war: Brauche mal Hilfe!)
Hallo Leute.
Brauche mal Hilfe da ich ein paar Sachen nicht so ganz blicke.
Habe sonst nur in Qbasic kleine Progis geschrieben.
Kann mir mal einer das folgende Listing aus Qbasic
in PB umschreiben?
Ich habe schon nach ähnlichen Sachen gesucht aber leider vergebens.
10 cls
20 print"akkordrechner"
30 input"ruestzeit(j/n)";q$
40 if q$="j" then goto 200
50 if q$="n" then goto 100
100 input"vorgabezeit";a
110 input"anzahl teile";b
120 c=a*b
130 d=c/75
140 print"ausgabe in std. bei 75 min. verrechnung!"
150 prind d
160 goto 300
200 input"ruestzeit;a
210 input"vorgabezeit";b
220 input"anzahl teile";c
230 d=b*c
240 e=d+a
250 f=e/75
260 print"ausgabe in std. bei 75 min. verrechnung!"
270 print f
280 goto 300
300 input"neue rechnung(j/n)";v$
310 if v$="j" then goto 30
320 if v$="n" then end
Schon mal Danke.
Peddawing
Brauche mal Hilfe da ich ein paar Sachen nicht so ganz blicke.
Habe sonst nur in Qbasic kleine Progis geschrieben.
Kann mir mal einer das folgende Listing aus Qbasic
in PB umschreiben?
Ich habe schon nach ähnlichen Sachen gesucht aber leider vergebens.
10 cls
20 print"akkordrechner"
30 input"ruestzeit(j/n)";q$
40 if q$="j" then goto 200
50 if q$="n" then goto 100
100 input"vorgabezeit";a
110 input"anzahl teile";b
120 c=a*b
130 d=c/75
140 print"ausgabe in std. bei 75 min. verrechnung!"
150 prind d
160 goto 300
200 input"ruestzeit;a
210 input"vorgabezeit";b
220 input"anzahl teile";c
230 d=b*c
240 e=d+a
250 f=e/75
260 print"ausgabe in std. bei 75 min. verrechnung!"
270 print f
280 goto 300
300 input"neue rechnung(j/n)";v$
310 if v$="j" then goto 30
320 if v$="n" then end
Schon mal Danke.
Peddawing
- Andre
- PureBasic Team
- Beiträge: 1755
- Registriert: 11.09.2004 16:35
- Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10 - Wohnort: Saxony / Deutscheinsiedel
- Kontaktdaten:
Du willst doch lernen, oder nicht ?
Dafür schaust Du Dir mal die Befehle der Console Library in der Anleitung an, da findest Du analog den QBasic-Befehlen die fast identischen Befehle in PB.
Goto (wenn's denn sein muss) findest Du auch in der Anleitung, statt Zeilennummern (gibt's in PB wie in den meisten anderen aktuellen Programmiersprachen nicht) verwendest Du Sprungmarken.
Dafür schaust Du Dir mal die Befehle der Console Library in der Anleitung an, da findest Du analog den QBasic-Befehlen die fast identischen Befehle in PB.
Goto (wenn's denn sein muss) findest Du auch in der Anleitung, statt Zeilennummern (gibt's in PB wie in den meisten anderen aktuellen Programmiersprachen nicht) verwendest Du Sprungmarken.
- freedimension
- Admin
- Beiträge: 1987
- Registriert: 08.09.2004 13:19
- Wohnort: Ludwigsburg
- Kontaktdaten:
> Brauche mal Hilfe!
1. Klar brauchst du Hilfe. Jeder hier braucht Hilfe, das ist der Zweck des Forums. Wähle einen aussagekräftigen Post-Titel.
2. Es gibt Code-Tags: [code] dein code [/code]. Pack deinen Code dort rein, ist besser zu lesen.
3. Da es in deinem Thread um QBasic geht, kommt er besser ins "Andere Sprachen"-Forum.
Und viel übersetzen musst du da eigentlich nicht, diese simplen QBasic-befehle gibts in ähnlicher Form auch in PB. Siehe Hilfe.
Und willkommen im PureBoard
1. Klar brauchst du Hilfe. Jeder hier braucht Hilfe, das ist der Zweck des Forums. Wähle einen aussagekräftigen Post-Titel.
2. Es gibt Code-Tags: [code] dein code [/code]. Pack deinen Code dort rein, ist besser zu lesen.
3. Da es in deinem Thread um QBasic geht, kommt er besser ins "Andere Sprachen"-Forum.
Und viel übersetzen musst du da eigentlich nicht, diese simplen QBasic-befehle gibts in ähnlicher Form auch in PB. Siehe Hilfe.
Und willkommen im PureBoard
Build a man a fire and he's warm for a day. Set a man on fire and he's warm for the rest of his life
Schreibweise der Befehle unklar!
Hi Leute.
Versuche seit 3 Tagen das oben gelistete Progi in PB ans laufen zu bekommen.
Leider ist mir die j/n abfrage immer noch Schleierhaft.
Die korekte Schreibweise der Befehle würde mir schon weiterhelfen.
Habe mir schon etliche Tutotials angesehen, leider war nichts
passendes dabei.
Peddawing
Versuche seit 3 Tagen das oben gelistete Progi in PB ans laufen zu bekommen.
Leider ist mir die j/n abfrage immer noch Schleierhaft.
Die korekte Schreibweise der Befehle würde mir schon weiterhelfen.
Habe mir schon etliche Tutotials angesehen, leider war nichts
passendes dabei.
Peddawing
Ich habs ma versucht:
Zwar versteh ich paar Zeilen nich, z.B. "Goto Line300" wenn danach gleich Line300 kommt, aber is ja egal
Hab außerdem nach jedem Input() ein :PrintN("") gehängt damit in die nächste Zeile gesprungen wird.
Code: Alles auswählen
OpenConsole()
PrintN("akkordrechner")
Line30:
PrintN("ruestzeit(j/n)")
q.s = Input():PrintN("")
If q="j":Goto Line200:EndIf
If q="n":Goto Line100:EndIf
Line100:
PrintN("vorgabezeit")
a = Val(Input()):PrintN("")
PrintN("anzahl teile")
b = Val(Input()):PrintN("")
c=a*b
d=c/75
PrintN("ausgabe in std. bei 75 min. verrechnung!")
PrintN(Str(d))
Goto Line300
Line200:
PrintN("ruestzeit")
a = Val(Input()):PrintN("")
PrintN("vorgabezeit")
b = Val(Input()):PrintN("")
PrintN("anzahl teile")
c = Val(Input()):PrintN("")
d=b*c
e=d+a
f=e/75
PrintN("ausgabe in std. bei 75 min. verrechnung!")
PrintN(Str(f))
Goto Line300
Line300:
PrintN("neue rechnung(j/n)")
v.s = Input():PrintN("")
If v="j":Goto Line30:EndIf
If v="n":End:EndIf
Hab außerdem nach jedem Input() ein :PrintN("") gehängt damit in die nächste Zeile gesprungen wird.
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
- 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
Aus diesen 80'er Spaghetti-Code kann man doch eine Batch-Datei machen. Dazu Bedarf es doch keiner Programmiersprache
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.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
- freedimension
- Admin
- Beiträge: 1987
- Registriert: 08.09.2004 13:19
- Wohnort: Ludwigsburg
- Kontaktdaten:
So, Chance vertan. Die Extraarbeit die ich damit hatte den Titel zu ändern stelle ich Dir dann in Rechnung
Achja: Willkommen im Club. Wenn du Fragen hast kannst du sie gerne stellen und lass Dich nicht von so ein paar Forenregeln (also sinnvoller Titel usw.) erschrecken oder gar verjagen, die sind schnell gelernt und wir sind eigentlich (fast) alle ganz lieb und beißen nicht
Achja: Willkommen im Club. Wenn du Fragen hast kannst du sie gerne stellen und lass Dich nicht von so ein paar Forenregeln (also sinnvoller Titel usw.) erschrecken oder gar verjagen, die sind schnell gelernt und wir sind eigentlich (fast) alle ganz lieb und beißen nicht
- Falko
- Admin
- Beiträge: 3531
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.0 - Kontaktdaten:
Ich würde eher sagen, aus Beispielen kann jeder lernen
Hab das mal in einer Windowsausgabe gemacht.
Kommastellen bei VorgabeZeit bitte mit den Punkt angeben.
Am Einfachsten geht das mit dem in PB enthaltenen VisualDesigner.
Man braucht dann in den Optionen nur noch die Hauptschleife und
die jeweiligen Anpassungen machen. Falls da noch in der Rechnung
falsch ist kann du das ja in der Procedure rechne() abändern.
Wir arbeiten schon seit langen nicht mehr mit Akkord sondern mit
Prämie. Deshalb kann ich nicht über die Genauigkeit garantieren
MfG Falko
Hab das mal in einer Windowsausgabe gemacht.
Kommastellen bei VorgabeZeit bitte mit den Punkt angeben.
Am Einfachsten geht das mit dem in PB enthaltenen VisualDesigner.
Man braucht dann in den Optionen nur noch die Hauptschleife und
die jeweiligen Anpassungen machen. Falls da noch in der Rechnung
falsch ist kann du das ja in der Procedure rechne() abändern.
Wir arbeiten schon seit langen nicht mehr mit Akkord sondern mit
Prämie. Deshalb kann ich nicht über die Genauigkeit garantieren
MfG Falko
Code: Alles auswählen
; PureBasic Visual Designer v3.90 build 1360
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Text_0
#Text_1
#String_0
#Text_2
#String_1
#String_2
#Text_4
#CheckBox_0
#Text_5
#Text_6
#String_3
#Button_1
#Button_2
#Text_7
#Text_8
#Text_9
#String_4
#Text_10
EndEnumeration
;- Fonts
;
Global FontID1
FontID1 = LoadFont(1, "Arial", 14)
Global FontID2
FontID2 = LoadFont(2, "Arial", 8, #PB_Font_Bold)
Global VorgabeZeit.f
Procedure Open_Window_0()
If OpenWindow(#Window_0, 360, 19, 351, 262, #PB_Window_SizeGadget | #PB_Window_TitleBar , "Akkordberechnung created by Falko")
If CreateGadgetList(WindowID())
TextGadget(#Text_0, 80, 10, 190, 29, "Akkordrechner", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_0, FontID1)
TextGadget(#Text_1, 30, 60, 68, 20, "Vorgabezeit")
SetGadgetFont(#Text_1, FontID2)
StringGadget(#String_0, 38, 80, 50, 20, "")
TextGadget(#Text_2, 140, 60, 58, 14, "Anz. Teile")
SetGadgetFont(#Text_2, FontID2)
StringGadget(#String_1, 135, 80, 60, 20, "")
StringGadget(#String_2, 230, 80, 32, 20, "75")
TextGadget(#Text_4, 230, 59, 82, 14, "Akkord-Faktor")
SetGadgetFont(#Text_4, FontID2)
CheckBoxGadget(#CheckBox_0, 91, 111, 14, 15, "")
TextGadget(#Text_5, 40, 111, 41, 13, "Rüsten")
SetGadgetFont(#Text_5, FontID2)
TextGadget(#Text_6, 32, 150, 227, 14, "Ausgabe in std. bei 75 min. Verrechnung:")
SetGadgetFont(#Text_6, FontID2)
StringGadget(#String_3, 264, 147, 46, 20, "")
ButtonGadget(#Button_1, 40, 180, 120, 50, "Berechnen")
SetGadgetFont(#Button_1, FontID1)
ButtonGadget(#Button_2, 200, 180, 110, 50, "Beenden")
SetGadgetFont(#Button_2, FontID1)
TextGadget(#Text_7, 93, 88, 20, 13, "min.")
TextGadget(#Text_8, 270, 87, 19, 13, "min.")
TextGadget(#Text_9, 166, 111, 47, 15, "Rüstzeit")
SetGadgetFont(#Text_9, FontID2)
StringGadget(#String_4, 220, 104, 42, 20, "")
TextGadget(#Text_10, 270, 110, 19, 14, "min.")
EndIf
EndIf
EndProcedure
Procedure.s rechne(Vorgabe.f, Anz_Teile, Faktor, Ruestzeit,Checked)
If Checked=0
Ergebnis.f=(Vorgabe*Anz_Teile)/Faktor
Debug Ergebnis
Else
Ergebnis.f=((Vorgabe*Anz_Teile)+Ruestzeit)/Faktor
EndIf
ProcedureReturn StrF(Ergebnis,2)
EndProcedure
;------- Mainfile
Open_Window_0()
Repeat
Event = WaitWindowEvent()
If Event = #PB_EventGadget
;Debug "WindowID: " + Str(EventWindowID())
GadgetID = EventGadgetID()
If GadgetID = #String_0
;Debug "GadgetID: #String_0"
VorgabeZeit = ValF(GetGadgetText(#String_0))
ElseIf GadgetID = #String_1
;Debug "GadgetID: #String_1"
Anz_Teile = Val(GetGadgetText(#String_1))
ElseIf GadgetID = #String_2
;Debug "GadgetID: #String_2"
Faktor = Val(GetGadgetText(#String_2))
ElseIf GadgetID = #CheckBox_0
;Debug "GadgetID: #CheckBox_0"
If GetGadgetState(#Checkbox_0)=1
Checked=1
Else
checked=0
EndIf
ElseIf GadgetID = #String_3 ; Da dieses nur für die Ausgabe ist bleibt es hier offen
;Debug "GadgetID: #String_3"
ElseIf GadgetID = #Button_1
;Debug "GadgetID: #Button_1"
SetGadgetText(#String_3,rechne(VorgabeZeit, Anz_Teile, Faktor, Ruestzeit,Checked))
ElseIf GadgetID = #Button_2
;Debug "GadgetID: #Button_2"
End ; Beenden
ElseIf GadgetID = #String_4
;Debug "GadgetID: #String_4"
Ruestzeit = Val(GetGadgetText(#String_4))
EndIf
EndIf
Until Event = #PB_EventCloseWindow
End
;