Skip to content

Ein- und Ausgabe

NeoObjectPascal bietet einfache Prozeduren für die Interaktion mit der Konsole: WriteLn zum Anzeigen von Informationen, ReadLn zum Einlesen von Benutzereingaben und showMenu zum Erstellen nummerierter Menüs.

Schreiben mit WriteLn

Die Prozedur WriteLn schreibt eine Textzeile in die Konsole und fügt am Ende einen Zeilenumbruch hinzu:

npas
begin
    WriteLn("Olá, Mundo!");
end.
Saída
 Olá, Mundo! 

Mehrere Argumente

WriteLn akzeptiert mehrere Argumente und verkettet sie ohne Trennzeichen in der Ausgabe. Das ist praktisch, um Meldungen mit dynamischen Werten zusammenzusetzen:

npas
var nome: String;
var idade: Integer;

begin
    nome := "Carol";
    idade := 28;
    WriteLn("Olá, ", nome, "! Você tem ", idade, " anos.");
end.
Saída
 Olá, Carol! Você tem 28 anos. 

Leerzeile

Der Aufruf von WriteLn() ohne Argumente gibt lediglich einen Zeilenumbruch aus — praktisch, um Ausgabeblöcke voneinander zu trennen.

Lesen mit ReadLn

Die Prozedur ReadLn liest eine vom Benutzer eingegebene Zeile und speichert sie in einer Variablen. Der Wert wird in den Typ der Zielvariablen umgewandelt:

npas
var nome: String;

begin
    WriteLn("Qual é o seu nome?");
    ReadLn(nome);
    WriteLn("Prazer, ", nome, "!");
end.
Saída
 Qual é o seu nome? Prazer, Ada! 

Wenn die Zielvariable vom Typ Integer oder Real ist, wird der eingelesene Text automatisch in den entsprechenden numerischen Typ umgewandelt:

npas
var idade: Integer;

begin
    WriteLn("Digite sua idade:");
    ReadLn(idade);

    if idade >= 18 then
        WriteLn("Maior de idade.")
    else
        WriteLn("Menor de idade.");
end.
Saída
 Digite sua idade: Maior de idade. 

Typumwandlung

Wenn Sie in eine numerische Variable einlesen, stellen Sie sicher, dass die Eingabe tatsächlich eine Zahl ist. Unerwartete Eingaben können Umwandlungsfehler verursachen — behandeln Sie diese Fälle mit try/catch, wenn Sie nicht vertrauenswürdige Daten einlesen. Siehe Fehlerbehandlung.

Die Prozedur showMenu erhält eine Liste von Optionen und gibt automatisch ein nummeriertes Menü aus:

npas
begin
    showMenu("Café", "Chá", "Suco");
end.
Saída
 1. Café 2. Chá 3. Suco 

Kombinieren Sie showMenu mit ReadLn, um eine Auswahloberfläche zu erstellen:

npas
var opcao: Integer;

begin
    showMenu("Novo pedido", "Consultar", "Sair");
    WriteLn("Escolha uma opção:");
    ReadLn(opcao);

    if opcao = 1 then
        WriteLn("Iniciando novo pedido...")
    else if opcao = 2 then
        WriteLn("Consultando...")
    else
        WriteLn("Até logo!");
end.
Saída
 1. Novo pedido 2. Consultar 3. Sair Escolha uma opção: Iniciando novo pedido... 

Bewährte Praktiken

  • Verwenden Sie WriteLn mit mehreren Argumenten, anstatt alles mit + zu verketten: Das ist besser lesbar und vermeidet manuelle Umwandlungen.
  • Zeigen Sie vor einem ReadLn stets eine Meldung an, damit der Benutzer weiß, was er eingeben soll.
  • Berücksichtigen Sie beim Einlesen von Zahlen die Validierung oder Behandlung von Umwandlungsfehlern.

Als Nächstes erfahren Sie, wie Sie die Leistungsfähigkeit der JVM nutzen können, unter Integration mit Java.