COBOL ist eine sehr alte Sprache, zum Zeitpunkt des Schreibens ist es 58 Jahre alt. Es ist in der Tat so alt, dass es eine sehr interessante Eigenart hat: Die ersten sechs Zeichen jeder Zeile sind Kommentare.
Warum ist das so, fragst du? Nun, diese 6 Zeichen sollten früher als Zeilennummern verwendet werden, als die Programme noch nicht vollständig digital waren und auf einem Computer eingegeben wurden.
Darüber hinaus kann das siebte Zeichen nur Teil einer sehr kleinen Menge sein (normalerweise *
, um die Zeile oder ein Leerzeichen, um die Zeilennummer vom Code zu trennen).
Aber was ist, wenn Sie auf einem digitaleren System arbeiten und nur das Rohprogramm möchten?
Das Kommentarsystem
Es gibt zwei Arten von Kommentaren in COBOL: Zeilenkommentare und die oben genannten "Zeilennummern" -Kommentare.
Das Auskommentieren von Zeilennummern ist ganz einfach: Entfernen Sie einfach die ersten sieben (sechs plus ein Leerzeichen) Zeichen aus jeder Zeile.
000000 apple
000001 banana
celery donuts
würde werden:
apple
banana
donuts
Zeilenkommentare erschweren es etwas. Ein Zeilenkommentar wird mit einem Sternchen *
an der siebten Zeichenposition in der Zeile wie folgt gestartet :
000323* this is a comment
Dies ist kein Zeilenkommentar:
*00000 this isn't a comment
Um einen Zeilenkommentar zu entfernen, entfernen Sie einfach die gesamte Zeile.
Ein Beispiel mit dem Kommentar "program":
000000 blah blah
000001* apples
000002 oranges?
000003* yeah, oranges.
000*04 love me some oranges
Die unkommentierte Version:
blah blah
oranges?
love me some oranges
Mit anderen Worten, um eine Zeichenfolge aus dem Kommentar zu entfernen, entfernen Sie die ersten sechs Zeichen jeder Zeile und geben Sie dann alle Zeichen außer dem ersten Zeichen jeder Zeile zurück, die nicht mit einem Stern beginnt.
Die Herausforderung
Erstellen Sie ein Programm oder eine Funktion, die ein kommentiertes Programm akzeptiert und dessen unkommentierte Variante zurückgibt.
Klarstellungen
- Sternchen (
*
) werden niemals außerhalb der ersten sieben Zeichen in einer Zeile gefunden (wir bitten Sie nicht, die Syntax zu überprüfen). - Jede Zeile hat immer mindestens 7 Zeichen.
- Sie können davon ausgehen, dass das siebte Zeichen immer ein Sternchen oder ein Leerzeichen ist.
- Eingabe oder Ausgabe kann eine Matrix oder Liste sein.
- Es dürfen nur druckbare ASCII-Zeichen (plus Zeilenvorschub) behandelt werden.
- Sie können mit einem nachgestellten Zeilenumbruch ausgeben. Sie können auch davon ausgehen, dass die Eingabe einen nachgestellten Zeilenumbruch enthält, wenn Sie dies wünschen.
Wertung
Da es sich um Code-Golf , Bytes die Antwort mit dem geringsten gewinnt!
HAFTUNGSAUSSCHLUSS: Ich kenne COBOL nicht und behaupte es auch nicht. Wenn eine der Aussagen zu COBOL, die ich in dieser Frage gemacht habe, falsch ist, übernehme ich keine Verantwortung.
*
. Ist das ein Zufall?
key:{key:{key:length,key:length}}
. Entfernt jedoch alle Formatierungs- und Typisierungsdaten.