/*
* @file lab5_3.c
* @author Герасимюк Д.В., гр. 515і1
* @date 18 квітня 2024
* @brief Лабораторна робота №5, варіант 3
* Застосування вказівників. Завдання 3
*/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <locale.h>
#include "add_complex.h"
#include "sub_complex.h"
int main()
{
setlocale(LC_ALL, "ukr");
float complex1[2]; // Перше комплексне число
float complex2[2]; // Друге комплексне число
float result_add[2];
float result_sub[2];
// Введення першого комплексного числа
printf("Введiть дiйсну частину першого комплексного числа: ");
scanf("%f", &complex1[0]);
printf("Введiть уявну частину першого комплексного числа: ");
scanf("%f", &complex1[1]);
// Введення другого комплексного числа
printf("Введіть дiйсну частину другого комплексного числа: ");
scanf("%f", &complex2[0]);
printf("Введiть уявну частину другого комплексного числа: ");
scanf("%f", &complex2[1]);
// Додавання комплексних чисел
add_complex(complex1, complex2, result_add);
// Віднімання комплексних чисел
sub_complex(complex1, complex2, result_sub);
// Результати
printf("Результат додавання: %.2f + %.2fi\n", result_add[0], result_add[1]);
printf("Результат вiднiмання: %.2f + %.2fi\n", result_sub[0], result_sub[1]);
return 0;
}
/*
* @file add_complex.h
* @author Герасимюк Д.В., гр. 515і1
* @date 18 квітня 2024
* @brief Лабораторна робота №5, варіант 3
* Застосування вказівників. Завдання 3
*/
#include <stdio.h>
#pragma once
/*
* @brief Функція додавання двох комплексних чисел.
*
* @param c1 Вказівник на масив, що містить перше комплексне число у вигляді [дійсна частина, уявна частина].
* @param c2 Вказівник на масив, що містить друге комплексне число у вигляді [дійсна частина, уявна частина].
* @param c3 Вказівник на масив, в який буде збережено результат додавання у вигляді [дійсна частина, уявна частина].
*/
void add_complex(float* c1, float* c2, float* c3)
{
c3[0] = c1[0] + c2[0]; // Дійсна частина
c3[1] = c1[1] + c2[1]; // Уявна частина
}
/*
* @file sub_complex.h
* @author Герасимюк Д.В., гр. 515і1
* @date 18 квітня 2024
* @brief Лабораторна робота №5, варіант 3
* Застосування вказівників. Завдання 3
*/
#include <stdio.h>
#pragma once
/**
* @brief Функція віднімання двох комплексних чисел.
*
* @param c1 Вказівник на масив, що містить перше комплексне число у вигляді [дійсна частина, уявна частина].
* @param c2 Вказівник на масив, що містить друге комплексне число у вигляді [дійсна частина, уявна частина].
* @param c3 Вказівник на масив, в який буде збережено результат віднімання у вигляді [дійсна частина, уявна частина].
*/
void sub_complex(float* c1, float* c2, float* c3)
{
c3[0] = c1[0] - c2[0]; // Дійсна частина
c3[1] = c1[1] - c2[1]; // Уявна частина
}