Witamy:

Twoje IP
38.107.179.230
Kraj
United States United States
PrzeglÄ…darka
Unknown Browser Unknown Browser
System operacyjny
Unknown Operating System Unknown Operating System
Zaproszenie

Witamy na stronach edukacyjnych

dla nauczycieli, studentów i uczniów szkół średnich w zakresie

informatyki i systemów mikroprocesorowych

Kolejka
program kolejka;

uses
  Crt;

type
  TWskaznik = ^TElement;
  TElement  = record
                Liczba : Byte;
                Nast  : TWskaznik;
              end;

var
  Kolejka : TWskaznik;
  Liczba : Byte;
  Znak : Char;
  P : Pointer;

procedure Ustaw (Liczba: Byte);
{ustawia w element w kolejce}
var
  E, Pop, Nast : TWskaznik;
begin
  New (E);
  E^.Liczba := Liczba;
  E^.Nast := Nil;
  if (Kolejka = nil) then
  begin
    E^.Nast := Kolejka; Kolejka := E;
  end
  else
  begin
    Pop := Kolejka; Nast := Kolejka^.Nast;
    while (Nast <> nil) do
    begin
      Pop := Nast;
      Nast := Nast^.Nast;
    end;
    E^.Nast := Nast;
    Pop^.Nast := E;
  end;
end;

function Obsluz: Byte;
var
  E : TWskaznik;
begin
  if (Kolejka = nil) then
    Obsluz := 0
  else
  begin
    E := Kolejka;
    Obsluz := E^.Liczba;
    Kolejka := E^.Nast;
  end;
end;

procedure WypiszKolejke;
var
  E : TWskaznik;
begin
  E := Kolejka;
  while E <> nil do
  begin
    write (E^.Liczba, ' ');
    E := E^.Nast;
  end;
end;

begin
  Mark (P);
  Kolejka := nil;
  repeat
    ClrScr;
    write ('Kolejka: ');
    WypiszKolejke;
    writeln;
    writeln ('U - ustaw w kolejce, O - obsluz, K - koniec');
    Znak := UpCase(ReadKey);
    case Znak of
      'U' : begin
              repeat
                write ('Podaj liczbe z zakresu (1..255): ');
                readln (Liczba);
              until Liczba>0;
              Ustaw (Liczba);
            end;
      'O' : begin
              Liczba := Obsluz;
              if Liczba = 0 then
                writeln ('Nie ma czego obslugiwac, kolejka pusta.')
              else
                writeln ('Element do obsluzenia: ', Liczba);
            end;
    end;
    if ((Znak='U') or (Znak='O')) then
    begin
      write ('Nowa kolejka: ');
      WypiszKolejke;
      writeln; writeln ('Wcisnij Enter');
      readln;
    end;
  until (Znak = 'K');
  Release (P);
end.
 

Statystyka

Użytkowników : 826
Artykułów : 61
Odsłon : 2249994

Online

NaszÄ… witrynÄ™ przeglÄ…da teraz 13 goÅ›ci