Вы находитесь на странице: 1из 20

TURBO PASCAL 7

TIPOS DE DATOS PREDEFINIDOS EN TURBO PASCAL.


Tipos enteros
Nombre Integer !ord $hortInt &yte 'ongInt Rango (desde...hasta) -32.768 a 32.767 " a 6##3# -%27 a %27 " a 2## -2.%(7.(83.6(8 a 2.%(7.(83.6(7 Tamao (bytes) 2 2 % % ( Formato Entero con s gno Entero s n s gno Entero corto con s gno Entero corto s n s gno Entero )argo con s gno

Tipos reales
Nombre Rea) $ ng)e /o0b)e E1tended *om2 Rango (desde...hasta) 2-.E-3. a %-7E38 %-#E-(# a 3-(E38 #-"E-3"7 a %-7E3"7 %-.E-(.32 a %-%E(.32%" -.-2E%8 a .-2E%8 Tamao (bytes) 6 ( 8 %" 8 * +ra s gn + cat ,as %%-%2 6-7 %#-%6 %.-2" %8-%.

Tipo carcter (Char . El tipo Char depende del cdigo de caracteres empleado por la mquina. El ms utilizado es el cdigo ASCII. Una variable o constante tipo Char puede contener un solo carcter especificado entre apstrofes. E em. !a! !"! Tipo L!"ico (Boolean . #ueden tomar dos valores $rue %verdadero& 'alse %falso&. El identificador estndar boolean define una variable de este tipo. Tipo Ca#ena (Strin" . Una cadena %string& es una secuencia de caracteres que tiene una longitud m(ima de )** caracteres. +os caracteres que componen la cadena se delimitan con apstrofes. E em. !abcd! !! longitud de la cadena , cadena vac-a o nula.

Una variable de cadena se define utilizando la palabra reservada String . el tama/o fisico m(imo que pueda alcanzar durante la e ecucin del programa.
Ejem. Const Type Var Lonmax 80;

Cadena = String[Lonmax]; Varcad: Cadena; %om&re: String; !a"macena #asta 80 caracteres!$ !a"macena #asta '(( caracteres!$

TIPOS DEFINIDOS POR EL USUARIO.


E(isten dos diferentes tipos de datos simples definidos por el usuario0 enumerados . subrago. Tipos en$%era#os. +os tipos enumerados se componen de una lista de identificadores encerrados entre par1ntesis . separados por comas.
Ejem. Type Estaciones = )prima*era+ *erano+ oto,o+ in*ierno-; Co"ores )rojo+ amari""o+ *erde+ a./"+ *io"eta-;

+os tipos enumerados son ordinales .a que llevan asociado cada uno un n2mero entero3 empezando por el primero3 al que se le asigna el 43 al segundo un 53 . as- sucesivamente3 por lo que no es independiente el orden de declaracin. Un valor de tipo enumerado no puede pertenecer a dos declaraciones de tipo distintas . no pueden leerse desde teclado3 ni escribirse en pantalla.

Tipos s$&ran"o. Es un subcon unto de un tipo ordinal %enteros3 boolean3 carcter . enumerado& que se especifica indicando el primero . el 2ltimo elemento del con unto.
Ejem. 0 Type 1denti2icador=primere"emento../"timoe"emento; Ejem. ' Type Var 3ec#a= 0..40; 5ia: 3ec#a;

+os tipos enteros3 carcter3 booleanos3 enumerados . subrango se denominan tipos ordinales. Un tipo ordinal representa una secuencia ordenada de valores individuales3 a los que se puede aplicar los conceptos de predecesor . sucesor. En cada tipo de datos ordinales ha. un primer valor . un 2ltimo valor.

OPERACIONES DE ENTRADA'SALIDA.
Sentencias #e sali#a o escrit$ra. 6rite o 6riteln %7ombreArchivo3 7omvarl 37omvar)...&0 8ealizan conversin de tipos de datos antes de que la salida llegue al archivo de salida. +as variables o argumentos de esta sentencia pueden ser0 e(presiones. constantes o variables num1ricas3 de carcter3 de cadena o booleanas. 'ormatos0 6rite o 6riteln %argumento& 6rite o 6riteln %argumcnto0m& 6rite o 6riteln %argumento0m0n& 9onde m es el n2mero de caracteres que ocupar la salida a ustando la informacin a la derecha3 . n slo se emplea cuando el argumento es num1rico real indica el n2mero de caracteres que ocupar en la salida la parte decimal.
Ejem. 6ostrar "a sa"ida 2ormateada para n7meros decima"es. 8rogram 2ormato; Var %::ea"; 9egin %:= 004; ;rite"n )<3ormato por de2ecto<+n-; ;rite"n )<=nc#/ra 8:0<+ n:8:0-; ;rite"n )<=nc#/ra 8:4<+ n:8:4End.

E ecucin0 'ormato por defecto Anchura =05 Anchura =0: :.::::::::::*E;<5 <.: <.:::

Sentencia #e entra#a o lect$ra. 8ead o 8eadln %7ombreArchivo37omvarl 37omvar)..&> 4#E8A948ES A8I$"?$IC4S.


32erador 5 6 7 d, mod F0nc 4n 32erador 0nar o. In, erte e) s gno. o2erador b nar o s0ma. o2erador b nar o resta. o2erador b nar o 2rod0cto. o2erador b nar o d , s 4n rea). o2erador b nar o d , s 4n entera. o2erador b nar o resto entero.

'U7CI47ES #8E9E'I7I9AS.
Instr0cc 4n 8bs(1) 8rcTan(1) *hr(1) *os(1) E12(1) Frac(1) Int(1) 'n(1) 3dd(1) 3rd(1) 9red(1) Ro0nd(1) $0cc(1) $ n(1) $<r(1) $<rt(1) Tr0nc(1) F0nc 4n 9ro2orc ona e) ,a)or abso)0to de 0na ,ar ab)e n0mer ca 1. E) arco c0ya tangente es 1. /e,0e),e e) car:cter 8$*II de 0n entero entre 3 y 2##. 9ro2orc ona e) ,a)or de) coseno de 1. 'a e12onenc a) de 1(e;). 9arte dec ma) de 1. 9arte entera de 1. 'ogar tmo ne2er ano de 1. Tr0e s 1 es m2ar- y +a)se s es 2ar. 3rd na) de 0na ,ar ab)e t 2o ord na) 1. 3rd na) anter or a )a ,ar ab)e ord na) 1. Entero m:s 2r41 mo a) ,a)or 1. 3rd na) s g0 ente a )a ,ar ab)e ord na) 1. $eno de 1. *0adrado de 1. Ra = c0adrada de 1- 2ara 1>?3. 9arte entera de 1.

ESTRUCTURAS DE CONTROL.
Se denominan estructuras de control a aquellas que determinan qu1 instrucciones deben e ecutarse . qu1 n2mero de veces. E(isten dos tipos de estructuras de control0 alternati(as o de seleccin . repetiti(as o de iteracin.

ESTRUCTURAS ALTERNATI)AS.
Son aquellas que bifurcan o dirigen la e ecucin de un programa hacia un grupo de sentencias u otro dependiendo del resultado de una condicin. +as dos sentencias alternativas de $urbo #ascal son0 Sentencia alternativa simple I';$@E7;E+SE Sentencia alternativa m2ltiple CASE;4'.

IF T*EN ELSE.
3ormato: 13 )expresi>n ">gica o &oo"eana- T?E% ELSE Sentencia' )simp"e o comp/esta-; Sentencia" )simp"e o comp/esta-

Ejem. 13 n@A t#en ;rite"n )B%7mero positi*o<-; 13 n@A t#en ;rite"n )B%7mero positi*o<ELSE ;rite"n )B%egati*o o cero<-;

7o puede e(istir un punto . coma inmediatamente antes de una palabra E+SE .a que ser-a interpretado como final de I'.

CASE OF
3ormato: C=SE )expresi>n o *aria&"e- A3 )"ista de constantes0-:)sentencia0-; )"ista de cons"antes'-:)sentencia'-; )"ista de constantes4-:)senteneia4-; ... ELSE )SE%TE%C1=... E%5; Ejem. 8rogram men/; Var %/merodia: integer; 9egin ;rite)<introd/.ca e" ordina" de /n dCa "a&ora&"e de "a semana:<:eadCn )n/merodia-; ;rite )B?oy es <-; Case n/merodia A2 0:;rite"n )<L/nes<-; ':;rite"n )<6artes<-; 4:;rite"n )<6ierco"es<-; D:;rite"n )<E/e*es<-; (:;rite"n )<Viernes<-; F:;rite"n )<SG&ado<E"se ;rite"n )<HHH5omingoIII %o es dCa "a&ora&"e<-; End. )"ista de constantes%-:)sentencia%-;

ESTRUCTURAS REPETITI)AS.
Son aquellas que crean un bucle %repeticin continua de un con unto de instrucciones& en la e ecucin de un programa respecto de un grupo de sentencias en funcin de una condicin. +as tres sentencias repetitivas de $urbo #ascal son0
A A A A

SE7$E7CIA 6@I+E SE7$E7CIA 8E#EA$;U7$I+ SE7$E7CIA '48 CUB794 SE USA CA9A U74

SENTENCIA +*ILE Indica al ordenador que se e ecuten una o ms sentencias mientras se cumpla una determinada condicin. +a condicin viene determinada por una variable o e(presin booleana.
3ormato: ;?1LE condici>n 5A 9EJ1% )sentencia0-; ... )sentencia%-;

E%5;

;?1LE condici>n 5A )sentencia-;

Esta sentencia comprueba inicialmente si la condicin es verdadera. Si la condicin es verdadera se e ecutan las sentencias mientras la condicin de su enunciado sea verdadera . finaliza cuando la condicin es falsa. 9ado que la condicin puede ser falsa inicialmente3 es decir antes de comenzar el bucle3 habr casos en que el bucle no se e ecute. Caracter-sticas del bucle 6@II+E0 Se e ecuta mientras la condicin sea verdadera3 . dentro del bucle debe e(istir3 por lo menos3 una sentencia que modifique el valor de la variable o e(presin3 de lo contrario se puede producir una situacin de bucle infinito. Si la e(presin lgica es falsa al comenzar el bucle3 1ste no se realizar.

Ejemp"o. Escri&ir "os % primeros n7meros nat/ra"es+ donde % es /n *a"or introd/cido por e" /s/ario.

8rogram escri&eenteros; Var %+contador: integer; 9egin ;rite )<1ntrod/.ca n/mero maximo de enteros: <-; :ead"n )%-; Contador:=0; ;#i"e contadorK=% do 9egin ;rite )contador:(-; Contador:=contadorL0; End; ;rite"n; ;rite"n )<3in de programa. Contador = <+contador-; End.

SENTENCIA REPEAT UNTIL E ecuta las sentencias comprendidas entre las palabras reservadas 8E#EA$ . U7$I+ hasta que la e(presin o variable sea verdadera.
3ormato: :E8E=T &egin )Sentencia-; )Sentencia-; ... end; M%T1L condici>n;

Caracter-sticas del bucle 8E#EA$0 Se e ecutan siempre una vez3 por lo menos3 . la terminacin del bucle se produce cuando el valor de la e(presin lgica o condicin de salida es verdadera. Se e ecuta hasta que la e(presin es verdadera3 es decir3 se e ecuta mientras la e(presin sea falsa.
Ejemp"o. E" mismo N/e con "a sentencia ;?1LE. 8rogram escri&eenteros; Var %+contador:integer; 9egin ;rite )<1ntrod/.ca n7mero mGximo de enteros: <-; :eadin )%-; Contador:= A; :epeat Contador:=contadorL0; ;rite )contador:(Mnti" contador = %; ;rite"n )<3in de programa. Contador = <+contadorEnd.

SENTENCIA FOR 8epite la e ecucin de una o varias sentencias un n2mero fi o de veces. previamente establecido. 7ecesita una variable de control del bucle que es necesariamente de tipo ordinal3 .a que el bucle se e ecuta mientras la variable de control toma una serie consecutiva de valores de tipo ordinal3 comprendidos entre dos valores e(tremos %inferior . superior&.
3ormato ascendente: 3A: *aria&"econtro":=*a"orinicia" TA *a"or2ina" 5A )sentencia-; 3ormato descendente: 3A: *aria&"econtro":=*a"orincia" 5A;%TA *a"or2ina" 5A )sentencia-; donde )sentencia- p/ede ser /na sentencia simp"e o comp/esta.

Ejemp"o: E" mismo N/e con "a sentencia ;?1LE. 8rogram escri&eenteros; 6ar %+contador: integer; 9egin ;rite )<1ntrod/.ca n/mero maximo de enteros: <-; :ead"n )%-; 3or contador:=0 to n do ;rite )contador:(-; ;rite"n End.

Caracter-sticas del bucle '480 Aunque a primera vista pueda resultar ms atractivo '483 e(isten limitaciones en su aplicacin .a que en el bucle '48 siempre se incrementa o decrementa %de uno en uno& los valores de la variable de control de bucle . no de dos en dos o de tres en tres3 o con valores fraccionarios. El n2mero de iteraciones de un bucle '48 siempre es fi o . se conoce de antemano0 Calor final ; Calor inicial D5. CU,NDO UTILI-AR +*ILE'REPEAT'FOR.
A A A

Utilizar la sentencia o estructura '48 cuando se conozca el n2mero de iteraciones3 . siempre que la variable de control de bucle sea de tipo ordinal. Utilizar la estructura 8E#EA$;U7$I+ cuando el bucle se realice por lo menos una vez. En todos los dems casos utilizar la sentencia 6@I+E.

PROCEDI/IENTOS 0 FUNCIONES.

#ascal ofrece dos herramientas bsicas para realizar programacin descendente0 los procedimientos %procedure& . las funciones %function&3 a los que nos referiremos gen1ricamente con el t1rmino de subprogramas. $urbo pascal incorpora adems el concepto de unidad %unit&3 que permite aprovechar mdulos independientes .a compilados.

Los par%etros +os parmetros son canales de comunicacin para pasar datos ente programas . subprogramas en ambos sentidos. +os parmetros van asociados a variables. constantes3 e(presiones3 etc.3 . por tanto3 se indican mediante los correspondientes identificadores o e(presiones. +os parmetros que se utilizan en la llamada o invocacin al subprograma se denominan parmetros actuales3 reales o argumentos3 . son los que entregan la informacin al subprograma. +os parmetros que la reciben en el subprograma se denominan parmetros formales o ficticios . se declaran en la cabecera del subprograma. En una llamada a un subprograma tiene que verificarse que0 5. El n2mero de parmetros formales debe ser igual al de actuales. ). +os parmetros que ocupen el mismo orden en cada una de las +istas deben ser compatibles en tipo.

Estr$ct$ra1 #eclaraci!n 2 e%pleo #e $n proce#i%iento Se declaran inmediatamente despu1s de las variables del programa principal3 teniendo la precaucin de que si un subprograma referencia o llama a otro3 el referenciado debe declararse primero. 9eclaracin de procedimientos.
Ca&ecera 5ec"araciones Loca"es proced/re nom&reproced )"ista de parGmetros-; const Type... Var... Kdec"araci>n de otros procedimientos y 2/nciones@ C/erpo &egin end; )!o&seiOar; 2ina" de proeedimiento!-

9eclaracin de parmetros formales. Se declaran encerrados entre par1ntesis3 indicando el identificador . el tipo correspondiente asociado a cada uno3 separados por !0!3 . terminando en !>!. +a palabra reservada CA8 precediendo a un identificador de parmetro formal indica al compilador que el paso del parmetro es pro CA8iable. Su ausencia u omisin indica que el paso de parmetro se realiza por CA+48.
Ejem. 8roced/re 1denti2icador )830 :tipo" ;83':tCpo'; *ar 8;:tipo4-; 83" y 83' se pasan por *a"or. 834 se pasa por *aria&"e.

+lamada a un procedimiento. Se realiza desde el programa principal indicando el identificador del procedimiento seguido de la lista de parmetros actuales encerrados entre par1ntesis . separados por comas.
Ejem. 1denti2icador )8=" +8='+8=4Ejemp"o. 8rocedimiento para intercam&iar "os *a"ores de dos *aria&"es. 8roced/re intercam&io )*ar p2" +p0':integer-; Var =/x:integer; )*aria&"e "oca" /so exc"/si*o en procedimiento$ 9egin =/x:=p2"; 82":p2'; 82": a/x End; La ""amada a este procedimiento se #arCa ...$ ... por ejemp"o desde e" sig/iente programa:$ 8rogram Mno; Mses crt; Var Entero 0 +entero' : integer; 8roced/re intercam&io )*ar p2" +p0':integer-; ... &egin c"rscr; !&orrado de panta""a!$ ;rite )<introd/.ca ' *aria&"es enteras: <-; :ead"n)entero0+entero'-; ;rite"n )<*a"ores de "as *aria&"es antes de "a ""amada<-; ;rite"n )<Entero 0 = <+entero"+<entero ' = <+entero'-; intercam&io )entero"+entero'-; ""amada a" procedimiento$ ;rite"n )<Va"or de "as *aria&"es desp/Ps de "a ""amada<-; ;rite"n )<entero 0 = <+entero"+<entero ' = <+entero'-;

end;

F$nciones o proce#i%ientos. 9eben utilizarse funciones cuando solo tenga que devolverse un solo valor simple al programa llamador. En todos los dems casos utilizaremos0 procedimietos.

LISTAS 0 TABLAS (Arra2s .

Concepto 2 clasi3icaci!n #e estr$ct$ras +as estructuras se clasifican de acuerdo a varios criterios.


A

8especto al n2mero de componentes3 las estructuras se clasifican en estticas %el n2mero de componentes es fi o& . dinmicas %el n2mero de componentes var-a durante la e ecucin del programa .a que se pueden crear . destruir las variables durante el desarrollo del mismo. 8especto al tipo de componentes las estructuras suelen formarse o bien por combinacin de datos de distinto tipo %registros& o bien por la repeticin de datos del mismo tipo %arra.s3con untos archivos3 listas3 rboles3 etc.&. 9entro de 1stas el acceso puede hacerse por posicion3 .a sea de forma secuencial o bien directa3 o bien por contenido o clave.

La estr$ct$ra Arra2. Es una estructura homog1nea de datos de tama/o constante accediendo a cada uno de sus elementos mediante un identificador comun . uno o varios -ndices.
A A A

$odos los elementos del arra. son del mismo tipo. El n2mero de ellos no var-a durante la e ecucin del programa. Accedemos a un elemento de la estructura mediante un identificador com2n3 el nombre del arra.3 . con el valor que toman uno o varios indices. Al n2mero de indices necesarios para designar un elemento del arra. se le denomina dimensin del arra.. El n2mero m(imo de valores posibles que puede tomar cada indice se denomina rango de esa dimensin o indice. +os valores han de ser consecutivos3 por lo que el indice ha de ser de un tipo ordina+

Declaraci!n #e tipos 2 (aria&les arra2 +a declaracin ms general de un arra. es la siguiente0

Type :ango0 = tipoordina"0; :ango' = tipoordina"'; ... rangon = tipoordina"n; tipo&ase = )!c/a"N/ier prede2inido o de2inido por e" /s/ario!tipoarray = array [rango0+rango'+...+rangon] o2 tipo&ase+

E emplo0 Arra. para almacenar las notas correspondiente a todos los alumnos de un colegio. Suponiendo lo siguiente0 7umero de cursos * Erupos por curso : 7umero de evaluaciones : 7umero de asignaturas F 7umero de alumnos por curso )<

Const %/mc/rso=(; %/masig=F; %/ma"/m='0; Type C/rsos=0.. n/rne/rso; Jr/pos=<=<..<C<; E*a"=)primera+seg/nda+tercera-; =sign=0.. n/masin; ="/m=0. .n/ma"/m; Tiponotas=array[c/rsos+gr/pos+e*a"+asign+a"/m] o2 rea"; Var %otas:tiponotas; C/rso:c/rsos; Jr/po:gr/pos; E*a"/acion:e*a"; 6ateria:asign; ="/mno:a"/m;

Con los elementos de un arra. podemos realizar las mismas operaciones que el tipo base al que pertenecen. STRIN45 Ca#enas #e caracteres +as cadenas de caracteres son arra.s especiales. Una cadena de caracteres %string& consiste en una serie o secuencia de caracteres cu.o n2mero %longitud& puede estar entre < . )**. Se puede definir la longitud de la cadena poniendo string GnH donde n est entre < . )** Longitud fisica0 corresponde al ma(imo numero de caracteres que puede almacenar. Longitud lgica0 corresponde al numero de caracteres que tiene en un instante determinado.

OPERACIONES 0 TRATA/IENTO DE CADENAS

Operaciones con ca#enas. +as dos operaciones basicas son comparacin y concatenacin. 4perador de concatenacin %D& Se utiliza para reunir varias cadenas en una sola E emplo Cad50I!esto es un e emplo!> Cad)0I!de concatenacion de cadenas!> Cadr0Icad5Dcad)> 6rite %cadr&> Se visualizar-a esto es un ejemplo de concatenacion de cadenas +a funcion concat realiza la misma funcion que el operador de concatenacion. +a sint(is es0 'unction concat %cad53cad)3...0string&0 string> +a cadena vacia o nula se representa con dos caracteres apstrofes seguidos ! !. El acceso a los elementos de una cadena individualmente se hace como si fuera un arra.. E emplo. Cad50I!e emplo!> #ara referirnos al primer elemento pondriamos cad5G5H que seria la letra e. +a funcion Len"th proporciona la longitud logica de una cadena de caracteres. E emplo. +ongitud0Ilength%cad5&> +a variable longitud tomaria el valor J.

F$nciones #e trata%iento #e ca#enas.

Instr0cc 4n

F0nc 4n E1trae 0na s0bcadena de caracteres de otra cadena de caracteres

*39@

*o2y (cad)-2o-n0m) 9oA 2r mera 2os c 4n de) caracter a e1traer. N0mA nBmero de caracteres <0e se e1traen. 9o y N0m deben ser enteros /eterm na s 0na cadena es s0bcadena de otra- en caso a+ rmat ,o de,0e),e )a 2os c 4n donde com en=a )a s0bcadenaen caso negat ,o de,o),erCa cero. 9os (s0bcadena-cadena)

93$

/E'ETE

$02r me e) n0mero de caracteres <0e )e d gamos de 0na cadena a 2art r de )a 2os c 4n <0e )e nd <0emos /e)ete (*ad-9o-N0m) Inserta 0na cadena de caracteres en otra a 2art r de 0na 2os c on dada.

IN$ERT

Insert (s0bcadena-dest no-2os c on) $0bcadenaA *adena a nsertar /est noA *adena donde se ,a a nsertar 9os c onA '0gar a 2art r de) c0a) se ,a a nsertar /e,0e),e e) caracter mayBsc0)a

D9*8$E

D2case(1) /onde 1 es 0na ,ar ab)e de t 2o char.

$TR

*on, erte 0n ,a)or n0mer co a )a corres2ond ente cadena de caracteres <0e )o re2resenta. $tr(,a)or-cad) 9roced m ento n,erso a $tr- es dec r- de,0e),e e) ,a)or n0mer co de 0na cadena.

E8'

Ea)(cad-,ar ab)e-cod go) *adA )a cadena a con,ert r en ,a)or n0mer co. Ear ab)eA e) n0mero <0e se obtenga. *od goA cero s se ha 2od do con,ert r.

/6TODOS DE ORDENACI7N
/8to#o #el 9$ic:short
8rogram Q/icRsort; /ses crt; type *ector=array [0..00] o2 integer; const "ista:*ector=)8+(+F+4+0+D+'+S+00+T-; *ar R:integer; "ongit/d:integer; proced/re rapido )*ar a:*ector;n:integer-; proced/re partir )primero+/"timo :integer-; *ar i+j+centra":integer; proced/re intercam&iar )*ar m+n:integer-; *ar a/x:integer; &egin a/x:=m; 6:=n; %:=a/x; end; &egin i:=primero; j:=/"timo; centra":=a[)primeroL/"timo- di* ']; repeat O#i"e a[i]centra" do j:=jU0; i2 iK=j t#en &egin intercam&iar )a[i]+a[j]-; i:=iL0; j:=jU0; end; /nti" i@j; i2 primeroKj t#en partir)primero+j-; i2 iK/"timo t#en partir)i+/"timo-; end; &egin partir )0+n-; end; &egin c"rscr; R:=0; Orite )<Este es e" *ector origina": <-; repeat &egin Orite )"ista[R]+< <-; R:=RL0; end; /nti" R=00; Orite"n; rapido )"ista+00-; R:=0; Orite )<Este es e" *ector ordenado: <-; repeat &egin Orite )"ista[R]+< <-; R:=RL0; end; /nti" R=00; read"n; end.

RE4ISTROS 0 ARC*I)OS
Re"istros Un registro es una estructura heterog1nea de datos3 denominados campos . a los que accedemos por nombre. Al igual que cualquier otro dato3 el tipo registro %8ecord& antes de poder se utilizado debe ser declarado en la seccin de tipos. +a 2nica operacin %a parte de la lectura& que se puede realizar con una variable registro como tal es la asignacin3 es decir3 se pueden copiar todos los campos de una variable registro a otra variable registro del mismo tipo. Adems un registro puede ser pasado como parmetro a una funcin o procedimiento.

Archi(os Un archivo es una estructura homog1nea de datos consistente en una secuencia de elementos llamados registros3 todos del mismo tipo3 .a sea simple o estructurado. Un archivo se almacena en un dispositivo au(iliar %discos3 cintas3 etc&3 de forma que los datos obtenidos antes3 durante . despu1s del procesamiento de los datos3 no se pierden. #ara declarar una variable archivo es necesario definir previamente la naturaleza de sus registros.

Ejemp"o: Type Tiporegistro = record Campo 0 :tipo"; . . End; Var Campo % : tipo%;

Tipoarc#i*o = 2i"e o2 tiporegistro.

=rc#i*o" : tipoarc#i*o; :egistro0 : tiporegistro;

Operaciones &sicas con archi(os5

Instr0cc 4n

32erac 4n Este 2roced m ento as gna 0n arch ,o )4g co con s0 arch ,o + s co corres2ond ente. /es20Gs de )a as gnac 4n- c0a)<0 er o2erac 4n sobre )a ,ar ab)e arch ,o a+ectar: a) arch ,o /os corres2ond ente. 8ss gn (Eararch-nomarch)H 9roced m ento <0e abre 0n arch ,o 2ara )ect0ra 2os c onando e) 20ntero de )ect0ra de) arch ,o en e) 2r mer e)emento de) arch ,oy 2on endo )a ,ar ab)e boo)eana E3F asoc ada a) arch ,o a Fa)se- o en )a marca de + n de arch ,o sC e) arch ,o esta ,ac o- en c0yo caso )a ,ar ab)e E3F toma e) ,a)or Tr0e. No se 20ede mod + car e) conten do de n ngBn reg stro. RE$ET (nom,ararch ,o)H

8$$IFN

RE$ET

I3RE$D'T

F0nc 4n <0e de,0e),e e) nBmero de) t 2o de error comet do en e) tratam ento de arch ,os. $ no hay n ngBn error de,0e),e 3. E) 2roced m ento ReIr te abre 0n arch ,o 2ara escr t0ra destr0yendo e) conten do de) arh ,o s este ya e1 ste. No es 2os b)e ,er datos de 0n arch ,o <0e est: ab erto con este 2roced m ento- ya <0e borra )os datos e1 stentes. Este 2roced m ento se 0t ) =a 2ara ntrod0c r e) conten do de 0n reg stro de) arch ,o en 0na ,ar ab)e de memor a de+ n da de) m smo t 2o de dato <0e e) reg stro )e do. RE8/ (nom,ararch ,o-nom,arreg)H En )a )ect0ra de) B)t mo reg stro e) sa)to de) 20ntero 2os c ona Gste sobre )a marca de + n de arch ,o- co)ocando )a +0nc 4n )4g ca E3F J+ n de arch ,oJ asoc ada a cada arch ,o a ,erdadero. E3F (,ararch ,o)

RE!RITE

RE8/

E3F

Ejemp"o: ;#i"e not eo2)pr/e&as- do 9egin :ead )pr/e&as+in2o-; ;rite )in2o-; End; E) 2roced m ento Ir te escr be en 0n reg stro de) arch ,o e) conten do de 0na ,ar ab)e de memor a de+ n da de) m smo t 2o. !RITE (nom,ararch ,o-nom,arreg)H

!RITE

Archi(os #e acceso #irecto Estn formados por registros del mismo formato . longitud por lo que permiten el acceso a un registro especifico mediante un n2mero asociado al mismo3 que se denomina su n2mero de registro lgico. El n2mero asociado es de tipo longint . se asigna al primer registro lgico el valor 4. #ara

que un archivo pueda ser tratado por posicionamiento o acceso directo debe residir obligatoriamente en un dispositivo de almacenamiento de este tipo. +a declaracin de un archivo de acceso directo es id1ntica a la de otros archivos . slo se distingue de ellos por las funciones de posicionamiento en un registro. El contenido de un archivo directo se almacena en disco ba o forma binaria comprimida . no es visualizable directamente en pantalla3 como los archivos de te(to3 con la orden $K#E de 94S o con editores. +as principales operaciones de archivos de acceso directo que se usan en #ascal son0 RESET Abrir archivo e(istente. RE+RITE Abrir un archivo nuevo. Son dos procedimientos para abrir el archivo de acceso directo3 .a sea con un procedimiento u otro3 el archivo se abrir para lectura . escritura. FILESI-E $ama/o del archivo en formato longint3 indica el n2mero de registros almacenados. Si el fichero est vacio devuelve el valor 4. SEE; #ermite seleccionar un registro espec-fico del archivo por su n2mero de registro3 para su uso en una operacin de lectura o escritura. READ +ectura del registro actual. +RITE Escritura sobre el registro actual. CLOSE Cerrar el archivo. Trata%iento #e archi(os #es#e T$r&o Pascal El $urbo #ascal permite manipular archivos . directorios en disco de modo similar al sistema operativo "s;94S. #udiendose realizar las siguientes operaciones con archivos . directorios0
Erase)nom*ararc#i*o:ename)nom*ararc#i*o+<nom&ren/e*oarc#i*o<C#dir )directorio6Rdir )directorio:mdir )directorioJetdir)/nidad+caminoMnidad Mnidad Mnidad Mnidad = = = = 0 0 ' 4 /nidad de arranN/e =: 9: C:

Camino contiene e" directorio act/a".

obtiene la unidad . el camino del directorio actual de una unidad . lo almacena en las variables unidad3 de tipo byte . cambio de tipo String.
Getdir

Вам также может понравиться