PROBLEMAS DEL TEMA 7: Subprogramas y Modularidad

Documentos relacionados
PROBLEMAS DEL TEMA 7 SUBPROGRAMAS Y MODULARIDAD

EJERCICIOS DE TEORÍA FUNDAMENTOS DE INFORMÁTICA

EJERCICIOS DE TEORIA FUNDAMENTOS DE INFORMATICA

PROBLEMAS DEL TEMA 5: Control de Flujo del Programa

SESIÓN DE EJERCICIOS E1

SESIÓN DE EJERCICIOS E1

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

PROGRAMACIÓN ESTRUCTURADA

Ejercicios aplicando estructuras de asignación.

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

UNTELS Estructuras Selectivas (Sin anidar) Estructuras condicionales

Ejercicios Tema 6. Funciones

LABORATORIO 5 FUNCIONES

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

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

1000+(4/100)*1000 =1000 * (1+4/100) =1000 * 1.04 = Al finalizar el segundo año, el 4% se aplica sobre los 1040, y obtenemos:

Ejercicios de Programación

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

Tema: Funciones, Procedimientos y Recursividad en C#.

Tema: Funciones, Procedimientos y Recursividad en C#.

Funciones: Pasos por Referencia Recursividad

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

Actividad Algoritmos, Estructura y Programación I. FOR, DO-WHILE

1. Saber si un número y diga si es primo o no. #include <stdio.h> #include <stdlib.h> int main(void) { int num, cont, x;

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C

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

PROGRAMACION MODULAR FUNCIONES

Cadenas y Estructuras

Algoritmos y Estructura de datos:

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;

Programación 1 Tema 5. Instrucciones simples y estructuradas

Funciones. Parámetros por valor

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

Tema: Funciones, Procedimientos y Recursividad en C#.

Dobles: Es el caso de la instrucción if-else (punto 1.2).

Trabajo Práctico Nº 06

PUNTEROS DOBLES EN C XIII CUIEET MASPALOMAS. Sidonio Pérez Matilla EUITI de Eibar UPV

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

Codificación en C. Como pasar de Pseudocódigo a C (con pequeños trucos de C++)

WHILE Y DO WHILE BREAK EN LENGUAJE C. BUCLES MIENTRAS. FORZAR SALIDA O TERMINACIÓN. EJEMPLO (CU00534F)

Recursividad. Dept. Ciencias de la Computación e I.A. Universidad de Granada

Funciones Tipos de funciones y Recursividad

Estructuras de Repetición (Repita para)

EJERCICIOS PARA EL PRIMER PARCIAL INTRODUCCIÓN A LA PROGRAMACIÓN MSc. Lic. Carla Salazar Serrudo

Programación 1 Tema 5. Instrucciones simples y estructuradas

PROBLEMAS DEL TEMA 8: Estructuras de Datos Complejas

Tema 3. Estructuras de control

Elabore un programa que permita el ingreso de un número calcular el cubo

Objetivos. Conceptos 1. ESTRUCTURAS DE CONTROL SELECTIVAS. Estructura condicional if-else

Capítulo 13 INSTRUCCIONES DE CONTROL REPETITIVAS. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Formato para prácticas de laboratorio

CUADERNILLO DE PRÁCTICAS LENGUAJE DE PROGRAMACIÓN: JAVA COMPILADOR: NETBEANS IDE 6.9.1

Modularización en lenguaje C. Funciones

RECURSIVIDAD. Prof. Ing. M.Sc. Fulbia Torres

Programación. Test Autoevaluación Tema 5

PROGRAMACIÓN PRÁCTICA AUTOR: JUAN LUIS ARELLANO ESCAMILLA

E s c u e l a P o l i t é c n i c a S u p e r i o r d e E l c h e

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Universidad del Papaloapan

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

Programación. Test Autoevaluación Tema 5

RECORDAR TIPOS DE DATOS

EJERCICIOS ALGORITMOS

Autor: Ing. Nahuel González INTRODUCCIÓN A C. Clase 1

PROGRAMACIÓN ESTRUCTURADA

Programación Unidad 4. Modularidad. Programación TIG - TUP. Sede Regional Orán UNIVERSIDAD NACIONAL DE SALTA

Problema No.7. Elaborar un programa en C++ que lea una temperatura en grados Fahrenheit y muestre su equivalente en grados Celsius, Kelvin y Rankine.

Bloque 4. La descomposición funcional y el diseño descendente

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

Ejercicios de programación Luis Francisco García Martínez Ingeniería de Sistemas Programa de Ingeniería de Sistemas

PROGRAMACION ESTRUCTURADA: Tema 3. Funciones

Estructuración del programa en partes más pequeñas y sencillas

Ejercicios sobre Descomposición Funcional, Parte II. tcomplejo SumarComplejos(tcomplejo, tcomplejo); que sume dos números complejos.

Programación. Ejercicios Tema 5. Funciones

Para entender la recursividad primero tenemos que entender la recursividad

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 Docente: Gabriela Ribotta Ayudante: María Laura López

Sentencias DO-WHILE EN C++

Sentencias de salto: break, continue, goto Sentencia de Salto: break

Tema 7: Recursividad

Hoja de ejercicios del Tema 3

Hoja de ejercicios del Tema 3

Funciones en Lenguaje C

Transcripción:

PROBLEMAS DEL TEMA 7: Subprogramas y Modularidad EJERCICIOS RESUELTOS 1. Escribe una función que calcule el factorial de un número, dado como parámetro. A continuación realiza un programa que lea por teclado un número entero n y muestre por pantalla los factoriales de los números de 1 a n. El programa debe usar la función factorial previamente definida. float factorial(int n); /*prototipo de funcion*/ int main( ) { int i,n; do { system("cls"); printf("introduce un nº positivo (maximo 25): "); while (n<1 n>25); { printf("%d! = ",i); printf("%.0f \n",factorial(i)); /* Llamada a la función */ float factorial(int n) /* dado un numero n devuelve su factorial */ { int i; float fact=1; fact=fact*i; return fact; 11/20

2. Realizar un programa que calcule el número e, utilizando el siguiente desarrollo en serie: e = 1 + 1/1! + 1/2!+ + 1/10! + El programa debe usar la función factorial definida en el ejercicio anterior. float factorial(int n); int main() { int i,j,n; float e =1; do { system("cls"); printf("cálculo del nº e segun la formula:\n\n"); printf("e = 1 + 1/1! + 1/2! +... + 1/10! +... \n\n"); printf("introduce el nº de terminos a usar (max 10):"); while (n<1 n>10); printf("\nformula: e = 1"); for(i=1; i<=n-1; i++) { printf(" + 1/%d!",i); e = e + 1/factorial(i); printf("\n\nel numero e vale %f \n\n",e); float factorial(int n) { int i; float fact=1; fact=fact*i; return(fact); 12/20

3. Dos números son amigos, si cada uno de ellos es igual a la suma de los divisores del otro. Por ejemplo, 220 y 284 son amigos, ya que: Suma de divisores de 284: 1 + 2 + 4 + 71 + 142 = 220 Suma de divisores de 220: 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284 Hacer una función que determine si dos números dados como parámetros son amigos o no. A continuación realizar un programa que muestre todas las parejas de números amigos menores o iguales que n, siendo n un número introducido por teclado. El programa debe usar la función amigo previamente definida. bool amigo(int x, int y); /* prototipo de funcion */ int main() { int n,n1,n2; system("cls"); printf("introduce un numero: "); for(n1=1; n1<=n; n1++) for(n2=1; n2<=n; n2++) if (amigo(n1,n2)) printf("%d y %d son numeros amigos \n",n1,n2); /* dados dos nº x y devuelve un 1 si son amigos y 0 si no lo son */ bool amigo(int x, int y) { int sumax, sumay, n; sumax=1; sumay=1; for(n=2; n<x; n++) if (x%n==0) sumax=sumax+n; for(n=2; n<y; n++) if (y%n==0) sumay=sumay+n; return (sumax==y && sumay==x); 13/20

EJERCICIOS PROPUESTOS 1. Realizar una función llamada ordena3 que reciba tres parámetros enteros a, b, c, y los intercambie, en caso necesario, para que se cumpla a<=b<=c. 2. Basándose en la función anterior, escribir un programa que pida los 3 lados de un triángulo y a continuación muestre los siguientes datos: Cuanto vale la hipotenusa, Cuanto el cateto mayor y cuanto el cateto menor, y Si el triángulo es equilátero, isósceles o escaleno. 3. Escribe una función que resuelva una ecuación de 2º grado según la fórmula x = b ± b 2 4ac 2a según el siguiente prototipo: void ecuacion(int a; int b; int c; float *r1; float *r2; int *OK); siendo a,b,c los coeficientes de la ecuación, r1 y r2 las dos soluciones de la ecuación. La función devolverá en OK un 0 para indicar que el sistema no tiene solución y un 1 para indicar que si tiene solución. 4. Realizar un programa que pida por teclado los 3 coeficientes de una ecuación de 2º grado y a continuación muestre en pantalla la solución de dicha ecuación. Si la ecuación no tuviera solución deberá mostrar un mensaje en pantalla advirtiendo de tal circunstancia. El programa deberá preguntarnos si deseamos hallar la solución de otra ecuación, en caso afirmativo deberá volver a preguntarnos los coeficientes de otra ecuación y así sucesivamente hasta que alguna vez digamos que no; en ese caso el programa terminará. Para realizar el programa debemos basarnos en la función ecuacion implementada en el ejercicio anterior. 14/20

5. Realizar un programa que muestre por pantalla el siguiente menú: 1.- Calcular el factorial de un número. 2.- Calcular el nº e: 3.- Hallar si dos números son amigos 4.- Resolver ecuación de 2º grado 5.- Salir del programa El usuario podrá elegir cada una de las opciones del menú. Si la opción pulsada no es ninguna de las anteriores el programa debe mostrar un mensaje informando de tal error. Para cada opción el programa mostrará en pantalla la solución y esperará a que se pulse una tecla. Una vez pulsada volverá a mostrar el menú anterior. 6. Encontrar dónde están los errores en el siguiente programa: void ordena(int *a, int *b) { int c; c = a; if (a > b) *a =*b; *b = c; int main(void) { int a=5, b=2, c; c = invierte(a, b); printf("el valor mas pequeño es %d", c); printf("el valor mas grande es %d", *b); 15/20