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

Slides:



Advertisements
Presentaciones similares
Capítulo 2 Algoritmos.
Advertisements

IBD Curso 2007 Clase 2.
Diseño y análisis de algoritmos
Programación de Computadores
Sesión 13 Tipos de datos Estruturados Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Programación de Computadores
Programación de Computadores
PROGRAMACION ESTRUCTURADA
Iteración La iteración permite modelar problemas en los cuales una secuencia de instrucciones debe ejecutarse varias veces. La cantidad de iteraciones.
Algoritmos & Estructuras de Datos
Diseño y análisis de algoritmos
Paricial IV Ing. Esmeralda Elizabeth Rodríguez Rodríguez
Metodología de la Programación
Daniel Morillo Jorge Boscán Gregory Carrasco
Programación modular Procedimientos y Funciones
Realizado por: Ing. Mauricio Rivera1 Colas. Realizado por: Ing. Mauricio Rivera2 ¿Qué es una Cola? Una cola es un grupo ordenado de elementos homogéneos.
Curso de Programación 1 Plan 97
Unidad 4: Análisis de algoritmos (parte II)
IBD Plan 2003 Clase 4. UNLP - Facultad de InformáticaIBD - CLASE 4 2 Archivos - Búsqueda Búsqueda de información (costo) # de comparaciones (operaciones.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Algoritmos de Búsqueda
C lase 10 COMPUTACION /17/2014Computacion - Fac. Ingeniería2  Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.
1 Procedimientos Es un conjunto de sentencias incluidas entre las declaraciones Sub o Function y End Sub/Function VB utiliza varios tipos de procedimientos:
Departamento de Informática Universidad Técnica Federico Santa María Tema 7: Subprogramas Programación de Computadores (IWI-131) Luis Pizarro Q.
Programación de Computadores
Sesión 6 Sentencias de Repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Clase 12 COMPUTACION 2009 Tipos de Datos PASCAL Estructurados Simples Primitivos No primitivos Estáticos Integer Real Char Boolean String Archivos Registros.
PROCEDIMIENTOS FUNCIONES
Algoritmos.
Página Web del Lenguaje Pascal.
Estructuras de Datos Arreglos.
COMPUTACION 2009 Clase 6 Clase 7.
Programación IMC José Andrés Vázquez Flores. Definición Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un.
Resolución de Problemas y Algoritmos Uso de iteración con secuencias
Programación en Pascal
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Sesión 17 Tipos de datos Estruturados Arreglos de Registros Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
COMPUTACION 2009 C lase 4 Programa PASCAL SENTENCIAS DATOS Expresiones Tipos Declaración de variables Declaración de variables Asignación Entrada/Salida.
Programación I Arreglos II- Matrices.
75.40 Algoritmos y Programación I
Ciclos (Loops, Repeticiones) Permiten ejecutar una secuencia de sentencias mas de una vez. Hay 2 tipos de loops:  WHILE repite la acción un número indefinido.
Teoría – Alejandro Gonzalez
Departamento de Informática Universidad Técnica Federico Santa María Programación de Computadores (IWI-131) Luis Pizarro Q.
Programación I Arreglos. Los elementos de un arreglo son todos del mismo tipo de dato (todos integer o real o char o registros o aún arreglos)
Definir un vector Forma general Variable=[tipo]*tamaño Tipo: es el valor inicial con el cual quedarán llenas todas las posiciones creadas del vector. Tamaño:
Conjuntos  Tipo estructurado  Es una lista encerrada entre corchetes  Deben ser elementos de igual tipo y Ordinales. Pueden especificarse subrangos.
Tema 8: Tipos de Datos Estructurados I
Vectores y Matrices.
Sesión 9 Subprogramas Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Tema 6: Estructuras de Control
Departamento de Informática Universidad Técnica Federico Santa María Temas 2,3,4: Estructura de un Programa Pascal Declaraciones Tipos de Datos Simples.
Clase 6 COMPUTACION 2009 C lase 8 Tipos de Datos PASCAL Estructurados Simples Primitivos No primitivos Integer Real Char Boolean String Archivos Registros.
Departamento de Informática Universidad Técnica Federico Santa María Ejercicios Certamen 1: Programación de Computadores (IWI-131) Luis Pizarro Q.
Programación de Computadores
Contenido:  ¿Qué son los Punteros?  Los Procedimientos: New y Dispose.
Ing. Johanna Macias Algoritmo, Estructura y Programación III.
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings
29/5/2002 Sesión 18 Tipos de datos Estruturados Archivos de Caracteres Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
PHP el Lenguaje Ejercicios Básicos.
“variables , sentencia if y bucles”
Estructura: COLA Profesor: Ing. Erick López Ch. M.R.I.
Programación de Computadores
ESTRUCTURAS DE DATOS “Conceptualización de estructuras de datos” Por: Eduardo Robayo.
MODULA Lenguaje de Programación Anabel Martín González
Estructura de Datos PILA Universidad Hispanoamericana Prof. Ing. Erick López.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
Diego Hernández R Pascal Variables Diego Hernández R
Procedimientos y Funciones
Procedimientos y Funciones
Transcripción de la presentación:

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

Sesión 12: Tipos de datos Estruturados Programación de Computadores Lenguaje Pascal TEMARIO Tipos de datos Estruturados String Búsqueda y oredenamiento

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} Sesión 12: Tipos de datos Estruturados: String Programación de Computadores Lenguaje Pascal

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} Sesión 12: Tipos de datos Estruturados: String Programación de Computadores Lenguaje Pascal

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} Sesión 12: Tipos de datos Estruturados: String Programación de Computadores Lenguaje Pascal

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. Sesión 12: Tipos de datos Estruturados: String Programación de Computadores Lenguaje Pascal

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. Sesión 12: Tipos de datos Estruturados: String Programación de Computadores Lenguaje Pascal

Sesión 12: Tipos de datos Estruturados: Ordenamiento Programación de Computadores Lenguaje Pascal 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.

Sesión 12: Tipos de datos Estruturados: Ordenamiento Programación de Computadores Lenguaje Pascal 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;

Sesión 12: Tipos de datos Estruturados: Ordenamiento Programación de Computadores Lenguaje Pascal 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;

Sesión 12: Tipos de datos Estruturados: Ordenamiento Programación de Computadores Lenguaje Pascal 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, suponiendo arreglo con valores Tope = Tope = Tope = Tope =

Sesión 12: Tipos de datos Estruturados: Búsqueda Programación de Computadores Lenguaje Pascal 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.

Sesión 12: Subprogramas: búsqueda binaria Programación de Computadores Lenguaje Pascal Buscar: ‘carrasco’ Arrreglo de apelleidos : alfaro andrade carmona carrasco gutierrez hernandez zamora Izq der medio encontrado apellido[medio] 17 4 TRUE carrasco Buscar: ‘fernandez’ Izq der medio encontrado apellido[medio] 17 4 FALSE carrasco FALSE hernandez FALSE gutierrez 5 4 FALSE Sale izq > der

Fin Clase 12