Pascal, zbior danych


(Sumek) #1

Mógłby ktoś napisać, dwie osobne funkcje lub procedury które

  1. Pozwolą na skasowanie jednego elementu

  2. Pozwolą na skasowanie wszystkich elementów ze zbioru


(Gina Gina) #2

Nie podałeś warunków na usunięcie jednego elementu więc usuwam od najmniejszych,

a kasowanie zbioru to podstawienie pustego :PPP

http://wklej.org/id/0545ab2c01

type

  P_= set of byte;

var

  P1: P_;


procedure UsunElement(var P: P_);

var

  i: byte;

begin

  for i:=1 to 255 do

  if i in P then

  begin

    P:= P-[i];

    exit;

  end;

end;


procedure KasujZbior(var P: P_);

begin

  P:=[];

end;


begin

  P1:= [1,2,3];

  UsunElement(P1);

  KasujZbior(P1);

end.

(Sumek) #3

Dzięki wielkie;d A wiesz może jakby to wyglądało na tablicy?


(Gina Gina) #4

Ja wiem :PPP, ale czy ja za Ciebie odrabiam lekcje ;/

  • i znowu przykład w bliżej nieokreślonych warunkach:

    type

    A_ = array[1..4]of boolean;

    const

    A0 : A_ = (False,False,False,False); { przyjmujemy że to jest pusta tablica }

    AX : A_ = (False,True,False,True); { -//- że jest jakaś tablica pierwotna }

    var

    A1 : A_;

    procedure KasujTab(var A: A_);

    begin

    A:= A0;

    end;

    procedure UsunElemenTab(var A: A_);

    var

    i: byte;

    begin

    for i:=Low(A_) to High(A_) do

    if A[i]=True then

    begin

    A[i]:=False;
    
    exit;

    end;

    end;

    begin

    A1:= Ax;

    UsunElemenTab(A1);

    KasujTab(A1);

    end.


(Sumek) #5

Dzięki:) Tak jakby;) ale mam dziś kartkówkę z tego, a nie miałem pojęcia jak to napisać.