Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задача на Pascal, Составить перекодер 
:(
    Опции темы
Artem_
Дата 9.11.2003, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.11.2003

Репутация: нет
Всего: нет



Люди помогите. baaa.gif baaa.gif withstupid.gif withstupid.gif butbut.gif butbut.gif butbut.gif
Нужно мне прогу на Паскале и на Си, чтоб умела выполнять преобразования:

Длина задана в дюймах (1 дюйм = 2,54 см).
Перевести ее в метрическую систему, то есть выразить в метрах, сантиметрах и миллиметрах.

Так, например, 21 дюйм = 0 м 53 см 3,4 мм.

Это сообщение отредактировал(а) Artem_ - 9.11.2003, 18:27
PM MAIL   Вверх
NiJazz
Дата 9.11.2003, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 6
Всего: 23



Artem_, нужно сколько-то дюймов в метры переделать что ли? В чём проблемаconfused.gif
PM MAIL   Вверх
Artem_
Дата 9.11.2003, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.11.2003

Репутация: нет
Всего: нет



Ну. Тока как составить формулу? И writeln(типа тут метры:...., тут сантиметры...., тут милиметры...);

PM MAIL   Вверх
<Spawn>
Дата 9.11.2003, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Незнаю есть ли этот модуль в паскале, но в Дельфе есть функция Convert. Например:

Код
uses  ... ConvUtils, StdConvs;

begin
 ShowMessage(FloatToStr(Convert(30, duMillimeters, duMeters)));
end;


В StdConvs определены нужные тебе константы для преобразования:

Код
duMeters, duMillimeters, duKilometers и т. д.





--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
December
Дата 9.11.2003, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



Artem_
Умножаешь дюймы на 2.54;
Число делишь на 100000 - получаешь километры (в целой части);
делишь на 100 - получаешь метры
и т.д.
комбинируя вычисление метров и вычитание из исходного числа, получаешь все интересующие тебя единицы.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
dvs
Дата 9.11.2003, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Владимир Драпалюк
**


Профиль
Группа: Участник Клуба
Сообщений: 660
Регистрация: 25.8.2003
Где: Воронеж->Москв а

Репутация: нет
Всего: 19



А потом
Код

Writeln(km,' Километры', m, ' метры', cm, ' санитметры', mm, ' миллиметры');


где km, m, cm, mm - это переменные, вкоторые ты помешаешь результат, о котором сказал господин December.


--------------------
Любите друг друга!
PM MAIL WWW ICQ   Вверх
NiJazz
Дата 10.11.2003, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 6
Всего: 23



Artem_, лови... Надеюсь, это то, что нужно...

Код


var inch: real;
   meter: real;
   santi: real;
   milli: real;

function InchToMeter(inch: real):real;
var InchInMeter: real;
   NeededValue: real;
begin
 InchInMeter:=0.5334/21;
 InchInMeter:=InchInMeter*inch;
 InchToMeter:=InchInMeter;
end;

BEGIN
 writeln('Введите чило дюймов: ');
 read(inch);
 meter:=InchToMeter(inch);
 santi:=meter/100;
 milli:=meter/1000;
 writeln('В метрах: ', meter:2:2);
 writeln('В сантиметрах: ', santi:2:6);
 writeln('В миллиметрах: ', milli:2:7);
 readln;
 readln;
END.



Удачи!
PM MAIL   Вверх
December
Дата 10.11.2003, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



Не, NiJazz, товарисчу Artem_ нужно разбить некоторую длину x, выраженную в дюймах, на эквивалентную в формате n метров + m сантиметров + p миллиметров, причём m+n+p=x. Я так понял. smile.gif
Надо после вычисления количества метров вычитать из общей суммы эквивалентную длину. То же для сантиметров.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
NiJazz
Дата 10.11.2003, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 6
Всего: 23



December, не, как-то они загнули тогда... smile.gif Я просто подумал, что навыков у него нет никаких, вот и кинул строки...
PM MAIL   Вверх
Artem_
  Дата 11.11.2003, 05:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.11.2003

Репутация: нет
Всего: нет



Вот, я тут сам написал, а она при 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.

В чём я ошибся?
PM MAIL   Вверх
Pakshin A. S.
Дата 11.11.2003, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Проверь её в пошаговом режиме; посмотри на значения переменных: совпадают ли они с нужными.
PM   Вверх
<Spawn>
Дата 11.11.2003, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Artem_ Что то ты намудрил smile.gif Поэксперементируй с этим:

Код
const
 CV_BASE = 1;
 CV_MILLIMETER = CV_BASE;
 CV_SANTIMETER = CV_MILLIMETER * 10;
 CV_METER = CV_SANTIMETER * 100;
 CV_KILOMETER = CV_METER * 1000;
 CV_INCH = CV_SANTIMETER * 2.54;
...

function _convert(Value: Double; FromVal, ToVal:Double):Double;
begin
 _convert:= (Value * FromVal) / ToVal;
end;

//Так вызываешь
var
cResult:Double;
begin
 cResult:= _convert(21, CV_INCH, CV_METER);
 WriteLn(cResult);
end;


Это сообщение отредактировал(а) <Spawn> - 11.11.2003, 13:09


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Paradox
Дата 11.11.2003, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1135
Регистрация: 18.11.2002
Где: Россия

Репутация: нет
Всего: 1



Artem_ ПРИ 1000 чего ? я в твоей проге n задавал равным даже 1000000 все нормально...


--------------------
---
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0993 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.