2 a la correspondiente función, a la cual se le pasará los dos números y devolverá el resultado al programa principal (main) que mostrará el resultado

Documentos relacionados
ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Nota: Se entiende que el usuario no introducirá un divisor igual a cero.

Funciones. Parámetros por valor

DOCUMENTACIÓN PARA EL TRABAJO CON LA PLATAFORMA GUADALBOT

LABORATORIO 3 ESTRUCTURAS REPETITIVAS WHILE / DO WHILE

EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO

Programación. Test Autoevaluación Tema 3

Hoja de ejercicios del Tema 3

DIVISIBILIDAD NÚMEROS NATURALES

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

RESUMEN PARA EL ESTUDIO

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

GENERALIDADES DEL LENGUAJE C

BOLETÍN 5: Algoritmos II

Elementos de un programa en C

Opuesto de un número +3 + (-3) = (+5) = 0. N = 0,1, 2,3,4, Conjunto de los números naturales

Estructuras de control

Factorización de polinomios FACTORIZACIÓN DE POLINOMIOS

= RETURN =3 7-. ELSE K

Hoja de problemas Estructuras de Control

Escuela Politécnica Superior de Elche

. De R (Reales) a C (Complejos)

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación

TEMA 4. ESTRUCTURAS DE CONTROL

Divisibilidad I. Nombre Curso Fecha

Preparación para Álgebra 1 de Escuela Superior

INICIACIÓN A LA PROGRAMACIÓN EN C

TEMA 3 POTENCIAS Y RAÍCES

MIA RICARDO GONZALEZ LOZANO APLICACIONES EN LENGUAJE C

Metodología y Tecnología de la Programación

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas

PROGRAMAS PARA LA CLASSPAD MANAGER.

Ficheros conceptos. Manejo de ficheros en C. Apertura del fichero Función fopen: nombre del fichero. Apertura del fichero Función fopen

Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2010/2011

Programación MODULAR: Subalgoritmos - funciones y procedimientos

Especificación y uso de módulos en C++(II)

Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación)

Fundamentos de programación

Programación. Ejercicios Tema 3. Elementos Básicos del Lenguaje C

TEMA 2. Números racionales. Teoría. Matemáticas

Tema: Excel Formulas, Funciones y Macros

Cuestiones: Ejercicios 2: 1) Qué imprimen los siguientes bucles?

LENGUAJE DE PROGRAMACION UNO.

Programación En Lenguaje C

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Primaria Sexto Grado Matemáticas (con QuickTables)

MATEMÁTICAS 1º BACH. C. N. Y S. 25 de enero de 2010 Geometría y Logaritmos

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información 1º año

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

LOS NÚMEROS ENTEROS. Para restar un número entero, se quita el paréntesis y se pone al número el signo contrario al que tenía.

Por ejemplo, la necesidad de representar el dinero adeudado, temperatura bajo cero, profundidades con respecto al nivel del mar, etc.

media = ( temp0 + temp1 + temp2 + temp3 + temp temp23 ) / 24; printf( "\nla temperatura media es %f\n", media );

TEMA Nº 1. Conjuntos numéricos

MANUAL DE RUBY (PARTE I) Luis José Sánchez González

TEMA 8. GEOMETRÍA ANALÍTICA.

TEMA 1.- POLINOMIOS Y FRACCIONES ALGEBRAICAS

La recta en el plano.

MATEMÁTICAS 1º DE ESO

CONTENIDOS Y CRITERIOS DE EVALUACIÓN MATEMÁTICAS 5º ED. PRIMARIA

PROGRAMACION / Clave: 11214

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

evaluables Productos Resolución y explicación de los cálculos

Estructuras de Repetición (Repita para)

IES CUADERNO Nº 3 NOMBRE: FECHA: / / Números decimales

Trabajo Práctico Nro. 1

CONJUNTOS NUMÉRICOS. La noción de número es tan antigua como el hombre mismo ya que son necesarios para resolver situaciones de la vida diaria.

OPERACIONES CON POLINOMIOS

GEOMETRÍA. que pasa por el punto P y es paralelo a π. (0,9 puntos) b) Determinar la ecuación del plano π

6.1.- Introducción a las estructuras de datos Tipos de datos Arrays unidimensionales: los vectores Operaciones con vectores.

El curso está dividido en tres evaluaciones, de acuerdo con la programación general del Colegio, temporalizados así:

Métodos que devuelven valor Dado el siguiente triángulo rectángulo:

CRITERIOS EVALUACIÓN MATEMÁTICAS

Prof. Dr. Paul Bustamante

Los números enteros Z = {,-3, -2, -1, 0, 1, 2, 3, }

NÚMEROS COMPLEJOS. Capítulo Operaciones con números complejos

Lección 1: Números reales

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

MATEMÁTICAS UNIDAD 4 GRADO 6º. Números naturales

TEMA 1. MATRICES, DETERMINANTES Y APLICACIÓN DE LOS DETERMINANTES. CONCEPTO DE MATRIZ. LA MATRIZ COMO EXPRESIÓN DE TABLAS Y GRAFOS.

DIAGRAMAS DE FLUJOS. Qué son Los Diagramas de Flujo y Para qué se Usan?

UNIDAD: NÚMEROS Y PROPORCIONALIDAD. Los elementos del conjunto IN = {1, 2, 3, 4, 5, 6, 7,...} se denominan números

Lenguaje de programación C. Introducción

Enteros (Z):..., -3, -2, -1, 0, 1, 2, 3,... Números enteros (positivos o negativos), sin decimales. Incluye a los naturales.

FICHAS REPASO 3º ESO. Para restar números enteros, se suma al minuendo el opuesto del sustraendo y después se aplican las reglas de la suma.

Guía - Taller # 2 (JAVA)

GAIA.- Números Enteros

Asignatura: Estructuras de Datos. Año Escolar: Grado y Sección: 6to INF A-B Docente: Ing. Yesika Medina

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

Matemáticas Orientadas a las Enseñanzas Aplicadas IES

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Estructuras de Repetición (Hacer-Mientras)

Un identificador le da nombre único a un elemento en un programa (Variables, procedimientos, etc.). No puede contener operadores como + - * /

Funciones y Condicionales Introducción a la Programación

Lección 2 Introducción al lenguaje C

En una recta numérica el punto que representa el cero recibe el nombre de origen.

TEMA 1. Números Reales. Teoría. Matemáticas

Programación. Ejercicios Tema 3. Elementos Básicos del Lenguaje C

Transcripción:

Bolet n de ejercicios de la asignatura de INFORMÁTICA para la realización de las prácticas de laboratorio Ejercicios de Descomposición Modular: Funciones y Ejercicios de Vectores Escuela Técnica Superior de Ingenier a Geodésica, Cartográfica y Topográfica (UPV) Pedro Alonso Jordá Fernando Garc a Granada Laura Sebastiá Tar n Miguel Vicente Ripollés fpalonso,fgarcia,lstarin,mvicenteg@dsic.upv.es Curso 2007-2008 Ejercicio 1 Escribir un programa en C que realice el cálculo del área y la longitud de una circunferencia en función del radio le do desde teclado. Escribir dos funciones distintas, una para el cálculo del área y otra para la longitud. Area = ß Λ r 2 Circunferencia =2Λ ß Λ r Ejercicio 2 Escribir un programa en C que lea un carácter desde teclado y determine con una función si se trata de uno de los d gitos del 0 al 9. Esta función recibe como parámetro el número. Escribir el programa de tal forma que sirva para leer varios caracteres diferentes desde teclado. Ejercicio 3 (Tiro parabólico) Escribir un programa en C que vaya indicando por pantalla la posición XeYdeunmóvil que se dispara con un ángulo ang sobre la horizontal y a una velocidad inicial V 0, sabiendo que en cada instante: siendo g =9; 8. X = V 0 Λ cos(ang) Λ t Y = V 0 Λ sin(ang) Λ t Λ 1=2 Λ g Λ t 2 ; Ejercicio 4 Hacer un programa en C que pida dos números reales por teclado y a partir de ellos, realice la suma, la resta la multiplicación y la división (calculadora básica). Cada cálculo se hará llamando 1

2 a la correspondiente función, a la cual se le pasará los dos números y devolverá el resultado al programa principal (main) que mostrará el resultado. El programa debe contener un menú de opciones para elegir entre la suma, la resta la multiplicación y la división: Menu de opciones 1-Sumar 2-Restar 3-Multiplicar 4-Dividir Deme una opcion de 1 a 4: Ejercicio 5 Escribir un programa en C que contenga una función que calcule X n, tal que X es un número real y n un número entero. Escribir el programa sin utilizar la función de librer a pow. Ejercicio 6 Escribir un programa en C que pida dos números por teclado y que calcule con funciones a las que se les pasa como parámetro los dos números: el máximo, el m nimo, la media de dichos números. Estas funciones devolverán el resultado al programa principal (main) que mostrará el resultado. Ejercicio 7 A partir de un número que se introduce por el teclado, hacer una función en C que nos diga si el número es primo o no y otra que nos diga si es par o no, el resultado debe devolvese al programa principal que mostrará el resultado por pantalla. Ejercicio 8 Hacer un programa en C que pida un carácter en minúscula y llame a una función que nos devuelva ese mismo caracter en mayúscula. Ejercicio 9 Hacer un programa en C que pida las coordenadas de dos puntos en un espacio vectorial de dos dimensiones y calcule su distancia, la ecuación de la recta que pasa por esos dos puntos y su punto medio. El programa debe ofrecer las siguientes opciones que se implementarán con funciones: Menu de opciones: 1 - Calcular la distancia entre los dos puntos. 2 - Calcular la ecuacion de la recta que pasa por los dos puntos. 3 - Calcular el punto medio de un segmento. 4 - Salir. Deme una opcion de 1 a 4: para ello hay que emplear un switch cuya opción default devuelva un mensaje de opción errónea. El programa debe de volver a mostrar las opciones y ejecutar el caso correspondiente hasta que se elija la opción 4 - salir. Para la primera opción se debe implementar la fórmula: d = p (x 2 x 1 ) 2 +(y 2 y 1 ) 2 el resultado debe ser positivo, si da negativo se cambia el signo. Para la segunda opción se debe de calcular la siguiente expresión, que es la ecuación expl cita de la recta: y = mx + b

3 donde: m = y2y1 x 2x 1 sustituyendo cualquiera de los dos puntos por x e y se calcula b de la siguiente forma: b = y 1 mx 1 ó b = y 2 mx 2 hay que tener en cuenta que si x 2 x 1 = 0 la ecuación resultar a: x = x 1 ó x = x 2 Para la tercera opción, el punto medio de un segmento tendrá una coordenada x a medio camino entre las coordenadas x de los extremos del segmento, y una coordenada y a medio camino entre las coordenadas y de los extremos del segmento. Por lo tanto el punto medio será: x1 + x 2 (x m ;y m )= ; y 1 + y 2 2 2 Ejercicio 10 Escribir un programa en C que calcule el máximo común divisor de más de 2 números. Para ello implementar una función mcd (máximo común divisor de 2 números) y utilizar el algoritmo de Euclides. El algoritmo de Euclides es un método eficaz para calcular el máximo común divisor (mcd) entre dos números enteros. Consiste en varias divisiones euclidianas sucesivas. En la primera división, se toma como dividendo el mayor de los números y como divisor el otro (se ahorra as un paso). Luego, el divisor y el resto sirven respectivamente de dividendo y divisor de la siguiente división. El proceso termina cuando se obtiene un resto nulo. El mcd es entonces el penúltimo resto del algoritmo. Algoritmo versión iterativa: funcion mcd (a,b) mientras a>0, hacer t=a; a=b%a; b=t; devolver b Ejercicio 11 Decid que es lo muestra por pantalla el siguiente programa: int a=4; int func(int x) a=a+x; return a; int main() int cont; for (cont=1;cont<=5;cont++) a=func(cont); printf(" %d ",a); Ejercicio 12 Decid que es lo muestra por pantalla el siguiente programa: int a= 0, b=1;

4 int func1 (int a) b= func2(a+1)+1; return b; int func2 (int a) return (b+a); int main () int cont; for (cont=1;cont<=5;cont++) Vectores b= b+ func1 (a+1) + 1; printf ("%d ",b); Un vector no es más que un conjunto de variables de un mismo tipo agrupadas bajo un mismo nombre. Por lo tanto los vectores pueden ser del mismo tipo que las variables: char para caracteres, double para números reales e int para números enteros. Un vector se diferencia de una variable normal por su tama~no expresado por un número entre paréntesis que acompa~na al nombre del vector. Por ejemplo int datos[5]; corresponde a la declaración de un vector capaz de almacenar hasta 5 números enteros, a cada uno de esos números almacenados se les denomina elemento, as diremos que hemos declarado un vector de enteros de cinco elementos. Elemento 1 Elemento 2 Elemento 3 Elemento 4 Elemento 5... 23 35 45 63 99... datos[0] datos[1] datos[2] datos[3] datos[4] La forma de acceder a cada uno de los elementos de un vector, tanto para guardar datos como para consultarlos, se hace a través de un ndice, que no es más que un número que nos indica la posición del elemento dentro del vector. Este ndice empieza siempre en el número 0, que será el primer elemento del vector y termina en el tama~no del vector menos uno. As los ndices válidos para un vector declarado: int datos[5]; serán datos[0] para el primer elemento, datos[1] para el segundo, datos[2] para el tercero, datos[3] para el cuarto y datos[4] para el quinto. (datos[5] no ser a en este caso un ndice válido, pues se sale del vector). Para dar un valor a un elemento del vector: datos[0]=34; Para utilizar los datos almacenados en una expresión: total=total+datos[3]; Es muy común emplear un bucle o sentencia repetitiva para visitar cada uno de los elementos de un vector, bien para guardar valores en cada uno de los elementos o para consultarlos. Para ellos se suele emplear la instrucción for que incorpora una variable contador que nos dice cuantas iteraciones queremos

5 se repitan las instrucciones del bloque que acompa~na a esta instrucción. Precisamente emplearemos esta variable como ndice del vector. Por ejemplo si queremos ver el contenido del vector lo podemos hacer con la siguiente implementación: int main () int i; int datos[5]=23,35,45,63,99; for(i=0;i<5;i++) printf("el elemento %d tiene el valor: %d",i+1,datos[i]); >Entiendes que significado tiene el i+1 del printf? Si nos fijamos empezamos a contar desde 1, 2, 3...hasta 5 para enumerar los elementos, sin embargo el ndice de un vector empieza en 0 y por tanto la variable i debe inicializarse a 0 en el bucle. Eso significa que si queremos emplear la variable i para mostrar el elemento en que nos encontramos, deberemos de mostrar su valor + 1. Ejercicio 13 Existe una forma de no especificar el tama~no del vector, este caso se da cuando le damos el valor a los elementos en la propia declaración del vector. Declara un vector de la siguiente forma: int datos[]=1,2,3,4,5,6,7,8,9,10. Como podrás comprobar no necesitamos poner el tama~no. Posteriormente muestra el contenido del vector con un bucle. Ejercicio 14 Declara un vector capaz de almacenar 5 enteros e introduce los números 1,2,3,4 y 5 accediendo a cada uno de los elementos del vector. Por último visualiza el contenido del vector por pantalla recorriendolo con un bucle. Ejercicio 15 Hacer un programa que: a. Lea por teclado una secuencia de 20 valores numéricos reales y los almacene en un vector. b. Cuente el número de valores positivos, negativos y ceros almacenados en el proceso de carga. c. Muestre en pantalla los resultados obtenidos. Ejercicio 16 Escribir un programa en C que sea capaz de almacenar en un vector las temperaturas de los siete d as de una semana. Una vez hayamos introducido en el vector las siete temperatutas, recorrer el vector para obtener/calcular: la temperatura máxima, la temperatura m nima y la temperatura media de esa semana. Mostrar estos valores calculados por pantalla. Ejercicio 17 Escribir un programa en C que lea N numeros enteros de teclado del 0 al 9 (una sóla cifra) y los almacene en un vector. Posteriormente averiguar si el número es capicúa P.e. para un tama~no 5, este número es capicúa 9 2 0 2 9 Ejercicio 18 Escribir un programa en C lea una serie de números enteros positivos hasta que el usuario introduzca un número entero negativo y los almacene en un vector. Posteriormente, el programa tiene que reorganizar los números introducidos en el vector de manera que los números impares ocupen las primeras posiciones del mismo y los números pares ocupen las siguientes. Por último, el programa debe imprimir por pantalla los elementos del vector resultante. Por ejemplo:

6 Dada la entrada142572,unasalidaválidaes157422. Dada la entrada96417,unasalidaválidaes91764. El orden de los números impares entre s es indiferente, as como el de los números pares. El programa debe reorganizar los datos sobre el mismo vector en que se leen, sin emplear un vector auxiliar adicional. Ejercicio 19 Escribe funciones en C que nos digan si un vector es, Simétrico, Antisimétrico o Mayoritario: Simétrico: es un vector de n-elementos donde la posición i ésima coincide con el elemento que ocupa la posición n-i ésima. Antisimétrico: es un vector de n-elementos donde la posición i ésima coincide con el elemento que ocupa la posición n-i ésima cambiado de signo. Mayoritario: es un vector de n-elementos donde existe un elemento almacenado en el vector queserepitemás de n/2 veces. Para ello define el el programa principal el vector, y carga en el una serie de valores, posteriormente se llamara con ese vector a las funciones que nos dirán si es Simétrico, Antisimétrico o Mayoritario. Ejercicio 20 Hacer un programa en C que pida por teclado un conjunto de N números enteros y que posteriormente llame a una función a la que le pasemos el vector y le de la vuelta (no emplear un vector auxiliar), por último mostrar por pantalla el contenido del vector. Vectores de caracteres Los vectores de caracteres se pueden tratar de dos maneras, caracter a caracter, donde se leen y escriben caracteres individuales en cada una de sus posiciones y como cadenas de caracteres. Si lo tratamos como caracteres individuales e intentamos guardar la palabra Hola, introducida por teclado, la guardar a de la siguiente forma: char vector[50]; scanf("%c",&vector[0]); scanf("%c",&vector[1]); scanf("%c",&vector[2]); scanf("%c",&vector[3]); Si la tratamos como una cadena de caracteres se escribe un conjunto de caracteres de una sóla vez, empleando el modificador %s en el scanf. Esta instrucción cargará en cada posición del vector cada uno de los caracteres que encerremos entre comillas dobles y acabará con el caracter especial 0 n0 0.P.e. char vector[50]; scanf("%s",vector); guardará envector la cadena que escribamos hasta encontrar un blanco o el retorno de carro, y al final pondrá el caracter especial 0 n0 0, (fijate que la veriable vector no lleva el &), p.e. si escribimos Hola. H o l a n0... Para poder guardar más de una palabra de una sóla vez se emplean funciones de entrada y salida espec ficas para cadenas de caracteres, es el caso de gets (carga una cadena de caracteres por teclado), puts (visualiza por pantalla una cadena de caracteres) En el el ejemplo anterior si queremos introducir "Hola buenos dias" lo haremos as :

7 char vector[50]; gets(vector); Ejercicio 21 Hacer un programa en C que pida una frase, la almacene en un fichero y posteriormente se la pase a una función denominada longitud(...) que calcule la cantidad de caracteres que tiene ese vector y la devuelva al programa principal que la mostrará por pantalla. Ejercicio 22 Hacer un programa en C que pida una frase, la almacene en un fichero y posteriormente se la pase a una función que cambie las mayúsculas por minúsculas y viceversa y las guarde en el propio vector. El programa posteriormente mostrará el contenio del vector por la pantalla. Ejercicio 23 Un vector de N caracteres contiene el nombre completo de una persona, estando éste formado por uno o varios nombres y dos apellidos. Se pide un programa en C que devuelva en otro vector los apellidos de dicha persona y las iniciales de su(s) nombre(s) tal y como se indica a continuación: El vector original contiene: Jose Luis Garcia Pont (relleno a blancos hasta N). Se debe obtener otro vector que contenga: Garcia Pont, J.L. Nota 1: Una persona puede tener uno o más nombres. Nota 2: Asumir que no existen nombres ni apellidos del tipo "de... "de las..., "de la... ". Ejercicio 24 Dado un vector de N caracteres que contiene una frase, averiguar cuántas palabras contiene dicha frase, sabiendo que cada palabra está separada por un sólo blanco. Asumir que el vector ya tiene almacenada la frase correspondiente. Ejercicio 25 Un pal ndromo es una palabra o secuencia de palabras que se lee igual de izquierda a derecha que de derecha a izquierda. Ejemplos de pal ndromos son:. a nilina", reconocer", "dabale arroz a la zorra el abad", etc. Se pide un programa en C que, dado un vector de rango N que contiene un conjunto de caracteres (pedir por teclado), se llame a una función que determine si la frase almacenada en el vector es o no un pal ndromo. No se puede utilizar un vector auxiliar. Nota: Se asume que el vector de caracteres se compone de una o más palabras (en letras minúsculas) y blancos. Los blancos servirán de separadores entre palabras (uno o más blancos entre cada par de palabras) y para completar los N caracteres del vector.