program mehubaari(input, output);

   const eka = 1;
   type nimet = string[60]; {epästandardi turbo-pascal piirre}

{---------tähän jonon tyyppimäärittelyt: --------------------}


{------------------------------------------------------------}

   var komento : char;

{---------tähän jonon muuttujat: ----------------------------}
       jono : array [1..10] of nimet;
       vika : 0..10;

{---------tähän jonon operaatiot: ---------------------------}

procedure Jonoon(N: nimet);
   begin
      if vika >= 10 then
         writeln('Jonossa ei ole tilaa! Tule myöhemmin uudelleen.')
      else
         begin
            vika := vika + 1;
            jono[vika] := N
         end;
   end;

procedure Jonosta(var N: nimet);
  {Jos jono on tyhjä, asetetaan N tyhjäksi merkkijonoksi}
   var i : integer;
   begin
       if vika = 0 then
          N := ''
       else
          begin
             N := jono[eka];
             for i := eka to vika - 1 do
                jono[i] := jono[i+1];
             vika := vika-1;
          end;
   end;

procedure LuoTyhjaJono;
   begin
      vika := 0;
   end;


{---------tähän päättyy jonon toteutus-----------------------------}


   procedure TulostaValikko;
      begin
         writeln; writeln; writeln;
         writeln('  MEHUBAARIN JONOTUS');
         writeln('  ******************');
         writeln; writeln;
         writeln('  j) lisää jonottaja');
         writeln('  p) palvele ensimmäistä');
         writeln('  l) loppu');
         writeln;
      end;

   procedure Lisays;
      var nimi : nimet;
      begin
          repeat
             write(' Asiakkaan nimi? ');
             readln(nimi);
             if nimi = '' then
                writeln('Tyhjä nimi ei kelpaa, anna uudelleen!');
          until nimi <> '';
          Jonoon(nimi);
      end;

   procedure Palvelu;
      var nimi : nimet;
      begin
         Jonosta(nimi);
         writeln;
         if nimi <> '' then
            writeln('NYT PALVELLAAN HENKILÖÄ NIMELTÄ >>> ', nimi, '<<<')
         else
            writeln('KETÄÄN EI OLE JONOSSA!! (Lepää vaikka!)');
      end;

   begin {PÄÄOHJELMA}
      LuoTyhjaJono;
      repeat
         TulostaValikko;
         readln(komento);
         if komento in ['j', 'J', 'p', 'P', 'l', 'L'] then
            case komento of
               'j', 'J' : Lisays;
               'p', 'P' : Palvelu;
               'l', 'L' : ;
            end;
      until komento in ['l', 'L'];
   end.

