Ganzzahlige Division und Rest


Im Arithmetik-Modul sprachen wir über die Merkmale der Pascal-Sprache.
Wir werden uns daran erinnern. ganze( Es können drei Trennoperationen verwendet werden:
/- normale Division, Rücksetztyp real
Div- die ganze Division, wenn wir aus der Splitting-Operation entlassen werden.
mod - Berechnung der Trennungsbilanz

Es tut mir leid!
In der Pascal-Sprache ist das Ergebnis der gesamten Zahlenspaltung immer eine Substanz.

Beispiel:
var a, b, d, e: ganze Zahl;
c: real;
a: = 10;
b: = 3;
c := a / b; // Antwort: c = 3.33333333-33E+000
d := a mod b; / Antwort: d = 1
:= a div b; / Antwort: e = 3

Diese Vorgänge sind bei der Programmierung sehr wichtig. Sie müssen richtig verstanden und verwendet werden. Das ist die Praxis!

Die Notwendigkeit einer Operation zur Berechnung der Trennungsbilanz ist bei der Arbeit mit den Zahlen sichtbar.

Wir werden diese Aufgabe lösen:
Es ist dreistellig. Legen Sie alle Zahlen auf den Bildschirm und erhalten Sie eine neue Anzahl von Einheiten und Hunderte.

Die härteste Frage, die Starter haben, ist, wie sie ihre Zahlen bekommen.
In der Tat ist es leicht zu entscheiden, ob Sie sich an Mathe erinnern. Und Mathematik sagt uns, dass jede Anzahl dekoriert werden kann.
Zum Beispiel: 365=3*100+6*10+5*1Wir sehen, dass jede Zahl ein Multiplikator auf dem entsprechenden Zahlenniveau ist.
Mal sehen, wie wir jede Zahl in einer einzigen Variablen bekommen, auf der Zählung von 10 Polen, da wir ein Dezimal-Rechnungssystem haben und dementsprechend haben wir eine Dezimal-Set von 1, 10, 100, etc.)

Durch die Analyse der Zeichnung können Sie sehen, dass
e := n mod 10;        // операция n mod 10   - вычисляет последнюю цифру числа n (то есть единицы числа)  365 mod 10 = 5 

d := n div 10 mod 10;   // операция n div 10 - сокращает число в 10 раз, то есть отбрасывает у числа последнюю цифру (365 div 10 = 36), 
                   // теперь мы можем вычислить число десятков, применив к результату знакомую операцию - вычислить остаток от деления на число 10, 36 mod 10 = 6
 
s := n div 100;       // чтобы получить сотни, достаточно у числа отбросить справа две цифры, то есть дважды разделить на 10  (n div 10 div10 или тоже самое, что n div 100) 365 div 100 = 3

Mit den zurückgehaltenen Zahlen können wir eine beliebige Zahl zeichnen und die erforderliche Anzahl auf die entsprechende Ebene multiplizieren:
Beispielsweise erhält die folgende Zeile eine neue Anzahl von n, mit Hunderten und Einheiten übertragen:
(1) Alte Anzahl von Einheiten (in Variablen enthalten)e) multipliziert. 100 %
(2) Alte Zehnerzahl (in Variablen enthalten) (d)multipliziert.10.
(3) Eine alte Anzahl von Hunderten, können wir nur um eins multiplizieren oder einfach den in der Variablen gespeicherten Wert annehmen S
Die Werte der Absätze 1, 2 und 3 addieren und erhalten dann einfach eine neue Zahl:

n1 := e * 100 + d * 10 + s;

Das gesamte Programm wird wie folgt aussehen:
var n, e, d, s: integer;

begin
  read(n);
  e := n mod 10;     
  d := n div 10 mod 10;  
  s := n div 100;
  writeln(e, ' ', d, ' ', s, ' ', e * 100 + d * 10 + s);
end.