Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.25;
Скачать: CL | DM;

Вниз

Помогите перевести код из Turbo Pascal в Delphi.   Найти похожие ветки 

 
Максим ©   (2005-12-06 17:50) [0]

Суть программы такая: Вывести таблицу соответствий между температурными шкалами Цельсия и Фаренгейта в интервале температур от точки замерзания воды до точки ее кипения.

Формула для пересчета: Tf = 9/5*Tc + 32.

Есть такой код в Turbo Pascal:

program Celsius_to_Fahrenheit;
var
   i, Celsius. Fahrenheit: Word;
begin
   Writeln("Таблица соответствия между температурными шкалами");
   Writeln("Цельсия и Фаренгейта");
   Writeln;
   for i := 0 to 20 do begin
       Celsius := 5 * i;
       Fahrenheit := 32 + Celsius * 9 div 5;
       Write("   C = " , Celsius);
       Write("   F = " , Fahrenheit);
       Writeln;
   end;
   Writeln("Нажмите    <Enter>");
   Readln;
end.

Кто поможет перевести ее в Delphi?


 
MBo ©   (2005-12-06 17:57) [1]

Ее не надо переводить, все и так будет работать ;)

Стоит только, пожалуй, заменить беззнаковый тип Word на Integer


 
Максим ©   (2005-12-06 18:06) [2]

Ничего не показывает при компиляции. :( Просто Форма и все.


 
Leonid Troyanovsky ©   (2005-12-06 18:09) [3]


> MBo ©   (06.12.05 17:57) [1]
> Ее не надо переводить, все и так будет работать ;)


Пожалуй, если заменить точку на запятую в var,
добавить {$APTYPE CONSOLE}.
Ну, и перевести выводы writeln на английский.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2005-12-06 18:11) [4]


> Максим ©   (06.12.05 18:06) [2]
> Ничего не показывает при компиляции. :( Просто Форма и все.


Форму надо сразу удалить из проекта.
Писать прямо в проекте, Project - View source.
Ну, и [3].

--
Regards, LVT.


 
Максим ©   (2005-12-06 18:13) [5]

А в форме никак нельзя? Я не прошу чисто переписать все строки кода Паскаля.

Я хочу посмотреть как это будет выглядеть в форме Дельфи.


 
MBo ©   (2005-12-06 18:16) [6]

>добавить {$APTYPE CONSOLE}.
можно также использовать  ключ компилятора -сс


 
Leonid Troyanovsky ©   (2005-12-06 18:23) [7]


> Максим ©   (06.12.05 18:13) [5]
> Я хочу посмотреть как это будет выглядеть в форме Дельфи.


А.. Ну, тогда нужно определить в качестве устройства
вывода, скажем, TMemo (Object Pascal Language Guide:
Device functions) и назначить его для writeln, readln.

--
Regards, LVT.


 
MBo ©   (2005-12-06 18:38) [8]

Кладешь на форму Label, Edit и UpDown (с закладки Win32),
в Object Inspector устанавливаешь последнему свойство Associate  - Edit1,
затем в Events щелкаешь на OnClick, появляется обработчик этого события, где вписываешь строку вывода результата, а вычисление оформляешь функцией (выше по тексту, если не делать функцию методом формы):

function Celsius_to_Fahrenheit(Cels: Integer): Integer;
begin
 Result := Cels * 9 div 5 + 32;
end;

procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
 Label1.Caption := IntToStr(Celsius_to_Fahrenheit(UpDown1.Position));
end;

Запустилось? Значит, ты стал батонокидателем ;))


 
Максим ©   (2005-12-07 04:48) [9]

Спасибо. Запустилось :)


 
Anatoly Podgoretsky ©   (2005-12-07 08:50) [10]

Максим ©   (06.12.05 17:50)  
Формула для пересчета:
Tf = 9/5*Tc + 32.
Fahrenheit := 32 + Celsius * 9 div 5;


Программа и формула не соответствуют друг другу

9/5 = 1.8
9 div 5 = 1


 
Brother ©   (2005-12-07 08:53) [11]


> Anatoly Podgoretsky ©   (07.12.05 08:50) [10]
> Максим ©   (06.12.05 17:50)  
> Формула для пересчета:
> Tf = 9/5*Tc + 32.
> Fahrenheit := 32 + Celsius * 9 div 5;
>
> Программа и формула не соответствуют друг другу
>
> 9/5 = 1.8
> 9 div 5 = 1

Дельное замечание я даже и не заметил сразу!


 
Anatoly Podgoretsky ©   (2005-12-07 09:02) [12]

А это    i, Celsius. Fahrenheit: Word; не профессионально как в Турбо Паскаль, так и в Дельфи. Как минимум потеряли отрицательные температуры. Ну и про точку тоже сказали. Что то много ошибок для такой простой вещи.
Грюшница водку делала?


 
MBo ©   (2005-12-07 09:04) [13]

>Anatoly Podgoretsky ©   (07.12.05 08:50) [10]
Если не обращать внимание на потерю точности при целочисленной арифметике, то кто это вдруг установил приоритет деления выше умножения? ;)



Страницы: 1 вся ветка

Текущий архив: 2005.12.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.047 c
14-1133427002
WondeRu
2005-12-01 11:50
2005.12.25
Какое приложение написать на J2ME?


2-1134146773
kami
2005-12-09 19:46
2005.12.25
Не работает GetWindowModuleFileName


14-1133468035
Lamer@fools.ua
2005-12-01 23:13
2005.12.25
М-да уж :/


2-1133850067
Evgenxxxx
2005-12-06 09:21
2005.12.25
Преобразование типов


14-1133370769
Sun bittern
2005-11-30 20:12
2005.12.25
Поиск файлов "Win+F" <> "FindFirst" <> "FindFirstFile"