Niets zo romantisch als een huwelijksaanzoek vernemen via een billboard op Times Square in New York. Toch? Het is een veel voorkomend fenomeen in de Verenigde Staten van Amerika: op een groot evenment een intieme boodschap delen met de grote menigte. Maar heb je al eens bedacht hoeveel dit zou kunnen kosten?

Times Square
Times Square

In deze oefening berekenen we de prijs van één of meerdere boodschappen die op een billboard getoond worden. Overal te lande kan je zo een boodschap bestellen. Maar niet alle bedrijven rekenen dezelfde prijs aan. De boodschappen komen daarom gecodeerd toe bij het bedrijf die ze uiteindelijk projecteert.

De vorm waarin de boodschap gecodeerd wordt, gaat als volgt:

boodschap<prijs>

Een goed voorbeeld is volgende grappige boodschap:

'Mummy... please say YES to daddy<1.33>'
Elke letter van deze boodschap, inclusief leestekens en spaties, heeft $ 1.33 gekost. Aangezien de boodschap 32 tekens lang is, kost deze boodschap $ 42.56. Let op, <1.33> telt niet mee bij het berekenen van de prijs. Ten slotte mag je erop rekenen dat de tekens '<' en '>' niet voorkomen in de boodschap.

Opgave

Programmeer volgende functies:

  • De functie bereken_prijs heeft als parameter een gecodeerde boodschap. De functie geeft in volgorde de boodschap (dus zonder prijs) en de totale prijs van de boodschap terug.

  • De functie toon_boodschappen heeft als parameter een string met daarin verschillende gecodeerde boodschapppen na elkaar. De functie geeft een string terug met op de eerste lijn de totale prijs van alle boodschappen samen. Daaronder komen lijn per lijn alle boodschappen te staan.

Voorbeeld

>>> bereken_prijs('I spent my last money on this billboard. Please give me a job.<2.68>')
('I spent my last money on this billboard. Please give me a job.', 166.16)
>>> bereken_prijs('Dear Emma, I love You more than words can say. Please wil you marry me?<2.42>')
('Dear Emma, I love You more than words can say. Please wil you marry me?', 171.82)

>>> toon_boodschappen('I spent my last money on this billboard. Please give me a job.<2.68>Dear Emma, I love You more than words can say. Please wil you marry me?<2.42>I LOVE YOU AND WANT TO SPENT FOREVER WITH YOU. WILL YOU MARRY ME?<0.76>')
387.38
I spent my last money on this billboard. Please give me a job.
Dear Emma, I love U more than words can say. Please wil you marry me?
I LOVE YOU AND WANT TO SPENT FOREVER WITH YOU. WILL YOU MARRY ME?

Bronnen

Het verwerken van boodschappen voor billboards is volledig fictief.