Witamy na forum PC Format Zapraszamy do REJESTRACJI


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

Pascal- lista jednkierunkowa

#1
Pascal- lista jednkierunkowa
Może mi ktoś wyjaśnić co jest źle tutaj ? dodaje, wyświetla ale tylko raz, jak dodam kolejny element to niestety poprzednie znikają i tak za każdym razem

Kod:
TYPE
  lista=^tlista;
  tlista = record
  wiek:byte;
  nast:lista;  
  end;
procedure dodaj(var szczyt:lista);

var tmp:lista;       //zmienna wskazujaca na poczatek listy
begin
   if szczyt=nil then   // jesli na szczycie listy brak elementów to:
   begin new(szczyt); // zaalokuj pamiec dla danych
   {dodaj nowe  elementy do listy}
   szczyt^.wiek:=random(100);
   szczyt^.wsk:=nil;   // nastepnemu elementowi przypisz nil
  end
else    // w innym przypadku
  begin
  tmp:=szczyt;  

    new(szczyt);  //alokacja pamieci
    szczyt^.wsk:=tmp;
    szczyt^.wiek:=random(100);
  end;
    write('Dodano. ');


   end;

procedure wyswietl(var szczyt:lista);

begin
    if szczyt=nil then   // jezeli szczyt pusty to blad!
    writeln('brak elementow w liscie- dodaj cos!')
else      // w innym przypadku
    begin
    while szczyt <>nil  do      // petla while- jezeli  na szczycie sa elementy to je wyswietl
    begin
      writeln('wiek to : ' , szczyt^.wiek);
      writeln();
      szczyt:=szczyt^.wsk;    
     end;
   end;
end;
 System operacyjny: windows_seven Przeglądarka: firefox
#2
RE: Pascal- lista jednkierunkowa
Pascala dawno nie używałem, ale moim zdaniem błędy są w liniach z alokacją pamięci. Nie zapisujesz nigdzie wskaźnika do nowego obiektu. Prawdopodobnie powinieneś tam dać coś podobnego do: szczyt = new(tlista); ?
 System operacyjny: windows_seven Przeglądarka: firefox
#3
RE: Pascal- lista jednkierunkowa
Myślę, żę procedura dodawania jest ok, kasuje calutką listę po wyswietleniu elementów.. tzn tak :

1 dodaje elementy- ok
2 wyswietlam- ok
3 chcę wyswietlić po raz drugi- i tu wyrzuca, że brak elementów.. czyli wyświetlanie kasuje wszystko.. pewnie chodzi o tą linijkę, ale nie wiem jak to zapisać inaczej..

szczyt:=szczyt^.wsk;

A bez niej zapetla sie...
Kod:
while szczyt <>nil  do      // petla while- jezeli  na szczycie sa elementy to je wyswietl
    begin
    writeln('wiek to : ' , szczyt^.wiek);
    writeln();
    szczyt:=szczyt^.wsk;

     end;
  end;

Mam błąd... niepotrzebnie przekazywałem przez zmienną- VAR..

Teraz jeszcze muszę to posortować wg wieku , jakiś pomysł?
 System operacyjny: windows_seven Przeglądarka: firefox
Programy: Polecane / Nowe / Inne




Podobne wątki (Pascal- lista jednkierunkowa)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  dev pascal, problem z funkcją kwadratową Sentinel24 4 6263 21.10.2016, 11:20
Ostatni post: koneton
  [Pascal/Delphi] Sortowanie quicksort oraz scalanie. Chudy2000 3 6544 01.05.2016, 22:34
Ostatni post: Szachista
  NWD i NWW - pascal (pomocy) MatGpu 1 5934 19.02.2016, 17:25
Ostatni post: Szachista

Skocz do:


Wybrane wątki (Pascal- lista jednkierunkowa)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Algorytm Genetyczny C pr1991 3 7554 26.10.2017 11:52
Ostatni post: Szachista
  Program C++ do pola i objętości mistrz18 2 7401 18.10.2017 23:10
Ostatni post: Ajgor
  [C]Część wspólna 2 przedziałów. polak3018 2 6842 13.10.2017 16:43
Ostatni post: ptrick
Question Wyznaczanie maksimum spośród 5 liczb - schemat blokowy mistrz18 5 7135 05.10.2017 19:49
Ostatni post: broda99
  Batch - odczytywanie temperatury karty graficznej i zapisywanie jej do zmiennej ~Anonim 4 7181 03.09.2017 21:41
Ostatni post: ~Anonim
  Kodowanie znaków w .bat kkkkk2105 4 8337 25.08.2017 14:38
Ostatni post: kkkkk2105
  Konwertowanie słów na liczby Java Blendow 5 7027 19.08.2017 21:17
Ostatni post: Szachista
  Kończenie i zamykanie skryptu vbs ottps 1 6476 16.08.2017 23:55
Ostatni post: broda99
  Podwojne menu wyboru w batch files kulis88 3 6667 12.08.2017 23:41
Ostatni post: broda99
  Walidacja tekstu w CSV,XLS w PHP Profedbond 9 7297 11.08.2017 09:10
Ostatni post: insanebear
  [VBS] String TheJohan8 5 6978 08.08.2017 00:11
Ostatni post: Ajgor
  Jaki kod pod buttony i progressbar w visualbasicu2010 Express? aktywny27 2 6336 06.08.2017 14:41
Ostatni post: ~Anonim
  [VB.Net] webbrowser a kody kreskowe DonCorleone 0 5893 03.08.2017 20:13
Ostatni post: DonCorleone
Ściana batch file ustawianie jednej wartosci zmiennej do kilku plikow kulis88 6 1783 03.08.2017 19:12
Ostatni post: kulis88
  [VBS] loop & if TheJohan8 0 5779 01.08.2017 18:40
Ostatni post: TheJohan8