Ejercicios Tema 6. Funciones

Documentos relacionados
#include <stdio.h> /* Factorial de un número - versión 1- */

FUNDAMENTOS DE PROGRAMACIÓN TALLER No. 1 Profesor: Alvaro Ospina Sanjuan

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa

Programación I. Ingeniería Técnica Informática. Ejercicios de los Temas 4, 5, 6 y 7

Hoja de ejercicios del Tema 3

Hoja de ejercicios del Tema 3

Valentín Moreno Programación en FORTRAN ESQUEMA DE SELECCIÓN

Tema 3. Estructuras de control

ASECOMPU. PORTAL DE REFUERZO ACADEMICO EN PROGRAMACIÓN LISTA DE EJERCICIOS. CICLOS REPETITIVOS Fecha de impresión:

Ahora responde a las siguientes cuestiones: Supongamos que el usuario introduce 3 en A, 4 en B y 5 en C

D L M M J V S

LISTADO DE PROBLEMAS TRIMESTRE 1

= RETURN =3 7-. ELSE K

for(i = 0; i <= 45; i+=5) { x = (i*3.1416)/180; printf( seno(%d) = %f\n,i,seno(x));

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

SESIÓN DE EJERCICIOS E1

Estructuras de Decisión Simples y Dobles

a) Si ch tiene el valor X y numero el valor 5, cuál sería el efecto de ejecutar cada una de las siguientes llamadas al procedimiento:

1. Escribir un algoritmo que resuelva A-B*((B+C) / (C-C 2 ). Considerar que no es posible la división por 0, detectar este caso y salvar el error.

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

Cadenas de caracteres

Variables y tipos básicos 1. Definir una variable de tipo char. Convertirla a una variable de tipo entera e imprimir su valor asociado.

Tipos de Datos en C. Palabras reservadas en C

#include <stdio.h> float cubica(float numero) { float cubica; cubica = numero * numero * numero; return cubica; }

Programación 2. Lección 4. Metodología de diseño de algoritmos recursivos

1. Escriba el siguiente código, compílelo y ejecútelo. Obtiene el resultado esperado? Modifíquelo para que se comporte como debe:

Dados dos números naturales n m 0 se define el número combinatorio n sobre m como

GUIÓN DE PRÁCTICAS 3: ESTRUCTURAS CONDICIONALES

Tema 2: Elementos básicos de un programa. Tipos de datos, variables y constantes Asignación Operadores y expresiones

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

ALGORITMO: LENGUAJE C++: # include <iostream.h> # include <math.h> int main () Int num 1=0, num =0, d=0; Cout << ingrese primer numero: ;

TRABAJO DE MATEMÁTICAS. PENDIENTES DE 2º E.S.O. (1ª parte)

Estructuras de Decisión Simples y Dobles

Boletín de ejercicios de la asignatura de INFORMÁTICA para la realización de las prácticas de laboratorio. Ejercicios de Estructuras de Control

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Elementos de Programación Tema VI.Subprogramas ā Relación de Ejercicios 3 de diciembre de 2002

Tema 4. Control de flujo. Programación Programación - Tema 4: Control de Flujo

Funciones. Parámetros por valor

SESIÓN DE EJERCICIOS E1

PRÁCTICA ALGORÍTMICA: EJERCICIOS PROPUESTOS

1. Leer dos números A y B e intercambiar sus valores sin utilizar variables auxiliares.

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

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

Introducción a C++ Algoritmos y Estructuras de datos II Dra. Carmen Mezura Godoy. Febrero 2009

PROBLEMAS DEL TEMA 5: Control de Flujo del Programa

OPERADORES Y EXPRESIONES

Paso de Parámetros a una Función

PROBLEMAS DEL TEMA 7 SUBPROGRAMAS Y MODULARIDAD

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

Práctico 2: Funciones y Punteros en C La teoría general para este práctico puede consultarse en los Capítulos 4 y 5 Notas de Clase

6. Visualizar error, ingrese un numero que no sea cero

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)

1 CÁLCULO CON RADICALES. Nota: Para m = 2, es l raíz cuadrada y el 2 no se escribe.

Programación en ensamblador Ejercicios propuestos

Ejercicios de Programación

Ejercicios aplicando estructuras de asignación.

Práctica 5. Contenido: Subprogramas (funciones y procedimientos). Parámetros por valor y por referencia.

PRÁCTICA #5 Acciones, Funciones, Pase de Parámetros y Alcance de Identificadores

suma de los n>0 primeros números que se lean del teclado. El número n es un dato y es

PROGRAMACION ALGORITMOS Y ESTRUCTURAS DE DATOS PRACTICA N 4

PROBLEMAS DEL TEMA 7: Subprogramas y Modularidad

TRABAJO PRÁCTICO N 6 Ejercicios 4

Una expresión es una combinación de uno o más operandos y operadores para obtener un resultado.

APELLIDOS NOMBRE GRUPO CALIFICACIÓN FECHA

Algoritmos y Estructura de datos:

FUNDAMENTOS DE PROGRAMACIÓN LABORATORIO SESIÓN 2

Números Racionales. Repaso para la prueba. Profesora: Jennipher Ferreira Curso: 7 B

Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación:

RECORDAR TIPOS DE DATOS

PRÁCTICA # 2. 0 Direcciones 1 Dirección 2 Direcciones 3 Direcciones

Variables locales y globales. Funciones sin parámetros. Paso de parámetros

Recuperado de FRACCIONES

Ejercicios Unidad 5 Arreglos Resuelva cada problema a través de Arreglos y usando métodos:

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

EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO

BOLETÍN DE EJERCICIOS: PROGRAMACIÓN EN C++ Ejercicio 1.- escribir un programa que calcule el factorial de un número:

Programación 1 Tema III Clase de problemas

Prácticas de JavaScript

Listas y Recursión. Taller de Álgebra I. Primer Cuatrimestre de 2015

Matemáticas números reales

PROBLEMAS DEL TEMA 8: Estructuras de Datos Complejas

EJEMPLOS Y EJERCICIOS

Tema 3. Estructuras de Datos

Fundamentos de Programación Tema 3. Relación I. 3. Escribir las siguientes expresiones aritméticas como expresiones de computadora: La

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 -

Ejercicio paso a paso. Introducción de datos.

Fracción: Una fracción consta de dos números enteros dispuestos de esta forma:

Transcripción:

Ejercicios Tema 6. Funciones 1. Programa que calcule el cuadrado de todos los números comprendidos entre dos dados. Usar una función a la que se le pasa como parámetro un valor y retorna su cuadrado. 2. Escribir un programa que lea dos números enteros A y B, y obtenga los valores A/B, A%B, utilizando funciones. Escribir una función que dados A y B retorne la división de ambos y otra que retorne el resto. Repetir el ejercicio utilizando una única función que calcule tanto la división como el resto. 3. Escribir una función con dos parámetros enteros, que devuelva true (1) si el segundo es divisor del primero y false (0) en caso contrario. El programa principal solicitará al usuario 20 pares de valores y mostrará un mensaje indicando quien divide a quien. 4. Simular el funcionamiento de una calculadora de enteros. Para ello se presenta un menú por pantalla que muestre las opciones: sumar, restar, multiplicar, dividir, factorial, potencia y salir. Para cada opción se debe realizar una función a la que se le pasan los datos como parámetro, los valida y retorna el resultado a main, quien se encargará de mostrar el resultado. 5. Modificar el ejercicio anterior para que las operaciones se realicen considerando siempre un operando común que se mostrará en el menú. Este operando tendrá inicialmente el valor 0. Por ejemplo, si inicialmente se desea sumar, se solicitará un único valor y se sumará al valor general, que quedará modificado. Las siguientes operaciones se realizarán sobre el valor modificado. Cada operación modificará este valor. Hacer dos versiones, considerando este valor como global y definiéndolo como local en main y pasándolo como parámetro. 6. Escribir un programa que lea tres números enteros y emita un mensaje que indique si están o no en orden numérico. Usar una función que dados dos valores retorne true si el primero es mayor que el segundo y false en caso contrario. 7. Escribir un programa que calcule el máximo de 3 números enteros solicitados al usuario. Utilizar una función que dados dos valores enteros retorne el máximo de ambos. 8. Solicitar al usuario un rango [a..b] de valores enteros. Para cada valor en ese rango, calcular el factorial. Usar una función que dado un valor entero retorna su factorial. 9. Escribir un programa que solicite caracteres al usuario hasta que teclee un carácter no alfabético o un carácter alfabético en mayúsculas. El programa debe convertir cada carácter de minúscula a mayúscula. El valor en ASCII de la letra A es 65 y de la a es 97. Utilizar una función que dado un carácter en minúscula retorne el carácter correspondiente en mayúscula. 10. Escribir una función que permita intercambiar los contenidos de dos variables. 11. Escribir un programa que solicite un rango de valores [a..b] enteros por teclado y para cada uno de los valores en el intervalo diga si es primo o no. Utilizar una función que devuelva cierto si un número entero es primo y falso en caso contrario. 12. Suponiendo ya definida la función anterior, escribir un algoritmo que lea dos números enteros por teclado y los sume sólo si son primos. En caso contrario, debe decir cuál (o cuáles) de ellos no son primos. En el caso de que los sume, debe decir, además, si el resultado es un número primo. 13. Escribir una función que calcule x n, donde x es de tipo real y n es de tipo entero (no utilizar la función de pow). 14. Escribir una función que calcule x n, dados ambos como parámetro. Usar la función para mostrar el resultado de la siguiente expresión: (x 4 +y m )/2. Siendo x, y, y m tres números enteros introducidos por teclado. Realizar el mismo ejercicio sin utilizar la función y comparar ambos. Inma García 1/5

15. Escribir un programa que calcule el más grande, el más pequeño y la media de N números enteros. El programa principal mostrará los resultados por pantalla. Escribir las siguientes funciones: Función leer: lee los N valores enteros. Los números se solicitan al usuario. Función mayor_menor: calcula y devuelve al programa principal, el valor mayor y menor de los N números. Función media: calcula la media de los N valores. 16. Dados tres números enteros correspondientes a la hora, minutos y segundos actuales, calcular la hora (en el mismo formato) que será un segundo más tarde. El algoritmo debe leer la hora en formato HH, MM, SS, después transformarla a segundos, sumarle uno a dichos segundos y después volver a transformarla en HH, MM, SS. Para ello, se deben diseñar dos funciones: Hora_a_Segundos: dados tres parámetros de entrada correspondientes a hora, minutos y segundos, devuelva la conversión de dicha hora a segundos. Segundos_a_Horas: dado un parámetro de entrada correspondiente a una hora en segundos, la convierta en horas, minutos y segundos, y la devuelva. 17. Escribir un programa que calcule un número combinatorio. El programa solicita los valores enteros n y m y muestra el resultado. Utilizar una función que admita como parámetros m y n y devuelva el número combinatorio. Esta función utiliza a su vez una función para calcular el factorial. m m! = n n!( m n)! 18. Se dice que un número N1 es interdependiente de otro N2 cuando la suma de las cifras de N1 es divisor de N2 y el producto de las cifras de N1 en múltiplo de N2. Dado un número N, calcular todos los números interdependientes de 1 menores a 1000. Utilizar una función que dado un número entero calcule la suma de sus cifras y otra que dado un número entero calcule el producto de sus cifras. 19. Escribir una función que acepte como parámetro un número entero positivo y cuente el número de dígitos distintos de que consta. Utilizar un vector de 10 enteros para contar el número de dígitos distintos. El programa principal lee el valor y muestra el resultado. 20. Escribir un programa que solicite al usuario dos números enteros y compruebe si son análogos. Dos números son análogos, si sus reducidos son idénticos. Un número se llama reducido de otro, cuando no contiene ningún dígito repetido a partir de la primera aparición por la izquierda. Escribir una función a la que se le pase como parámetro un valor entero y retorne su reducido. Valor Reducido Análogo? 9331332 9312 Si 9993312 9312 337624336 37624 Si 37336724 37624 21. Cuál es la salida del siguiente programa? void modificar (int a) a=a *3; printf ("Valor desde la función %d\n", a); int a=2; Inma García 2/5

printf ("Valor antes de llamar a la función %d\n", a); modificar (a); printf ("Valor después de llamar a la función %d", a); 22. Escribir un algoritmo que lea 10 números reales por teclado y, para cada uno de ellos, diga si poseen o no parte fraccionaria. Escribir y utilizar una función denominada Es_fraccionario que devuelva cierto si un número real posee parte fraccionaria y falso en caso contrario. 23. Calcular el número de días entre dos fechas. Las fechas se introducen como dd mm aaaa. Utilizar una función que dadas dos fechas indique si la primera es menor que la segunda. Utilizar otra función que cuente el número de días entre las dos fechas. 24. Escribir un programa que lea un dígito D y genere una tabla de todos los números enteros del 1 al 100, tales que el valor, su cuadrado y su cubo, contengan todos el dígito D. Utilizar una función a la que se le pase como parámetro un número entero positivo y un dígito y determine si la representación del número entero contiene o no el dígito. 25. Escribir un programa que cuando el usuario escriba a la entrada una serie de valores mayores que 1, produzca a la salida el número primo más cercano de cada uno de ellos. En caso de que haya dos números primos equidistantes del número entero dado a la entrada, se desea conocer el valor de ambos. Utilizar una función que dado un valor, calcule si es primo. 26. Escribir un programa que cambie el formato de una fecha. El programa principal solicita una fecha en formato día, mes y año y muestra el resultado de la transformación. Utilizar una función que devuelva un número entero a partir de la fecha (2 de abril de 1997 sería 20497). 27. Una fracción puede reducirse a su forma más simple dividiendo el numerador y el denominador por los factores primos comunes a ambos (o directamente, por el MCD). Se trata de escribir un programa que lea sucesivas parejas de valores enteros no negativos, que serán el numerador y el denominador de la fracción respectivamente. Cada pareja de valores aparecerá en una línea. El programa reducirá la fracción a su expresión más simple y la imprimirá. La última línea de los datos, contendrá un valor negativo que marcará el final. Utilizar una función que dados dos números enteros (positivos) calcule su máximo común divisor. Datos Resultado 4 2 4/2 = 2/1 2 3 2/3 = 2/3 12423 12524 12423/12524 = 123 / 124 0 25 0/25=0/1-1 28. Cuál es la salida de los siguientes programas? A B C int i; i=pow (x,2); return (i); int a, i; for (i=1;i<=5;i=i+1) a= i*i+func (i); int y; y=x*x; return y; int a, i; for (i=1;i<=5;i=i+1) a= func (i); int a=3; a=a+x; return (a); for (cont=1;cont<=5;cont=cont+1) a= func (cont); Inma García 3/5

D int func1 (int x) if (x < 100) return (a+x); else return b; int func2 (int x) int prod=1; prod=prod*x; return (prod); int cont,c; c=func2 (cont); printf ("%d ", func1 (c)); E int func1 (int x) int c; c=func2 (x); if (c < 100) return (a+c); else return b; int func2 (int x) int prod=1; prod=prod*x; return (prod); printf ("%d ", func1(cont)); F char func2 (int x) return x; float func1 (int x) char c; c=func2 (x); if (c < 100) return c*0.01; else return c*0.1; printf ("%f ", func1 (cont)); G int a= 0, b=1; b= func2 (a+1) +1; eturn b; return (b+a); b= b+ func1 (a+1) + 1; printf ("%d ",b); Inma García 4/5

H int a= 0, b=1; int b; b= func2 (a+1) +1; return b; return (b+a); b= b+ func1 (a+1) + 1; printf ("%d ",b); I int a; int modificar (int a) a *= 3; a = 2; modificar(a); printf( %d, a); J K L #define N 5 int b=2, a=3; int funcion (int b) int c; c = b + a; b++; return c; int i; for (i = 0; i < N; i++) b = funcion(i); printf( %d,b); void eleva (int a) a = a * a; void main() int a; for (a = 0; a < 10; a = a + 2) eleva(a); printf( %d,a); int a = 0, b = 3; b = b + func2(a) + 1; return b; return (b + a + 1); void main() for (cont = 1; cont <= 5; cont++) b = func1(cont + a + b) + 1; printf( %d\n, b); Inma García 5/5