• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Pascal - zapis listy jednokierunkowej do pliku (elementy na stosie).

Object Storage Arubacloud
0 głosów
445 wizyt
pytanie zadane 14 marca 2018 w Inne języki przez giedymin33 Początkujący (290 p.)
zamknięte 14 marca 2018 przez giedymin33

Potrzebuję informację nt. tego, jak poprawnie odnieść się do elementów na stosie z listy jednokierunkowej.

Koncepcja programu jest taka : dodaj element na stos - wypisz elementy  znajdujące się na stosie - usuń elementy ze stosu.

Teraz potrzebuję te elementy zapisać do pliku tekstowego. W przypadku typu rekordowego nie było problemów, ale teraz takowe się pojawiają. Jakieś sugestie?

 

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
  lista = ^tlista;
  tlista = record
  imie: string[25];
  nazwisko: string[35];
  wiek:byte;
  PESEL: string;
  wsk: lista;
end;

var
pocz:lista;

procedure ini(var pocz:lista);  //procedura inicjalizujaca stos
begin
pocz:=nil;
end;

function dodaj(var pocz:lista):boolean;
var
temp:lista;

begin
new(temp);
if temp=nil then begin dodaj:=false;   //zwroci false jezeli pamiec przepelniona
writeln('Pamiec prawdopodobnie przepelniona!');
end
else
begin
writeln('Podaj imie: ');
readln(temp^.imie);

writeln('Podaj nazwisko: ');
readln(temp^.nazwisko);

writeln('Podaj wiek: ');
readln(temp^.wiek);

writeln('Podaj PESEL: ');
readln(temp^.pesel);

temp^.wsk:=pocz;

pocz:=temp;

dodaj:=true;

writeln('Pomyslnie dodano uzytkownika na stos');
end;
writeln;
end;

function usun(var pocz:lista):boolean;
var
temp:lista;
begin
if pocz=nil then begin usun:=false;
writeln('Stos jest pusty :(');
end
else
begin
temp:=pocz;
pocz:=pocz^.wsk;
dispose(temp);
usun:=true;
 end;
 writeln;
 end;


 function wypisz(pocz:lista):boolean;

 begin
 if pocz=nil then begin wypisz:=false;
 writeln('Stos jest pusty :(');
 end
 else
 begin
 wypisz:=true;
 while(pocz<>nil)   // petla bedzie wykonywac sie dopoki nie napotka na nil w pocz
                    // czyli bedzie wykonywac sie do ostatniego-pierwszego elementu na stosie;
 do
 begin
 writeln('Imie: ',pocz^.imie);
 writeln('Nazwisko: ',pocz^.nazwisko);
 writeln('Wiek: ',pocz^.wiek);
 writeln('Pesel: ',pocz^.PESEL);
 pocz:=pocz^.wsk;
 writeln;
  end;
  end;
  writeln;
 end;

 procedure zapis(pocz:lista);
 var
 plik:text;

 begin
 assign(plik,'stos.txt');
 append(plik);
 readln(pocz);
 writeln(plik,pocz);
 closefile(plik);


 end;


 procedure menu();
 var
 a:byte;
 begin
 repeat
 writeln('Witaj w bazie STOS.');
 writeln('1. Dodaj uzytkownika na stos.');
 writeln('2. Usun uzytkownika ze stosu.');
 writeln('3. Wypisz uzytkownika.');
 writeln('0. ||WYJDZ Z PROGRAMU||.');
 readln(a);
 writeln;

 if (a=1) then begin
 writeln(dodaj(pocz));
 end;

  if (a=2) then begin
 writeln(usun(pocz));
 end;

   if (a=3) then begin
 writeln(wypisz(pocz));
 end;

 until (a=0);
 writeln;

 end;


begin
  { TODO -oUser -cConsole Main : Insert code here }
  ini(pocz);  //inicjalizacja stosu
  menu();
end.

 

komentarz zamknięcia: rozwiązałem problem

Podobne pytania

0 głosów
1 odpowiedź 1,746 wizyt
pytanie zadane 12 maja 2017 w C i C++ przez AndekQR Użytkownik (880 p.)
0 głosów
0 odpowiedzi 1,029 wizyt
pytanie zadane 2 grudnia 2017 w Inne języki przez DragonCoder Nałogowiec (36,500 p.)
0 głosów
1 odpowiedź 609 wizyt
pytanie zadane 19 stycznia 2019 w C i C++ przez dzuulie Nowicjusz (120 p.)

92,568 zapytań

141,420 odpowiedzi

319,622 komentarzy

61,954 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...