Turbo Pascal

36
1 TURBO PASCAL 7 TUTORIAL Por: Raúl Zambrano Maestre [email protected]

description

Lenguajes de programación

Transcript of Turbo Pascal

1TURBO PASCAL 7TUTORIALPor: Ral Zambrano [email protected] DEL TUTORIAL DE TURO !A"CAL #.$1. Prlogo .................................................................................................................. [Pgina 03]2. Introduccin .................................................................................................. [Pgina 04]3. TiposdedatospredefinidosenTurboPascal ................................................... [Pgina 05]4. Tiposdedatosdefinidosporelusuario ............................................................. [Pgina 07]5. OperacionesdeEntrada/ alida ......................................................................... [Pgina 08]o !eadln / "ritelno Operadores arit#$ticoso %unciones predefinidas&. Estructurasdecontrolalternati'as...................................................................... [Pgina 10]o I% T(E) E*Eo +,E O%-. Estructurasdecontrolrepetiti'as...................................................................... [Pgina 12]o "(I*Eo !EPE,T .)TI*o %O!o +u/ndo se usa cada uno0. Procedi#ientos1funciones ................................................................................ [Pgina 15]o Par/#etroso Estructura2 declaracin 1 e#pleoo +u/ndo se usa cada uno3. *istas1tablas4,rra15......................................................................................... [Pgina 18]o +oncepto 1 clasificacin de las estructuras de al#acena#ientoo Estructura de un arra1o 6eclaracino tring17. Operaciones1funcionesdetrata#ientodecadenas ........................................ [Pgina 20]o Operaciones con cadenaso %unciones de trata#iento de cadenas11. 8$todosdeordenacin ........................................................................................ [Pgina 22]o 9uic:sort12. !egistros1,rc;i'os ............................................................................................ [Pgina 23]o !egistroso ,rc;i'os o %ic;eroso Opraciones b/sicaso ,rc;i'os de acceso directoo Trata#iento de fic;eros 1 directorios desde Turbo Pascal13. %uturosartando la palabra reser'ada tring 1 el ta#aBo fisico #/Ai#o =ue pueda alcan>ar durante la e?ecucin del progra#a.Ejem.ConstType VarLonmax 80;Cadena = String[Lonmax];Varcad: Cadena; !a"macena #asta 80 caracteres!$ %om&re: String; !a"macena #asta '(( caracteres!$TI!O" DE%INIDO" !OR EL U"UARIO.EAisten dos diferentes tipos de datos si#ples definidos por el usuario: enumerados 1 subrago.Ti&osenumera.os. *os tipos enu#erados se co#ponen de una lista de identificadores encerrados entre par$ntesis 1 separados por co#as.Ejem.TypeEstaciones = )prima*era+ *erano+ oto,o+ in*ierno-;Co"ores )rojo+ amari""o+ *erde+ a./"+ *io"eta-;*os tipos enu#erados son ordinales 1a =ue lle'an asociado cada uno un nC#ero entero2 e#pe>andopor el pri#ero2 al =ue se le asigna el O2 al segundo un 12 1 as< sucesi'a#ente2 por lo =ue no esindependiente el orden de declaracin. .n 'alor de tipo enu#erado no puede pertenecera dosdeclaraciones de tipo distintas 1 no pueden leerse desde teclado2 ni escribirse en pantalla.Ti&ossubran-o. Es un subcon?unto de un tipo ordinal 4enteros2 boolean2 car/cter 1 enu#erado5 =ue se especifica indicando el pri#ero 1 el Clti#o ele#ento del con?unto.Ejem. 0Type1denti2icador=primere"emento../"timoe"emento;Ejem. 'TypeVar3ec#a= 0..40;5ia: 3ec#a;*os tipos enteros2 car/cter2 booleanos2 enu#erados 1 subrango se deno#inan tipos ordinales. .n tipo ordinal representa una secuencia ordenada de 'alores indi'iduales2 a los =ue se puede aplicar los conceptos de predecesor 1 sucesor. En cada tipo de datos ordinales ;a1 un pri#er 'alor 1 un Clti#o 'alor.O!ERACIONE" DE ENTRADA/"ALIDA."enten'ias.esali.aoes'ritura. "rite o "riteln 4)o#bre,rc;i'o2 )o#'arl 2)o#'ar2...5:!eali>an con'ersin de tipos de datos antes de =ue la salida llegue al arc;i'o de salida. *as'ariables o argu#entos de esta sentencia pueden ser: eApresiones. constantes o 'ariables nu#$ricas2 de car/cter2 de cadena o booleanas.%or#atos:"rite o "riteln 4argu#ento5 "rite o "riteln 4argu#cnto:#5 "rite o "riteln 4argu#ento:#:n56onde # es el nC#ero de caracteres =ue ocupar/ la salida a?ustando la infor#acin a la derec;a2 1 nslo se e#plea cuando el argu#ento es nu#$rico real indica el nC#ero de caracteres =ue ocupar/ enla salida la parte deci#al.Ejem.6ostrar "a sa"ida 2ormateada para n7meros decima"es.8rogram 2ormato; Var9eginEnd.E?ecucin:%::ea";%:= 004;;rite"n )an en la lla#ada o in'ocacin al subprogra#a se deno#inan par/#etros actuales2 reales o argu#entos2 1 son los =ue entregan la infor#acin al subprogra#a. *os par/#etros =ue la reciben en el subprogra#a se deno#inan par/#etros for#ales o ficticios 1 se declaran en la cabecera del subprogra#a.En una lla#ada a un subprogra#a tiene =ue 'erificarse =ue:1. El nC#ero de par/#etros for#ales debe ser igual al de actuales.2. *os par/#etros =ue ocupen el #is#o orden en cada una de las *istas deben ser co#patiblesen tipo.Estru'tura7.e'lara'i,n8em&leo.eun&ro'e.imientoe declaran in#ediata#ente despu$s de las 'ariables del progra#a principal2 teniendo la precaucin de =ue si un subprogra#a referencia o lla#a a otro2 el referenciado debe declararse pri#ero.6eclaracin de procedi#ientos.Ca&ecera proced/re nom&reproced )"ista de parGmetros-;5ec"araciones constLoca"esType...Var...Kdec"araci>n de otros procedimientos y 2/nciones@C/erpo &eginend; )!o&seiOar; 2ina" de proeedimiento!-6eclaracin de par/#etros for#ales.e declaran encerrados entre par$ntesis2 indicando el identificador 1 el tipo correspondienteasociado a cada uno2 separados por @:@2 1 ter#inando en @E@. *a palabra reser'ada H,! precediendo a un identificador de par/#etro for#al indica al co#pilador =ue el paso del par/#etro es pro H,!iable. u ausencia u o#isin indica =ue el paso de par/#etro se reali>a por H,*O!.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.*la#ada a un procedi#iento.e reali>a desde el progra#a principal indicando el identificador del procedi#iento seguido de la lista de par/#etros actuales encerrados entre par$ntesis 1 separados por co#as.Ejem.1denti2icador )8=" +8='+8=4- Ejemp"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$9eginEnd;=/x:=p2";82":p2';82": a/xLa ""amada a este procedimiento se #arCa ...$... por ejemp"o desde e" sig/iente programa:$8rogram Mno;Mses crt; VarEntero 0 +entero' : integer;8roced/re intercam&io )*ar p2" +p0':integer-;...&eginend;c"rscr; !&orrado de panta""a!$;rite )a para reunir 'arias cadenas en una solaE?e#plo+ad1:M@esto es un e?e#plo@E +ad2:M@de concatenacion de cadenas@E+adr:Mcad1Icad2E"rite 4cadr5Ee 'isuali>ara la #is#a funcion =ue el operador de concatenacion. *a sint/Ais es:%unction concat 4cad12cad22...:string5: stringE*a cadena 'acia o nula se representa con dos caracteres apstrofes seguidos @ @. El acceso a los ele#entos de una cadena indi'idual#ente se ;ace co#o si fuera un arra1.E?e#plo. +ad1:M@e?e#plo@EPara referirnos al pri#er ele#ento pondria#os cad1K1L =ue seria la letra e.*a funcion Len-t* proporciona la longitud logica de una cadena de caracteres. E?e#plo.*ongitud:Mlengt;4cad15E*a 'ariable longitud to#aria el 'alor -.%un'iones.etratamiento.e'a.enas. $nstr4((i8n #4n(i8n.7PB'5trae 4na s4b(adena de (ara(teres de otra (adena de(ara(teres.o6" ((ad-16o1n4m)PoC 6rimera 6osi(i8n de- (ara(ter a e5traer.N4mC nDmero de (ara(teres >4e se e5traen.Po " N4m deben ser enterosP7*3etermina si 4na (adena es s4b(adena de otra1 en (aso a/irmati0o de04e-0e -a 6osi(i8n donde (omien?a -a s4b(adena1en (aso negati0o de0o-0erEa (ero.Pos (s4b(adena1(adena)3',''*46rime e- n4mero de (ara(teres >4e -e digamos de 4na (adenaa 6artir de -a 6osi(i8n >4e -e indi>4emos3e-ete (.ad1Po1N4m)$N*'R$nserta 4na (adena de (ara(teres en otra a 6artir de 4na 6osi(iondada.$nsert (s4b(adena1destino16osi(ion) *4b(adenaC .adena a insertar3estinoC .adena donde se 0a a insertar Posi(ionC ,4gar a 6artir de- (4a- se 0a a FP.a de sus registros.Ejemp"o:TypeTiporegistro = recordCampo 0 :tipo";..End;Campo % : tipo%;VarTipoarc#i*o = 2i"e o2 tiporegistro.=rc#i*o" : tipoarc#i*o; :egistro0 : tiporegistro;O&era'ionesb(si'as'onar'*i0os;$nstr4((i8n 76era(i8n