READ- und READLN-Anweisungen. Unterschied zwischen readLn und read Was ist die readLn-Anweisung

Der Lesebefehl ist für die Eingabe von Variablenwerten (Anfangsdaten) über die Tastatur vorgesehen. Generell sieht die Anleitung so aus:

read (Variable!, Variable2, ... VariableU wobei Variable der Name der Variablen ist, deren Wert während der Programmausführung über die Tastatur eingegeben werden muss.

Hier sind Beispiele für das Schreiben einer Read-Anweisung:

Lesen ein); lesen (Cena, Kol);

Wenn eine Leseanweisung ausgeführt wird, geschieht Folgendes:

1. Das Programm unterbricht seine Arbeit und wartet, bis die erforderlichen Daten auf der Tastatur eingegeben und die Taste gedrückt wird .

2. Nach Drücken der Taste der eingegebene Wert wird der Variablen zugewiesen, deren Name in der Anweisung angegeben ist.

Beispielsweise als Ergebnis der Ausführung der Anweisung

Lesen (Temperatur);

und Zeile 21 auf der Tastatur eingeben, ist der Wert der Tempérât-Variablen die Zahl 21.

Mit einer Leseanweisung können Sie die Werte mehrerer Variablen abrufen. In diesem Fall müssen die eingegebenen Zahlen in einer Zeile eingegeben und durch Leerzeichen getrennt werden. Wenn zum Beispiel der Typ der Variablen a, b und c reell ist, dann wird als Ergebnis der Ausführung der Anweisung read (a, b, c); und Tastatureingabe der Zeile:

4.5 23 0.17

Variablen haben die folgenden Werte: a = 4,5; b = 23, o; c = 0,17.

Wenn eine Zeile mehr Zahlen enthält als Variablen in der Leseanweisung vorhanden sind, wird der Rest der Zeile von der nächsten Leseanweisung verarbeitet. Zum Beispiel als Ergebnis der Ausführung der Anweisungen:

Lesen (a, b); lesen (C);

und Tastatureingabe

10 25 18

Variablen erhalten die folgenden Werte: a = 10, b = 25. Anweisung lesen (C); weist der Variablen c den Wert 18 zu.

Die readln-Anweisung unterscheidet sich von der readln-Anweisung darin, dass nach dem Extrahieren der nächsten Zahl aus der über die Tastatur eingegebenen Zeichenfolge und deren Zuweisung zur letzten Variablen in der Liste der readln-Anweisung der Rest der Zeichenfolge verloren geht und die nächste read- oder readln-Anweisung ausgeführt wird erfordert neue Eingaben.

Zum Beispiel als Ergebnis der Ausführung der Anweisung:

readln(a, b); lesen (C);

und über die Tastatur schreiben

10 25 18

die Variablen erhalten die folgenden Werte: a = u, b = 25. Danach wartet das Programm auf die Eingabe einer neuen Zahl, um sie der Variablen c zuzuweisen.

Vor jedem Lese- oder Lesebefehl sollte ein Schreibbefehl stehen, um dem Benutzer mitzuteilen, welche Daten das Programm von ihm erwartet. Ein Fragment eines Programms zur Berechnung der Einkaufskosten könnte beispielsweise so aussehen:

Writeln("Anfangsdaten eingeben."); write("Produktpreis:"); readln(sepa); write("Chargenmenge:"); readln(col); schreiben("Rabatt:"); readln(Skidka);

Wenn der über die Tastatur eingegebene Datentyp nicht mit dem Variablentyp übereinstimmt oder nicht in diesen umgewandelt werden kann, dessen Namen in der read (readln)-Anweisung angegeben sind, dann stürzt das Programm ab (die Anweisungen nach dem read werden nicht ausgeführt), und a Auf dem Bildschirm wird eine Meldung angezeigt.

Die Programmiersprache Pascal verwendet Anweisungen wie read und readLn. Was sind Sie?

Was ist eine Leseanweisung?

Diese Anweisung soll die Eingabe verschiedener Werte von Variablen über die PC-Tastatur ermöglichen, wenn die Sprache Pascal verwendet wird. Das Schema zur Verwendung der fraglichen Anweisung sieht einfach aus: wie read („Variablenwert“).

In der Praxis wird mit der read-Anweisung dafür gesorgt, dass bestimmte Daten aus einer Datei gelesen werden und dann die aus den entsprechenden Daten extrahierten Werte den Variablen zugewiesen werden, die beim Aufruf der Prozedur angegeben werden.

Wenn der Benutzer bei der Eingabe von Daten einen Fehler gemacht hat und diese keinem Variablentyp entsprechen, der in der Anweisung wiedergegeben wird, stoppt das Programm die Ausführung von Befehlen. Gleichzeitig erscheint auf dem PC-Bildschirm eine Meldung, dass ein Fehler in der Anwendung aufgetreten ist.

Wenn der Programmierer mehrere Leseanweisungen verwendet, werden die Daten auf die eine oder andere Weise in derselben Zeile eingegeben. Der Übergang zur nächsten ist nur möglich, wenn die aktuelle Zeile endet. Sie können jedoch mit der readLn-Anweisung Informationen lesen, die in einer anderen Zeile platziert sind. Betrachten wir seine Funktionen genauer.

Was ist die readLn-Anweisung?

Die Essenz der readLn-Anweisung besteht darin, eine Bedingung im Programm festzulegen, unter der:

  • jede Zahl, die in die Zeile eingegeben wird, wird gemäß der Anweisung der letzten Variablen zugewiesen;
  • Der verbleibende Bereich der Zeile wird vom Programm nicht verarbeitet, während die nächste Anweisung eine neue Eingabe erfordert.

Sie können also die Anweisung eingeben:

readLn(C,D); lesen (E);

Und wenn danach die Zeile 1 2 3 über die Tastatur eingegeben wird, erhält die Variable C den Wert 1, D - 2. Das Programm weist der Variablen E jedoch keinen bestimmten Wert zu, bis der Benutzer eine neue Zahl eingibt.

Wie bei der read-Anweisung, wenn der Benutzer einen Datentyp falsch über den readLn-Befehl eingibt, wird das Programm beendet und gemeldet, dass ein Fehler aufgetreten ist.

Vergleich

Der Hauptunterschied zwischen readLn und read besteht darin, dass das Programm bei der ersten Prozedur zu der Zeile der Datei springt, die der Zeile folgt, in der die Anweisungen geschrieben sind. Das zweite Verfahren erlaubt dem Programm, die in der nächsten Zeile platzierten Daten nur mit Erlaubnis des Benutzers zu lesen – wenn er die Eingabetaste drückt.

In der Praxis wird die readLn-Anweisung am häufigsten verwendet, um eine Verzögerung zwischen dem Ergebnis der Anwendungsausführung und dem Übergang zur nächsten Anweisung bereitzustellen. Die entsprechende Verzögerung dauert, bis der Benutzer die Eingabetaste drückt.

Nachdem wir festgestellt haben, was der Unterschied zwischen readLn und read in Pascal ist, fixieren wir die Schlussfolgerungen in der Tabelle.

Genauso wie für Informationsausgabeanweisungen sind die Anweisungen read und rereadln Operatoren für den Zugriff auf eingebaute Informationseingabeverfahren.

Die Operatoren read (read) und readln, die sich aus zwei englischen Wörtern read (read) und line (line) zusammensetzen, werden in Programmen verwendet, um Informationen in den Computerspeicher einzugeben und " Lesungen"Werte in eine Variable.

Berücksichtigen Sie die Arbeit dieser Bediener und die Verfahren zur Eingabe von Informationen.

Unser Programm hat eine readln(a)-Prozedur. Wenn beim Ausführen eines Programms eine readln-Anweisung auftritt, hält der Computer an, während er auf die Eingabe von Informationen wartet. Nachdem wir den Wert der Variablen a - 16 über die Tastatur eingegeben haben, weist der Computer diesen Wert der Variablen a zu, d.h. sendet es an den Speicherort mit dem Namen a und setzt die Programmausführung fort. Wir nennen diesen Vorgang " Lektüre"Werte in eine Variable.

Die Prozeduren read und readln "lesen" also die Werte von Variablen und weisen sie den Variablen zu, die in sie geschrieben werden.

Es kann mehrere solcher Variablen geben, dann werden sie in diese Operatoren durch Kommas getrennt geschrieben, zum Beispiel:

read(a, b, c, n, g, j, i), readln(e, f, k, p, d) usw.

Was ist der Unterschied zwischen read- und readln-Prozeduren?

Die read-Prozedur erfordert die Eingabe oder Ausgabe von Informationen in einer Zeile nach sich selbst, und die readln-Prozedur ermöglicht es Ihnen, Informationen nach sich selbst vom Beginn einer neuen Zeile an ein- und auszugeben.

Zum Beispiel:

Im Programm: write("Geben Sie die Werte a und b ein"); lesen (a, b);

write("Eingabe von Informationen in einer Zeile");

Wenn dieser Teil des Programms ausgeführt wird, wird alles, was in der ersten Schreibanweisung geschrieben wurde, auf dem Bildschirm angezeigt, dann befindet sich der Cursor auf derselben Zeile und der Computer wartet darauf, dass die Werte a und b vorliegen trat ein. Geben wir ihre Werte ein - 2 und 3, indem wir sie durch ein Leerzeichen oder mit anderen Worten durch ein Leerzeichen trennen. Danach werden die in der nächsten Schreibanweisung geschriebenen Informationen auf derselben Zeile ausgegeben.

Auf dem Bildschirm:

Geben Sie die Werte für a und b ein 2 3 Geben Sie Informationen in einer Zeile ein

In einem Programm:

writeln("Geben Sie a, b und c ein); readln(a, b, c);

writeln("Eingabe- und Ausgabeinformationen ab Zeilenanfang");

Auf dem Bildschirm:

Geben Sie die Werte a, b und c ein

Eingabe und Ausgabe von Informationen ab Zeilenanfang

Arithmetische Operationen mit ganzen Zahlen. Variablen vom Typ Integer. Echter Typ

In Pascal werden ganze Zahlen verwendet, die alle natürlichen Zahlen umfassen, die beim Zählen von Objekten gebildet werden: 1, 2, 3, 4, 5, 6, ...; negative Zahlen: ..., -6, -5, -4, -3, -2, -1 und die Zahl Null: 0. Ganzzahlen bilden folgende Reihen:

6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, ...

In Pascal reichen Ganzzahlen von -32768 bis 32767.

Variablen, die ganzzahlige Werte annehmen, werden im Beschreibungsabschnitt mit einer Angabe des Typs Integer (Integer) geschrieben.

Zum Beispiel: var a, b, c, a1, b34, nomb: integer;

Werte eines anderen Typs als diese Variablen im selben Programm kann nicht zugeordnet werden.

Arithmetische Operationen mit ganzen Zahlen und Variablen vom Typ Integer in Pascal

Das Zeichen "_" bedeutet ein Leerzeichen. Leerzeichen zwischen Variablennamen und Operationsnamen (div) sind erforderlich. (Es kommt von der englischen Division - Division).

Der Rest der Division von a durch b. a_mod_b

Die Programme unterscheiden sich nur in einer Zeile. Das erste Programm ist selbsterklärend – es gibt die Zahl 36 aus. Das zweite Programm sagt nirgendwo, was a und b sind, und enthält stattdessen eine ReadLn-Anweisung. Reden wir über ihn.

ReadLn ist read „read" line, übersetzt „read the line". Es weist den Computer an, anzuhalten und darauf zu warten, dass eine Person bestimmte Informationen über die Tastatur eingibt, und dann weiterzuarbeiten. Insbesondere ReadLn (a, b) wartet für die Eingabe von zwei Ganzzahlen.

Wenn also das erste Programm nach dem Start ohne Unterbrechung bis zum Ende arbeitet und das Ergebnis ohne Probleme liefert, stoppt das zweite Programm und wartet auf die ReadLn-Anweisung. Während dieser Wartezeit muss die Person die Zahl 20 auf der Tastatur eingeben (weil die erste in der ReadLn-Operatorliste a ist), dann die Leertaste drücken, dann 16 eingeben und die Eingabetaste drücken. Pascal nimmt das Drücken der Leertaste als Signal einer Person wahr, dass die Eingabe einer Zahl auf der Tastatur beendet ist und eine andere mit der Eingabe beginnen wird. Nachdem Sie die letzte Zahl auf der Tastatur eingegeben haben, müssen Sie die Eingabetaste drücken, um anzuzeigen, dass die Zahleneingabe für diese ReadLn-Anweisung abgeschlossen ist und der Computer weiterarbeiten kann. Dementsprechend hört der Computer unmittelbar nach dem Drücken der Eingabetaste auf zu warten und sendet zunächst die Zahl 20 an den Speicher, an Zelle a, die Zahl 16 an Zelle b. Daraufhin betrachtet er die Ausführung der ReadLn-Anweisung als abgeschlossen und fährt mit der nächsten Anweisung – WriteLn – fort. Dadurch wird die Zahl 36 gedruckt.

Also machen beide Programme das gleiche. Warum dann ReadLn anstelle des Zuweisungsoperators verwenden? Immerhin ist das erste Programm übersichtlicher und es funktioniert ohne Unterbrechung. Einer der Gründe ist, dass das Programm mit ReadLn viel universeller, "freier" ist: Wenn das erste Programm das Problem löst, nur zwei bestimmte Zahlen zu addieren, dann fügt das zweite Programm zwei beliebige Zahlen hinzu. Der zweite Grund ist, dass ein Programm mit ReadLn es dem Programmierer ermöglicht, beim Schreiben des Programms nicht an die spezifischen Werte der Quelldaten zu denken, was diese Kopfschmerzen zum Zeitpunkt der Programmausführung hinterlässt. Aber der wichtigste Grund ist, dass ReadLn es einer Person ermöglicht, mit einem Computer zu kommunizieren, einen Dialog mit ihm zu führen, während das Programm läuft.

Um die Bedeutung des ersten Grundes zu bestätigen, schreiben wir ein Programm zur Lösung des folgenden Problems: Es gibt drei Elefanten und ziemlich viele Kaninchen im Zoo, und die Anzahl der Kaninchen ändert sich häufig. Ein Elefant soll 100 Karotten am Tag fressen, ein Hase 2. Jeden Morgen meldet der Tierpfleger die Anzahl der Kaninchen an den Computer. Als Antwort sollte der Computer dem Pfleger die Gesamtzahl der Karotten mitteilen, die heute an Kaninchen und Elefanten verfüttert werden müssen.

Lassen Sie uns Namen für Variablen finden:

kol_krol - Anzahl der Kaninchen im Zoo

kol_slon - Anzahl der Elefanten im Zoo

norma_krol - wie viele Karotten pro Tag sollte ein Kaninchen

norma_slon - wie viele Karotten pro Tag ein Elefant haben sollte

vsego - wie viele Karotten sind erforderlich

Jetzt schreiben wir das Programm:

VAR kol_krol,kol_slon,norma_krol,norma_slon,vsego:Integer;

norma_slon:=100;

ReadLn(kol_krol);

vsego:= Norma_krol * Kol_krol + Norma_slon * Kol_slon;

Nachdem er das Programm geschrieben hat, gibt der Programmierer es in den Computer ein, debuggt es und schreibt es auf die Festplatte. Damit ist seine Mission beendet. Am Morgen geht der Aufseher, nachdem er die Kaninchen gezählt und festgestellt hat, dass es 60 sind, zum Computer und startet das Programm zur Ausführung.

Der Computer hält nach der automatischen Ausführung der ersten beiden Anweisungen (norma_krol:=2 und norma_slon:=100) bei der ReadLn-Anweisung an. Der Diener gibt die Zahl 60 ein, woraufhin der Computer diese Zahl an die Zelle kol_krol sendet und mit der Ausführung der nächsten Anweisung fortfährt (kol_slon:=3). Schließlich erscheint die Antwort auf dem Monitor: 420.

Hier ist eine schematische Darstellung des Ablaufs der Programmausführung:

REIHENFOLGE DER AUSFÜHRUNG DER BETREIBER

WAS IST IN GEDÄCHTNISZELLEN

ReadLn (kol_krol)

vsego:=norma_krol

Als am nächsten Morgen festgestellt wird, dass 5 Kaninchen an einen anderen Zoo verkauft wurden, führt der Aufseher dasselbe Programm aus, gibt die Zahl 55 ein und erhält die Antwort 410.

Mit diesem etwas phantasievollen Beispiel wollte ich zeigen, dass man mit ReadLn Programme erstellen kann, die zwar angenehm unverändert bleiben, es aber jederzeit einfach machen, ein Problem für beliebige Werte der Ausgangsdaten zu lösen. Es wäre auch möglich, den anderen Weg zu gehen - statt ReadLn den Zuweisungsoperator zu verwenden, zum Beispiel kol_krol:=60. Aber in diesem Fall müsste der Programmierer jeden Morgen in den Zoo laufen, um diese Zuordnungsangabe im Programm zu korrigieren.

Die ReadLn-Anweisung kann auch ohne Klammern geschrieben werden, einfach so: ReadLn . Wenn Sie eine Anweisung in einem solchen Datensatz ausführen, hält der Computer an und wartet, aber nicht auf die Eingabe von Informationen, sondern einfach auf das Drücken der Eingabetaste. Somit ist es einfach eine Anweisung, während der Programmausführung eine Pause zu erzeugen. Wir werden darüber sprechen, warum Pausen etwas niedriger benötigt werden.

Neben der ReadLn-Anweisung wird auch die Read-Anweisung zur Eingabe von Daten verwendet. Für einen unerfahrenen Programmierer sind die Unterschiede in ihrer Anwendung nicht signifikant. Wir werden vorerst nur ReadLn verwenden. Eine Read-Anweisung ohne Klammern erzeugt keine Pause.

Fortsetzung des Themas:
Lösungen

Viele Benutzer sehen sich oft der Tatsache gegenüber, dass sie bei der Arbeit mit verschiedenen Browsern von einer leeren Seite oder einer Seite aus starten müssen, die sie nicht benötigen ....