Guía Práctica Nº 6 1) Construir una función que invocada como expo (x,n), devuelva el valor x n, donde x es un número real y n es un número natural. 2) Construir una función que reciba un carácter ASCII y devuelva en su lugar un carácter codificado. Si el carácter es letra o dígito debe reemplazarlo por el siguiente carácter de la secuencia excepto en los casos de Z que deberá ser reemplazada por A; z que será reemplaza por a, y 9 qué ser reemplazado por 0. De este modo, 1 se convierte en 2, C en D, p en q, etc. Cualquier carácter distinto de letra o dígito se reemplazará por un asterisco (*). 3) Dadas las horas de partida y de llegada de un móvil, expresadas en horas, minutos y segundos, construir una función que calcule la velocidad promedio sabiendo que la distancia recorrida es d. Recordar que vd/t. 4) Escribir un programa que pida tres números y presente un menú con las siguientes opciones: Imprimir el promedio. Imprimir el mayor de ellos. Terminar la ejecución. Cada una de las dos primeras opciones deberán realizarse con funciones distintas y las impresiones se harán desde el bloque ejecutable principal. 5) Escribir un programa que dado un número x, por medio de tres funciones, calcule el senh (x), el cosh (x) y la tangh (x). Presentando un menú con las siguientes opciones: Cálculo del Senh. Cálculo del Cosh. Cálculo de la Tangh Cálculo de Todo Término la ejecución. Después de cada cálculo el programa deberá volver al menú. 6) Escribir un programa para simular el juego del CRAPS a $1 por juego, donde el usuario comienza con una cifra de dinero (ingresada por él, máximo $20) y termina cuando haya perdido todo su dinero o haya conseguido duplicar el mismo. Debe informársele al jugador el monto de dinero que posee luego de cada juego Nota: el juego de CRAPS tiene las siguientes reglas. 1. Si la primer tirada es 7 u 11, gano. 2. Si la primera tirada es 2, 3 o 12, perdió. 3. Si en la primera tirada obtuvo otro resultado se sigue tirando hasta obtener un 7 (en cuyo caso se pierde) o nuevamente dicho número (en cuyo caso se gana.).
7) Escribir un programa que imprima un calendario para un mes y año solicitados por el usuario, teniendo como dato que el 1º de Enero de 1985 cayó en martes. No olvidar que un año es bisiesto si es divisible por 4, siempre y cuando no sea fin de siglo, a excepción de los años fin de siglo pero divisibles por 400 los cuales si son considerados bisiestos. Ejemplo: Para el mes Febrero de 1985 debe imprimirse D L M M J V S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 8) Construir una función que invocada como comb(m,n), devuelva el número combinatorio C(m,n). Se debe construir una función interna que C ( m, n ) m! n!( m n )! calcule el factorial. 9) Escribir un programa para detectar si un número de 5 cifras es capicúa. Utilizar una función llamada LUGAR que dados dos números enteros N y k retorne el k-ésimo dígito contando desde la derecha del numero N. Ejemplo: N 23578 Para k 2 LUGAR 7 Para k 5 LUGAR 2 10) El programa de la pizzería deberá reescribirse de manera tal que todo quede como procedimientos, y que posea controles de ingreso: Por ejemplo: No se aceptará que el usuario ingrese un valor distinto de 1, 2 o 3. para los tamaños y se deben tener los mismos cuidados para evitar el ingreso de ingredientes repetidos. 11) Diseñar un algoritmo genérico donde se aplique en forma recursiva la serie de Fibbonacci 12) Escribir un programa en Pascal que pueda leer una palabra y escribir su Palíndromo. 13) Escribir un algoritmo recursivo que obtenga el número inverso a otro dado, por ejemplo: que se ingrese 2346 y que muestre 6432 14) Escribir un programa que haga uso del algoritmo de Euclides para encontrar el MCD (máximo común divisor) de dos números enteros N y M en forma recursiva.
15) Desarrolle un algoritmo recursivo, el cual mediante restas sucesivas pueda determinar si un número es positivo es par o impar. 16) Escriba un programa en el que dada la fecha actual y una cantidad de días, pueda determinar la fecha correspondiente al finalizar ese período. 17) Modifique el programa anterior, de manera que pueda ser ejecutado en una financiera, de manera que si la nueva fecha corresponde a un sábado o domingo obtenga el primer día hábil siguiente e indique el nuevo período de días. GUÍA PRÁCTICA Nº 7 1. Leer una lista de 10 valores enteros listarlos por pantalla en sentido inverso al que ingresaron. 2. Dado un vector 15 valores, hacer un programa que pueda obtener, y sacar por pantalla: el mayor de los valores el menor de los valores el más próximo al promedio 3. Suponiendo que los valores del problema anterior fueran mediciones, se pide modificarlo de forma tal que sin uso de vectores auxiliares, se MD n j 1 N pueda calcular la desviación media y la desviación estándar Donde j, es cada uno de los valores raya es el promedio de los valores, y N la cantidad de valores. 4. Se leen las letras de una palabra carácter a carácter. El último carácter que ingresa es la barra de dividir(/), que indica que la palabra ha finalizado. Escribir un programa que imprima la palabra en el orden que se ingresó y en sentido inverso (por ejemplo: pera arep, la palabra podrá tener hasta 20 caracteres). 5.Diseñar un algoritmo recursivo, que permita invertir el contenido de un vector. Como indica el ejemplo: Vector original: 28 35 12 43 56 77 Vector invertido: 77 56 43 12 35 28 j El algoritmo no podrá usar un vector auxiliar. ( 6. Hacer un programa que permita realizar la suma y el producto de dos vectores. S n j 1 j N 2 )
El usuario deberá poder elegir el tamaño del vector (entre 2 y 10 valores) El usuario deberá poder elegir la operación a realizar. 7. Dado un vector de 20 posiciones (números enteros), genere un Ingresar un elemento al final de la cola (primera posición libre del vector), comprobando antes del ingreso que existe una posición libre, sino colocar un mensaje de aviso. Sacar el elemento que se encuentre en la primera posición (si no lo hubiera colocar un mensaje de aviso), corriendo luego los demás en la cola una posición hacia delante. Listar en cualquier momento el contenido de la cola del primero al 8. Dado un vector de 20 posiciones (números enteros). Genere un Ingresar un elemento en la última posición de la pila (primera posición libre del vector), comprobando antes del ingreso que existe una posición libre, sino colocar un mensaje de aviso. Sacar el elemento que se encuentra en la última posición (si hay, sino colocar un mensaje de aviso). Listar en cualquier momento el contenido de la pila del primero al 9. Dado un vector de 20 posiciones (números enteros), genere un Ingresar un elemento en la posición que le corresponda de la lista, de manera que la misma se mantenga en orden creciente. (para lo cual desplaza los demás elementos una posición para atrás).comprobando antes del ingreso que existe una posición libre, sino colocar un mensaje de aviso. Sacar de la lista el elemento que indica el usuario (si se encuentra, sino colocar un mensaje de aviso). Listar en cualquier momento el contenido de la cola del primero al 10. Pascal como otros lenguajes operan con números enteros 2,148 10 9, estos no tienen errores por redondeo, para valores más grandes se trabajan con reales, pero ellos si tienen errores de redondeo. Se pide hacer un programa que opere con números que poseen entre 10 y 20 cifras, que puedan hacer: Suma Resta Multiplicación sin errores y asegurando todas las cifras 11. Una empresa vende productos de clase A, B, C, D, E y F. Se pide diseñar un programa que permita ingresar la cantidad de productos vendidos de cada clase. Deberá existir una opción para poder las cantidades ordenar de mayor a menor y finalmente listarlas en forma
ordenada indicando Clase y Cantidad. Para resolverlo es necesario utilizar dos vectores: uno para la cantidad de productos vendidos y otro para indicar en qué posición está cada clase de producto.