Opgaver i parallelle processer ved hjælp af trådning.

10. marts 1999

  1. Parkeringshuset
  2. Ved indgangen til et parkeringshus vil man gerne kunne gøre bilisterne opmærksomme på, hvor mange ledige parkeringspladser, der er til rådighed. Hvis der ikke er flere ledige pladser, skal en bom samtidig forhindre, at der ikke kører biler ind, som der alligevel ikke er plads til.

    Når en bil har passeret indkørslen, bliver antallet af tomme pladser talt en ned. Hvis antallet af tomme pladser herefter er 0, sænkes bommen. Når en bil passerer udkørslen bliver antallet af tomme pladser talt en op, og bommen hæves, hvis den har været sænket.

    Opgaven er at lave et program, der kan simulere den beskrevne situation. Programmet skal udformes ved hjælp af tråde. Skærmbilledet kan udformes således:

    Tryk på Ind svarer til, at en bil passerer indkørslen. Tryk på Ud svarer til, at en bil passerer udkørslen.

  3. Jernbaneoverskæringen
  4. En to-sporet jernbane krydser en vej. Jernbaneoverskæringen er forsynet med bomme, som sænkes, når et tog passerer et signal, der er anbragt 4 km før jernbaneoverskæringen. Når toget har passeret jernbaneoverskæringen kan bommen hæves, med mindre der kommer et tog fra den anden side.

    Opgaven er at lave et program, der kan simulere den beskrevne situation. Programmet skal udformes ved hjælp af tråde. Skærmbilledet kan udformes således:

  5. Input, behandling, output

Der skal udarbejdes et program bestående af tre tråde.

Den første tråd skal indlæse et navn ved hjælp af f.eks. InputQuery. Navnet indtastes normalt med fornavn først og derefter mellem- og efternavne. Navnet tilføjes til en listbox og placeres i en inputbuffer, hvis der er plads.

Den næste tråd henter løbende navne fra inputbufferen, hvis der er nogle. Navnet ændres nu, så efternavnet kommer til at stå først, efterfulgt af fornavn og mellemnavne. Det ændrede navn placeres i en outputbuffer, hvis der er plads.

Den sidste tråd henter løbende navne fra outputbufferen, hvis der er nogle. Navnene placeres i en listbox, hvor de skal være sorteret i stigende orden.

Et skærmbillede til opgaven kan være udformet således: