Informática. Grado en Ingeniería en Electrónica Industrial y Automática Grado en Ingeniería Eléctrica Grado en Ingeniería Química

UNIVERSIDAD POLITÉCNICA DE MADRID DEPARTAMENTO DE ELECTRÓNICA, AUTOMÁTICA E INFORMÀTICA INDUSTRIAL ESCUELA UNIVERSITARIA DE INGENIERÍA TÉCNICA INDUSTR

6 downloads 10 Views 494KB Size

Recommend Stories


14. Ingeniera Laura Dazeo
NUEVAS ENFERMEDADES PROFESIONALES DTO. 49/14 Ingeniera Laura Dazeo DECRETO 49/2014 Anexo I Agregados al Listado de enfermedades profesionales del De

Grado en Ingeniería Electrónica Industrial y Automática Grado en Ingeniería Mecánica Máster Universitario en Ingeniería Industrial
Informe para  la acreditación  Escuela Politécnica Superior  Julio 2015  Escuela Politécnica Superior Grado en Ingeniería Electrónica Industrial y Au

MONICA TORRES LOZANO. Proyecto de Grado para optar el título de Ingeniera Ambiental y Sanitaria. Director:
PROCEDIMIENTOS Y LINEAMIENTOS DE LA EVALUACIÓN AMBIENTAL PARA EL TRASLADO DE LA PLANTA DE PRODUCCIÓN DE TELAS VINÍLICAS DEL GRUPO KOPELLE DE BOGOTÁ A

Story Transcript

UNIVERSIDAD POLITÉCNICA DE MADRID DEPARTAMENTO DE ELECTRÓNICA, AUTOMÁTICA E INFORMÀTICA INDUSTRIAL ESCUELA UNIVERSITARIA DE INGENIERÍA TÉCNICA INDUSTRIAL

Informática Grado en Ingeniería en Electrónica Industrial y Automática Grado en Ingeniería Eléctrica Grado en Ingeniería Química

Guión de Prácticas de Laboratorio Curso 2012 – 2013

Raquel Cedazo León Cecilia García Cena Javier Muñoz Cano

Informática

Guión de Prácticas de Laboratorio 2012-2013

Índice de contenido 1. Introducción.............................................................................................................................3 2. Creación de un programa en Visual C++ 2010 Express...........................................................4 3. Práctica 1. Entorno de programación y depuración. Operadores y sentencias de control: if, switch-case...................................................................................................................................7 4. Práctica 2. Sentencias de control: bucles for, while y do-while................................................9 5. Práctica 3. Vectores, cadenas y estructuras.............................................................................11 6. Práctica 4. Vectores de estructuras y matrices........................................................................12 6. Práctica 5. Funciones con paso por valor................................................................................13 8. Práctica 6. Funciones con paso por referencia........................................................................15 9. Práctica 7. Funciones con vectores, cadenas y matrices.........................................................16 10. Práctica 8. Funciones con estructuras y vectores de estructuras...........................................18

-2-

Informática

Guión de Prácticas de Laboratorio 2012-2013

1. Introducción Las prácticas de Informática son una parte esencial en la formación del alumno en la asignatura. Para el buen aprovechamiento de las mismas es necesario que el alumno tenga claros los conocimientos teóricos de cada práctica antes de entrar al laboratorio. El entorno de desarrollo utilizado es el Visual C++ 2010 Express de Microsoft, instalado en todos los ordenadores del laboratorio. Este guión de prácticas incluye en el segundo capítulo una guía para crear un programa en el entorno de desarrollo. A partir del tercer capítulo, se incluyen las ocho prácticas a realizar. Cada una de las prácticas incluye los enunciados de los ejercicios, cuya programación debe ser realizada por el alumno durante la sesión de prácticas. La duración de cada sesión es de 1 hora. Si el alumno no finaliza los ejercicios de cada una de las prácticas en ese tiempo, es sumamente importante que el alumno los realice individualmente para poder asentar los conocimientos. El alumno debe utilizar las herramientas de depuración que incluye el entorno de desarrollo para detectar y eliminar errores de los programas.

-3-

Informática

Guión de Prácticas de Laboratorio 2012-2013

2. Creación de un programa en Visual C++ 2010 Express Esta guía describe los pasos para crear un programa en Microsoft® Visual C++ 2010 Express (VC++). 1. Ejecute VC++ seleccionando Microsoft Visual C++ 2010 Express en el grupo de programas Microsoft Visual Studio 2010 Express. Aparecerá la página principal siguiente:

Desde esta página se pueden crear proyecto, abrir proyectos guardados o acceder a información diversa sobre el entorno de programación. En VC++, los programas se denominan soluciones. Una solución puede contener uno o varios proyectos. En nuestro caso utilizaremos un solo proyecto y su contenido será un archivo de código fuente escrito en C. 2. En el menú Archivo seleccionar Nuevo  Proyecto … y aparecerá la siguiente ventana:

-4-

Informática

Guión de Prácticas de Laboratorio 2012-2013

3. Seleccionar Proyecto vacío , asignar un nombre al proyecto, por ejemplo Holamundo, y una ubicación, por ejemplo, C:\MisProyectos. Pulsar Aceptar. En el Explorador de soluciones se muestra la solución con cuatro carpetas de las cuáles sólo vamos a utilizar la de Archivos de código fuente (con extensión .c):

4. Para añadir un archivo de código fuente, pulsamos el botón derecho del ratón sobre la carpeta de Archivos de código fuente  Agregar  Nuevo elemento …

Aparecerá la siguiente ventana en la que hay que seleccionar Archivo C++ (.cpp), darle un nombre al archivo de código fuente terminado en .c, por ejemplo hola.c, y pulsar el botón Agregar.

-5-

Informática

Guión de Prácticas de Laboratorio 2012-2013

5. Se abrirá una pestaña donde podemos escribir el código fuente del programa:

6. Para compilar el programa hay que seleccionar Generar solución en el menú Depurar. En parte inferior de la pantalla aparece una ventana denominada Resultados donde van apareciendo mensajes durante la compilación del código y posibles errores que existan. Si no ha habido ningún error, se habrá creado el programa ejecutable (*.exe) en el directorio Debug del proyecto. También es posible ejecutar el programa desde VC+ + seleccionando Iniciar depuración en el menú Depurar. Al ejecutar el programa aparecerá la siguiente consola:

-6-

Informática

Guión de Prácticas de Laboratorio 2012-2013

3. Práctica 1. Entorno de programación y depuración. Operadores y sentencias de control: if, switch-case Ejercicio 1: Desarrolle un programa que lea un carácter en minúscula y lo imprima en mayúscula. Tenga en cuenta que las letras mayúsculas de la A a la Z y las minúsculas de la a a la z tienen códigos consecutivos (ver tabla ASCII). Ejercicio 2: Redacte un programa que solicite del usuario tres números e indique cuál de ellos es el mayor. Ejercicio 3: Escriba un programa para detectar si un número entero es múltiplo de 5 o no. Ejercicio 4: Escriba un programa que permita convertir de grados Centígrados a grados Fahrenheit o viceversa. El programa debe mostrar dos opciones: 1) Convertir de grados Centígrados a grados Fahrenheit. 2) Convertir de grados Fahrenheit a grados Centígrados. Una vez elegida la opción, se solicitarán los grados y se hará la conversión correspondiente. Nota: Utilizar sentencia switch-case. Ejercicio 5: Escriba un programa que permita averiguar qué acrónimo está representado por los códigos ASCII: 101 117 105 116 105. Ejercicio 6: Escriba un programa para convertir una cantidad de pesetas introducidas por el usuario en euros y euros en dólares. Recuerde que 1€=166.386 ptas y 1.41$=1€. Ejercicio 7: Una compañía de agua está implantando un nuevo sistema de cobro. Para cada caso realiza la siguiente factura: Los primeros 50 litros son gratis. Entre 50 y 200 litros se cobra el litro a 0,06 euros. A partir de 200 litros se cobra el litro a 0,18 euros. La cuota mínima es de 6 euros, es decir, si el dinero a pagar resulta menor de 6 euros entonces el pago será de 6 euros.

-7-

Informática

Guión de Prácticas de Laboratorio 2012-2013

Realice un programa que calcule el gasto de agua de una familia en un mes dada la cantidad de litros de agua. Ejercicio 8: Construya un programa que realice las operaciones de suma, resta, multiplicación y división. El programa deberá mostrar el siguiente menú: A) Realizar una suma B) Realizar una resta C) Realizar una multiplicación D) Realizar una división E) Salir del programa Introduzca su opción: Una vez elegida la opción se solicitarán dos números y se mostrará el resultado correspondiente. Nota: Utilizar sentencia switch-case. Ejercicio 9: Escriba un programa que pida un char e indique qué tipo es: • “Letra minúscula”, si es una letra minúscula (entre ‘a’ y ‘z’ ) • “Letra mayúscula, si es una letra mayúscula (entre ‘A’ y ‘Z’) • “Número” , si es un dígito numérico (entre ‘0’ y ‘9’) • “Espacio”, si es un carácter de espacio o tabulador ( ‘\b’ y ‘\t’ ) • “No imprimible”, si es otro carácter, por debajo del carácter ASCII 32. • “Símbolo”, en cualquier otro caso

-8-

Informática

Guión de Prácticas de Laboratorio 2012-2013

4. Práctica 2. Sentencias de control: bucles for, while y do-while Ejercicio 1: Realizar un programa en el que se pida al usuario dos números enteros. Se pide realizar la multiplicación de los mismos a través de la suma. Por ejemplo: 3x4 = 3+3+3+3, o 5x10= 5+5+5+… (10 veces)…+5. Ejercicio 2: Realizar un programa que calcule una aproximación al número PI, mediante el sumatorio de los 100.000 primeros términos de la serie (y finalmente multiplicada por 4): ∞

∑ n=0

n

−1 1 1 1 1 1  = −  −  −...= 2n1 1 3 5 7 9 4

Nota: Utilícese un bucle for y números de precisión doble (double). Si no conoce este tipo de datos investigue acerca de él. Ejercicio 3: Escribir un programa que pida por teclado el radio (dato real) de una esfera. En el caso de que el radio sea menor o igual que 0, muestre por pantalla el mensaje: ERROR: El radio debe ser mayor que cero.

Repita los pasos anteriores mientras que el radio introducido sea incorrecto. Nota: Utilícese un bucle do-while. Ejercicio 4: Un año es bisiesto si es divisible por 4 y no por 100 o bien es divisible por 400. Hacer un programa que pida al usuario un año y muestre si es o no bisiesto. El programa se repite indefinidamente, hasta que el usuario teclea un año negativo. Ejercicio 5: Hacer un programa que imprima los números enteros de A a B, contando de m en m. Los valores de A y B serán asignados dentro del programa en código, mediante la inicialización de las variables en su declaración. Por ejemplo, A=8 y B=19. El valor de m será introducido por el usuario desde el teclado. Si el usuario introduce un valor de m menor que 1, el programa se lo volverá a pedir de forma reiterada hasta que el usuario introduzca un número mayor o igual que 1. Ejercicio 6: Escriba un programa para generar los n primeros términos de la serie de Fibonacci. El valor de n (entero y positivo) deberá ser leído por teclado. En esta serie los dos primeros números son 1, y el resto se obtiene sumando los dos anteriores: 1,1,2,3,5,8,13,21. -9-

Informática

Guión de Prácticas de Laboratorio 2012-2013

Ejercicio 7: Escriba un programa que imprima todas las tablas de multiplicar (del 1 al 9), de la siguiente manera: 1 x 1 = 1 1 x 2 = 2 ... … 9 x 9 = 81 9 x 10 = 90

Ejercicio 8: Haz un programa que imprima la tabla de multiplicar de un número n dado por el usuario. El programa debe mostrar dos opciones para repetir la operación: s/n. Si el usuario elige s, se vuelve a repetir la operación. Si por el contrario elige n, el programa finaliza.

- 10 -

Informática

Guión de Prácticas de Laboratorio 2012-2013

5. Práctica 3. Vectores, cadenas y estructuras Ejercicio 1: Realice un programa para calcular el valor medio de un vector de 5 elementos los cuales el usuario introduce por teclado. Calcule además el máximo y el mínimo. Ejercicio 2: Haz un programa que cuente la longitud de una frase introducida por teclado y el número de vocales. Nota: No se puede utilizar la librería string.h. Ejercicio 3: Defina una estructura de datos fecha con los siguientes miembros: int dia; int mes; int año;

Escribir un programa que, dadas dos fechas, indique cuál de las dos es anterior a la otra. Ejercicio 4: Dados dos puntos del plano cuyas coordenadas son introducidas por el usuario, se pide: a. Calcular la distancia entre los dos puntos. b. Indique en qué cuadrante está cada punto. Haga dos soluciones diferentes: 4.1. Utilice dos vectores (float punto1[2] y float punto2[2]). 4.2. Utilice una estructura punto con dos miembros x e y. Ejercicio 5: Realice un programa en el que el usuario introduzca una frase. Sustituya los espacios en blanco por ‘_’ y además indique cuántas sustituciones ha realizado. Ejercicio 6: Realice un programa que lea los datos de un vector de N enteros, lo ordene de menor a mayor y lo imprima por pantalla. Ejercicio 7: Realice un programa en la que se introduzca una palabra por teclado y la imprima al revés. - 11 -

Informática

Guión de Prácticas de Laboratorio 2012-2013

6. Práctica 4. Vectores de estructuras y matrices Ejercicio 1: Dada la siguiente definición de tipo de datos: typedef struct { char pais[50]; int temp max; int temp min; }Ttemp;

Escriba un programa que defina un vector con los datos de N países y permita introducirlos por teclado. El programa deberá mostrar el nombre del país que ha tenido la máxima temperatura, el que ha tenido la mínima y, finalmente, el nombre de los países cuya temperatura mínima sea inferior a la media de las temperaturas mínimas. Ejercicio 2: Haga un programa que multiplique dos matrices y que almacene el resultado en otra matriz. Finalmente, imprima la matriz resultado. Ejercicio 3: Dada la siguiente definición de tipo de datos: typedef struct { char nombre[50]; char telefono[10]; } Tcontacto;

Escriba un programa que tenga un vector con los datos de N contactos y permita introducirlos por teclado. El programa permitirá buscar un teléfono introduciendo el nombre del contacto. El programa mostrará los datos de dicho contacto o, en caso contrario, mostrará un mensaje indicando que no existe. Ejercicio 4: Dada una matriz cuadrada, haga una programa que indique si es una matriz diagonal o no. Nota: Una matriz diagonal es una matriz cuadrada en la que las entradas son todas nulas salvo en la diagonal principal, y éstas pueden ser nulas o no. Ejercicio 5: Dada una matriz de dimensión NxM, haga un programa que indique cuántos números primos hay en ella.

- 12 -

Informática

Guión de Prácticas de Laboratorio 2012-2013

6. Práctica 5. Funciones con paso por valor Ejercicio 1: Realice un programa que contenga una función para calcular si un número es par o impar. Si es par la fución debe devolver una “p” y si es impar una “i”. La función debe ser llamada hasta que el usuario presione “n”. Ejemplo de ejecución: Introduce un numero: 3 Numero impar Desea continuar? (s/n): s Introduce un

numero: 24

Numero par Desea continuar? (s/n): n Fin

Ejercicio 2: Realice una calculadora con las siguientes operaciones operaciones: suma de dos números reales, resta de dos números reales, valor absoluto de un número real y potencia de base real y exponente entero. Cada una de las operaciones se debe programar en funciones diferentes y todas ellas deben retornar un valor distinto de void. Realice en primer lugar una función que muestre un menú con las siguientes opciones: A) Realizar una suma B) Realizar una resta C) Realizar el valor absoluto D) Realizar una potencia E) Salir del programa Introduzca su opción:

Si el usuario introduce las opciones A, B o C, debe pedir por pantalla los operandos correspondientes para cada una de las funciones. Si el usuario introduce una opción diferente a las del menú, debe indicar que la opción no es válida. Sólo en el caso de que el usuario introduzca C, el programa finalizará mostrando el mensaje: “Fin de la calculadora”. Ejercicio 3: Realice un programa que llame a dos funciones. Una de ellas calculará el valor absoluto de 5 números introducidos por teclado. La otra función realizará la media de los 5 números positivos.

- 13 -

Informática

Guión de Prácticas de Laboratorio 2012-2013

Ejercicio 4: Realice una función para calcular la recta que pasa por dos puntos del plano introducidos por el usuario. Prototipo de la función: void recta(int x1, int y1, int x2, int y2);

- 14 -

Informática

Guión de Prácticas de Laboratorio 2012-2013

8. Práctica 6. Funciones con paso por referencia Ejercicio 1: Realice una calculadora que muestre por pantalla el siguiente menú: A) Realizar una suma B) Realizar una división C) Realizar una raiz cuadrada D) Salir del programa Introduzca su opción:

El usuario deberá elegir una opción y pedir los valores para realizar la operación. En este caso para calcular el resultado habrá que llamar a una única función con el siguiente prototipo: void operacion (int n1, int n2, char op, float* resultado, int *error);

siendo: − n1, n2: los dos números pasados por valor. − op: parámetro pasado por valor que indica el tipo de operación. − resultado: es un parámetro pasado por referencia donde se almacena el resultado. − error: es un parámetro pasado por referencia donde se almacena si la operación se ha resuelto o no con éxito. Los posibles valores que puede tomar son: − -1: si ha habido problemas al realizar la operación (división entre cero o la raíz cuadrada de un número negativo). − 1: si la operación concluyó con éxito. Después el programa deberá mostrar el resultado por pantalla e indicar si ha habido algún error. Ejercicio 2: Realice una función que calcule la distancia entre dos puntos y que calcule también los cuadrantes de dichos puntos. El prototipo de la función es: float distancia (int x1, int y2, int x2, int y2, int *cuad1, *cuad2);

El programa principal debe solicitar los datos de los dos puntos por teclado posteriormente debe imprimir la distancia y los cuadrantes. Ejercicio 3: Realice un programa que lea tres valores enteros por teclado y calcule el máximo y el mínimo. Para realizar el programa es imprescindible utilizar las siguientes funciones: void leerDatos (int *n1, int *n2, int *n3); int maximo (int n1, int n2, int n3); int minimo (int n1, int n2, int n3);

- 15 -

Informática

Guión de Prácticas de Laboratorio 2012-2013

9. Práctica 7. Funciones con vectores, cadenas y matrices Ejercicio 1: Realice una función que reciba un vector de enteros y los convierta a su valor absoluto. El prototipo de la función es: void valor_absoluto (int vector[], int dim);

El programa principal debe pedir los valores al usuario por teclado, llamar a esta función a imprimir el vector final. Ejercicio 2: Realice una función que reciba una cadena y devuelva el número de palabras y vocales que contiene. El prototipo de la función es: void contar (char [], int *, int *);

El programa principal debe pedir una frase al usuario por teclado e imprimir el número de palabras y vocales. Ejercicio 3: Realice una función que reciba un vector de enteros, la dimensión del mismo y devuelva los valores máximo y mínimo. El prototipo de la función es: void maximo_minimo (int v[], int tam, int* max, int* min);

El programa principal debe pedir los datos al usuario por teclado e imprimir los valores máximo y mínimo. Ejercicio 4: Realice una función que reciba como argumento una cadena, cuente los caracteres de dicha frase y modifique las consonantes por '*'. El programa principal debe pedir una frase al usuario por teclado e imprimir un texto donde indique el número de caracteres y la frase con asteriscos: Ejemplo: Introduzca una frase: Hace un dia soleado La frase introducida tiene 18 caracteres: *a*e u* *ia *o*ea*o

Ejercicio 5: Realice una función que calcula y devuelva como resultado la traza de una matriz cuadrada recibida como parámetro. El programa principal debe solicitar los datos de la matriz, llamar a la función e imprimir la traza por pantalla.

- 16 -

Informática

Guión de Prácticas de Laboratorio 2012-2013

Nota: La traza de una matriz cuadrada es la suma de los elementos de la diagonal principal. Ejercicio 6: Realice una función que calcule el producto escalar de dos vectores de números enteros y dimensión n. El prototipo de la función es: int producto_escalar (int v1[], int v2[], int n);

El programa principal debe solicitar la dimensión y los datos de los dos vectores e imprimir el resultado por pantalla.

- 17 -

Informática

Guión de Prácticas de Laboratorio 2012-2013

10. Práctica 8. Funciones con estructuras y vectores de estructuras Ejercicio 1: Realice un programa que calcule el perímetro de un triángulo, siguiendo los pasos que se indican a continuación: Diseñe una estructura que represente un punto (Tpunto) formada por sus coordenadas x e y. Y una estructura que represente triángulos (Ttriangulo) utilizando tres vértices (cada vértices es un elemento de tipo punto). Escriba una función llamada pedirTriangulo(Ttriangulo *t) que solicite los datos de un triángulo al usuario para que los introduzca por teclado. Escriba una función llamada imprimirCoordenadas(Tpunto p) que saque por pantalla las coordenadas de los puntos en este formato: (x=2, y=3). Escriba una función llamada distanciaPuntos(Tpunto p1, Tpunto p2) que devuelva la distancia entre dos puntos que recibe como parámetros de la función. Escriba una función llamada imprimirTriangulo(Ttriangulo t) que escriba los vértices del triángulo en esta forma, por ejemplo: (3,2),(8,3),(7,5). Escriba una función llamada perimetroTriangulo(Ttriangulo t) que permita escribir el perímetro de un triángulo dado como parámetro. Nota: Para solucionarlo se entiende que el perímetro de un triángulo es la suma de las distancias entre cada vértice. Ejercicio 2: Diseñe una estructura Talumno que represente los datos de un alumno: nombre, nota de selectividad y número de matrícula. Escriba una función maximaNota (Talumno alumnos[], int dimension) que reciba un vector de N alumnos y calcule cuál es la nota máxima de selectividad. El programa principal debe imprimir la nota máxima y los datos de ese alumno. Ejercicio 3: Diseñe un programa que permita emular el comportamiento de la pila o stack de un microprocesador. Para ello utilice la siguiente estructura: typedef struct { int datos[10]; int tope; } PILA;

Defina las operaciones utilizando pop() (introducir datos), push() (sacar datos en orden inverso), copy() (copiar datos en otra pila), empty() (pila vacía: una vez finalizada la operación push la pila debe quedar vacia), full() (pila completa). Inicialice la variable tipo PILA en el programa principal.

- 18 -

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.