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

Documentos relacionados
Descomposición funcional. Parte. Programación Estructurada. M.Sc. Ana María Salgado G.

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

Realizar el ejercicio anterior utilizando Punteros

BUCLES ANIDADOS EN LENGUAJE C

EJEMPLOS DE ESTRUCTURAS EN C

1. Cuestiones. Ejercicios resueltos de C. Diego Rodríguez-Losada 1. //a) #include <stdio.h> main( ) { int x = 0, y = 0; //b) #include <stdio.

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

Departamento de Computación UNAN - LEON. Funciones

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:

Punteros. Programación en C 1

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 2

EJERCICIOS CON FUNCIONES EN C. EJEMPLO CALCULAR SERIES NUMÉRICAS. REFACTORIZAR. (CU00552F)

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

PROGRAMACION ESTRUCTURADA: Tema 3. Funciones

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

GUIA DE LABORATORIO # 13 Arreglos unidimensionales y bidimensionales

Programación. Test Autoevaluación Tema 3

Programación I Funciones

Examen Fundamentos de Programación 15 de enero de 2016 Curso 2015/16

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

1. Que rellene un array con los 100 primeros números enteros y los muestre en pantalla en orden ascendente.

Fundamentos de Programación 2019-I FUNCIONES

SENTENCIAS DE CONTROL (SENTENCIA switch)

Tema 1. Recursividad

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

PROBLEMAS DEL TEMA 7 SUBPROGRAMAS Y MODULARIDAD

Tema 3. Estructuras de control

Programación 2. Lección 3. Introducción a la recursividad

ESTRUCTURA DE DATOS: Tema 3. Recursividad

SESIÓN DE EJERCICIOS E1

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

Fundamentos de Informática 1º IIND

Funciones y paso de parámetros

Listas. Rafael Palacios May/2005

Bucles anidados. M.Sc. Ana María Salgado G. UNAN - LEON 24/04/2012

PROBLEMA 1. Rellena el hueco 1 (línea 23). Realiza la reserva de memoria para almacenar los n puntos.

ºC = ((ºF - 32)*5)/9 ºF = ((ºC * 9)/5)+32 ºK = ºC

Primera Parte: Preguntas Cortas. Fundamentos de Informática 1ºIIND Examen Teoría Septiembre Grupo: A B C D E. Advertencias:

Informática. Prueba de conjunto (0.25 puntos) Considerar el siguiente fragmento de código:

TEORÍA. N T f n h g $ S S P f C n S S P f C n S S C h P n S S C h P n S S P P f P n f P

Programación Estructurada. Sesión 2:El lenguaje de programación C

Informática I (2014-2) Taller Lenguaje C Prof. Sebastián Isaza Departamento de Ingeniería Electrónica Facultad de Ingeniería Universidad de Antioquia

SESIÓN DE EJERCICIOS E1

Funciones en lenguaje C

Unidad 2 Recursividad. 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos

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;

Repetición. Ejercicio 3

PROBLEMAS DEL TEMA 7: Subprogramas y Modularidad

ESTRUCTURA DE DATOS: Tema 3. Recursividad

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

SENTENCIAS DE CONTROL

Proyecto Fin de Curso

Unidad 2 Recursividad. 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos

Objetivos. El alumno conocerá y aplicará el concepto de apuntador para la realización de programas de manejo eficiente de memoria.

FUNDAMENTOS DE PROGRAMACIÓN

UNIDAD 4 ESTRUCTURAS Y UNIONES

LABORATORIO 6 FUNCIONES

4. Estructuras (registros) Programación II, FCFM, BUAP

Clase 19/02/2013. Bibliografía recomendada. #include <stdio.h> void main() { printf("hola mundo\n"); } ENLAZADOR

Trabajo Práctico Nº 06

FUNDAMENTOS DE INFORMÁTICA

LABORATORIO 5 FUNCIONES

#include<stdio.h> #include<conio.h> #include<stdlib.h> #include<iostream> using namespace std; main() int num, intentos, i; string password;

1. Que rellene un array con los 100 primeros números enteros y los muestre en pantalla en orden ascendente.

Práctica 7e: Uso de estructuras en C.

Repaso 02: Apuntadores y manejo de memoria dinámica

Punteros. Índice. 1. Qué es un puntero y por que son importantes.

Tema 18: Memoria dinámica y su uso en C

Estructuras Dinámicas

Programación. Test Autoevaluación Tema 6

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 1

TRABAJO PRÁCTICO N 6 Ejercicios 4

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

Programación En Lenguaje C

Examen "teórico" mayo Duración: 1 hora 30 minutos.

SENTENCIAS DE CONTROL CICLOS for

Lenguaje C. Lenguaje C. Erwin Meza Vega

Introducción general al Lenguaje C (2010/2011)

LENGUAJE. Tema 5 Estructuras de datos

TEMA 9: Datos estructurados

Apuntadores y Memoria dinámica. Apuntadores. M.C. Yolanda Moyao Martínez

UNAN- LEON SENTENCIA DE CONTROL DO WHILE. M.Sc. Ana María Salgado G.

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS)

Universidad del Papaloapan

Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México

Fundamentos de Informática

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

Estructura de Datos L I S T A

Escuela Politécnica Superior de Elche

Ejemplos de programas en C

Ejercicios de Programación

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

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) EN C

Elementos de un programa en C

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

Preliminares: programación con C++

Fundamentos de Informática

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

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

Transcripción:

Ejercicios sobre Descomposición Funcional, Parte II 1. Escribir un programa que haga uso de las siguientes funciones: tcomplejo SumarComplejos(tcomplejo, tcomplejo); que sume dos números complejos. tcomplejo RestarComplejos(tcomplejo, tcomplejo); que reste dos números complejos. tcomplejo MultiplicarComplejos(tcomplejo, tcomplejo); que multiplique dos complejos. /******************* srmcomplejos *******************/ typedef struct float real; float imag; tcomplejo; tcomplejo SumarComplejos(tcomplejo, tcomplejo); tcomplejo RestarComplejos(tcomplejo, tcomplejo); tcomplejo MultiplicarComplejos(tcomplejo, tcomplejo); void main(void) tcomplejo ca, cb, cc; printf("\n Introducir datos de la forma: x yi\n"); printf("ca = "); fflush(stdin); scanf("%f %f", &ca.real, &ca.imag); printf("cb = "); fflush(stdin); scanf("%f %f", &cb.real, &cb.imag); printf("\nresultado de la suma de complejos: \n"); printf("----------------------------------\n"); cc = SumarComplejos(ca,cb); printf("%g %+gi\n",cc.real,cc.imag); 1

printf("\n Resultado de la resta de complejos\n"); printf("----------------------------------\n"); cc = RestarComplejos(ca, cb); printf("%g %+gi\n",cc.real,cc.imag); printf("\nresultado de la multiplicacion de complejos\n"); printf("-------------------------------------------\n"); cc = MultiplicarComplejos(ca, cb); printf("%g %+gi\n",cc.real,cc.imag); tcomplejo SumarComplejos(tcomplejo a, tcomplejo b) tcomplejo temp; temp.real = a.real + b.real; temp.imag = a.imag + b.imag; return temp; tcomplejo RestarComplejos(tcomplejo a, tcomplejo b) tcomplejo temp; temp.real = a.real - b.real; temp.imag = a.imag - b.imag; return temp; tcomplejo MultiplicarComplejos(tcomplejo a, tcomplejo b) tcomplejo temp; temp.real = a.real * b.real - a.imag * b.imag; temp.imag = a.real * b.imag + a.imag * b.real; return temp; 2

Funciones recursivas 2. El siguiente programa, cuenta valores de 1 a 10 de modo recursivo. void contar(int cima); void main(void) contar(10); return; void contar(int cima) if(cima >1) contar(cima - 1); printf("%d ",cima); 3. El cálculo de los números de Fibonacci es un ejemplo de una definición matemática recursiva que se enuncia así: el número de Fibonacci f(i), siendo i el número de orden(0, 1, 2, 3, 4, 5,...) del número a calcular, es igual al número de Fibonacci f(i 1) más el número de Fibonacci f(i 2), sabiendo que f(0) es 0 y f(1) = 1. f(0) = 0 f(1) = 1 f(2) = f(1) + f(0) f(3) = f(2) + f(1)... f(i) = f(i - 1) + f(i 2) Realizar un programa que pregunte: cuántos números de Fibonacci, a partir del primero, se quieren calcular?, almacene esos números en una matriz del tamaño necesario y finalmente los muestre. Para ello se deberá utilizar una función recursiva con el prototipo indicado a continuación: int fibonacci(int n); La función fibonacci devolverá como resultado el número de Fibonacci cuyo número de orden(0, 1, 2,...) sea n. 3

Una ejecución del programa podría ser: Cuántos números de Fibonacci, a partir del primero, se quieren calcular? n = 10 0 1 1 2 3 5 8 13 21 34 // fibonacci.c // #include <stdlib.h> int fibonacci(int); int main() int n = 0, i = 0, *f; printf(" Cuántos números de Fibonacci, a partir del "); printf("primero, se quieren calcular?\n"); do printf("n = "); i = scanf("%d", &n); fflush(stdin); while ( i == 0 n < 1); // Crear una matriz dinámicamente f = (int *)malloc(n * sizeof(int)); if (f == NULL) printf("insuficiente memoria\n"); return -1; // Obtener los números de la serie for (i = 0; i < n; i++) f[i] = fibonacci(i); // Visualizar la matriz for (i = 0; i < n; i++) printf("%5d", f[i]); printf("\n"); 4

// Liberar la memoria asignada a la matriz free(f); return 0; int fibonacci(int n) if ( n == 0 ) return 0; else if ( n == 1 ) return 1; else return fibonacci(n-1) + fibonacci(n-2); 4. Dados dos números a (número entero) y b(número natural mayor o igual que cero). Realice una función recursiva para determinar a^b //recur1.c main() int a, c; unsigned b; printf("escriba el numero y la potencia a elevar como a^b: "); scanf("%d^%u", &a,&b); c = potencia(a,b); printf("c = %d",c); int potencia(int a, int b) if(b = = 0) return 1; else return a * potencia(a, b-1); 5

5. Dado un array constituido de números enteros que contiene N elementos, siendo N >=1, realice una función recursiva que calcule la suma de todos los elementos del array. //recur2.c main( ) int numeros[25]; int N, i; printf("cuantos numeros tiene el arreglo? \n"); scanf("%d",&n); printf("introduzca el arreglo: "); for(i = 0; i < N; i++) scanf("%d",&numeros[i]); printf("%d \n", sumarray(numeros,0,n)); int sumarray(int numeros[ ], int posicion, int N) if(posicion == N - 1) return numeros[posicion]; else return(numeros[posicion] + sumarray(numeros, posicion + 1, N)); 6