ďťż

Ładny brzuch

podczas kompilacji pokazuje mi sie blad: 'przepelniony stos'. Co moze byc przyczyna tego bledu. Programik nie jest duzy ma tylko kilka procedur.



Szlana kula mówi mi żebyś podał kod :)

Program darrrr; uses crt; {__________TYPY______________} TYPE  dzi=1..31;   {typ okrojony dzien}      mies=1..12;  {typ okrojony miesiac}      data=record           dzien:dzi;           miesiac:mies;           rok:integer;         end;      artykul=record             r_pro:string[15];             nazwa:string[50];             waznosc:data;             id:integer;             prze:data;         end;     tablica=array[1..255] of artykul; {____________ZMIENNE GLOBALNE_________} VAR   ile,i,ro:integer;   tab,wysz:tablica;   art,t:char;   naz:string[50];   ida:integer;   war:boolean;     {war:warunek do wczytywania do tablicy}   dzionek:dzi;   mie:mies; {____________PROCEDURY________________} {_____________DATA___________________} procedure dat(i:integer;war:boolean; var tab:tablica;ro:integer;dzionek:dzi;mie:mies); var d:dzi;    m:mies;    r:integer; BEGIN      repeat       write('dzien: ');       readln(d);       if d>31 then         writeln('PODANY DZIEN JEST NIEPRAWIDLOWY(liczba jest za duza). POPRAW!!!!');      until d<=31;      repeat       write('miesiac: ');       readln(m);       if m>12 then         writeln('PODANY MIESIAC JEST NIEPRAWIDLOWY(liczba jest za duza). POPRAW!!!!');      until m<=12;       write('rok: ');       readln(r);    if war=true then   {jezeli wartosc true to wczyta do tablicy}      begin            {potrzebne do wczytywania}       tab[i].waznosc.dzien:=d;       tab[i].waznosc.miesiac:=m;       tab[i].waznosc.rok:=r;      end;    if war=false then      begin       ro:=r;       dzionek:=d;       mie:=m;      end; END; {_______________WYPIS______________} procedure wypis(i:integer;tav:tablica); BEGIN   clrscr;    writeln('Rodzaj produktu: ',tab[i].r_pro);    writeln('Nazwa: ',tab[i].nazwa);    if tab[i].r_pro='spozywczy' then       writeln('Data waznosci: ',tab[i].waznosc.dzien,'.',tab[i].waznosc.miesiac,'.',tab[i] .waznosc.rok);    writeln('Numer identyfikacyjny: ',tab[i].id); END; {_____________WCZYTYWANIE____________} procedure wczyt(ile:integer;i:integer;var tab:tablica;war:boolean); var art,t:char;    naz:string[50];    ida:integer; BEGIN   REPEAT     writeln('Podaj rodzaj artykulu');     writeln('WPISZ');     writeln(chr(39), 's',chr(39),' - jezeli spozywczy');     writeln(chr(39), 'n',chr(39),' - jezeli niespozywczy');     readln(art);     if (art<>'s') and (art<>'n') then       writeln('Zly wybor!!! POPRAW!!!');    UNTIL (art='s') or (art='n');   CASE art of      's':           {WCZYTANIE DANYCH SPOZYWCZEGO}        BEGIN        war:=true;          tab[i].r_pro:='spozywczy';          writeln('Podaj nazwe');          readln(naz);          tab[i].nazwa:=naz;          writeln('Podaj date waznosci');          dat(i,war,tab,dzionek,ro,mie);          writeln('podaj numer identyfikacyjny');          readln(ida);          tab[i].id:=ida;          writeln('Czy chcesz sprawdzic podany artykul? t/n');          readln(t);          if t='t' then            wypis(i,tab);        END;      'n':           {WCZYTANIE DANYCH NIESPOZYWCZEGO}        BEGIN          tab[i].r_pro:='niespozywczy';          writeln('Podaj nazwe');          readln(naz);                                                                                       tab[i].nazwa:=naz;          tab[i].nazwa:=naz;          writeln('Podaj numer identyfikacyjny');          readln(ida);          tab[i].id:=ida;          writeln('Czy chcesz sprawdzic podany artykul? t/n');          readln(t);          if t='t' then            wypis(i,tab);        END;   END; END; {_______________SPRAWDZENIE DATY WAZNOSCI___________} procedure wyszukiwarka(i:integer;ile:integer; dzionek:dzi; mie:mies; ro:integer; tab:tablica; var wysz:tablica); var a:integer;    d_war:boolean;    ile_d:dzi;    ile_m:mies;    ile_r:integer; BEGIN for a:=1 to ile do begin  if tab[i].r_pro='spozywczy' then   begin    if ro>=tab[i].waznosc.rok then       begin        d_war:=true;        ile_r:=ro - tab[i].waznosc.rok;       end;    if mie>=tab[i].waznosc.miesiac then       begin        d_war:=true;        ile_m:=mie - tab[i].waznosc.miesiac;       end;    if dzionek>=tab[i].waznosc.dzien then       begin        d_war:=true;        ile_d:=dzionek - tab[i].waznosc.dzien;  {ilosc dni}       end; {_____wczytanie wynikow wyszukiwania_____}    if d_war=true then       begin        a:=1;        wysz[a].r_pro:=tab[i].r_pro;        wysz[a].nazwa:=tab[i].nazwa;        wysz[a].waznosc.dzien:=tab[i].waznosc.dzien;        wysz[a].waznosc.miesiac:=tab[i].waznosc.miesiac;        wysz[a].waznosc.rok:=tab[i].waznosc.rok;        wysz[a].id:=tab[i].id;        wysz[a].prze.dzien:=ile_d;        wysz[a].prze.miesiac:=ile_m;        wysz[a].prze.rok:=ile_r;       end;   end;       writeln('nazwa: ',wysz[a].nazwa);       writeln('przekroczylo: ',wysz[a].prze.dzien,'.',wysz[a].prze.miesiac,'.',wysz[a] .prze.rok); end; END; {____________PROGRAM GLOWNY_____________} BEGIN  writeln('ile chcesz wpisac??');  readln(ile);   for i:=1 to ile do     wczyt(ile,i,tab,war);  writeln('Czy chcesz sprawdzic produkty ktore utracyly date waznosci?');   readln(t);  if t='t' then    begin     writeln('Podaj date dla korej chcesz sprawdzic date wznosci');      war:=false;  {warunek do daty}      dat(i,war,tab,dzionek,ro,mie);  {wczytanie daty}      wyszukiwarka(i,ile,dzionek,mie,ro,tab,wysz);    {wyszukuje przekroczenie daty}    end;  writeln('KONIEC');  readln END.

zadanie:
napisz program ktory wczyta od uzytkownika artykuly spozywcze i niespozywcze a potem wyswetli produkty przekroczyły date waznosci w podanym termnie.

http://sfp.sztorm.ne.../index.php#e202
nooo, zgadnij skad to mam :>
Użytkownik Kajetanek edytował ten post 13 styczeń 2006, 21:03


Nie wiem czy to pomoże, ale przecież w Options->Memory sizes->Stack ustalasz wielkość stosu... ^_^ Więc po prostu ją powieksz ;]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •