proszę o pomoc (co z tym stringiem?)

0

Utworzyć moduł turbo pascala zawierający implementację czterech funkcji arytmetycznych:

function L_add(x,y:string):string
function L_sub(x,y:string):string
function L_mul(x,y:string):string
function L_div(x,y:string):string

wykonujących podstawowe działania arytmetyczne czyli odpowiednio: dodawanie (x+y), odejmowanie (x-y), mnożenie (x*y) i dzielenie (x/y) na liczbach całkowitych o długości do 100 znaków każda (a zatem wynik mnożenia może mieć nawet 200 znaków długości).

Dodatkowo funkcja L_div może mieć trzeci parametr typu boolean działający w ten sposób, że w przypadku wartości TRUE funkcja będzie wykonywała dzielenie zmiennoprzecinkowe , a w przypadku wartości FALSE - dzielenie całkowite. Przykład:


write(L_div(10,4,TRUE)); (2,5)
write(L_div(10,4,FALSE)); (2)

Oceniana będzie kompletność rozwiązania, w następnej kolejności będą brane pod uwagę: odporność na błędy, szybkość działania, elegancja algorytmu. ;-(

0

Myśle sobie tak :
Wprowadzony string jako x czy y sprawdzasz jego długość np 100 znaków dla x 50 dla y więc następnie dzielisz te stringi na części.
Dla bajtu - 2 znaki
Dla 2bajtów - 4 znaki
dla 4 bajtów - 8 znaków
(wybierasz sam)
Każdą z części konwetujesz na liczbę czyli strtoint
a dalej to już proste na każdej części czyli x1 do y1 ; x2 do y2 wykonujesz operacje matematyczne.
Jeżeli wynik danej części przekroczy wartość dla bajtu 2 znaków dla 2bajtów 4 znaków itd nadwyżkę dodajesz do kolejnej części.

Jestem pewien , że tak łatwo nie da się rozwiązać problemu ale pomysł jest tylko trzeba to dopracować.

POWODZENIA.

0

proponuję zajrzeć tutaj: http://4programmers.net/download.php?id=1184. jest to kod źródłowy biblioteki procedur operujących na dowolnie dużych liczbach (co prawda w Turbo Pascalu i nie na stringach, ale zasada działania jest taka sama).

0

Proponuję liczyć to w słupkach, tak, jak uczyli w podstawówce. Z dodawaniem nie ma żadnego problemu, z mnożeniem też, problem może się pojawić jedynie przy dzieleniu i odejmowaniu. Ale i tak warto spróbować samemu.

0

Mozesz to zrobic w oparciu o tablice. Cyferka w jednej komórce. Wtedy bedziesz mogl zrobic kalkulator bez ograniczen (oprocz pamieciowych kompa:-D ).
Oczywiscie jezeli dobrze zrozumialem sens tego programu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1