PR3-Klausur-Uben/ZIG/u2Vector.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", .{});
}