2013-06-13 2 views
1

Итак, я пишу алгоритм TI-BASIC для своего калькулятора, который делает отношения. Вот код:Будет ли этот алгоритм работать всегда?

Disp "GIVE ONE NUMBER" 
Prompt A 
Disp "GIVE A SECOND NUMBER" 
Prompt B 
While fPart(A)≠0 or fPart(B)≠0 
A*10->A 
B*10->B 
End 
gcd(A,B)->C 
Disp A/C 
Disp B/C 

В большинстве случаев он работает. Есть ли недостатки/угловые случаи этого кода, которые я не заметил? Благодарю.

+0

Очень хороший ответ. – Someone

+0

Мне также нравится название. Фильм Fight Club был ужасен. – Someone

+0

Когда я увидел этот помеченный 'ti-basic' мой разум мгновенно бросился обратно в мое детство TI-99/4A с его« CALL SOUND »и Parsec. Был разочарован, увидев, что это графический калькулятор. Вздох. –

ответ

2

Он будет работать, но есть еще более холодный способ сделать это без петель.

+0

Значит, вы определенно думаете, что оба будут работать? Также я предполагаю, что преимущество вашего алгоритма - это быстрее? – Someone

+0

Я не знаю, быстрее ли это. У меня есть потенциал для округления вопросов с разделением. Оба решения должны работать. –

+0

Звучит неплохо, спасибо! – Someone

1

Да он будет работать и так будет ответ Жан-Бернар Пеллерен, но лучше всего очистить его:

Input "GIVE ONE NUMBER",A 
Input "GIVE A SECOND NUMBER",B 
1/fPart(A)->F 
A*F->A 
B*F->B 
1/fPart(B)->F 
A*F->A 
B*F->B 
gcd(A,B)->C 
Disp A/C 
Disp B/C