Het tekstbestand elements.txt1 waarin je de informatie over alle chemische elementen in JSON-formaat kan vinden. Dit bestand begint met een open accolade {, gevolgd door een lijst van atoomobjecten gescheiden door een komma, gevolgd door een sluitende accolade }. Elk atoomobject begin met de naam van het element, gevolgd door : {, gevolgd door een lijst van eigenschappen gescheiden door een komma. Deze eigenschappen hebben telkens het formaat "naam veld" : "waarde veld".
Gevraagd wordt om — gebruikmakend van de teksteditors vi of vim — een reeks commando's op te stellen die achtereenvolgens de volgende opdrachten uitvoeren. Probeer voor elke opdracht zo weinig mogelijk commando's te gebruiken en zorg er voor dat elk van deze commando's uit zo weinig mogelijk tekens bestaat. De commando's mogen geen programmeerbare filters (bv. awk) gebruiken. Alle opdrachten moeten na elkaar uitgevoerd worden. De opdrachten mogen de eerste regel (hoofding) niet wijzigen, tenzij dit expliciet anders vermeld staat. Ter controle kan je gebruikmaken van de meegeleverde bestanden elements.i.txt, die telkens de inhoud van het bestand bevatten nadat de $$i$$-de opdracht werd uitgevoerd.
Zorg er voor dat elk element slechts 1 regel gebruikt. Verwijder hiervoor de nodige newlines, vervang opeenvolgende spaties door een enkele spatie en verwijder eventuele spaties aan het begin van een regel. Verwijder ook de eerste en laatste regel van het bestand (de regels die de accolades bevatten). Zo moet
{ "Hydrogen" : { "symbol" : "H", "atomic_number" : 1, "atomic_weight" : 1.00794, "melting_point K" : 14.01, "boiling_point K" : 20.28, "atomic_radius pm" : 79, "covalent_radius pm" : 32, "ionic_radius pm" : "", "atomic_volume cm3/mol" : 14.1, "fusion_heat (kJ/mol)" : "0.117 (H-H)", "evaporation_heat (kJ/mol)" : "0.904 (H-H)", "pauling_negativity" : 2.20, "first_ionizing kJ/mol" : 1311.3, "lattice_structure" : "HEX", "lattice_constant ang" : 3.750 }, "Helium" : { "symbol" : "He", "atomic_number" : 2, "atomic_weight" : 4.002602, "melting_point K" : 0.95, "boiling_point K" : 4.216, "atomic_radius pm" : 0.0, "covalent_radius pm" : "-", "ionic_radius pm" : "", "atomic_volume cm3/mol" : 31.8, "fusion_heat (kJ/mol)" : "-", "evaporation_heat (kJ/mol)" : 0.08, "pauling_negativity" : "-", "first_ionizing kJ/mol" : 2361.3, "lattice_structure" : "HEX", "lattice_constant ang" : 3.570 } }
bijvoorbeeld omgezet worden naar (elements.1.txt2)
"Hydrogen" : { "symbol" : "H", "atomic_number" : 1, "atomic_weight" : 1.00794, "melting_point K" : 14.01, "boiling_point K" : 20.28, "atomic_radius pm" : 79, "covalent_radius pm" : 32, "ionic_radius pm" : "", "atomic_volume cm3/mol" : 14.1, "fusion_heat (kJ/mol)" : "0.117 (H-H)", "evaporation_heat (kJ/mol)" : "0.904 (H-H)", "pauling_negativity" : 2.20, "first_ionizing kJ/mol" : 1311.3, "lattice_structure" : "HEX", "lattice_constant ang" : 3.750 }, "Helium" : { "symbol" : "He", "atomic_number" : 2, "atomic_weight" : 4.002602, "melting_point K" : 0.95, "boiling_point K" : 4.216, "atomic_radius pm" : 0.0, "covalent_radius pm" : "-", "ionic_radius pm" : "", "atomic_volume cm3/mol" : 31.8, "fusion_heat (kJ/mol)" : "-", "evaporation_heat (kJ/mol)" : 0.08, "pauling_negativity" : "-", "first_ionizing kJ/mol" : 2361.3, "lattice_structure" : "HEX", "lattice_constant ang" : 3.570 },
Laat telkens de naam van de eigenschap en het daaropvolgend dubbelpunt weg. Verwijder ook de accolade aan het begin van elke lijst eigenschappen en de accolade en eventuele komma op het einde van de regel. Toegepast op het vorige voorbeeld wordt dit (elements.2.txt3)
"Hydrogen" : "H", 1, 1.00794, 14.01, 20.28, 79, 32, "", 14.1, "0.117 (H-H)", "0.904 (H-H)", 2.20, 1311.3, "HEX", 3.750 "Helium" : "He", 2, 4.002602, 0.95, 4.216, 0.0, "-", "", 31.8, "-", 0.08, "-", 2361.3, "HEX", 3.570
Vervang het dubbelpunt na de naam van het element, en de komma's tussen de informatievelden door een puntkomma zodat dit het scheidingsteken wordt. Verwijder ook eventuele spaties rond de elementnaam en informatievelden en verwijder overal de dubbele aanhalingstekens Toegepast op het vorige voorbeeld wordt dit (elements.3.txt4)
Hydrogen;H;1;1.00794;14.01;20.28;79;32;;14.1;0.117 (H-H);0.904 (H-H);2.20;1311.3;HEX;3.750 Helium;He;2;4.002602;0.95;4.216;0.0;-;;31.8;-;0.08;-;2361.3;HEX;3.570
Verwijder de regels waarvan het laatste veld (lattice_constant ang) niet numeriek is (bv. n/a of -).
Sorteer aflopend op het laatste veld (lattice_constant ang). Sorteer bij gelijke waarde alfabetisch op het eerste veld.
Volg aandachtig onderstaande richtlijnen bij het indienen van je oplossing:
Plaats je commando's voor de vijf delen van deze vraag onder de titels in het indienvenster.
Maak geen aanpassingen aan de regels die al in het venster staan. Deze worden immers gebruikt om de ingediende oplossing op te splitsen in de verschillende deelantwoorden. Op de feedbackpagina kan je controleren of de opsplitsing gelukt is.