Laboratorio 10 - Procedimientos y funciones (complejos)

Asignatura: Fundamentos de Informática
Especialidad: Electrónica - UPV/EHU
Curso académico: 2013-2014
Profesor: Ismael Etxeberria Agiriano

Objetivos

Teoría de números complejos

Ejercicio resuelto

Moodle

Entregables

Al finalizar la práctica será preciso guardar los programas fuente corregidos:
10-001.c, 10-002.c, 10-003.c, 10-004.c, 10-005.c, 10-006.c, 10-007.c, 10-008.c, 10-009.c y 10-010.c.

Ejercicios - Programación en C

Para todos los ejercicios utiliza los nombres propuestos tanto para el programa como para las funciones y los parámetros.

Para comprobar las funciones desarrolladas se propone la utilización de las funciones propuestas en el ejercicio resuelto.

  1. 10-001: (5 min) Análisis.
    Diseña el diagrama de flujo de la cabecera y codifica una función que reciba un número complejo en forma binómica y calcule el módulo utilizando el siguiente prototipo:
          double bModulo (double x, double y);
    
    Para calcular la raíz cuadrada puede utilizarse la función sqrt de la librería matemática (cuyo prototipo se proporciona en math.h):
          double sqrt (double x);
    

  2. 10-002: (5 min) Análisis.
    Diseña el diagrama de flujo de la cabecera y codifica una función que reciba un número complejo en forma binómica y calcule el conjugado:
          void bConjugado (double *x, double *y);
    

  3. 10-003: (5 min) Análisis.
    Diseña el diagrama de flujo de la cabecera y codifica una función que reciba un número complejo en forma binómica y calcule el opuesto:
          void bOpuesto (double *x, double *y);
    

  4. 10-004: (5 min) Análisis.
    Diseña el diagrama de flujo de la cabecera y codifica una función que reciba dos números complejos en forma binómica y calcule la suma:
          void bSuma (double x1, double y1,
                      double x2, double y2,
                      double *x, double *y);
    

  5. 10-005: (5 min) Análisis.
    Diseña el diagrama de flujo de la cabecera y codifica una función que reciba dos números complejos en forma binómica y calcule la resta:
          void bResta (double x1, double y1,
                       double x2, double y2,
                       double *x, double *y);
    

  6. 10-006: (5 min) Análisis.
    Diseña el diagrama de flujo de la cabecera y codifica una función que reciba un número complejo en forma binómica y calcule su correspondiente en forma polar obteniendo el argumento principal:
          void bApolar (double x, double y,
                        double *r, double *a);
    
    Para obtener el arco tangente utilícese la función de la librería matemática atan de la librería matemática (cuyo prototipo se proporciona en math.h):
          double atan (double a);
    

  7. 10-007: (5 min) Análisis.
    Diseña el diagrama de flujo de la cabecera y codifica una función que reciba un número complejo en forma polar y calcule su correspondiente en forma binómica.
          void pAbinomica (double r, double a,
                           double *x, double *y);
    
    Para calcular el seno y el coseno utilícense las funciones respectivas sin y cos de la librería matemática (cuyo prototipo se proporciona en math.h):
          double sin (double a);
          double cos (double a);
    

  8. 10-008: (5 min) Análisis.
    Diseña el diagrama de flujo de la cabecera y codifica una función que reciba dos números complejos en forma polar y calcule su multiplicación:
          void pMulti (double r1, double a1,
                       double r2, double a2,
                       double *r, double *a);
    

  9. 10-009: (5 min) Análisis.
    Diseña el diagrama de flujo de la cabecera y codifica una función que reciba dos números complejos en forma binómica y calcule su multiplicación sin convertirlos a forma polar:
          void bMulti (double x1, double y1,
                       double x2, double y2,
                       double *x, double *y);
    
    Nótese que el prototipo propuesto comienza por b.
    Codifica un programa que compruebe que se obtiene el mismo resultado convirtiendo ambos números a forma polar, multiplicarlos y convertir el resultado de nuevo a forma binómica.
  10. 10-010: (5 min) Análisis.
    Diseña el diagrama de flujo de la cabecera y codifica una función que reciba dos números complejos en forma polar y calcule su división:
          void pDivision (double r1, double a1,
                          double r2, double a2,
                          double *r, double *a);
    

Análisis