elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Suma de números complejos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Suma de números complejos  (Leído 3,248 veces)
Kstlan

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Suma de números complejos
« en: 18 Octubre 2019, 00:24 am »

Espero puedan apoyarme. Me pidieron lo siguiente:

Realizar un programa en C que defina una estructura para almacenar un número complejo (parte real y parte imaginaria). El programa deberá llenar un arreglo de máximo 10 elementos de este tipo de estructura. El llenado se realizará a través de la generación de números aleatorios tanto para la parte real como para la parte imaginaria.

Adicionalmente se contará con tres funciones, una que imprima el contenido del arreglo de manera recursiva, otra que obtenga la sumatoria de las partes reales de los elementos del arreglo y una que obtenga la sumatoria de las partes imaginarias de los elementos del arreglo, las sumatorias se deberán obtener también de forma recursiva.

Tiene muchisimo tiempo que no uso C, la verdad no recuerdo muy bien. Lo unico que tengo es esto:

#include <stdio.h>
#include <stdlib.h>

struct complejo
{
float x;
float y;
};
typedef struct complejo Complejo;

Complejo suma( Complejo, Complejo);

void escribir_complejo(Complejo);

int main()
{
Complejo z,z1,z2;
z1= leer_complejo();
z2= leer_complejo();
z= suma(z1,z2);
printf("La suma es: \n'");
escribir_complejo(z);

return 0;
}

Complejo leer_complejo(void)
{
Complejo z;
printf("Introduce la parte real del complejo: ");
scanf("%f",&z.x);
printf("Introduce la parte imaginaria del complejo: ");
scanf("%f",&z.y);
return z;
}

void escribir_complejo(Complejo z)
{
printf ("El numero complejo es: " );z.x,z.y;
return;
}

Complejo suma(Complejo z1,Complejo z2)
{
Complejo z;
z.x =z1.x + z2.x;
z.y =z1.y + z2.y;
return z;
}


En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Suma de números complejos
« Respuesta #1 en: 18 Octubre 2019, 01:10 am »

Los códigos ponlos entre etiquetas de Código GeSHi... y a ser posible bien tabulados

De lo que tienes: las funciones <suma()> y <leer_complejo()> están bien implementadas y la función <escribir_complejo()> tiene un error a la hora de mostrar los valores.
Código
  1. void escribirComplejo(Complejo numero){
  2.    printf("La parte real es: %f y la parte compleja es: %f", numero.x, numero.y);
  3. }
Se pone primero una cadena entre comillas con el texto que se quiera mostrar y el formato de las variables que se van a mostrar y finalizada la cadena entre comillas, se ponen las variables que se sustituirán en los %f de la cadena.
Al ser una función que no devuelve nada, es innecesario poner el <return> al final.

Veo que todavía te faltan algunas de las cosas que te piden así que te pongo por aquí cosillas aisladas que tendrás que ver cómo las usas para lo que te están pidiendo.
  • Crear número aleatorios: para crear un número entero aleatorio en el intervalo [minimo, maximo]:
Código
  1. #include <stdlib.h>
  2. #include <ctime> // se usa para la funcion time
  3.  
  4. int main(){
  5.    srand(time(NULL)); // semilla para generar numeros aleatorios. Si no se pone esta linea los numeros seran siempre los mismos
  6.    int numeroAleatorio = minimo + rand() % (maximo - minimo + 1);
  7. }

  • Rellenar un array con números:
Código
  1. #define SIZE 10 // definimos la longitud maxima del array
  2.  
  3. int main(){
  4.    int numeros[SIZE];
  5.    for(size_t i = 0; i < SIZE; ++i) // en vez de size_t se puede usar int tambien
  6.        numeros[i] = i; // se guardara {0,1,2,3,4,5,6,7,8,9}
  7. }

  • Obtener sumas de manera recursiva. Te pongo un ejemplo que continuaría con el código anterior. Sería sumar de manera recursiva los 10 valores que hemos guardado.
Código
  1. int sumarRecursiva(int numeros[], int size, int currentIndex){
  2.    if(currentIndex == size-1)
  3.        return numeros[currentIndex];
  4.    return numeros[currentIndex] + sumarRecursiva(numeros, SIZE, currentIndex + 1);
  5. }

Como creo que te estoy dando bastante hecho aunque tengas que adaptarlo a tu problema, te dejo la parte de mostrar el array de manera recursiva para que lo intentes tú antes de decirte también cómo se hace.


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con multiplicacion de n numeros complejos
Programación C/C++
cho250425 1 2,816 Último mensaje 27 Noviembre 2016, 16:28 pm
por ivancea96
duda numeros complejos ec segundo grado
Programación C/C++
Chapielchapas 1 2,076 Último mensaje 20 Febrero 2018, 19:23 pm
por stderr
Ayuda con cola dinámica para calculadora de números complejos
Programación C/C++
evanderxzxtg 1 2,193 Último mensaje 20 Marzo 2019, 06:14 am
por evanderxzxtg
como hago para mostrara la suma  de los numeros porfectos
Java
Shester1996 1 2,390 Último mensaje 17 Noviembre 2019, 20:36 pm
por engel lex
Operaciones con números complejos
Programación C/C++
hh00t 1 6,362 Último mensaje 14 Marzo 2024, 09:17 am
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines