74 lines
1.9 KiB
Zig
74 lines
1.9 KiB
Zig
const std = @import("std");
|
|
|
|
const complexNumber = struct {
|
|
real: i32,
|
|
img: i32,
|
|
};
|
|
|
|
|
|
pub fn add(num1: *complexNumber, num2: complexNumber) void {
|
|
num1.real = num1.real + num2.real;
|
|
num1.img = num1.img + num2.img;
|
|
}
|
|
|
|
|
|
pub fn sub(num1: *complexNumber, num2: complexNumber) void {
|
|
num1.real = num1.real - num2.real;
|
|
num1.img = num1.img - num2.img;
|
|
}
|
|
|
|
|
|
pub fn mul(num1: *complexNumber, num2: complexNumber) void {
|
|
num1.real = (num1.real * num2.real) - (num1.img * num2.img);
|
|
num1.img = (num1.real * num2.img) + (num1.img * num2.real);
|
|
}
|
|
|
|
|
|
pub fn print(writer: anytype, num: complexNumber) !void {
|
|
try writer.print("({d} + {d}i)", .{num.real, num.img});
|
|
}
|
|
|
|
|
|
pub fn main() !void {
|
|
const writer = std.io.getStdOut().writer();
|
|
|
|
// Add
|
|
var num1: complexNumber = complexNumber{.real = 1, .img = 2};
|
|
const num2: complexNumber = complexNumber{.real = 2, .img = 3};
|
|
|
|
try writer.print("Add: \n", .{});
|
|
try print(writer, num1);
|
|
try writer.print(" + ", .{});
|
|
try print(writer, num2);
|
|
try writer.print(" = ", .{});
|
|
add(&num1, num2);
|
|
try print(writer, num1);
|
|
try writer.print("\n", .{});
|
|
|
|
// Sub
|
|
var num3: complexNumber = complexNumber{.real = 4, .img = 6};
|
|
const num4: complexNumber = complexNumber{.real = 2, .img = 4};
|
|
|
|
try writer.print("Sub: \n", .{});
|
|
try print(writer, num3);
|
|
try writer.print(" - ", .{});
|
|
try print(writer, num4);
|
|
try writer.print(" = ", .{});
|
|
sub(&num3, num4);
|
|
try print(writer, num3);
|
|
try writer.print("\n", .{});
|
|
|
|
// Mul
|
|
var num5: complexNumber = complexNumber{.real = 2, .img = 3};
|
|
const num6: complexNumber = complexNumber{.real = 4, .img = 5};
|
|
|
|
try writer.print("Mul: \n", .{});
|
|
try print(writer, num5);
|
|
try writer.print(" * ", .{});
|
|
try print(writer, num6);
|
|
try writer.print(" = ", .{});
|
|
mul(&num5, num6);
|
|
try print(writer, num5);
|
|
try writer.print("\n", .{});
|
|
}
|