55 lines
1.3 KiB
Zig
55 lines
1.3 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();
|
|
|
|
const num: complexNumber = complexNumber{.real = 1, .img = 2};
|
|
try print(writer, num);
|
|
try writer.print("\n", .{});
|
|
|
|
var num1: complexNumber = complexNumber{.real = 1, .img = 2};
|
|
const num2: complexNumber = complexNumber{.real = 2, .img = 3};
|
|
|
|
try writer.print("Num1: ", .{});
|
|
try print(writer, num1);
|
|
try writer.print("\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", .{});
|
|
}
|