| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Задача на Pascal |
| Автор: Artem_ 9.11.2003, 17:38 |
| Люди помогите. Нужно мне прогу на Паскале и на Си, чтоб умела выполнять преобразования: Длина задана в дюймах (1 дюйм = 2,54 см). Перевести ее в метрическую систему, то есть выразить в метрах, сантиметрах и миллиметрах. Так, например, 21 дюйм = 0 м 53 см 3,4 мм. |
| Автор: NiJazz 9.11.2003, 18:04 |
| Artem_, нужно сколько-то дюймов в метры переделать что ли? В чём проблема |
| Автор: Artem_ 9.11.2003, 18:11 |
| Ну. Тока как составить формулу? И writeln(типа тут метры:...., тут сантиметры...., тут милиметры...); |
| Автор: <Spawn> 9.11.2003, 18:52 | ||||
Незнаю есть ли этот модуль в паскале, но в Дельфе есть функция Convert. Например:
В StdConvs определены нужные тебе константы для преобразования:
|
| Автор: December 9.11.2003, 22:47 |
| Artem_ Умножаешь дюймы на 2.54; Число делишь на 100000 - получаешь километры (в целой части); делишь на 100 - получаешь метры и т.д. комбинируя вычисление метров и вычитание из исходного числа, получаешь все интересующие тебя единицы. |
| Автор: dvs 9.11.2003, 23:37 | ||
А потом
где km, m, cm, mm - это переменные, вкоторые ты помешаешь результат, о котором сказал господин December. |
| Автор: NiJazz 10.11.2003, 00:01 | ||
Artem_, лови... Надеюсь, это то, что нужно...
Удачи! |
| Автор: December 10.11.2003, 21:09 |
| Не, NiJazz, товарисчу Artem_ нужно разбить некоторую длину x, выраженную в дюймах, на эквивалентную в формате n метров + m сантиметров + p миллиметров, причём m+n+p=x. Я так понял. Надо после вычисления количества метров вычитать из общей суммы эквивалентную длину. То же для сантиметров. |
| Автор: NiJazz 10.11.2003, 22:22 |
| December, не, как-то они загнули тогда... |
| Автор: Artem_ 11.11.2003, 05:18 |
| Вот, я тут сам написал, а она при 1000 глючит!? var n,duim,x,y,z:real; begin write('n='); readln(n); duim:=2.54*n/100; x:=trunc(duim); y:=trunc((duim-x)*100); z:=(duim-x-y/100)*1000; write(x:2:0,' m ',y:2:0,' cm ',z:2:1,' mm'); readln; end. В чём я ошибся? |
| Автор: Pakshin A. S. 11.11.2003, 12:04 |
| Проверь её в пошаговом режиме; посмотри на значения переменных: совпадают ли они с нужными. |
| Автор: <Spawn> 11.11.2003, 13:06 | ||
Artem_ Что то ты намудрил
|
| Автор: Paradox 11.11.2003, 14:29 |
| Artem_ ПРИ 1000 чего ? я в твоей проге n задавал равным даже 1000000 все нормально... |