slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Tipos de datos Estruturados String y ordenamiento Prof:Eridan Otto PowerPoint Presentation
Download Presentation
Tipos de datos Estruturados String y ordenamiento Prof:Eridan Otto

Loading in 2 Seconds...

play fullscreen
1 / 14

Tipos de datos Estruturados String y ordenamiento Prof:Eridan Otto - PowerPoint PPT Presentation


  • 87 Views
  • Uploaded on

Programación de Computadores Lenguaje Pascal. Tipos de datos Estruturados String y ordenamiento Prof:Eridan Otto. Programación de Computadores Lenguaje Pascal. Sesión 12: Tipos de datos Estruturados. TEMARIO Tipos de datos Estruturados String

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Tipos de datos Estruturados String y ordenamiento Prof:Eridan Otto' - nishi


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

Programación de Computadores

Lenguaje Pascal

Tipos de datos Estruturados

String y ordenamiento

Prof:Eridan Otto

slide2

Programación de Computadores Lenguaje Pascal

Sesión 12: Tipos de datos Estruturados

  • TEMARIO
  • Tipos de datos Estruturados
    • String
    • Búsqueda y oredenamiento
slide3

Programación de Computadores Lenguaje Pascal

Sesión 12: Tipos de datos Estruturados: String

Introducción:

Cuando se requiere ocupar grupos de caracteres estructurados en una secuencia, se dispone del tipo de datos string. En una variable de tipo string se pueden almacenar entre 1 y 255 caracteres.

Ejemplo:

VAR

nombre:string; {la variable puede contener hasta 255 caracteres}

Si no se inicializa

......

writeln(nombre); {en pantalla aparece cualquier cosa}

nombre:= ‘Juan Perez’

writeln(nombre); {en pantalla aparece Juan Perez}

Si se desea, se puede especificar el largo de un string

Ejemplo:

VAR

marca:string[5]; {la variable puede contener hasta 5 caracteres}

slide4

Programación de Computadores Lenguaje Pascal

Sesión 12: Tipos de datos Estruturados: String

......

marca:= ‘honda’;

writeln(‘marca:’, marca); {marca:honda}

marca:= ‘yamaha’;

writeln(‘marca:’, marca); {marca:yamah}

Otra característica del tipo string es que se pueden acceder a los caracteres como si la variable fuera una arreglo

Ejemplo:

VAR

i,largo: INTREGER;

Ramo:string[20];

........

ramo:=‘Programacion’;

largo:=LENGTH(ramo); {función que determina el largo de un string}

FOR i:=1 TO largo DO

write(ramo[largo-i+1); {en pantalla noicamargorp}

También se puede leer como cualquier variable, Ejemplo:

READLN(ramo); {si se ingresa: programación de computadores}

WRITELN(ramo);{se imprime programación de comp}

slide5

Programación de Computadores Lenguaje Pascal

Sesión 12: Tipos de datos Estruturados: String

Finalmente, dos strings se pueden concatenar mediante el operador +

Ejemplo:

VAR

Ramo, sigla:string[20];

........

ramo:=‘Programacion’;

sigla:= ‘ IWI-131’

ramo:=ramo + sigla

}

WRITELN(ramo);{se imprime Programación IWI-131}

slide6

Programación de Computadores Lenguaje Pascal

Sesión 12: Tipos de datos Estruturados: String

  • Ejercicio1: Hacer un programa pascal que verifique si un string es palíndrome. Ejemplo abccba es palíndrome.
  • PROGRAM compara;
  • VAR original,inverso:STRING;
  • largo,i:INTEGER;
  • BEGIN
  • WRITE('Ingrese String:');
  • READLN(original);
  • largo:=LENGTH(original);
  • inverso:=original;
  • FOR i:=1 TO largo DO
  • inverso[i]:=original[largo - i + 1];
  • IF original= inverso THEN
  • writeln('El string:',original,' es palindrome')
  • ELSE
  • writeln('El string:',original,' NO es palindrome')
  • END.
slide7

Programación de Computadores Lenguaje Pascal

Sesión 12: Tipos de datos Estruturados: String

  • Ejercicio2: Leer dos strings el primero más largo que el segundo.Indicar cuantas veces está contenido el segundo en el primero. Ejemplo, primero:’tres tristes tigres’, buscar ‘es’. Rutee.
  • PROGRAM substr;
  • VAR original,segundo:STRING;
  • largo,largob,i,j,cant:INTEGER;
  • encontrado:BOOLEAN;
  • BEGIN
  • REPEAT
  • WRITE('Ingrese String:');
  • READLN(original);
  • WRITE('Ingrese String a buscar:');
  • READLN(segundo);
  • largo:=LENGTH(original);
  • largob:=LENGTH(segundo)
  • UNTIL largo > largob
  • cant:=0;
  • FOR i:=1 TO largo-largob + 1 DO
  • begin
  • encontrado:=TRUE;
  • For j:= 1 TO largob DO
  • begin
  • IF original[i+j-1]<> segundo[j] THEN
  • encontrado:=FALSE;
  • IF encontrado THEN cant:=cat+1;
  • end
  • end;
  • writeln('El string contiene:',cant,‘substrings ')
  • END.
slide8

Programación de Computadores Lenguaje Pascal

Sesión 12: Tipos de datos Estruturados: Ordenamiento

Problema: dada una lista de elementos ordenarla, por ejemplo descendente de mayor a menor. Se divide el problema en tres partes, Lectura de datos, ordenamiento y despliegue.

PROGRAM bubble;

CONST tamMax = 100; (*definiciones globales*)

TYPE arr=array[1..tamMax] of INTEGER;

VAR total,paramTam:INTEGER;

numeros: arr;

FUNCTION leeareglo( tam:INTEGER) :INTEGER;

PROCEDURE ordena(tot:INTEGER);

PROCEDURE imprime( nume:arr; total:INTEGER);

BEGIN

total := 0; (*inicializa contador*)

total := leeareglo(tamMax); (*arreglo contador*)

ordena(total);

imprime(numeros,total);

END.

slide9

Programación de Computadores Lenguaje Pascal

Sesión 12: Tipos de datos Estruturados: Ordenamiento

Solución: Se lee hasta una cantidad tope de elementos o ingreso de un dato negativo. La función devuelve la cantidad de elementos a ordenar;

FUNCTION leeareglo(tam:INTEGER) :INTEGER;

VAR parada:BOOLEAN;

max,numleido,indice:INTEGER;

BEGIN

numleido:=0;

indice:=1; parada:=TRUE;

WHILE (indice <= tam) and parada DO

BEGIN

READLN(numleido);

IF numleido > 0 THEN

BEGIN

numeros[indice]:=numleido;

indice:=indice + 1

END

ELSE

parada:= FALSE;

END;

IF (indice= tam) THEN

WRITELN(‘ completos los elementos del arreglo, no se puede seguir leyendo mas...');

END;

leeareglo:=indice

END;

slide10

Programación de Computadores Lenguaje Pascal

Sesión 12: Tipos de datos Estruturados: Ordenamiento

Solución: se procede a ordenar;

PROCEDURE ordena(tot:INTEGER);

VAR i,pivote,tope,busca:INTEGER;

BEGIN

tope:=0;

busca:=0;

pivote:=0;

FOR tope:=1 TO tot - 1 DO

FOR busca:=tope+1 TO tot DO

IF (numeros[busca]>numeros[tope]) THEN

(*INTERCAMBIO BUBBLE*)

BEGIN

pivote:=numeros[tope];

numeros[tope]:=numeros[busca];

numeros[busca]:=pivote

END;

END;

slide11

Programación de Computadores Lenguaje Pascal

Sesión 12: Tipos de datos Estruturados: Ordenamiento

Solución: se procede a desplegar arreglo ordenado;

ROCEDURE imprime( nume:arr; total:INTEGER);

VAR i:INTEGER;

BEGIN

WRITELN('Elementos ordenados:');

FOR i:=1 to total DO

WRITELN(nume[i])

END;

Ruteo, suponiendoarreglo con valores 4 7 8 2 5

Tope = 1 7 4 8 2 5

8 4 7 2 5

Tope = 2

8 7 4 2 5

Tope = 3

8 7 5 2 4

Tope = 4

8 7 5 4 2

slide12

Programación de Computadores Lenguaje Pascal

Sesión 12: Tipos de datos Estruturados: Búsqueda

Problema: Si un arreglo está desordenado, se puede hacer una función que dado un valor entregue su posición en el arreglo. Para esto hay que recorrerlo completamente.

Suponga un arreglo de strings ya ordenado, entonces la búsqueda se puede hacer mucho más rápidamente. Este procedimiento se llama búsqueda binaria.

FUNCTION busqueda(elem:STRING;arr:ARRAY[1..100] OF STRING,cant:INTEGER):INTEGER;

VAR izq,der,medio:INTEGER;

encontrado:BOOLEAN;

BEGIN

izq:=1;der:=cant;encontrado:=FALSE;

WHILE (izq<=der) AND NOT encontrado DO

BEGIN

medio:=(izq+der) DIV 2;

IF arr[medio] = elem THEN

encontrado:=TRUE

ELSE

IF arr[medio]<elem THEN

izq := medio +1

ELSE

der := medio-1;

END;

IF encontrado THEN busqueda:= medio

ELSE busqueda:= -1;

END.

slide13

Programación de Computadores Lenguaje Pascal

Sesión 12: Subprogramas: búsqueda binaria

Buscar: ‘carrasco’

Arrreglo de apelleidos :

alfaro andrade carmona carrasco gutierrez hernandez zamora

  • Izq der medio encontrado apellido[medio]
  • 7 4 TRUE carrasco

Buscar: ‘fernandez’

  • Izq der medio encontrado apellido[medio]
  • 7 4 FALSE carrasco
  • 5 7 6 FALSE hernandez
  • 5 5 5 FALSE gutierrez
  • 5 4 FALSE

Sale izq > der