Till KTH:s startsida Till KTH:s startsida

Övning6

Hemuppgifter

  1. Som statistiskt mått på en mängd tal används ibland typvärdet, d.v.s. det värde som är mest frekvent (oftast förekommande). Skriv en procedur som beräknar typvärdet för data i en array med heltal. Om flera värden är lika vanliga skall proceduren ge det minsta av dem.

  2. Skriv en metod för att en lista med positiva och negativa tal ordnas så att de negativa talen kommer först och sedan de positiva. Negativa respektive positiva tal behöver inte vara sorterade, du behöver endast samla alla negativa tal för sig. Använd inte en extra array, problemet kan lösas ändå. Indata ska vara en array med tal (exempelvis heltal men det spelar ingen roll). Din metod ska göra så att de negativa talen kommer före de positiva. Metoden ska gå i linjär tid, det är alltså inte meningen att arrayen ska sorteras!

  3. Olle sitter och rättar ett tentatal. Tentatalet går ut på att man ska skriva en grammatik för meddelande av följande typ:
    Båt 42, båt 73, båt 4711 och båt 17 ska in!
    Båt 1 och båt 2 ska in!
    Båt 13 ska in!

    Vilken eller vilka av följande alternativ kan producera dessa meddelanden? Motivera varför de övriga inte kan producera dem (ange exempel på meddelanden som inte kan produceras).
    En del av alternativen kan producera oönskade meningar, man vill t.ex. inte ha
    Båt 1 och båt 2, båt 3 och båt 4 ska in!
    Vilken eller vilka av alternativen kan producera oönskade meningar? Ge exempel.

    <meddelande> ::= Båt <tal><svans> | <meddelande> båt <tal><svans>

    <svans> ::= och | ska in! | , 
    <tal> ::= 1 | 2 | 3 | ... 

    <meddelande> ::= Båt <tal> ska in! | Båt <tal> <svans> 
    <svans> ::= och båt <tal> ska in! | , båt <tal> <svans> 
    <tal> ::= 1 | 2 | 3 |... 

    <meddelande> ::= Båt <tal><svans> 
    <svans> ::= ska in! | , båt <tal> | och båt <tal> 
    <tal> ::= <svans> | 1 | 2 | 3 |... 

    <meddelande> ::= Båt <tal><svans> | båt<tal><svans> 
    <svans> ::= ska in! | , | och 
    <tal> ::= 1 | 2 | 3 | ...

     

Uppgift på övningen

sortering

Stefan Nilsson skapade sidan 14 januari 2016

kommenterade 23 februari 2016

 en fråga på uppgift 3

hur kan man inte vilja ha meningen  Båt 1 och båt 2, båt 3 och båt 4 ska in!  när Båt 42, båt 73, båt 4711 och båt 17 ska in är tillåtet ?  det är endast siffrorna som skiljer dessa åt . 

kommenterade 23 februari 2016

Anledningen att det första meddelandet är oönskat verkar vara att det är två "och" där, vilket det inte är i meddelandet med båt 4711.

kommenterade 23 februari 2016

tack. såg det nu