Opgave

Het tekstbestand NASDAQ.txt1 bevat de beursnotering van aandelen op de NASDAQ. Elke regel bevat de volgende informatie over een aandeel: $$i$$) volledige bedrijfsnaam, $$ii$$) afgekorte bedrijfsnaam, $$iii$$) datum waarop aandelenkoers betrekking heeft, $$iv$$) openingskoers, $$v$$) hoogste stand van koers die dag, $$vi$$) laagste stand van koers die dag, $$vii$$) slotkoers en $$viii$$) aantal verhandelde aandelen tijdens die dag. De verschillende informatievelden worden van elkaar gescheiden door een komma (,). Gevraagd wordt om — gebruik makend 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 ervoor dat elk van deze commando's bestaat uit zo weinig mogelijk tekens. Alle opdrachten moeten na elkaar uitgevoerd worden, waarbij de regel met hoofding steeds ongewijzigd moet blijven. Ter controle kan je gebruik maken van de meegeleverde bestanden NASDAQ.$$i$$.txt (1 ≤ $$i$$ ≤ 6), die telkens de inhoud van het bestand bevatten nadat de $$i$$-de opdracht werd uitgevoerd.

  1. Zorg er voor dat de velden gescheiden worden door een asterisk (*), waarbij ook alle spaties vooraan en achteraan elk veld verwijderd worden. Zo moet

    Australia Acquisition Corp.,AAC,20110103 ,9.7,9.7,9.63,9.63,1100
     Apple Inc.,AAPL,20101207,325.64,330.26,324.84,329.57,15897200
            

    bijvoorbeeld omgezet worden naar (NASDAQ.1.txt2)

    Australia Acquisition Corp.*AAC*20110103*9.7*9.7*9.63*9.63*1100
    Apple Inc.*AAPL*20101207*325.64*330.26*324.84*329.57*15897200
            
  2. Sorteer de aandelen in dalende volgorde volgens het aantal dat ervan verhandeld werd. Indien aandelen met eenzelfde volume verhandeld werden, dan moeten deze aandelen alfabetisch gerangschikt worden volgens hun afgekorte bedrijfsnaam.

  3. Bij de weergave van de stand van een beurskoers wordt gebruik gemaakt van een punt (.) als decimaalteken. Zorg er voor dat alle punten die als decimaalteken gebruikt worden door een komma (,) vervangen worden. Je mag er hierbij van uitgaan dat een punt als decimaalteken gebruikt wordt, als het wordt voorafgegaan en wordt gevolgd door een cijfer. Alle punten die niet als decimaalteken gebruikt worden moeten ongewijzigd blijven. Toegepast op het vorige voorbeeld wordt dit (NASDAQ.3.txt3)

    Australia Acquisition Corp.*AAC*20110103*9,7*9,7*9,63*9,63*1100
    Apple Inc.*AAPL*20101207*325,64*330,26*324,84*329,57*15897200
            
  4. Voeg punten (.) toe die de duizendtallen groeperen in groepjes van drie, in de weergave van het aantal verhandelde aandelen. Je mag er hierbij van uitgaan dat er van een bedrijf nooit meer dan 999.999.999 aandelen op één dag verhandeld worden. Toegepast op het vorige voorbeeld wordt dit (NASDAQ.4.txt4)

    Australia Acquisition Corp.*AAC*20110103*9,7*9,7*9,63*9,63*1.100
    Apple Inc.*AAPL*20101207*325,64*330,26*324,84*329,57*15.897.200
            
  5. De datum waarop de aandelenkoers betrekking heeft, wordt initieel weergegeven als een getal van 8 cijfers: 4 voor het jaar, 2 voor de maand en 2 voor de dag (jjjjmmdd). Pas deze voorstelling aan zodat de dag eerst komt, gevolgd door de maand en het jaar, telkens gescheiden door een slash (/). Geef hierbij enkel de laatste 2 cijfers van het jaar weer en laat bij de dag en de maand een eventuele voorloopnul (0) aan het begin weg. Toegepast op het vorige voorbeeld wordt dit (NASDAQ.5.txt5)

    Australia Acquisition Corp.*AAC*3/1/11*9,7*9,7*9,63*9,63*1.100
    Apple Inc.*AAPL*7/12/10*325,64*330,26*324,84*329,57*15.897.200
            
  6. Plaats vooraan elke regel met een aandeel dat minstens 1.000.000 keer werd verhandeld een groter dan teken (>), en vooraan elke regel met een aandeel dat minder dan 1.000 keer werd verhandeld een kleiner dan teken (<). Aan het begin van de andere regels met aandelen plaats je een tilde (~). Toegepast op het vorige voorbeeld wordt dit (NASDAQ.6.txt6)

    ~Australia Acquisition Corp.*AAC*3/1/11*9,7*9,7*9,63*9,63*1.100
    >Apple Inc.*AAPL*7/12/10*325,64*330,26*324,84*329,57*15.897.200
            

Richtlijnen bij het indienen

Volg aandachtig onderstaande richtlijnen bij het indienen van je oplossing: