commit f57dadaeaccae0856ab028166cd48afaa340f22c Author: Jonathan Turner Date: Wed Oct 25 10:04:40 2023 -0400 first commit diff --git a/.#main.adb# b/.#main.adb# new file mode 100644 index 0000000..0706e48 --- /dev/null +++ b/.#main.adb# @@ -0,0 +1,10 @@ +with ComplexCalculator; +with Ada.Text_IO; + +procedure Main is +begin + -- Your program logic goes here + + -- Example: Display a message + Ada.Text_IO.Put_Line("Hello, Ada!"); +end Main; diff --git a/complexcalculator.adb b/complexcalculator.adb new file mode 100644 index 0000000..29643a7 --- /dev/null +++ b/complexcalculator.adb @@ -0,0 +1,50 @@ +with Ada.Text_IO; + +package body ComplexCalculator is + + -- Adds two complex numbers + function Add(First, Second : ComplexNumber) return ComplexNumber is + Result : ComplexNumber; + + begin + Result.Real := First.Real + Second.Real; + Result.Imaginary := First.Imaginary + Second.Imaginary; + return Result; + + end Add; + + -- Subtracts to complex Numbers + function Sub(First, Second : ComplexNumber) return ComplexNumber is + Result : ComplexNumber; + + begin + Result.Real := First.Real - Second.Real; + Result.Imaginary := First.Imaginary - Second.Imaginary; + return Result; + + end Sub; + + -- Divides two complex numbers + function Divide(First, Second : ComplexNumber) return ComplexNumber is + Result : ComplexNumber; + Bottom : Float; -- improved readability & writability due to it repeating + begin + Bottom := (First.Real ** 2.0) + (Second.Imaginary ** 2.0); + + Result.Real := ((First.Real * Second.Real) + (First.Imaginary * Second.Imaginary)) / Bottom; + Result.Imaginary := ((First.Imaginary * Second.Real) - (First.Real * Second.Imaginary)) / Bottom; + return Result; + + end Divide; + + -- Multiply two complex numbers + function Multiply(First, Second : ComplexNumber) return ComplexNumber is + Result : ComplexNumber; + + begin + Result.Real := (First.Real * Second.Real) - (First.Imaginary - Second.Imaginary); + Result.Imaginary := (First.Real * Second.Imaginary) + (First.Imaginary * Second.Real); + return Result; + + end Multiply; +end ComplexCalculator; diff --git a/complexcalculator.ads b/complexcalculator.ads new file mode 100644 index 0000000..b7992fc --- /dev/null +++ b/complexcalculator.ads @@ -0,0 +1,16 @@ +package ComplexCalculator is + -- holds the records and fields for the numbers + type ComplexNumber is record + + Real : Float; + Imaginary : Float; + + end record; + + -- Defines the functions for calculations. + function Add(First, Second : ComplexNumber) return ComplexNumber; + function Sub(First, Second : ComplexNumber) return ComplexNumber; + function Multiply(First, Second : ComplexNumber) return ComplexNumber; + function Divide(First, Second : ComplexNumber) return ComplexNumber; + +end ComplexCalculator; diff --git a/main.adb b/main.adb new file mode 100644 index 0000000..96f5862 --- /dev/null +++ b/main.adb @@ -0,0 +1,10 @@ +with ComplexCalculator; +with Ada.Text_IO; + +procedure main is +begin + -- Your program logic goes here + + -- Example: Display a message + Ada.Text_IO.Put_Line("Hello, Ada!"); +end main; diff --git a/main.ali b/main.ali new file mode 100644 index 0000000..2de3d57 --- /dev/null +++ b/main.ali @@ -0,0 +1,57 @@ +V "GNAT Lib v2021" +M P W=b +A -mtune=generic +A -march=x86-64 +P ZX + +RN +RV NO_IO + +U main%b main.adb 6afd184e NE OO SU IL +W ada%s ada.ads ada.ali +Z ada.strings.text_buffers%s a-sttebu.adb a-sttebu.ali +W ada.text_io%s a-textio.adb a-textio.ali +W complexcalculator%s complexcalculator.adb complexcalculator.ali + +D ada.ads 20210520051132 76789da1 ada%s +D a-except.ads 20210520051128 946f3014 ada.exceptions%s +D a-ioexce.ads 20210520051128 e4a01f64 ada.io_exceptions%s +D a-stream.ads 20210520051130 119b8fb3 ada.streams%s +D a-string.ads 20210520051130 90ac6797 ada.strings%s +D a-sttebu.ads 20210520051130 18209c64 ada.strings.text_buffers%s +D a-stuten.ads 20210520051130 808c40ad ada.strings.utf_encoding%s +D a-tags.ads 20210520051130 9eaa38c6 ada.tags%s +D a-textio.ads 20210520051130 aef4d56d ada.text_io%s +D a-unccon.ads 20210520051130 0e9b276f ada.unchecked_conversion%s +D complexcalculator.ads 20231024191420 1e56cc72 complexcalculator%s +D interfac.ads 20210520051132 edec285f interfaces%s +D i-cstrea.ads 20210520051132 e53d8b8e interfaces.c_streams%s +D main.adb 20231024191028 da5f0151 main%b +D system.ads 20210520051136 2ffa5114 system%s +D s-crtl.ads 20210520051132 0ebbdb71 system.crtl%s +D s-exctab.ads 20210520051132 54135002 system.exception_table%s +D s-ficobl.ads 20210520051132 078245e4 system.file_control_block%s +D s-parame.ads 20210520051134 4752c4cb system.parameters%s +D s-putima.ads 20210520051134 4e095881 system.put_images%s +D s-secsta.ads 20210520051134 9b3ab94b system.secondary_stack%s +D s-soflin.ads 20210520051134 a7318a92 system.soft_links%s +D s-stache.ads 20210520051134 a37c21ec system.stack_checking%s +D s-stalib.ads 20210520051134 472fbca8 system.standard_library%s +D s-stoele.ads 20210520051134 2dc34a04 system.storage_elements%s +D s-stoele.adb 20210520051134 ed88f8fb system.storage_elements%b +D s-traent.ads 20210520051134 26a8d361 system.traceback_entries%s +D s-unstyp.ads 20210520051134 2b077493 system.unsigned_types%s +D s-wchcon.ads 20210520051136 1b7d22d2 system.wch_con%s +D unchconv.ads 20210520051136 ca2f9e18 unchecked_conversion%s +G a e +G c Z b b [main standard 4 11 none] +X 1 ada.ads +16K9*Ada 20e8 14|2r6 9r4 +X 9 a-textio.ads +58K13*Text_IO 725e16 14|2w10 9r8 +506U14*Put_Line 14|9s16 +X 11 complexcalculator.ads +1K9*ComplexCalculator 16e22 14|1w6 +X 14 main.adb +4U11*main 4b11 10l5 10t9 + diff --git a/main.o b/main.o new file mode 100644 index 0000000..e1f2e9c Binary files /dev/null and b/main.o differ