From 071cec924cef6716b4fb5dcf41e20620a723415f Mon Sep 17 00:00:00 2001 From: Artem-Darius Weber Date: Thu, 17 Apr 2025 13:31:55 +0300 Subject: [PATCH] (lab 5) feat: add Number Traversal algorithms --- lab 5/NumberTraversal/NumberTraversal.fsproj | 12 +++++++ lab 5/NumberTraversal/Program.fs | 33 ++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100755 lab 5/NumberTraversal/NumberTraversal.fsproj create mode 100755 lab 5/NumberTraversal/Program.fs diff --git a/lab 5/NumberTraversal/NumberTraversal.fsproj b/lab 5/NumberTraversal/NumberTraversal.fsproj new file mode 100755 index 0000000..299cf40 --- /dev/null +++ b/lab 5/NumberTraversal/NumberTraversal.fsproj @@ -0,0 +1,12 @@ + + + + Exe + net7.0 + + + + + + + diff --git a/lab 5/NumberTraversal/Program.fs b/lab 5/NumberTraversal/Program.fs new file mode 100755 index 0000000..2cba6bd --- /dev/null +++ b/lab 5/NumberTraversal/Program.fs @@ -0,0 +1,33 @@ +// For more information see https://aka.ms/fsharp-console-apps +printfn "Hello from F#" + +let rec traverseNumber' n f acc = + match n with + | 0 -> acc + | n -> traverseNumber' (n / 10) f (f acc (n % 10)) + +let traverseNumber n f init = traverseNumber' n f init + +let sum x y = x + y +let mul x y = x * y +let min x y = if x < y then x else y +let max x y = if x > y then x else y + +[] +let main argv = + System.Console.WriteLine("Введите число:") + let number = System.Console.ReadLine() |> int + + let sumResult = traverseNumber number sum 0 + System.Console.WriteLine($"Сумма цифр: {sumResult}") + + let mulResult = traverseNumber number mul 1 + System.Console.WriteLine($"Произведение цифр: {mulResult}") + + let minResult = traverseNumber number min System.Int32.MaxValue + System.Console.WriteLine($"Минимальная цифра: {minResult}") + + let maxResult = traverseNumber number max 0 + System.Console.WriteLine($"Максимальная цифра: {maxResult}") + + 0