La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sesión 13 Tipos de datos Estruturados Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.

Presentaciones similares


Presentación del tema: "Sesión 13 Tipos de datos Estruturados Prof:Eridan Otto Programación de Computadores Lenguaje Pascal."— Transcripción de la presentación:

1 Sesión 13 Tipos de datos Estruturados Prof:Eridan Otto Programación de Computadores Lenguaje Pascal

2 Sesión 13: Tipos de datos Estruturados Programación de Computadores Lenguaje Pascal TEMARIO Tipos de datos Estruturados Búsqueda y ordenamiento en arreglos Bidimensionales

3 Problema simple: Suponer una matriz bidimensional de enteros ingresada previamente, desarrolle un procedimiento PASCAL que tenga como parámetros, la cantidad de filas, columnas y el número a buscar. Si lo encuentra, devuelva en parámetros por referencia la fila y la columna. Si no lo encuentra devuelva índices en –1. Sesión 13: Tipos de datos Estruturados: Búsqueda dentro de una matriz Programación de Computadores Lenguaje Pascal PROCEDURE buscamatriz(cntfil,cntcol,buscado:INTEGER;VAR fil,VAR col:INTEGER; arr:ARRAY[1..100,1..100] OF INTEGER); VAR i,j:INTEGER; BEGIN fil:=-1 col:=-1; FOR i:=1 TO cntfil DO FOR j:=1 TO cntcol DO IF arr[i,j]= buscado THEN BEGIN fil := i; col := j END;

4 Aplicación : Durante 31 días del mes de enero del año 2002 se midió la temperatura en grados celcius en la ciudad de Valparaíso en cada una de las 24 horas del día. Desarrolle un programa PASCAL que permita desarrollar las siguientes operaciones: Ingresar los valores de las temperaturas Indicar día y hora en que se registró temperatura más alta del mes y el día y hora en que se registró temperatura más baja del mes Indicar el día en que se registró la mayor diferencia de temperaturas extremas, es decir, la mayor diferencia entre la temperatura más alta y mas baja de entre todos los días. Solución: {defniciones} PROGRAM temperaturas; CONST dias= 31; horas=24; TYPE mediciones=ARRAY[1..dias,1..horas] OF REAL; VAR t:mediciones; i,j:INTEGER; temperatura_maxima,temperatura_minima:REAL; dia_temperatura_maxima,dia_temperatura_minima:REAL; hora_temperatura_maxima,hora_temperatura_minima:REAL; diferencia_temperatura,mayor_diferencia_temperatura,día_mayor_diferencia_temperatura:REAL Sesión 13: Tipos de datos Estruturados: Búsqueda dentro de una matriz Programación de Computadores Lenguaje Pascal

5 Solución: {ingreso de datos} BEGIN FOR i:= 1 TO dias DO FOR j:= 1 TO horas DO BEGIN WRITELN(Ingrese Temperatura del día:, i,a la hora:, j); READ(t[i,j]); END; Sesión 13: Tipos de datos Estruturados: Búsqueda dentro de una matriz Programación de Computadores Lenguaje Pascal

6 Solución: {mayor y menor temperaturas} temperatura_maxima:=-100 temperatura_minima:=100; FOR i:= 1 TO dias DO FOR j:= 1 TO horas DO BEGIN IF t[i,j] > temperatura_maxima THEN BEGIN temperatura_maxima := t[i,j]; dia_temperatura_maxima:=i; hora_temperatura_maxima:=j END; IF t[i,j] < temperatura_minima THEN BEGIN temperatura_minima := t[i,j]; dia_temperatura_minima :=i; hora_temperatura_minima :=j END; WRITE(Día de máxima Temperatura :, dia_temperatura_maxima); WRITELN( a la hora:, hora_temperatura_maxima); WRITE(Día de mínima Temperatura :, dia_temperatura_minima ); WRITELN( a la hora:, hora_temperatura_minima ); Sesión 13: Tipos de datos Estruturados: Búsqueda dentro de una matriz Programación de Computadores Lenguaje Pascal

7 Solución: {máxima diferencia de temperaturas extremas} mayor_diferencia_temperatura:=0; FOR i:= 1 TO dias DO BEGIN temperatura_maxima:=-100 temperatura_minima:=100; FOR j:= 1 TO horas DO BEGIN IF t[i,j] > temperatura_maxima THEN temperatura_maxima := t[i,j]; IF t[i,j] < temperatura_minima THEN temperatura_minima := t[i,j] END; diferencia_temperatura:= temperatura_maxima - temperatura_minima IF diferencia_temperatura > mayor_diferencia_temperatura THEN BEGIN mayor_diferencia_temperatura:= diferencia_temperatura; día_mayor_diferencia_temperatura:=i; END END; WRITE(Día con mayor diferencia de Temperatura :, día_mayor_diferencia_temperatura); END. {programa} Sesión 13: Tipos de datos Estruturados: Búsqueda dentro de una matriz Programación de Computadores Lenguaje Pascal

8 Sesión 13: Tipos de datos Estruturados: Ordenamiento Programación de Computadores Lenguaje Pascal Problema: ordenar un arreglo bidimensional; Ejemplo Ascendente 582 461 3910 123 456 89

9 Sesión 13: Tipos de datos Estruturados: Ordenamiento Programación de Computadores Lenguaje Pascal Problema: se procede a ordenar; PROCEDURE ordena(VAR numeros :ARRAY[1..100,1..100] OF INTEGER; cntcol,cntfil:INTEGER); VAR topei,topej,buscai,buscaj:INTEGER; BEGIN FOR topei:=1 TO cntfil DO FOR topej:=1 TO cntcol -1 DO BEGIN buscai:=topei; FOR buscaj:=topej+1 TO cntcol DO IF (numeros[buscai,buscaj]<numeros[topei,topej]) THEN intercambio(numeros,topei,topej,buscai,buscaj); FOR buscai :=topei +1 TO cntfil DO FOR buscaj:=1 TO cntcol DO IF (numeros[buscai,buscaj]<numeros[topei,topej]) THEN intercambio(numeros,topei,topej,buscai,buscaj) END END;

10 Sesión 13: Tipos de datos Estruturados: Ordenamiento Programación de Computadores Lenguaje Pascal PROCEDURE intercambio(VAR numeros: ARRAY[1..100,1..100] OF INTEGER; topei,topej,buscai,buscaj,cntfil:INTEGER); VAR pivote:INTEGER; BEGIN pivote:=numeros[topei,topej]; numeros[topei,topej]:=numeros[buscai,buscaj] numeros[buscai,buscaj]= pivote; END;

11 Fin Clase 13


Descargar ppt "Sesión 13 Tipos de datos Estruturados Prof:Eridan Otto Programación de Computadores Lenguaje Pascal."

Presentaciones similares


Anuncios Google