HP Forums
Problems hope someone can help - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html)
+--- Forum: HP Prime (/forum-5.html)
+--- Thread: Problems hope someone can help (/thread-22918.html)



Problems hope someone can help - Terra1988 - Yesterday 02:16 PM

Hello everyone
I got the Prime g2 for Christmas and am now trying to get it ready for my work.

Now of course I have this stupid idea to create some programs that can calculate everything for me without much effort.
Of course, since I don't know anything about programming, Chatgpt has helped me so far, but unfortunately it doesn't work that way with a program because I still get syntax errors after x attempts.

Attached is the code:

EXPORT margenRechner()
BEGIN
LOCAL bruttopreis, eigenrabatt, kundenrabatt, schlussrabatt, skonto, allgemeine_abzuege;
LOCAL preis_nach_kundenrabatt, preis_nach_schlussrabatt, preis_nach_skonto, endpreis, effektiver_einkaufspreis, marge;

// Eingabe der Werte
bruttopreis := REQUEST("Gib den Bruttopreis ein: ");
eigenrabatt := REQUEST("Gib den Eigenrabatt in Prozent ein: ");
kundenrabatt := REQUEST("Gib den Kundenrabatt in Prozent ein: ");
schlussrabatt := REQUEST("Gib den Schlussrabatt in Prozent ein: ");
skonto := REQUEST("Gib den Skonto in Prozent ein: ");
allgemeine_abzuege := REQUEST("Gib die allgemeinen Abzüge in Prozent ein: ");

// Berechnung des effektiven Einkaufspreises nach Eigenrabatt
effektiver_einkaufspreis := bruttopreis * (1 - eigenrabatt / 100);

// Berechnung des Preises nach Kundenrabatt
preis_nach_kundenrabatt := bruttopreis * (1 - kundenrabatt / 100);

// Berechnung des Preises nach Schlussrabatt
preis_nach_schlussrabatt := preis_nach_kundenrabatt * (1 - schlussrabatt / 100);

// Berechnung des Preises nach Skonto
preis_nach_skonto := preis_nach_schlussrabatt * (1 - skonto / 100);

// Berechnung des Endpreises nach allen allgemeinen Abzügen (Prozent)
endpreis := preis_nach_skonto * (1 - allgemeine_abzuege / 100);

// Berechnung der Marge
marge := (endpreis - effektiver_einkaufspreis) / endpreis * 100;

// Ausgabe der Ergebnisse
PRINT("Effektiver Einkaufspreis nach Eigenrabatt:" ;effektiver_einkaufspreis);
PRINT("Preis nach Kundenrabatt:" ;preis_nach_kundenrabatt);
PRINT("Preis nach Schlussrabatt:" ;preis_nach_schlussrabatt);
PRINT("Preis nach Skonto:" ;preis_nach_skonto);
PRINT("Endpreis nach allen Abzügen:" ;endpreis);
PRINT("Die Marge beträgt: ", marge, " %");
END;


Maybe someone can help me with the syntax error I've been getting with print lines:

So now the next problem:
The screen flickers especially when I'm not using the standard calculation. What could that be about?
In the beginning it wasn't like that.


RE: Problems hope someone can help - komame - Yesterday 04:47 PM

Chat GPT applied the REQUEST command, which does not exist on the HP Prime. Additionally, there is also a problem with the fact that PRINT accepts only one argument. If you want to display a description and a value, you need to concatenate them, for example, using the "+" operator (this results in concatenation into a single output string). HP Prime provides various methods for inputting data. One of them is entering data directly from the terminal using the READLINE command (example below). However, there is a more professional approach using the INPUT command, which displays a dialog box and allows you to edit values on a single unified screen, which is very convenient. If you need an example of how to use INPUT, let me know.

Unfortunately, READLINE always returns a string type, so if you input numbers, you need to convert them using the EXPR function:

EXPORT margenRechner()
BEGIN
LOCAL bruttopreis, eigenrabatt, kundenrabatt, schlussrabatt, skonto, allgemeine_abzuege;
LOCAL preis_nach_kundenrabatt, preis_nach_schlussrabatt, preis_nach_skonto, endpreis, effektiver_einkaufspreis, marge;

// Bildschirm zurücksetzen
PRINT;

// Eingabe der Werte

PRINT("Gib den Bruttopreis ein: ");
PRINT(bruttopreis := EXPR(READLINE));

PRINT("Gib den Eigenrabatt in Prozent ein: ");
PRINT(eigenrabatt := EXPR(READLINE));

PRINT("Gib den Kundenrabatt in Prozent ein: ");
PRINT(kundenrabatt := EXPR(READLINE));

PRINT("Gib den Schlussrabatt in Prozent ein: ");
PRINT(schlussrabatt := EXPR(READLINE));

PRINT("Gib den Skonto in Prozent ein: ");
PRINT(skonto := EXPR(READLINE));

PRINT("Gib die allgemeinen Abzüge in Prozent ein: ");
PRINT(allgemeine_abzuege := EXPR(READLINE));

// Berechnung des effektiven Einkaufspreises nach Eigenrabatt
effektiver_einkaufspreis := bruttopreis * (1 - eigenrabatt / 100);

// Berechnung des Preises nach Kundenrabatt
preis_nach_kundenrabatt := bruttopreis * (1 - kundenrabatt / 100);

// Berechnung des Preises nach Schlussrabatt
preis_nach_schlussrabatt := preis_nach_kundenrabatt * (1 - schlussrabatt / 100);

// Berechnung des Preises nach Skonto
preis_nach_skonto := preis_nach_schlussrabatt * (1 - skonto / 100);

// Berechnung des Endpreises nach allen allgemeinen Abzügen (Prozent)
endpreis := preis_nach_skonto * (1 - allgemeine_abzuege / 100);

// Berechnung der Marge
marge := (endpreis - effektiver_einkaufspreis) / endpreis * 100;

// Ausgabe der Ergebnisse
PRINT("-------------");
PRINT("Effektiver Einkaufspreis nach Eigenrabatt: " + effektiver_einkaufspreis);
PRINT("Preis nach Kundenrabatt: " + preis_nach_kundenrabatt);
PRINT("Preis nach Schlussrabatt: " + preis_nach_schlussrabatt);
PRINT("Preis nach Skonto: " + preis_nach_skonto);
PRINT("Endpreis nach allen Abzügen: " + endpreis);
PRINT("Die Marge beträgt: " + marge + " %");
END;


Regarding the screen flickering, press On + Shift (make sure it's in this order), and while holding both keys, press + or - to adjust the screen refresh rate.
A bar showing the current settings should appear.