Skocz do zawartości


Zdjęcie

[Turbo Pascal]problem z modulem


  • Zamknięty Temat jest zamknięty
2 odpowiedzi w tym temacie

#1 norbi123

norbi123

    Początkujący

  • 132 postów

Napisano 05 02 2008 - 23:42

Nie chcialem otwierac nowego tematu wiec napisze tutaj... chodzi o to ze programuje w turbo pascalu i zrobilem wlasny modul ale przy kompilowaniu wyskakuje blad i nie moge dojsc do tego o co w nim chodzi prosze o pomoc... modul zamieszczam w zalaczniku ale w notatniku poniewaz w formacie .pas nie chce mi sie zalaczyc gdyby ktos mogl wlaczyc przez swoj kompilator i sprawdzic na czym polega blad bylbym wdzieczny....nie widzialem codebox ale juz znalazlem i wpisalem tam wszystko i tak w ogole to czy modul moze sam cos robic??? czy potrzebuje do tego program bo inaczej nic nie zrobi?? w miejscu gdzi wstawilem ;) program pokazuje mi ze jest blad i pokazuje "expect (" a gdy wstawie nawias w tym miejsu pokazuje "error in expression" PROSZE O POMOC

unit InterfrejsUzytkownika;interfaceuses Crt;constEnter = #13;Esc = #27;MaxOpcja = 9;typestring30 = string[30];TablOpcji = array[1..MaxOpcja] of string30;varch:char;KFunSpec:boolean;PoprzedniX,PoprzedniY : byte;procedure Czekaj;procedure Buczek(Hz:word;Czas:real);procedure PiszXY(x,y:byte;s:string);procedure CzytajReal(var q:real;x,y:byte;Zaproszenie:string);procedure UstawKolory(KolorZnakow,KolorTla:byte);procedure OdtworzKolory;function Menu(x,y:byte;LiczbaOpcji:byte;Opcje:Tablopcji):byte;function Szlaczek(Zn:char;Dlug:byte):string;implementationvarPoprzednieKolory : byte;procedure Czekaj;beginKFunSpec:=false;ch:=ReadKey;if ch=#0 thenbeginKFunSpec:=true;ch:=ReadKEyend;end;procedure Buczek(Hz:word;Czas:real);vari:integer;begini:=round(Czas*1000);Sound(Hz);Delay(i);NoSoundend;procedure PiszXY(x,y:byte;s:string);beginPoprzedniX:=WhereX;PoprzedniY:=WhereY;GotoXY(x,y);write(s)end;procedure CzytajReal(var q:real;x,y:byte;Zaproszenie:string);vars:string;Blad:integer;beginrepeatPiszXY(x,y,Zaproszenie);readln(s);Val(s,q,Blad);if Blad <> 0 then Buczek(1000,0.2);until Blad=0end;procedure UstawKolory(KolorZnakow,KolorTla:byte);beginPoprzedniekolory:=TextAttr;TextColor(KolorZnakow);TextBackground(kolorTla);end;procedure OdtworzKolory;beginTextAttr:=PoprzednieKolory;end;function Menu(x,y:byte;LiczbaOpcji:byte;Opcje:Tablopcji):byte;vari : integer;s:string;OstatniaOpcja : char;beginOstatniaOpcja:=chr(Liczbaopcji+ord('0'));for i:=1 to LiczbaOpcji dobeginStr(i,s);s:=s+':'+Opcje[i];PiszXY(x,pred(y)+i,s);end;PiszXY(x,y+LiczbaOpcji,'0: Zaniechanie wyboru');repeatCzekaj;until ch in['0'..OstatniaOpcja];menu:=ord('0')end;function Slaczek(Zn:char;Dlug:byte):string;vars:string;i:integer;begins:='';for i:=1 to Dlug dos:=s+Zn;Szlaczek <img src='http://www.forum.tweaks.pl/public/style_emoticons/<#EMO_DIR#>/wink.png' class='bbc_emoticon' alt=';)' /> :=send;beginPoprzednieKolory:=TextAttr;end.

Załączone pliki

  • Załączony plik  inf.txt   1,99 KB   288 Ilość pobrań

  • 0

#2 Marko_

Marko_

    Stały użytkownik

  • 279 postów

Napisano 25 02 2008 - 21:46

Witam
Co to jest Unit ? Unitami są graph, crt, dos i inne są to po prostu zbiory procedur i funkcji które możemy wywoływać z naszego programu . Najpierw deklarujemy bibliotekę (nie mylić z bibliotekami DLL to inny temat) :D
np: uses moj_unit;
Po deklaracji wywołujemy procedury i funkcje z tegoż unitu, przy funkcjach pamiętaj o parametrach. Unity możesz pisać także obiektowo, dodawać tablice rekordy itd. Informacji na ten temat w necie jest całe mnóstwo wystarczy trochę poszukać :P
A co do załączonego pliku jest w nim błąd zwykła literówka funkcja wywoływała samą siebie dodatkowo sama nazwa funkcji w swej nazwie miała błąd (literówka). Wartości funkcji proponuje zwracać poprzez RESULT. Do tego unita musisz napisać jeszcze program który wykorzysta zawarte w nim procedury i funkcje Powodzenia :P

Poprawiony unit:

unit InterfrejsUzytkownika;interfaceuses Crt;constEnter = #13;Esc = #27;MaxOpcja = 9;typestring30 = string[30];TablOpcji = array[1..MaxOpcja] of string30;varch:char;KFunSpec:boolean;PoprzedniX,PoprzedniY : byte;procedure Czekaj;procedure Buczek(Hz:word;Czas:real);procedure PiszXY(x,y:byte;s:string);procedure CzytajReal(var q:real;x,y:byte;Zaproszenie:string);procedure UstawKolory(KolorZnakow,KolorTla:byte);procedure OdtworzKolory;function Menu(x,y:byte;LiczbaOpcji:byte;Opcje:Tablopcji):byte;function Szlaczek(Zn:char;Dlug:byte):string;implementationvarPoprzednieKolory : byte;procedure Czekaj;beginKFunSpec:=false;ch:=ReadKey;if ch=#0 thenbeginKFunSpec:=true;ch:=ReadKEyend;end;procedure Buczek(Hz:word;Czas:real);vari:integer;begini:=round(Czas*1000);Sound(Hz);Delay(i);NoSoundend;procedure PiszXY(x,y:byte;s:string);beginPoprzedniX:=WhereX;PoprzedniY:=WhereY;GotoXY(x,y);write(s)end;procedure CzytajReal(var q:real;x,y:byte;Zaproszenie:string);vars:string;Blad:integer;beginrepeatPiszXY(x,y,Zaproszenie);readln(s);Val(s,q,Blad);if Blad <> 0 then Buczek(1000,0.2);until Blad=0end;procedure UstawKolory(KolorZnakow,KolorTla:byte);beginPoprzedniekolory:=TextAttr;TextColor(KolorZnakow);TextBackground(kolorTla);end;procedure OdtworzKolory;beginTextAttr:=PoprzednieKolory;end;function Menu(x,y:byte;LiczbaOpcji:byte;Opcje:Tablopcji):byte;vari : integer;s:string;OstatniaOpcja : char;beginOstatniaOpcja:=chr(Liczbaopcji+ord('0'));for i:=1 to LiczbaOpcji dobeginStr(i,s);s:=s+':'+Opcje[i];PiszXY(x,pred(y)+i,s);end;PiszXY(x,y+LiczbaOpcji,'0: Zaniechanie wyboru');repeatCzekaj;until ch in['0'..OstatniaOpcja];menu:=ord('0')end;function Szlaczek(Zn:char;Dlug:byte):string;vars:string;i:integer;begins:='';for i:=1 to Dlug dos:=s+Zn;Szlaczek:=send;beginPoprzednieKolory:=TextAttr;end.


  • 0

#3 norbi123

norbi123

    Początkujący

  • 132 postów

Napisano 25 02 2008 - 22:40

no juz do tego doszedlem sam ale dzieki za pomoc. a program napisalem. no i wlasnie chcialem napisac cos w stylu Crt lub Graph

  • 0

Zobacz więcej tematów z tagiem: Turbo Pascal



Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych