Pascal zwei probleme < Pascal < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Hallo,
ich habe zwei Fragen an euch zum Thema Turbo Pascal. Die erste wäre: Ich möchte gerne von einer Zahl die Zehner runden. 6.789=6.8
mit der angabe von variable:= random (variable) kommt das Ergebnis 7. Ich möchte aber 6.8 haben. Meine zweite frage wäre. Ich habe die Zahl 6.789 als real Zahl angegeben. Nun möchte ich aus ihr 6789 h ohne diesen Punkt machen Der Anwender soll diese Zahl eingeben, auch wenn dahinter keine Logik steckt also der Anwender soll 6.789 eingben und das programm soll 6789 ausgeben, ohne das ich einer variable den Wert 6789 zugewiesen hab. Wie geht das, dass man den Punkt weglassen kann? Zu Fragen, warum ich das frage: Reine Neugier ;) ICh würde mich sehr auch antworten auf meine zwei fragen freuen. Danke im Voraus!
|
|
|
|
Hallo.
Leider habe ich TP nicht installiert, aber man könnte doch den ganzzahligen Anteil mit trunc (x) berechnen und den Nachkomma Anteil mit frac (x) ausgeben lassen welchen du dann mit 10 multipliziertst. Dann mit round davon und dann hättest du z.B. 0,764 => 7,64 => 8. Das wieder durch 10 dividieren und mit dem ganzzahligen Anteil der eingegebenen Zahl addieren. Also z.B. 7,6543... => trunc () => 7 (*)
=> frac() => 0,6543 => 6,543 => 7 => 0,7 (**)
(*)+(**) = 7,7
Wenn du mir sagst wo ich kostenlos TP herbekomme, würde ichs mir downloaden und auch mal ausprobieren.
|
|
|
|
|
Man könnte, (angenommen die Vorkommazahl ist immer mich größer als 9) die Länge der Zahl mit length (x) berechnen. Dann die erhaltene Zahl der Länge (z.B. 7,95 = Länge 3) -1 (d.h. 3-1=2). Dann [mm] 10^2 [/mm] * eingegebene Zahl. Fertig.
Wenn die Anzahl der Vorkommastellen variabel ist, musst du erst den ganzzahligen Anteil berechnen, diesen mit length abzählen, nenne ich mal (z1). Dann von der Länge der gesamten Zahl (z_ges) z.B. (85,75) ; (z_ges)=4 berechnen.
Dann (z_ges)-(z1) = (diff). Und wieder wie oben [mm] 10^{(diff)} [/mm] * eingegebene Zahl. Fertig.
|
|
|
|