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 8400 21.10.2016, 11:20
Ostatni post: koneton
  [Pascal/Delphi] Sortowanie quicksort oraz scalanie. Chudy2000 3 8341 01.05.2016, 22:34
Ostatni post: Szachista
  NWD i NWW - pascal (pomocy) MatGpu 1 7716 19.02.2016, 17:25
Ostatni post: Szachista

Skocz do:


Wybrane wątki (Pascal- lista jednkierunkowa)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  .bat nie kompresuje plików GIENTY 3 10566 06.09.2018 07:20
Ostatni post: broda99
  problem z programem .bat wiktrom12 4 11768 30.08.2018 08:25
Ostatni post: wiktrom12
  Silnik do gier ZigglerGames 1 10415 23.08.2018 09:03
Ostatni post: Szachista
  Chciałbym zrobić prosty plik exe z jedną funkcją densour 4 11181 09.08.2018 16:24
Ostatni post: Ajgor
  Który język wybrać do stworzenia aplikacji synchronizujące pliki z urządzeniem mobiln Elemental 2 2704 18.07.2018 12:05
Ostatni post: Ajgor
  Pomysł napisania programu ROM FireBytes 3 11676 28.06.2018 16:56
Ostatni post: FireBytes
  [VBA] Tworzenie nowego arkusza z danymi z TextBox'a Pioro 4 12085 19.06.2018 23:24
Ostatni post: broda99
  Potwierdzenie na maila po wysłaniu pliku coci 0 11036 13.06.2018 20:37
Ostatni post: coci
  Pieczętowanie Archiwum Jar - Po co? wanhelsing 3 11581 19.05.2018 20:55
Ostatni post: koneton
  Wyszukiwarka w spawnerze nie reaguje na polskie znaki kazik666 0 11160 16.05.2018 12:04
Ostatni post: kazik666
  BASH symulator silnika dawswi1 3 11216 13.05.2018 10:43
Ostatni post: Szachista
  Autohotkey automatyczny zapis TheProgson 0 10728 07.05.2018 21:27
Ostatni post: TheProgson
  VBA Pobieranie wybranych plików z danymi julietta03 1 11083 04.05.2018 08:25
Ostatni post: broda99
  [VBA] Przenoszenie danych między formularzami Pioro 4 11576 23.04.2018 11:48
Ostatni post: broda99
  Skrypt, który szuka i zamienia armen10 2 10962 23.04.2018 10:04
Ostatni post: armen10