Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
http://www.icmc.usp.br/~sce182/unit.html
Instituto de Cincias Matemticas de So Carlos Departamento de Computao e Estatstica SCE182 - Algoritmos e Estruturas de Dados 1 Profs. Resp.: Graa Pimentel e Maria Cristina
<implementao de proc. e funes> {corpo das funes e proc.} Begin <inicializaes> End. {ou} End.
OBS: Um nico arquivo (diferente do Mdula-2) Exemplo 1: Unit IntLib Contm duas rotinas simples atuando sobre os inteiros
Unit IntLib; { INTLIB.PAS }
Interface Procedure ISwap (var I,J: integer); Function IMax (I,J: integer): integer; Implementation Procedure ISwap (var I,J: integer); Var Temp: integer; Begin Temp:=I; I:=J;
1 de 3
25/2/2008 19:24
UNIT
http://www.icmc.usp.br/~sce182/unit.html
J:=Temp; End; Function IMax (I,J: integer): integer; Begin If I>J Then IMax:=I Else IMax:=J; End; End.
Exemplo 2: Unit circulares - Units podem "utilizar" outras Units estabelecendo referncias "circulares". Program Circular: usa Unit Display (definida pelo usurio) para imprimir 3 mensagens na tela em coordenadas dadas.
Program Circular; Uses Crt, Display; Begin Clrscr; WriteXY(1,1,'upper left corner of screen'); WriteXY(100, 100, 'Way off the screen'); WriteXY(81-Length('Back to reality'), 15-Length('Back to reality'), 'Message'); End.
Unit Display: chama Show Error se a coordenada dada ilegal Show Error definida na Unit Error (definida pelo usurio) define WriteXY que imprime mensagem em coordenada legal
Unit Display; Interface Procedure WriteXY(X,Y: integer; Message: string); Implementation Uses Crt, Error; Procedure WriteXY(X,Y: integer; Message: string); Begin If (X in [1..80]) and (Y in [1..25]) Then Begin GotoXY(X,Y); Write(Message); End Else ShowError('Coordenadas X e Y so invlidas'); End; End.
2 de 3
25/2/2008 19:24
UNIT
http://www.icmc.usp.br/~sce182/unit.html
Unit Error: chama WriteXY para imprimir mensagem de erro, isto , utiliza Unit Display define Show Error
Unit Error; Interface Procedure ShowError (ErrMsg: string); Implementation Uses Display; Procedure ShowError(ErrMsg:string); Begin WriteXY(1,25,'Error: '+ ErrMsg); End; End.
ndice
3 de 3
25/2/2008 19:24