Форум: "Прочее";
Текущий архив: 2008.01.27;
Скачать: [xml.tar.bz2];
ВнизDelphi To TP Найти похожие ветки
← →
{RASkov} © (2007-12-10 19:43) [0]"Переведите" вот этот код с Делфи на Турбо Паскаль пожалуйста:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var N: Integer;
begin
Write("Введите длину ребра куба: ");
ReadLn(N);
Writeln("Площадь грани ="+IntToStr(N*N));
Writeln("Вся площадь ="+IntToStr(N*N*6));
Writeln("Объем ="+IntToStr(N*N*N));
Readln;
end.
Попросила одна девулька(соседка) помочь с контрольным заданием, там нужно на ТП.... А я и не знаю как там в ТП....
Подозрения вот на эти строки{$APPTYPE CONSOLE}
uses
SysUtils;
и соответственно IntToStr...
Так же подозреваю, будет выглядеть вот так:program Project1;
uses ???;
var N: Integer;
begin
Write("Введите длину ребра куба: ");
ReadLn(N);
Writeln("Площадь грани ="+N*N);
Writeln("Вся площадь ="+N*N*6);
Writeln("Объем ="+N*N*N);
Readln;
end.
Верно ли? И что там в юзас нужно? Спасибо)
← →
@!!ex © (2007-12-10 19:46) [1]program Project1;
uses CRT; //помойму без него readln Не работает. хотя могу ошибаться.
var N: Integer;
begin
Write("Введите длину ребра куба: ");
ReadLn(N);
Writeln("Площадь грани =",N*N);
Writeln("Вся площадь =",N*N*6);
Writeln("Объем =",N*N*N);
Readln;
end.
← →
@!!ex © (2007-12-10 19:48) [2]И вообще, вот этот код, не правильно написан.
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var N: Integer;
begin
Write("Введите длину ребра куба: ");
ReadLn(N);
Writeln("Площадь грани ="+IntToStr(N*N));
Writeln("Вся площадь ="+IntToStr(N*N*6));
Writeln("Объем ="+IntToStr(N*N*N));
Readln;
end.
IntToStr Нафиг не нужен. Write спокойно выводит числа, тупо через запятую, перевод в строку - лишняя операция, как и сложение строк.
← →
БарЛог © (2007-12-10 19:49) [3]> program Project1;
не обязательно
> uses CRT; //помойму без него readln Не работает. хотя могу ошибаться.
да
← →
{RASkov} © (2007-12-10 19:56) [4]Спасибо. Значит в [1] - это самое то...
← →
Amoeba © (2007-12-10 22:16) [5]CRT не нужен.
← →
Германн © (2007-12-10 22:25) [6]
> {RASkov} © (10.12.07 19:56) [4]
Так будет красивше:program Project1;
uses Crt;
var N: Integer;
begin
repeat
Write("Введите длину ребра куба: ");
ReadLn(N);
Writeln("Площадь грани =",N*N);
Writeln("Вся площадь =",N*N*6);
Writeln("Объем =",N*N*N);
Writeln("Продолжить "Y" Выйти из программы "N");
until UpCase(ReadKey) = "N";
end.
← →
{RASkov} © (2007-12-10 22:51) [7]> [6] Германн © (10.12.07 22:25)
;)
У меня ТП нет, а в делфи такое не проверишь, но я вижу нововведение в код, и понимаю его смыл :) Спасибо)
>
ПЫСЫ Я вот другие задачи по контрольному заданию смотрю..... о ужас.... зачем я согласился помагать :(
← →
Alex Konshin © (2007-12-10 22:55) [8]> {RASkov} © (10.12.07 22:51) [7]
> зачем я согласился помагать :(
Мы догадываемся, но никому не скажем :)
← →
AlexKniga © (2007-12-10 22:56) [9]> uses Crt;
Лишнее.
← →
{RASkov} © (2007-12-10 23:03) [10]> [8] Alex Konshin © (10.12.07 22:55)
:)
← →
{RASkov} © (2007-12-10 23:09) [11]> [5] Amoeba © (10.12.07 22:16)
> [9] AlexKniga © (10.12.07 22:56)
Это понятно, а вот для такой строки:
sqrt(sqr(x1 - x2) + sqr(y1 - y2))
т.е. sqrt, sqr и еще pi - есть в ТП и необходим ли какой доп модуль в юзас?
← →
Юрий Зотов © (2007-12-10 23:14) [12]"sqrt, sqr и еще pi" - все есть и все встроенное.
← →
{RASkov} © (2007-12-10 23:14) [13]> [12] Юрий Зотов © (10.12.07 23:14)
Спасибо
← →
Германн © (2007-12-11 00:37) [14]
> AlexKniga © (10.12.07 22:56) [9]
>
> > uses Crt;
> Лишнее.
>
В моем варианте оно отнюдь не лишнее.
> {RASkov} © (10.12.07 22:51) [7]
>
> > [6] Германн © (10.12.07 22:25)
>
> ;)
> У меня ТП нет, а в делфи такое не проверишь, но я вижу нововведение
> в код, и понимаю его смыл :) Спасибо)
>
Токмо сейчас (в спокойной обстановке) я бы чуть-чуть изменил бы код:Writeln("Продолжить - любая клавиша, Выйти из программы "ESC");
until ReadKey = #27;
← →
Германн © (2007-12-11 01:19) [15]
> БарЛог © (10.12.07 19:49) [3]
>
> > program Project1;
> не обязательно
>
Эт точно, но некрасиво.
> > uses CRT; //помойму без него readln Не работает. хотя
> могу ошибаться.
> да
>
Нет. Read (ReadLn), Write (WriteLn) не нуждаются и никогда не нуждались в указании чего-либо в uses. Все они "встроены" в компилятор.
← →
Anatoly Podgoretsky © (2007-12-11 08:52) [16]> Германн (11.12.2007 00:37:14) [14]
> > uses Crt;
> Лишнее.
>
> В моем варианте оно отнюдь не лишнее.
Это что бы помучался?
← →
AlexKniga © (2007-12-11 09:05) [17]
> Все они "встроены" в компилятор.
:lol:
В TURBO.TPL лежат модули System и некоторые другие.
← →
Германн © (2007-12-11 09:20) [18]
> Anatoly Podgoretsky © (11.12.07 08:52) [16]
Не. Это чтобы не было мучительно больно.
← →
Германн © (2007-12-11 09:23) [19]
> AlexKniga © (11.12.07 09:05) [17]
>
>
> > Все они "встроены" в компилятор.
>
> :lol:
> В TURBO.TPL лежат модули System и некоторые другие.
>
Лежат. Ну и что?
← →
Германн © (2007-12-11 09:43) [20]
> AlexKniga © (11.12.07 09:05) [17]
В догонку. Может ты подскажешь как в Паскале описать процедуру с произвольным количеством параметров? Да еще и если эти параметры произвольного типа?
← →
AlexKniga © (2007-12-11 10:32) [21]> Германн © (11.12.07 09:43) [20]
Обычными параметрами передаешь количество и размеры. На asm вручную вдавливаешь в стек перед вызовом и в самой функции выгребаешь из стека. Примерно так, сам не пробовал.
← →
@!!ex © (2007-12-11 10:34) [22]> [21] AlexKniga © (11.12.07 10:32)
Да не об этом речь.
А о том, что реализовать функционал write/read на паскале невозможно. Эти процедуры нигде не описаны, они вшиты в компилятор.
← →
korneley © (2007-12-11 10:47) [23]
> Германн © (11.12.07 09:43) [20]
> как в Паскале описать процедуру с произвольным
> количеством параметров? Да еще и если эти параметры произвольного
> типа?
Насколько я помню - никак :( Я пользовал нетепизированые параметры, что-нибудь типаprocedure MyProc(var par);
и в локальных переменных процедурыvar что-то : какого-то типа absolute par
← →
Palladin © (2007-12-11 11:09) [24]
> Германн © (11.12.07 09:43) [20]
:)
очень просто
Procedure proc(SsylkaNaKuchuParametrovProisvolnogoTipa:Pointer);
← →
korneley © (2007-12-11 11:22) [25]
> Palladin © (11.12.07 11:09) [24]
Ну это вообще универсально. И чревато. Особенно в "умелых" руках ;-)
← →
korneley © (2007-12-11 11:26) [26]
> А о том, что реализовать функционал write/read на паскале
> невозможно. Эти процедуры нигде не описаны, они вшиты в
> компилятор.
К тому же нереентерабельны. Попробуйте в обработчике, скажем, 8-го прерывания их использовать... :)))
← →
oldman © (2007-12-11 11:38) [27]
> {RASkov} © (10.12.07 19:43)
Тебе еще повезло...
Меня попросили помочь - написать маленькую программку и нарисовать блок схему.
Сделал.
оказалось - надо на QBasik :(((
Вот уж попереводишь, так попереводишь...
← →
{RASkov} © (2007-12-11 15:00) [28]> [27] oldman © (11.12.07 11:38)
> оказалось - надо на QBasik :(((
Изначально был выбор - QBasic или Turbo Pascal
Я услышав про Паскаль, согласился :)
Но теперь, когда посмотрел задания, там математика сплошная..... т.е. есть дано: длина окружности(readln(N)), нужно посчитать ее площадь и вывести на экран(writeln(<тыры-пыры колдовство над(N)>))
Это самое простое наверное задание :)
Код-то я напишу, а вот формулы, по которым расчеты идут, уже не спомню.... :(
Я решил с ней все это делать, пусть она "вспоминает" формулы, а я ей в код переведу....
Она не на программера учится, поэтому ей знание языка, как такового, и не нужно)
ЗЫ Но, если что, переводить не буду! :)
← →
Vlad Oshin © (2007-12-11 15:37) [29]ReadKey, кажется, требует crt..
← →
@!!ex © (2007-12-11 16:15) [30]> [29] Vlad Oshin © (11.12.07 15:37)
да
← →
Германн © (2007-12-11 16:45) [31]
> @!!ex © (11.12.07 10:34) [22]
Именно. Хоть кто-то меня правильно понял.
← →
AlexKniga © (2007-12-11 17:15) [32]> @!!ex © (11.12.07 10:34) [22]
Write/Read НЕ вшиты в компилятор TPC.EXE! Они лежат в модуле System расположенном в файле TURBO.TPL
← →
@!!ex © (2007-12-11 17:20) [33]> [32] AlexKniga © (11.12.07 17:15)
да? тогда вы не могли бы ответить на вопрос заданный в [20]?
← →
Германн © (2007-12-11 17:20) [34]
> AlexKniga © (11.12.07 17:15) [32]
А ты его хоть раз сам своими глазами видел?
А ты знаешь что собственно файл TURBO.TPL не нужен, что можно его и не использовать?
← →
AlexKniga © (2007-12-12 13:48) [35]> @!!ex © (11.12.07 17:20) [33]
См. AlexKniga © (11.12.07 10:32) [21]
> Германн © (11.12.07 17:20) [34]
> А ты знаешь что собственно файл TURBO.TPL не нужен, что можно его и не использовать?
Удали сей файл. Пересобири проект, перезапустив ИДЕ. Или, если умеешь, то из коммандной строки.
← →
@!!ex © (2007-12-12 14:10) [36]> См. AlexKniga © (11.12.07 10:32) [21]
вообщето при вызове Write количество параметров не предеается.
ПРиведите пожалуйста код, который бы работал на паскале и реализовывал такую же работу с параметрами, как и write/read.
← →
ыы (2007-12-12 14:45) [37]Write("Площадь грани ", N*N) при компиляции на уровне complier magic преобразуется в последовательность WriteString("Площадь грани"); WriteInteger(N*N);
А процедур с переменным количеством параметров без compiler magic таки нету.
← →
AlexKniga © (2007-12-12 15:54) [38]> @!!ex © (12.12.07 14:10) [36]
То, что компилятор по особенному обрабатывает некоторые функции, еще не означает, что они встроены в компилятор.
У меня нет исходников System.pas из TP7, по этому я смотрю исходники System.pas в Delphi5. Реализация WriteLn написана полностью.
Хотя и наличиствует следующий комент:{*******************************************************}
{ }
{ Borland Delphi Runtime Library }
{ System Unit }
{ }
{ Copyright (C) 1988,99 Inprise Corporation }
{ }
{*******************************************************}
unit System; { Predefined constants, types, procedures, }
{ and functions (such as True, Integer, or }
{ Writeln) do not have actual declarations.}
{ Instead they are built into the compiler }
{ and are treated as if they were declared }
{ at the beginning of the System unit. }
← →
Германн © (2007-12-12 16:01) [39]
> Instead they are built into the compiler
Ну а я об чем говорил?
А в исходниках ТР7 вообще нет никакой явной реализации Writeln и подобных ей процедур. Могу дать эти исходники для проверки.
P.S. А насчет Turbo.tpl это я погорячился. Краем уха припомнил что прочие модули можно хранить либо в ней, либо отдельно.
← →
Anatoly Podgoretsky © (2007-12-12 16:13) [40]> AlexKniga (12.12.2007 15:54:38) [38]
Откуда ты нашел реализацию Writeln - это же compiler magic
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2008.01.27;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.007 c