Descargar

Ciclos y estructuras en programación (página 2)

Enviado por Pablo Turmero


Partes: 1, 2
edu.red

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

edu.red

Composición REPETIR   REPETIR S HASTA_QUE COND

Composición ITERAR   ITERAR S1 DETENER: cond S2 FIN_ITERAR Otras ComposicionesIterativas Condicionales

edu.red

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.

edu.red

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

edu.red

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

edu.red

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

edu.red

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.

edu.red

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.

edu.red

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.

edu.red

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.

edu.red

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

edu.red

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

edu.red

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

edu.red

Ejemplo Factorial (dato N : Entero)? Entero : Funcion ALGORITMO SI N = 0 Entonces Factorial = 1 SI_NO Factorial = N * Factorial (N – 1) FIN_SI FIN.

edu.red

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.

edu.red

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.

edu.red

Definicion de tipos LEXICO NombreDelTipo = TIPO < c1 : Td1; c2 : Td2; …………. cn : tdn >; Punto = TIPO < abs: Real ; ord: Real>

edu.red

Asignación Interna: Campo campo Estructura completa (de igual tipo); Externa De entrada – salida Campo a campo (dispositivo std) Estructura completa (otro dispositivo)

edu.red

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.

edu.red

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

edu.red

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

edu.red

ESQUEMA DE RECORRIDO PARA i [li, ls] HACER // INV = V f(i) FIN_PARA

edu.red

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.

edu.red

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.

edu.red

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.

edu.red

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.

edu.red

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

edu.red

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente