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



Documentos relacionados
Prof. Dr. Paul Bustamante

Manual del Usuario de Microsoft Access Consultas - Página 1. Tema IV: Consultas. IV.1. Creación de Consultas

PROGRAMACIÓN EN VISUAL BASIC Ejercicios sin resolver

Prof. Dr. Paul Bustamante

Actualización de versión Mono descargada de internet

La herramienta ArtEM: Aritmética Entera y Modular

Tema 2. FUNCIONES, VARIABLES Y CARPETAS EN LA CALCULADORA CLASSPAD

PERIODO 2 SOFTWARE MANEJADOR DE BASE DE DATOS CONCEPTOS BASICOS DE MICROSOFT ACCESS

SIIGO WINDOWS. Instalación de Empresa. Cartilla I

Sistema de Citas Tag Manual de Usuarios Ciudadano

1. Objetivo Proporcionar la información para el correcto uso de la Aplicación Informática de Empresas Aeronáuticas.

Descarga, obtención de licencia e instalación de Microsoft Outlook 2003 para usuarios de Servicio Premium

GUÍA DATA ENTRY, CÓMO CREAR UN ARCHIVO DE AFILIACIÓN DE BENEFICIARIOS PAGO DE NÓMINA DE FORMA MANUAL Y EXPLICACION DE LA ESTRUCTURA TXT.

Guía rápida SINATEC Nuevo usuario


GUÍA DATA ENTRY, CÓMO CREAR UN ARCHIVO DE PAGO DE PROVEEDORES DE FORMA MANUAL Y EXPLICACION DE LA ESTRUCTURA TXT.

CONFIGURAR ACCESO A INTERNET PANTALLAS PARA CONFIGURAR ACCESO A INTERNET

6. Crea el procedimiento necesario para dibujar la siguiente figura: 7. Crea el procedimiento necesario para dibujar la siguiente figura:

EJERCICIOS DE PROGRAMACIÓN EN C. DIBUJAR UN ROMBO O DIAMANTE. CALCULAR SUMATORIOS. (CU00542F)

DESCRIPCION PASO A PASO PARA SOLICITAR FICHA PARA PRESENTAR EL EXAMEN DE SELECCIÓN EN EL INSTITUTO TECNOLOGICO DE ACAPULCO.

PRUEBA DE NIVEL DE ACCES

EVALUACIÓN DE DIAGNÓSTICO GUÍA PARA LA APLICACIÓN ON LINE

Práctica 2 Estadística Descriptiva

Manual para la configuración del correo electrónico en Outlook 2010

4. El código BCD utiliza para codificar cada símbolo decimal: a) 4 bits b) 6 bits c) 8 bits d) ninguna de las anteriores es correcta

Práctica 1 Pasa la calculadora

REPRESENTANTE DE EMPRESA GUÍA RÁPIDA DEL SISTEMA

FUNDAMENTOS DE INFORMÁTICA

Guía de conexión a Internet con MacOS 8

Guía rápida de instalación de i-card Loyalty 5.0. Contenido

Programación. Ejercicios Tema 6 Tipos de Datos Estructurados: Vectores y Matrices

4.2 COMBINAR CORRESPONDENCIA UTILIZANDO OTROS ORÍ-

Capítulo 2. Cómo utilizar la ayuda

MANUAL ACTIVACIÓN COMO USUARIO DE APLICACIONES WEB CORPORATIVAS

Manual para la configuración del correo electrónico en Outlook 2003

INDICE Capitulo 1. El Turbo C++ y el Lenguaje C Capitulo 2. Declaración e inicialización de variables Capitulo 3. Funciones de entrada y salida

INSTRUCCIONES DE USO DE LA BASE DE DATOS DE EXPERTOS EN SEGURIDAD ALIMENTARIA Y NUTRICIÓN

Actividad colaborativa Ejercicios de programación Programación básica C++

Gestor y Guía de Tránsito 2010

RELACIONES ACCESS TIPOS DE RELACIONES QUE PODEMOS UTILIZAR

INSTRUCCIONES PARA EL USO DEL SOFTWARE (IS)

Cómo registrarse como nuevo usuario del sistema online de inscripción a exámenes Cambridge ESOL?

GUIA AUTO REGISTRO USUARIO MASTER

Guía para el proceso de compra. Versión 1.4


Números enteros. Dado cualquier número natural, éste siempre será menor que su sucesor, luego los naturales son ordenados.

Ejercicios 3A. 2. Implemente un programa que, dados los tres vértices de un triángulo, calcule el área del mismo. Puede aplicar la siguiente fórmula:

Los números naturales

Introducción a MATLAB

LABORATORIO Nº 5 FORMULARIOS EN EXCEL

GUIA PRACTICA PARA LA APLICACIÓN DE MS EXCEL TECNOLOGIA/ INFORMATICA

BOLETÍN 5: Algoritmos II

MANUAL DE SYMBALOO Autor: Javier Prieto Pariente

Manual para importar ficheros CSV en la aplicación de Comunicación de pagos

Unidad 1: Números reales.

INTRODUCCIÓN 3 REQUISITOS DEL SISTEMA..4 DESCARGA DEL SOFTWARE...5 PASOS DE LA INSTALACIÓN 7. Consideraciones..12

TUTORIAL: CREACIÓN DE UN NEGOCIO EN PILOTO AUTOMÁTICO PARA VENTA DE PRODUCTOS DIGITALES

Capítulo 4 Representación interna de los Datos

PORTAL SUMITOMO MANUAL PROVEEDORES (PORTAL WEB)

COTIZADOR WEB EQUINOCCIAL

Programación Digital I

Benemérita Universidad Autónoma de Puebla Facultad de Ciencias de la Computación Área de Programación

I.E.S. CUADERNO Nº 3 NOMBRE: FECHA: / / Los números enteros

TRABAJO CON NÚMEROS EN EXCEL 2007

Instructivo para Asociados Portal WEB Actualización de base de datos FEPEP

Tabla de contenido. P á g i n a 2

DaVinciTEXTIL. Codificación de artículos

EJERCICIOS EXCEL. Guardar el libro en tu pen drive, con el nombre PRACTICA1_ALUMNO_GRUPO.

Todas las páginas del módulo disponen de una cabecera:

Lenguajes de programación LPSI EUI UPM CADENAS DE CARACTERES

Prodigy Antivirus. Paso 1. Importante! Desinstalar otros antivirus

HP LaserJet serie CM1312 MFP Tareas de impresión

Manual de ayuda para la Gestión de las Convocatorias de Ayudas y Becas de Libros de texto y Material didáctico

Tras esto nos preguntará si queremos realizar la protección de nuestra aplicación mediante llave USB, a lo que tendremos que contestar que SI.

Elabore la codificación de un programa para:

Coordinación de Estudios Mediados por las TICL

CURSOSO. Aritmética: Númerosnaturalesyenteros. Númerosracionalesyfraciones. MATEMÁTICAS. AntonioF.CostaGonzález

Manual de usuario OTIC365

TEMA 2: TEORÍA DE CONJUNTOS Y CONJUNTOS NUMÉRICOS.

Cadenas de caracteres

Consideraciones iniciales Cómo obtengo una licencia de pesca o caza? Cómo recupero una licencia de pesca o caza pagada?

Guía. sobre el uso adecuado del correo electrónico Institucional de Bachillerato en Línea de Veracruz

DIPUTACIÓN DE BADAJOZ ÁREA DE PLANIFICACIÓN Y NUEVAS TECNOLOGÍAS Informática Municipal ACCED-E PADRÓN DE HABITANTES. Guía Rápida Proceso Electoral

NÚMEROS ENTEROS. En la recta numérica se pueden representar los números naturales, el cero y los números negativos.

Números Reales. 87 ejercicios para practicar con soluciones. 1 Ordena de menor a mayor las siguientes fracciones: y

Programación Orientada a Objetos Métodos Guía de Ejercicios v9.7

Contenido. Página 2 de 8

Instrucciones de Uso del Aula Virtual

ACTIVIDAD PRÁCTICA 5 BASES DE DATOS

MANUAL DE POSTULACIÓN EN LÍNEA PROGRAMA DE MOVILIDAD ESTUDIANTIL ESTUDIOS PARCIALES EN EL EXTRANJERO

PRUEBAS SELECTIVAS ANALISTA INFORMÁTICO TURNO DE ACCESO LIBRE SEGUNDO EJERCICIO DE LA PRIMERA FASE (VERSIÓN CASTELLANO)

GUÍA DE AYUDA PARA UTILIZAR LA APLICACIÓN TFG

Puesta en marcha de Aspel-COI 7.0

Introducción Programación Modular y a Métodos: Consideremos el siguiente ejercicio:

Versión 2.0 (Febrero 2014)

Sistema de Solicitudes de Constancias. Manual del Solicitante. Oficina de Recursos Humanos Universidad de Costa Rica

Consultas generales Manual de usuario

OPA Guía de usuario. Cita Previa por Internet GUÍA DE USUARIO. Consejo Sanitario 1

EJERCICIO 2 DE ACCESS ACCESS EJERCICIO 2 CONSULTAS SENCILLAS. Una consulta en Access sólo tiene sentido cuando se quiere:

TUTORIAL PARA CREAR UNA PHPWEBQUEST

Transcripción:

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

Í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 -

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 -

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 -

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 -

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 -

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 -

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 -

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 1 n 2n 1 = 1 1 1 3 1 5 1 7 1 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 -

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 -

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 -

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

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 -

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 -

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 -

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 -

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 -

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 -