Problem z tablicą

0

Witam. Problem polega na tym :
mam tablicę 5 elementową, następnie proszę użytkownika o podanie elementu który chce usunąć z tablicy. Nie mam pojęcia jak to zrobić. <ort>na razie</ort> kod wygląda tak :

program sortowanie;

uses crt;

var
   Tab : array[1..5] of integer;
   i,j,x,n,u,pom : integer;


begin
     ClrScr;
     writeln('Wprowadz kolejno 5 liczb calkowitych : ');
     for i:=1 to 5 do
         begin
         writeln('Podaj liczbe ');
         readln(Tab[i]);
         end;

     n:=5;
     for i:=1 to n-1 do
         for j:=1 to n-1 do
             if Tab[j]>Tab[j+1] then
                begin
                     x:=Tab[j];
                     Tab[j]:=Tab[j+1];
                     Tab[j+1]:=x;
                end;
     writeln;
     writeln;
     for i:=1 to 5 do

         write(Tab[i],' ');
     writeln;
     write('Element najwiekszy to : '); write(Tab[5]);
     writeln;
     write('Element najmniejszy to : '); write(Tab[1]);
     writeln;
     write('Podaj element do usunięcia : ');
     readln(u);
     for i:=1 to 5 do
         if Tab[i] = u then
            begin

            end;
     for i:=1 to 5 do

         write(Tab[i],' ');

readln;
end.

Z góry dzięki za info.
Pozdrowienia.

// Następnym razem używaj tagu <code class="delphi"></code> - Q

0

usuwanie u-tego elementu, (a raczej jego nadpisanie ;) )

for i:=u to Max-1 do Tab[i]=Tab[i+1];
Tab[Max]:=0;

U Ciebie Max=5;

0

No niestety to nie pomogło. Zeruje to jedynie ostatni element w tablicy. CHodzi o to, żeby zwolnić miejsce w tablicy.

Ale i tak dziękuje. Pozdrowienia

0

Nie mozesz zwolnić miejsca w tablicy statycznej. Aby móc zmieniać to pobaw sie SetLength oraz tablicą dynamiczna (array of Integer).

// Tylko ze w t.pascalu brak tablic dynamicznych na modłę delphi. Wskaznik do tablicy i przydzielanie odpowiedniej ilości pamięci i troche więcej kombinacji, W faq, czy też w artach jest coś na ten temat [mf]

0

ok, wielkie dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1