Главная страница
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.052 c
14-1133531149
Александр Иванов
2005-12-02 16:45
2005.12.25
Год спустя...


2-1133883317
avsam
2005-12-06 18:35
2005.12.25
Контраст: цвет панели и надписи на панели.


2-1134152414
pussycat
2005-12-09 21:20
2005.12.25
Копирование файла


2-1134300848
злобная танька
2005-12-11 14:34
2005.12.25
ООП: виртуальные методы


2-1133963050
cp.Silver
2005-12-07 16:44
2005.12.25
THandle