Текущий архив: 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