trabajo c++

26
 UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA) Facultad de Ciencias Matemáticas E.A.P. de Computación Científca  Traa!" “EJERCICIOS SO RE C!!" Para el #$rs" de Ciencias de la Computación II Se%es&re #$%&'I Pr"'es"r E(I)O PAC*ECO+ Osca, In&eran&es del r$" IC*PAS RAMOS+ Pat,icia Ciudad Universitaria, Julio de 2015  

description

trabajo

Transcript of trabajo c++

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS(Universidad del Per, DECANA DE AMRICA)

Facultad de Ciencias MatemticasE.A.P. de Computacin Cientfica

Trabajo

EJERCICIOS SOBRE C++

Para el curso deCiencias de la Computacin II

Semestre2015-I

ProfesorBENITO PACHECO, OscarIntegrantes del grupoICHPAS RAMOS, Patricia

Ciudad Universitaria, Julio de 2015

Trabajo: Trabajo c++

[email protected] Pg. 28

Dedicatoria

A DIOS, POR BRINDARNOS LA DICHA DE LA SALUD Y BIENESTAR FSICO Y ESPIRITUAL. A MIS PADRES, COMO AGRADECIMIENTO A SU ESFUERZO, AMOR Y APOYO INCONDICIONAL, DURANTE NUESTRA FORMACIN TANTO PERSONAL COMO PROFESIONAL. A MI DOCENTE, POR BRINDARNOS SU GUA Y SABIDURA EN EL DESARROLLO DE ESTE TRABAJO.

Ejercicio 20.6:Escriba un programa para concatenar dos objetos de lista enlazada de caracteres. El programa deber incluir la funcin concatenar, que reciba referencias a ambos objetos lista como argumentos y que concatene la segunda lista con la primera.

Ejercicio 20.7:Escriba un programa para combinar dos objetos de lista ordenada de enteros en un solo objeto de lista ordenada de enteros. La funcin combinar debe recibir referencias a cada uno de los objetos lista que se van a combinar, y debe devolver una referencia a objeto lista en el que se colocarn los elementos combinados.

Ejercicio 20.8:Escriba un programa para insertar 25 enteros aleatorios de 0 a 100 en orden, en un objeto lista enlazada. El programa Deber calcular la suma de los elementos y el promedio de punto flotante de los elementos.

Ejercicio 20.9:Escriba un programa para crear un objeto lista enlazada de 10 caracteres, y que luego cree un segundo objeto lista que contenga una copia de la primera lista, pero en orden inverso.

Ejercicio 20.10Escriba un programa que reciba una lnea de texto como entrada y que utilice un objeto pila para imprimir la lnea en orden inverso.

Ejercicio 20.11:Escriba un programa que utilice un objeto pila para determinar si una cadena es una palndroma (es decir, que la cadena se deletree en forma idntica, tanto al revs como al derecho). El programa debe ignorar espacios y puntuacin.

Ejercicio 20.12:

Los compiladores utilizan pilas para ayudar en el proceso de evaluar expresiones y generar cdigo en lenguaje mquina. En este ejercicio y en el siguiente, investigaremos cmo los compiladores evalan expresiones aritmticas que consisten solamente de constantes, operadores y parntesis.Los humanos generalmente escriben expresiones como 3 + 4 y 7 / 9, en donde el operador (+ o / aqu) se escribe entre sus operandos; a esta notacin se le conoce como notacin infijo. Las computadoras prefieren la notacin postfija, en donde el operador se escribe a la derecha de sus dos operandos. Las anteriores expresiones infijo apareceran en notacin postfijo como 3 4 + y 7 9 /, respectivamente.Para evaluar una expresin infijo complejo, un compilador primero convertira la expresin en notacin postfija y evaluara la versin postfija de la expresin. Cada uno de estos algoritmos requiere solamente de una pasada de izquierda a derecha de la expresin. Cada algoritmo utiliza un objeto pila para dar soporte a su operacin y, en cada algoritmo, la pila se utiliza para un propsito distinto.

En este ejercicio, usted escribir una versin en C++ del algoritmo de conversin infijo a postfijo. En el siguiente ejercicio, usted escribir una versin en C++ del algoritmo de evaluacin de expresiones postfijo. En un ejercicio posterior, descubrir que el cdigo que escriba en este ejercicio podr ayudarle a implementar un compilador completamente funcional.Escriba un programa para convertir una expresin aritmtica infijo ordinario (suponga que se escribe una expresin vlida) con enteros de un solo dgito, como:(6 + 2) * 5 - 8 / 4 a una expresin postfijo. La versin postfija de la expresin infijo anterior es:6 2 + 5 * 8 4 / - El programa debe leer la expresin y colocarla en el arreglo de caracteres infijo, y utilizar las versiones modificadas de las funciones de la clase pila, implementadas en este captulo para ayudar a crear la expresin postfija en el arreglo de caracteres postfijo. El algoritmo para crear una expresin postfija es el siguiente:

1) Meter un parntesis izquierdo '(' en la pila.2) Agregar un parntesis derecho ')' al final de infijo.3) Mientras que la pila no est vaca, leer infijo de izquierda a derecha y hacer lo siguiente:Si el carcter actual en infijo es un dgito, copiarlo al siguiente elemento de postfijo.Si el carcter actual en infijo es un parntesis izquierdo, meterlo a la pila.Si el carcter actual en infijo es un operador, Sacar los operadores (si los hay) de la parte superior de la pila, mientras tengan igual o mayor precedencia que el operador actual, e insertar en postfijo los operadores que se sacaron. Meter en la pila el carcter actual en infijo. Si el carcter actual en infijo es un parntesis derecho: Sacar operadores de la parte superior de la pila e insertarlos en postfijo, hasta que haya un parntesis Izquierdo en la parte superior de la pila. Sacar (y descartar) el parntesis izquierdo de la pila.

Las siguientes operaciones aritmticas se permiten en una expresin:+ Suma- resta* Multiplicacin/ Divisin^ Exponenciacin% mdulo[Nota: asumimos la asociatividad de izquierda a derecha para todos los operadores, para los fines de este ejercicio]. La pila debe mantenerse con nodos de pila que contengan, cada uno, un miembro de datos y un apuntador al siguiente nodo de la pila. Algunas de las herramientas funcionales que puede ser conveniente proporcionar son:a) la funcin convertir Postfijo, que convierte la expresin infijo a notacin postfijob) la funcin es Operador, el cual determina si c es un operadorc) la funcin precedencia, que determina si la precedencia de operador1 es menor, igual o mayor que la precedencia de operador2 (la funcin devuelve -1, 0 y 1, respectivamente)d) la funcin push, que mete un valor en la pilae) la funcin pop, que saca un valor de la pilaf) la funcin parteSuperiorPila, que devuelve el valor de la parte superior de la pila sin sacarlo de la mismag) la funcin estaVacia, que determina si la pila est vacah) la funcin imprimirPila, que imprime la pila