ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Practica de programacion.


Enviado por   •  26 de Marzo de 2017  •  Práctica o problema  •  1.528 Palabras (7 Páginas)  •  128 Visitas

Página 1 de 7

Manipuladores para dar formato a los datos de salida Se presenta este apartado ya que la utilizaci´on de manipuladores va a ser necesaria en los primeros programas que se dise˜nen en las pr´acticas de esta asignatura. Un manipulador C++ es una funci´on que se aplica al flujo de datos dirigido hacia la pantalla del operador, o hacia otro dispositivo de salida, para dar formato a los datos que se presenten por ella. En la primera lecci´on de la asignatura se ha hecho uso de diversos manipuladores en los programas C++ que se han presentado. Conviene hacer una lectura atenta de ella antes de abordar el trabajo propuesto en esta pr´actica. Un resumen de algunos de los manipuladores de uso m´as com´un se presenta a continuaci´on: Manipuladores definidos en la biblioteca , concretamente en la biblioteca declarada en ella: • endl: vac´ıa el buffer asociado a la pantalla presentando su contenido por pantalla y finaliza la l´ınea en curso. • flush: vac´ıa el buffer asociado a la pantalla presentando su contenido por pantalla sin finalizar la l´ınea en curso. • dec: convierte los datos num´ericos a base decimal (base 10). • oct convierte los datos num´ericos a base octal (base 8). • hex: convierte los datos num´ericos a base hexadecimal (base 16). • left: presenta los datos de forma que los caracteres que no sean de relleno se alinean a la izquierda del campo. • right: presenta los datos de forma que los caracteres que no sean de relleno se alinean a la derecha del campo. • internal: presenta los datos num´ericos de forma que el signo y los caracteres indicativos de la base est´an alineados a la izquierda del campo y las cifras significativas a la derecha. • showpos: se muestra el signo (+) en los valores positivos. • scientific: establece un modo de trabajo de forma que los datos reales son presentados en notaci´on cient´ıfica de coma flotante (ej. 1.7234e+01). • fixed: presenta los datos reales en notaci´on normal de coma flotante (ej. 17.234). • boolalpha: establece un modo de trabajo de forma que los datos l´ogicos o booleanos son extraidos de un flujo o a˜nadidos a un flujo como una secuencia de caracteres (true o false). 11 • noboolalpha: establece un modo de trabajo de forma que los datos l´ogicos o booleanos son extraidos de un flujo o a˜nadidos a un flujo como valores enteros: 1 en caso de valores l´ogicos true o 0 en caso de valores l´ogicos false. Manipuladores definidos en la biblioteca • setw(int n): establece la anchura m´ınima de campo de los datos a presentar por pantalla, es decir el n´umero m´ınimo de caracteres n a presentar completando el dato, en su caso, con el caracter de relleno definido en ese momento (ej. setw(10)). • setfill(char ch): establece ch como car´acter de relleno (ej. setfill(’*’)). • setprecision(int p): establece el n´umero de cifras significativas de los datos num´ericos o, en su caso, el n´umero de cifras decimales; su valor por defecto es 6 (ej. setprecision(2)). Un manipulador s´olo afecta al dispositivo de entrada o de salida (cin, cout, etc.) al que se aplica. El efecto de los manipuladores permanece en el dispositivo de entrada o de salida correspondiente hasta que se aplica otro manipulador que lo modifica, a excepci´on del manipulador setw(int n) que hay que invocarlo antes de cada dato al que se le quiere definir un ancho de campo. M´as informaci´on y algunos ejemplos ilustrativos sobre los manipiladores disponibles en las bibliotecas predefinas en C++ se puede consultar en www.cplusplus.com/reference 1.3. Trabajo a desarrollar en esta pr´actica Se propone que cada alumno realice las tareas que se describen en los apartados siguientes. Alguno de los fragmentos de c´odigo que se mencionan a continuaci´on pueden ser descargados desde la secci´on de Materiales docentes comunes de la web de esta asignatura: http://webdiis.unizar.es/asignaturas/PROG1/ a trav´es del enlace CODIGO C++ Y ´ DATOS. 1.3.1. Definir la estructura de un ´area de trabajo para el desarrollo de programas C++ Crear una estructura organizativa para trabajar con el IDE CodeLite. Para ello se deber´an ejecutar las siguientes tareas. Tarea 1. Crear un ´area de trabajo o workspace. Para ello cada alumno debe dar los siguientes pasos: • Debe crear una carpeta de nombre programacion1 en la que ubicar los proyectos a desarrollar en cada una de las pr´acticas de la asignatura, siempre que no la haya creado previamente. • Debe crear una primera ´area de trabajo (workspace) denominada practica1 que estar´a ubicada en la carpeta programacion1, siempre que no la haya creado previamente. En esta ´area se ubicar´an y desarrollar´an todos los programas correspondientes a la primera pr´actica. 12 • Debe crear un primer proyecto el ´area de trabajo practica1, el proyecto Bienvenida, con el programa comentado en los apartados anteriores. Debe compilar su c´odigo y, si no se han producido errores, ejecutarlo. Mientras se observen fallos en su compilaci´on o en su ejecuci´on, debe tratar de corregirlos hasta que el comportamiento del programa sea el deseado. Tarea 2. Debe crear dos nuevos proyectos dentro del ´area de trabajo practica1, los proyectos Circunferencias y Circulo, para el desarrollo de los dos programas restantes descritos en el cap´ıtulo 1 del texto de la asignatura. Deber´a compilar y, cuando no haya errores de compilaci´on, ejecutar ambos programas hasta tener la convicci´on de que sus comportamientos son los esperados. Tarea 3. Debe crear un nuevo proyecto, al que debe denominar Formatear, dentro del ´area de trabajo practica1. El c´odigo inicial del programa a desarrollar en ´el se muestra a continuaci´on. #include #include #include using namespace std; /  Pre: desde<=hasta  Post: Presenta por pantalla una tabla con una l´ınea por cada uno de los valores  del intervalo [desde,hasta ]. En cada l´ınea se muestra un valor, su cuadrado  y su cubo / void mostrarPotencias (int desde, int hasta) { cout << ”x” << ”xˆ2” << ”xˆ3” << endl; for (int x = desde; x <= hasta; x = x + 1) { cout << x << xx << xxx << endl; } } /  Pre: desde<=hasta  Post: Presenta por pantalla una tabla con una l´ınea por cada uno de los valores  de los ´angulos, expresados en grados: desde, desde + 5, desde + 10, etc ,. que  sean inferiores o iguales a hasta. En cada l´ınea se muestra el valor del ´angulo  en grados y en radianes y los valores de sus funciones seno y coseno. / void mostrarAngulos (int desde, int hasta) { const double PI = 3.1415926; cout << ”grados” << ”radianes” << ”seno” << ”coseno” << endl; for (double x = desde; x <= hasta; x = x + 5.0) { double radianes = PI  x / 180.0; cout << x << radianes << sin(radianes) << cos(radianes) << endl; } } /  Pre: −−−  Post: Presenta por pantalla una tabla de potencias (en cada l´ınea un valor,  su cuadrado y su cubo) y una tabla de ´angulos (en cada l´ınea un ´angulo  en grados, en radianes,su seno y su coseno) / 13 int main() { // Presenta la tabla de potencias de los enteros comprendidos entre 5 y 15 mostrarPotencias(5,15); // Presenta una tabla con los ´angulos comprendidos entre 0 y 180 grados, // su valor en radianes y los valores de sus funciones seno y coseno mostrarAngulos(0,180); // Concluye normalmente return 0; } Este programa adolece de un grave defecto: la presentaci´on de resultados por pantalla es penosa. El trabajo a realizar por cada alumno es modificar el dise˜no de las funciones mostrarPotencias(desde,hasta) y mostrarAngulos(desde,hasta) para que, al ser invocadas, presenten de forma digna y legible sus resultados. Se recomienda intentar diferentes presentaciones jugando con varios elementos: la anchura de las columnas de la tabla, la alineaci´on a izquierda o derecha de los datos de cada l´ınea, el n´umero de decimales de los n´umero reales, etc. Para ello se ha de hacer uso de algunas de las funciones de formato o manipuladores que fueron citados en un apartado anterior. El objetivo de esta tarea es practicar y aprender a presentar resultados despu´es de conocer qu´e manipuladores hay disponibles en C++ y cu´al es el efecto de cada uno de ellos. Se recomienda consultar la documentaci´on sobre ellos disponible en el manual de referencia de la bibloteca predefinida en C++, accesible desde la p´agina web de la asignatura. Las tareas anteriores pueden intentarse antes de acudir al laboratorio a la sesi´on correspondiente a esta pr´actica. Durante la sesi´on podr´a completarse y, en su caso, mejorarse el trabajo previo realizado. Cada alumno debe haber completado las tareas definidas en esta primera sesi´on de pr´acticas en la propia sesi´on o, en caso necesario, uno o dos d´ıas despu´es, como m´aximo, ya que debe comenzar cuanto antes a desarrollar el trabajo asociado a la segunda pr´actica. Como resultado de esta primera pr´actica, cada alumno dispondr´a en su cuenta hendrix-ssh de una carpeta denominada programacion1 dentro de la cual se podr´an encontrar los siguientes elementos con la estructura y denominaciones que se detallan a continuaci´on: 1. Area de trabajo ´ practica1 con los siguientes proyectos: Proyecto C++ Bienvenida Proyecto C++ Circunferencias Proyecto C++ Circulo Proyecto C++ Formatear

...

Descargar como (para miembros actualizados) txt (9 Kb) pdf (127 Kb) docx (12 Kb)
Leer 6 páginas más »
Disponible sólo en Clubensayos.com