Notwendig
PascalABC. NET oder PascalTurbo-Programmierumgebung
Anweisungen
Schritt 1
Öffnen wir also zunächst das Programm. Lassen Sie uns eine neue Datei erstellen und die Plugins angeben. In diesem Fall benötigen wir ein Modul für die Arbeit mit der Konsole - CRT.
dazu schreiben wir:
Verwendet
Kathodenstrahlröhre;
Schritt 2
Lassen Sie uns die Variablen i, s, m angeben - Variablen vom reellen Typ.
var
i, s, m: Real;
Schritt 3
Um das Programm zu starten, schreiben Sie:
Start
Und wir geben den Titel des Konsolenfensters an:
SetWindowTitle ('Stoppuhr');
Schritt 4
Die Prozedur TextColor weist dem Text eine Farbe zu und die Write-Anweisung zeigt den Text auf dem Bildschirm an:
TextColor (Hellgrün);
WriteLn ('Drücken Sie die Eingabetaste, um die Stoppuhr zu starten');
WriteLn ('Erneut drücken, um zu stoppen');
Schreiben ('Erneut klicken, um von vorne zu beginnen');
Die Endung Ln geht in die nächste Zeile.
Schritt 5
Der ReadLn-Operator gibt Werte über die Tastatur ein, wartet in diesem Fall jedoch nur darauf, dass der Benutzer die Eingabetaste drückt:
ReadLn;
Schritt 6
Wir machen eine Endlosschleife:
während (wahr) tun
Start
Das while (true) do begin-Konstrukt bedeutet übersetzt: While (condition) do (). Warum ist hier beginnen?
In diesem Fall benötigen wir einen zusammengesetzten Operator, was bedeutet, dass während die Bedingung wahr ist, mehrere Operatoren ausgeführt werden. Wäre es nicht für begin, dann wurde nach dem While nur eine Anweisung ausgeführt, was zu einer fehlerhaften Programmbedienung führen würde. Um die While-Anweisung am Ende zu beenden, schreiben wir end.
Schritt 7
Jetzt setzen wir den Zähler zurück:
ich: = 0;
Schritt 8
Die folgende Anweisung bedeutet übersetzt: bis die Taste do () gedrückt wird.
während keine Taste gedrückt wird
Start
Der ClrScr-Operator löscht den Bildschirm:
ClrScr;
Schritt 9
Wir stellen die Bedingung: Wenn die Sekunden mehr als 60 und weniger als 3600 betragen (dies ist notwendig, damit das Programm bei einer Zeit von mehr als einer Stunde nur das druckt, was nach der dritten ist, wenn) dann:
if (i> 60) und (i <3600) dann beginnen
Die Variable m (Minuten) ist gleich: Sekunden geteilt durch 60 und nach vorne gerundet.
m: = Int (i / 60);
Und die Variable s (Sekunden ohne Minuten) ist gleich: alle Sekunden minus Minuten multipliziert mit 60.
s: = i - m * 60;
Schritt 10
Die Write-Anweisung schreibt, wie viele Minuten und Sekunden vergangen sind, und die end-Anweisung beendet die Arbeit von begin nach der if-Bedingung:
Schreiben (m, 'Minuten (s) und', s: 1: 2, 'Sekunden (s)')
Ende;
Funktion: 1: 2 bedeutet, dass Sekunden mit zwei Nachkommastellen geschrieben werden sollen.
Schritt 11
Wenn die Sekunden kleiner als 60 sind, schreiben Sie einfach mit zwei Dezimalstellen, wie viele Sekunden vergangen sind:
wenn ich <60 dann
Schreiben ('', i: 1: 2, 'Sekunden (a / s)');
Schritt 12
Wenn die Sekunden mehr als 3600 (d. h. mehr als eine Stunde) betragen, dann:
wenn ich > 3600 dann beginne
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m/60);
m: = m - ch * 60;
Schreiben (ch, 'Stunde (s)', m, 'Minuten (s) und', s: 1: 2, 'Sekunden (s)');
Ende;
Schritt 13
Das Programm hat also geschrieben, dass 0 Sekunden vergangen sind, jetzt erhöht es den Zähler i um 10 Millisekunden, und da das Programm alles sofort erledigt, machen wir eine Verzögerung für die gleiche Zeit:
i: = i + 0,01;
Verzögerung (10);
Als nächstes machen wir das Ende für die While (not keypressed)-Anweisung:
Ende;
Wenn der Benutzer die Eingabetaste gedrückt hat, wartet das Programm darauf, dass er sie erneut drückt, um die Stoppuhr erneut zu starten:
Einlesen;
Einlesen;
Es ist kein Zufall, dass wir den Zähler nach der While-Anweisung (true) auf Null setzen, denn wenn der Benutzer ein zweites Mal die Eingabetaste drückt, startet das Programm von dort aus, setzt den Zähler zurück und beginnt erneut zu zählen.
Als nächstes beenden wir das While und für das gesamte Programm:
Ende;
Schritt 14
Hier das komplette Programm:
Verwendet
Kathodenstrahlröhre;
var
Ich echt;
s: Echt;
m: Echt;
ch: Echt;
Start
SetWindowTitle ('Stoppuhr');
TextColor (Hellgrün);
WriteLn ('Drücken Sie die Eingabetaste, um die Stoppuhr zu starten');
WriteLn ('Erneut drücken, um zu stoppen');
Schreiben ('Erneut klicken, um von vorne zu beginnen');
ReadLn;
während (wahr) tun
Start
ich: = 0;
während keine Taste gedrückt wird
Start
ClrScr;
if (i> 60) und (i <3600) dann beginnen
m: = Int (i / 60);
s: = i - m * 60;
Schreiben (m, 'Minuten (s) und', s: 1: 2, 'Sekunden (s)')
Ende;
wenn ich <60 dann
Schreiben ('', i: 1: 2, 'Sekunden (a / s)');
wenn ich > 3600 dann beginne
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m/60);
m: = m - ch * 60;
Schreiben (ch, 'Stunde (s)', m, 'Minuten (s) und', s: 1: 2, 'Sekunden (s)');
Ende;
i: = i + 0,01;
Verzögerung (10);
Ende;
Einlesen;
Einlesen;
Ende;
Ende.
Schritt 15
Es stellte sich als nicht sehr schön heraus, aber das Programm funktioniert korrekt!