Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

[pascal] kopiowanie zawartosci tablicy

#1
Question  [pascal] kopiowanie zawartosci tablicy
witam
mam problem
jak skopiowac zawartosc jednej tablicy do drugiej ale w taki sposob aby jesli w pierwszej tablicy jest np. piec "0" to zeby w drogiej tablicy "0" pojawilo sie tylko raz. czyli zeby w drogiej tablicy byly wszystkie elemety z tablicy pierwszej ale zeby sie nie powtarzaly
z gory dziekuje
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#2
RE: [pascal] kopiowanie zawartosci tablicy
pobierasz każdy element z pierwszej tablicy i po pobraniu za każdym razem:
przeszukujesz tą drugą tablicę w poszukiwaniu kopiowanej liczby, jeżeli nie znajdzie jej tam, to ją tam umieszczasz...

Nie wiem czy dobrze to napisze w pascalu

pierwsza tablica pięcio-elementowa[0..4] ma nazwę tab1, druga także pięcio tab2[0..4]

Kod:
...
var
  i,j,n :integer;
  t :boolean;
begin
  n:=0;
  for i:=0 to 4 do
  begin
    j:=0;
    while t=true do
    begin
      if j=n then
      begin
        tab2[n]:=tab[i];
        n:=n+1;
        t:=false;
        break;
      end;
      if tab1[i]=tab2[j] then
      begin
        t:=false;
        break;
      end;
      j:=j+1;
    end;
  end;
end;
...
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#3
RE: [pascal] kopiowanie zawartosci tablicy
dzieki
a da sie to zrobic w jakis prostrzy sposob?
chodzi mi konkretnie aby elemety z 2 tablic: a i b skopiowac do tablic a1 i b1 w sposob ktory wyzej napisalem.
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#4
RE: [pascal] kopiowanie zawartosci tablicy
ale to jest bardzo prosty sposób, jeszcze raz

Po kolei bierzesz każdy element z pierwszej tablicy i sprawdzasz czy nie ma takiego już w drugiej tablicy, jeżeli nie ma to umieszczasz go, co w tym trudnego?

Kod może i wygląda okropnie, ale w Pascalu nawet prosty kod wygląda skomplikowanie i jest dość długi, bo pascal ma trochę zbyt długie wyrazy kluczowe...
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#5
RE: [pascal] kopiowanie zawartosci tablicy
tylko ze ja jestem raczej poczatkujacy.
moglbys mi napisac kod z tymi tablicami ktore wymienilem w poprzednim poscie? a i be maja rozmiar 1..100000.
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#6
RE: [pascal] kopiowanie zawartosci tablicy
Nie pamietam jak w pascalu robi sie komentarz to będę go robił po znakach //
Kod:
var
  i,j,n :integer;
  //i - numer sprawdzanego elementu z pierwszej tablicy
  //j - numer sprawdzanego elementu w drugiej tablicy
  //n - rozmiar drugiej tablicy, bo jeżeli jakieś liczby w pierwszej tablicy będą się powtarzać, to druga tablica będzie na pewno mniejsza niż pierwsza

  t :boolean;//t - jeżeli wynosi true pętla while będzie się odbywać

begin
  //no to lecimy
  n:=0;//na początek wielkość drugiej tablicy będzie wynosić 0, czyli cała druga tablica jest pusta
  for i:=0 to 100000 do//pętla w której będziemy sprawdzali każdy kolejny element z pierwszej tablicy
  begin
    //w obiegu będziemy mieli kolejna pętlę, która będzie przeszukiwała drugą tablicę, żeby sprawdzić czy ten element w pierwszej tablicy istnieje juz w drugiej
    j:=0;//na początku zerujemy numer przeszukiwania drugiej tablicy
    t:=true;
    while t=true do//pętla będzie się wykonywać dopóki t będzie wynosić true
    begin
      //no i teraz w każdym obiegu tej pętli sprawdzamy czy j(numer sprawdzanego elementu w drugiej tablicy) jest równe n, czyli wielkości tablicy, czyli sprawdzamy czy nie doszliśmy już do końca drugiej tablicy
      if j=n then
      begin
        //jeżeli doszliśmy do końca drugiej tablicy, tzn. sprawdziliśmy wszystkie elementu i żaden nie równał się wartości z pierwszej tablicy, to znaczy, że żaden element się nie powtarzał
        a1[n]:=a[i];//dlatego powiększamy druga tablicę o nowy element z pierwszej tablicy
        n:=n+1;//powiększamy też rozmiar drugiej tablicy o 1
        t:=false;//przerywany działanie pętli while, sprawdzającej druga tablicę
        break;//przerywamy ten obieg pętli
      end;
      //ale jeżeli j nie równa się końcu tablicy
      if a[i]=a1[j] then//porównujemy element z pierwszej tablicy z sprawdzanym elementem w drugiej tablicy
      begin//jeżeli są równe
        t:=false;//przerywany działanie pętli sprawdzającej druga tablicę, bo już znaleźliśmy powtarzającą się liczbę
        break;//przerywamy ten obieg pętli
      end;
      j:=j+1;//ale jeżeli porównywane element z obu tablic nie są równe, to sprawdzamy kolejny element w drugiej tablicy, czyli j podnosimy o 1
    end;
  end;
end;
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#7
RE: [pascal] kopiowanie zawartosci tablicy
ten kod nie jest do konca dobry bo tablica a1 jest mniejsza i program uzupelnia ja "0" do wymiarow tablicy a np.
tab.a= 4 4 4 1 5 1
tab.b= 0 5 6 1 3 1 7
tab.a1= 4 1 5 0 0 0
tab.b1= 0 5 6 1 3 7 0
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#8
RE: [pascal] kopiowanie zawartosci tablicy
newbie napisał(a):ten kod nie jest do konca dobry
To co jest w nim źle wytłumacz mi Wow
Nie dość, że napisze gotowy kod to jeszcze im źle Jęzor

newbie napisał(a):bo tablica a1 jest mniejsza i program uzupelnia ja "0" do wymiarow tablicy
A co to ma się do tego kodu? Trzeba dopisać dalszą część
Pomyśl trochę,
no dobra dam ci wskazówkę, wykorzystaj n
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#9
RE: [pascal] kopiowanie zawartosci tablicy
wielkie dzieki za pomoc, wszystko juz mi dziala Wesoły
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
Programy: Polecane / Nowe / Inne



Użytkownicy forum szukali:
kopiowanie tablic pascalkopiowanie zawartosci tablicy do drugiejturbo pascal kopiowanie elementów z jednej tablicy do drugiejturbo pascal kopiowanie tablic

Podobne wątki ([pascal] kopiowanie zawartosci tablicy)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Java- wypisanie liczb, które nie są podane w tablicy , wypisanie liczb z tablicy all? ccomp 10 12531 16.07.2017, 20:10
Ostatni post: ccomp
  Wyszukiwanie w tablicy soul1648 3 6147 01.04.2017, 14:26
Ostatni post: Ajgor
  [C++] Działanie na tablicy znakowej saba13579 8 5746 21.03.2017, 22:30
Ostatni post: Szachista

Skocz do:


Wybrane wątki ([pascal] kopiowanie zawartosci tablicy)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Tworzenie programu do instalacji maciex44 1 9245 28.07.2017 18:50
Ostatni post: TheJohan8
Exclamation [VBS] Skrypt błyskawicznie się kończy TheJohan8 7 6671 28.07.2017 16:29
Ostatni post: TheJohan8
  Java- wypisanie liczb, które nie są podane w tablicy , wypisanie liczb z tablicy all? ccomp 10 12531 16.07.2017 20:10
Ostatni post: ccomp
  Batch - zamknięcie programu jeśli jest włączony ~Anonim 2 6191 06.07.2017 15:29
Ostatni post: ~Anonim
  Jak napisać program typu konsola poleceń? toslaw1 6 7269 29.06.2017 18:58
Ostatni post: toslaw1
  Pomoc w VBA EXCEL! dydryjan 1 6178 22.06.2017 20:56
Ostatni post: broda99
  Java początkujący problem ze zrozumieniem kodu MatL70 6 6355 20.06.2017 12:24
Ostatni post: MatL70
  Jezyk C, komenda system, tworzenie kont uzytownikow weis 1 1333 17.06.2017 21:44
Ostatni post: Szachista
  [C#] Zachowanie proporcji okna Niyabi 0 6233 04.06.2017 17:29
Ostatni post: Niyabi
  [C# WPF] Dodawanie elementów z listy do DataGrid Kamil 1 2 6902 25.05.2017 20:03
Ostatni post: Kamil 1
  Pomoc w pętli for BATCH falafal 3 7224 24.05.2017 08:19
Ostatni post: falafal
  Programowanie, od czego zacząć ? Reyo1994 6 7962 22.05.2017 09:09
Ostatni post: joannakulersa
  C# Przechowywanie sporej ilości danych Kamil 1 9 6689 22.05.2017 08:05
Ostatni post: koneton
  Systeminfo.exe - wyświetlanie informacji w Batchu ~Anonim 2 6473 10.05.2017 21:44
Ostatni post: ~Anonim
  Pliki wsadowe z obliczeniami i zakładaniem kont dideek 0 6042 10.05.2017 21:03
Ostatni post: dideek