LEXICO DD, HH, MM, SS; Num : Entero; MAXIMO = 1000000; Leer(Num) MIENTRAS Numero > 0 HACER SEGÚN Num Num 86400..MAXIMO : DD?Num Div 86400; Num?Num DD*86400; Num 3600..86399 : HH?Num Div 3600; Num?Num HH*3600; Num 60.. 3599 : MM?Num Div 60; Num?Num MM*60; Num 1 .. 59 : SS = Num; Num = 0; FIN_SEGUN FIN_MIENTRAS
Composición REPETIR REPETIR S HASTA_QUE COND
Composición ITERAR ITERAR S1 DETENER: cond S2 FIN_ITERAR Otras ComposicionesIterativas Condicionales
Composicion PARA Permite expresar el numero de veces que se ejecuta el cuerpo del ciclo. Este numero esta expresado por el recorrido de un intervalo de valores de tipo ordinal.
Composicion PARAEsquema General PARA i [j,n]HACER S FIN_PARA;
PARA i [n,j](-)HACER S FIN_PARA; I es un ordinal, j y n representan el valor inicial y final del intervalo. CR = n i + 1
PROBLEMA:Calcular Valor medio de una secuencia de numeros LÉXICO S : Secuencia de Real; Suma : Real; NumElem : Entero; ALGORITMO Comenzar (S); Suma = 0; NumElem = 0; //Eini : suma = 0 y numElem = 0 y ea = Primero (S) y INV = verdadero
ALGORITMO MIENTRAS EA (S) < > MarcaFin HACER suma = suma + EA (S) numElem = numElem + 1 Avanzar (S) FIN_MIENTRAS; //Efin : INV y (EA (S) = MarcaFin) SI numElem > 0 ENTONCES Escribir(Valor medio de las notas = , suma/num) SI_NO Escribir(Secuencia Vacía) FIN_SI FIN
EJERCICIOS Dado un conjunto de valores enteros, calcular e imprimir : cuantos valores cero hubo, promedio de los valores positivos, sumatoria de negativos Resolver el problema para : 100 valores enteros. N valores, N debe ser leído previamente. El conjunto termina con un valor igual al anterior. Se dan N valores, pero el proceso deber finalizar si se procesan todos los valores o la cantidad de ceros supera a cuatro.
Ejercicios Dado un conjunto de triángulos representados por sus lados L1, L2 y L3 que finaliza con un triángulo con un lado nulo, determinar e imprimir la cantidad de triángulos equiláteros, isósceles y escalenos. Dados dos valores N y M determinar e imprimir cuantos múltiplos de M hay dentro del conjunto 1 a N. Dados dos valores enteros A y B determinar e imprimir el producto de ambos obtenido por sumas sucesivas. Dado un valor M, determinar e imprimir los M primeros múltiplos de 3 que no lo sean de 5, dentro del conjunto de números naturales.
Trabajo Practico obligtorio TP1 Ejercicios 2, 3, 10, 11 y 12 TP2 Ejercicios 2, 3 y 5 TP3 Ejercicios 1, 3, 4, 6 y 8 TP4 Ejercicios 8, 9, 10 y 11 La presentación será individual, utilizando la notación algoritmica desarrollada en el curso, debe incluir: Caratula con datos del estudiante y fecha presentacion Enunciado, Lexico y algoritmo. Debe enviarse via a correo electronico y antes de la ultima clase.
Recursividad Una funcion con sentencias entre las cuales se encuentra una llamada a si misma se dice que es recursiva. Divide el problema original en subproblemas mas pequeños. Cuando es lo suficientemente chico se resuelve directamente y se combinan soluciones del subproblema hasta que queda resuelto el problema.
Requerimientos El flujo de controlde una funcion recursiva requiere tres condiciones para una terminacion normal: 1 Un test para detener o continuar con la recursion. 2 una llamada recursiva para continuar la recursion 3 un caso base para terminar la recursion
A tener en cuenta Define el problema en terminos de un problema mas simple de la misma naturaleza. Debe disminuir el espacio del problema en cada llamada recursiva Hay una instancia particular que se conoce como caso base o caso degenerado
Iteracion vs Recursion Considerar solucion recursiva solo si una solucion iterativa sencilla no es posible. Solo utilice recursividad dentro de limites aceptables de ejecucion y uso de memoria. Si son posibles las soluciones iterativas y recursivas esta ultima requerira mas tiempo y mas recursos de memoria. En ciertos problemas la recursion produce soluciones mas simples de leer. Los beneficios de la claridad compensan el costo extra Ambas implican repeticion. iteracion explicitamente y recursion con llamadas repetidas. Ambas consideran un test de salida. Iteracion en la condicion, recursividad en el caso base
Ejemplo Factorial (dato N : Entero)? Entero : Funcion ALGORITMO SI N = 0 Entonces Factorial = 1 SI_NO Factorial = N * Factorial (N 1) FIN_SI FIN.
Datos de tipo estructurado Hemos trabajado con tipos que definen un dominio de valores simples o atomico. Datos de tipo estructurado. Compuestos por mas de un dato. Divisible en datos mas elementales. Unico nombre para todo el conjunto. Acceso directo a cada miembro del conjunto.
Tipo Registro Compuesto por una enumeracion de otros valores de tipo ya definidos. El termino campo refire a cada elemento del registro. El operador de acceso a cada miembro es el operador . (punto). NombreEstructura.NombreCampo. La cardinalidad de un tipo es el numero de valores de su dominio.
Definicion de tipos LEXICO NombreDelTipo = TIPO < c1 : Td1; c2 : Td2; …………. cn : tdn >; Punto = TIPO < abs: Real ; ord: Real>
Asignación Interna: Campo campo Estructura completa (de igual tipo); Externa De entrada – salida Campo a campo (dispositivo std) Estructura completa (otro dispositivo)
Tablas Los lenguajes de programacion usan el termino array para referirse a tablas. Permite almacenar colección de valores y asociar un indice a cada valor almacenado. Es posible el acceso indexado. Son posiciones contiguas de datos homogeneos y de tamaño fijo. El operador de acceso es [ ]. Cada subordinacion incrementa la dimension. Tamaño logico y fisico.
Declaraciones NombreTipo = TIPO Tabla [li, lf] de TipoBase TVR = TIPO Tabla [1, 100] de Real La variacion del indice determina la cantidad de elementos, el tipoBase de que tipo es cada componente. TR = TIPO < absc : Real; ord : Real> TVR = TIPO tabla [1, 50] de TR Tabla : TVR
Operaciones basicas Asignacion Interna (por elemento o por estructura) Externa de entrada o salida Por elemento Por estructura completa Acceso directo Recorrido Busqueda Secuencial Binaria Directa Ordenamiento
ESQUEMA DE RECORRIDO PARA i [li, ls] HACER // INV = V f(i) FIN_PARA
Tablas vs Registros Registro permite agrupar datos no homogeneos, la tabla homogeneos. Las tablas permiten el acceo directo a sus miembros por un indice y los registros por el operador punto. En un registro el numero de miembros lo de sus campos en una tabla el intervalo de los indices.
Ejercicios Ingresar un valor N (< 25). Generar un arreglo de N componentes en el cual las mismas contengan los primeros números naturales pares e imprimirlo. Ingresar un valor entero N (< 30) y a continuación un conjunto de N elementos. Si el último elemento del conjunto tiene un valor menor que 10 imprimir los negativos y en caso contrario los demás. Ingresar un valor entero N (< 25). A continuación ingresar un conjunto VEC de N componentes. Si la suma de las componentes resulta mayor que cero imprimir las de índice par, sino las de índice impar.
Tablas Multidimensionales Si una tabla representa una funcion de un argumento las tablas multidimensionales representan una funcion de n argumentos, uno por cada dimension. Se utilizan para representar colecciones de objetos de la misma naturaleza a los que se puede acceder mediante un conjunto de indices. La nocion matematica de matriz se puede representar mediante un atabla de dos dimensiones.
Declaraciones NombreTipo = TIPO Tabla [fi, fj; ck,cl] de TipoBase TTR = TIPO Tabla [1, 100; 1,10] de Real El producto del intervalo de sus indices determina la cantidad de elementos, el tipoBase de que tipo es cada componente. El tipo puede ser primitivo o derivado.
ESQUEMA DE RECORRIDO INV = T PARA i [1, nfilas] HACER INV = T A = f(fila(i)) PARA j [1, ncol] HACER INV = T A = f(fila(i),col(j) FIN_PARA FIN_PARA
Página anterior | Volver al principio del trabajo | Página siguiente |