Niezalogowany (Zaloguj się)
WItaj Gościu! Możesz się teraz zalogować lub poprosić o członkowstwo na Forum Turbo Pascal Web Pag
    • CommentAuthormati89
    • CommentTime23 Sep 2007 zmieniony
     
    Uses Crt; const haslo='kot'; var km,km2:byte; wprowadz:string; Procedure Menu; Begin clrscr; gotoxy(35,1); Writeln('Witaj'); gotoxy(1,10); Writeln('Dokonaj wyboru:'); gotoxy(1,12); writeln('1.Download'); gotoxy(1,14); writeln('2.Czysc'); gotoxy(1,16); writeln('3.Wyjscie do windows'); gotoxy(1,18); write('Twoj wybor:'); read(km); end; Procedure Menu2; Begin clrscr; gotoxy(1,10); writeln('Co chcesz wyczyscic?'); gotoxy(1,12); writeln('1.Temp'); gotoxy(1,14); writeln('2.Moje dokumenty'); gotoxy(1,16); write('Twoj wybor:'); gotoxy(1,25); write('3.Powrot do Glownego Menu'); gotoxy(12,16); read(km2); end; Procedure Haslo1; Begin clrscr; gotoxy(1,10); write('Podaj Haslo Dostepu:'); readln(wprowadz); if wprowadz=haslo then begin Menu2; end; if wprowadz<>haslo then begin clrscr; gotoxy(1,10); write('Bledne haslo!!!'); delay(10000); Menu; end; Begin Menu; end; if km=1 then begin clrscr; gotoxy(1,10); delay(10000); writeln('Podlaczanie...!'); delay(15000); gotoxy(1,12); writeln('Podlaczono!'); delay(10000); gotoxy(1,14); writeln('Przesylanie danych...'); delay(25000); gotoxy(1,16); writeln('Ukonczono_20%'); delay(25000); gotoxy(1,18); writeln('Ukonczono_50%'); delay(25000); gotoxy(1,20); writeln('Ukonczono_100%'); delay(25000); clrscr; gotoxy(35,15); delay(10000); write('Bravo!!!'); delay(10000); end; begin Menu; end; if km=2 then begin Haslo1; end; if km2=1 then begin clrscr; gotoxy(35,12); delay(20000); write('Ukonczono_20%'); delay(20000); gotoxy(35,14); delay(20000); write('Ukonczono_50%'); delay(20000); gotoxy(35,16); write('Ukonczono_100%'); delay(20000); clrscr; gotoxy(35,12); write('Czyszczenie ZAKONCZONE!'); delay(15000); end; begin Menu2; end; if km2=2 then begin clrscr; gotoxy(35,12); delay(20000); write('Ukonczono_20%'); delay(20000); gotoxy(35,14); delay(20000); write('Ukonczono_50%'); delay(20000); gotoxy(35,16); write('Ukonczono_100%'); delay(20000); clrscr; gotoxy(35,12); write('Czyszczenie ZAKONCZONE!'); delay(15000); end; begin Menu2; end; if km2=3 then begin Menu; end; if km=3 then begin clrscr; delay(5000); gotoxy(35,12); delay(5000); write('Zegnaj :('); delay(15000); end; end.

    Nie moge go zkompilowac chyba trzeba cos poprawic ale nie wiem co. Z góry dziekuje za pomoc.

    PS. Prosze nie zwracac uwage na dzialanie tego programu to jest tylko na lekcje
    • CommentAuthorrachwal
    • CommentTime23 Sep 2007
     
    Napisz jaki blad generuje kompilator, nie chce mi sie tego kompilowac, poza tym nie mam kompilatora :)
    • CommentAuthorsteficzek
    • CommentTime24 Sep 2007 zmieniony
     

    A ja Ci pomogę. Widzę że ambicje masz ogromne - to się chwali - brakuje Ci jeszcze trochę warsztatu.
    Nie wiem czy wiesz ale stworzenie od podstaw własnego menu wyboru nawet dobrym programistom przysparza wiele kłopotów.
    Dlatego mam dla Ciebie kilka cennych uwag.
    Czytelnie oddzielaj części programu, oto przykład

    Dobrze
    program Prosty;
    uses Crt;
    var s : string;
    procedure Czytaj;
    begin
    Readln(s);
    end;
    procedure Pisz;
    begin
    Write(s);
    end;
    Begin
    Czytaj(s);
    Pisz(s);
    End.

    Źle
    program prosty;
    uses crt;
    var s : string;
    procedure czytaj;
    begin
    readln(s);
    end;
    procedure pisz;
    begin
    write(s);
    end;
    begin
    czytaj(s);
    pisz(s);
    end.
    W Twoim przypadku wystarczyło tylko poukładać Twój program i zaraz błąd sam się znalazł. Zjadłeś parę "end" przy tworzeniu procedur i ciężko było się
    połapać gdzie są procedury a gdzie główna część programu.

    Tutaj masz poukładany program z poprawionym błędem. Pozostałe błędy merytoryczne powinieneś szybko wyłapać.
    Mam tylko nadzieję że dołączony edytor nie powycina mi spacji.

    Uses Crt;
    const haslo = 'kot';
    var km,km2 : Byte;
    wprowadz : string;
    procedure Menu;
    begin
    ClrScr;
    GoToXy(35,1);
    Writeln('Witaj');
    GoToXy(1,10);
    Writeln('Dokonaj wyboru:');
    GoToXy(1,12);
    Writeln('1.Download');
    GoToXy(1,14);
    Writeln('2.Czysc');
    GoToXy(1,16);
    Writeln('3.Wyjscie do windows');
    GoToXy(1,18);
    Write('Twoj wybor:');
    Read(km)
    end;
    procedure Menu2;
    begin
    ClrScr;
    GoToXy(1,10);
    Writeln('Co chcesz wyczyscic?');
    GoToXy(1,12);
    Writeln('1.Temp');
    GoToXy(1,14);
    Writeln('2.Moje dokumenty');
    GoToXy(1,16);
    Write('Twoj wybor:');
    GoToXy(1,25);
    Write('3.Powrot do Glownego Menu');
    GoToXy(12,16);
    read(km2)
    end;
    procedure Haslo1;
    begin
    ClrScr;
    GoToXy(1,10);
    Write('Podaj Haslo Dostepu:');
    readln(wprowadz);
    if wprowadz=haslo then Menu2;
    if wprowadz<>haslo then
    begin
    ClrScr;
    GoToXy(1,10);
    Write('Bledne haslo!!!');
    Delay(10000);
    Menu
    end
    end;
    Begin
    Menu;
    if km=1 then
    begin
    ClrScr;
    GoToXy(1,10);
    Delay(10000);
    Writeln('Podlaczanie...!');
    Delay(15000);
    GoToXy(1,12);
    Writeln('Podlaczono!');
    Delay(10000);
    GoToXy(1,14);
    Writeln('Przesylanie danych...');
    Delay(25000);
    GoToXy(1,16);
    Writeln('Ukonczono_20%');
    Delay(25000);
    GoToXy(1,18);
    Writeln('Ukonczono_50%');
    Delay(25000);
    GoToXy(1,20);
    Writeln('Ukonczono_100%');
    Delay(25000);
    ClrScr;
    GoToXy(35,15);
    Delay(10000);
    Write('Bravo!!!');
    Delay(10000);
    end;
    Menu;
    if km=2 then Haslo1;
    if km2=1 then
    begin
    ClrScr;
    GoToXy(35,12);
    Delay(20000);
    Write('Ukonczono_20%');
    Delay(20000);
    GoToXy(35,14);
    Delay(20000);
    Write('Ukonczono_50%');
    Delay(20000);
    GoToXy(35,16);
    Write('Ukonczono_100%');
    Delay(20000);
    ClrScr;
    GoToXy(35,12);
    Write('Czyszczenie ZAKONCZONE!');
    Delay(15000);
    end;
    Menu2;
    if km2=2 then
    begin
    ClrScr;
    GoToXy(35,12);
    Delay(20000);
    Write('Ukonczono_20%');
    Delay(20000);
    GoToXy(35,14);
    Delay(20000);
    Write('Ukonczono_50%');
    Delay(20000);
    GoToXy(35,16);
    Write('Ukonczono_100%');
    Delay(20000);
    ClrScr;
    GoToXy(35,12);
    Write('Czyszczenie ZAKONCZONE!');
    Delay(15000);
    end;
    Menu2;
    if km2=3 then Menu;
    if km=3 then
    begin
    ClrScr;
    Delay(5000);
    GoToXy(35,12);
    Delay(5000);
    Write('Zegnaj ');
    Delay(15000)
    end
    end.
    • CommentAuthorrachwal
    • CommentTime24 Sep 2007
     
    Generalnie mam dla Was kilka cennych uwag odnosnie tego Forum (softu).

    W trybie BBcode nowe linie trzeba oddzielac znacznikiem [br] a kod pascalowy wrzucamy w znacznik [code].
    Bedzie znacznie czytelniej :)

    Odnosnie tego bledu, nie popelnilbys go gdyby Twoj kod byl ladnie "formatowany" wg. dowolnej notacji :)

    pozdrawiam!
  1.  
    Czy mógłby ktoś poprawić też mój kod?
  2.  
    USES CRT; VAR imie,oczy,wlosy,plec:string; BEGIN clrscr; writeln('Witaj! Jak masz na imie') read(imie); writeln('Wiec masz na imie ',imie,'); readln; writeln('Jestes kobieta czy meszczyzna?'); read(plec); IF plec=kobieta THEN writeln('Wybrales plec kobieta'); IF plec=meszczyzna THEN writeln('Wybrales plec meszczyzna'); readln; writeln('Jakie masz oczy? Niebieskie, zielone czy piwne'); read(oczy); IF oczy=niebieskie THEN writeln('Wybrales niebieskie oczy'); IF oczy=zielone THEN writeln('Wybrales zielone oczy'); IF oczy=piwne Then writeln('Wybrales piwne oczy'); readln; writeln('I wreszczie, jakie masz wlosy? Blond, czarne'); read(wlosy); IF wlosy=blond then writeln<'Wybrales blond wlosy.'); IF wlosy=czarne then writeln('Wybrales czarne wlosy.'); readln; writeln('Wiec masz na imie',imie,' jestes',plec,'masz',oczy,'oczy i',wlosy,'wlosy.'); readln; HALT; END.[.code]