Форум: "Прочее";
Текущий архив: 2008.07.20;
Скачать: [xml.tar.bz2];
ВнизПреобразования Pascal в Delphi Найти похожие ветки
← →
non1ka © (2008-05-28 12:33) [0]Добрый день господа Мастера :)...
У меня есть проблемка которая требует решения...
Вобщем один мой знакомый попросил меня составить ему программу для решения "хода коня" на Delphi...
Я с этим языком не знаком и с помощью книжки смог написать листинг на Turbo Pascale... Я слышал что Delphi и Pascal вроде как бы родственные языке...
Задача заключается в слудеющем мне нужно "перекомпилировать" :) листинг в Delphi нужна ваша помощ.....
Заранее спасибо!!
← →
Romkin © (2008-05-28 12:42) [1]Убери CRT, добавь волшебные строки в начале программы
{$IFDEF WIN32}
{$APPTYPE CONSOLE}
{$ENDIF}
И компилируй :)
← →
SergeyIT © (2008-05-28 12:43) [2]А Делфи на машине есть?
← →
non1ka © (2008-05-28 12:45) [3]
> Убери CRT, добавь волшебные строки в начале программы
> {$IFDEF WIN32}
> {$APPTYPE CONSOLE}
> {$ENDIF}
> И компилируй :)
Волшебство :)
А если вас не затруднит можно рассказать о смысле этих столь прекрасных строк :)
← →
non1ka © (2008-05-28 12:46) [4]
> А Делфи на машине есть?
Пока что нет но думаю скачать с интернета сейчас....
← →
Palladin © (2008-05-28 12:47) [5]в рассказе смысла будет куча терминов, так же нуждающихся в рассказе об их смысле...
← →
non1ka © (2008-05-28 12:53) [6]
> Palladin
Вобщем одним словом если я заменю CRT на 3 этих строчки программа будет компилироваться и работать без проблем в среде Delphi????
А задал я этот вопрос по причине того что эту программу он должен защищать на зачете...
А если эти строки дают возможность просто компилировать в Delphi программу на Pascale то может быть у него будут проблеммы :)
← →
No_Dead © (2008-05-28 12:56) [7]> попросил меня составить ему программу
> он должен защищать на зачете...
сочувствую...
ЗЫ. а потом ветки о «еденицах» появляются...
← →
Palladin © (2008-05-28 12:58) [8]программа компилироваться будет.
Эти строчки дают программе возможность использовать WriteLn/ReadLn, а, как правило, больше примитивной академпрограмме и не нужно...
← →
Mystic © (2008-05-28 13:02) [9]> как правило, больше примитивной академпрограмме и не нужно.
Как правило... Но... во-первых, могут быть ассемблерные вставки и inline. Во-вторых, программа может просто тупо писать в видеопамять по адресу B800:0000 безо всяких CRT. В третьих, многие часто игрались в CRT всякими методами вроде GotoXY, SetColor, SetBackgroundColor, ... :)
← →
Sergey13 © (2008-05-28 13:02) [10]> [0] non1ka © (28.05.08 12:33)
> Вобщем один мой знакомый попросил меня составить ему программу
> для решения "хода коня" на Delphi...
http://delphimaster.net/view/15-1211392855/
8-)
← →
non1ka © (2008-05-28 13:03) [11]
> Palladin
Вот теперь понятно.. просто как я понял до этого разговора, что единственное отличие двух языков при минимальном использованние возможностей, Это отличие операторов ввода и вывода информации...
Спасибо огромное сегодня буду пробывать!!
← →
Romkin © (2008-05-28 13:03) [12]Тут надо смотреть, какие модули в uses используются. Еси толко свои - больше практически ничего делать не придется.
Хотя могут быть варианты. От программы зависит
← →
SergeyIT © (2008-05-28 13:07) [13]Можно скачать www.FreePascal.org - он вообще TP7 подобный
← →
Palladin © (2008-05-28 13:07) [14]
> Mystic © (28.05.08 13:02) [9]
токмо это уже не "примитивные" академпрограммы... если человек обладает глубоко системными знаниями и приемами, то уж портировать в нужную среду он и сам сможет...
← →
Palladin © (2008-05-28 13:08) [15]
> non1ka © (28.05.08 13:03) [11]
> Это отличие операторов ввода и вывода информации...
ты понял не правильно
← →
Romkin © (2008-05-28 13:08) [16]У тебя в uses не должно быть стандартных модулей вообще. То есть, никаких CRT, GRAPH, OBJECTS и тд.
← →
non1ka © (2008-05-28 13:14) [17]
> SergeyIT
Спасибо за ссылку...
> Romkin
кроме CRT нет... все сегодня вечером попытаюсь сделать если что завтра расскажу результат..
> Palladin
РРРРР :( Я извеняюсь, просто с программирование не люблю иметь дело... все знания основаны на
> примитивной академпрограмме
:)
← →
Kolan © (2008-05-28 15:35) [18]> РРРРР :( Я извеняюсь, просто с программирование не люблю
> иметь дело...
Млин, когда же у нас сделабт так, чтобы можно было выбирать предметы, которые хочешь изучать. Тогда и вопросов не будет. Уравниловка не рулит :(
← →
_mirage_ (2008-05-28 15:39) [19]>[18] Kolan © (2008-05-28 15:35:00)
ну да. софоложество, закон божий и новую хронологию. где мозги не нужны.
---
Understanding is not required. Only obedience.
← →
Kolan © (2008-05-28 18:00) [20]> закон божий
Можно подумать ты спец по нему, что так говоришь.
← →
_mirage_ (2008-05-28 18:23) [21]>[20] Kolan © (2008-05-28 18:00:00)
конечно. любой спец. оно же не верифицируемо, так что — что не выдумывай, всё одинаково достоверно.
---
Understanding is not required. Only obedience.
← →
non1ka © (2008-06-03 10:57) [22]Вылаживаю листинг программы на Turbo Pascale...
Program HorseMoving;
Uses
CRT;
Var
Field: Array [1..20] of Array [1..20] of Integer;
N: Integer;
MaxX, MaxY: Integer;
x, y: Integer;
Procedure WritePosition;
Var
X, y: Integer;
Begin
ClrScr;
For y:=1 to MaxY do
For x:=1 to MaxX do
Begin
GotoXY (x*4, y*2);
Write (Field[x, y]);
End;
End;
Procedure Move(x, y: Integer);
Begin
N := N+1;
Field [x,y] := N;
If N = MaxX * MaxY Then
Begin
WriteLN (‘ Есть Решение!!!‘);
WritePosition;
ReadKey;
Halt;
End;
If (x+2<=MaxX) and (y+1<=MaxY) Then
If Field[x+2, y+1]=0 Then move (x+2, y+1);
If (x+1<=MaxX) and (y+2<=MaxY) Then
If Field[x+1, y+2]=0 Then move (x+1, y+2);
If (x-1>0) and (y+2<=MaxY) Then
If Field[x-1, y+2]=0 Then move (x-1, y+2);
If (x-2>0) and (y+1<=MaxY) Then
If Field[x-2, y+1]=0 Then move (x-2, y+1);
If (x-2>0) and (y-1>0) Then
If Field [x-2, y-1]=0 Then move (x-2, y-1);
If (x-1>0) and (y-2>0) Then
If Field [x-1, y-2]=0 Then move (x-1, y-2);
If (x+1<=MaxX) and (y-2>0) Then
If Field [x+1, y-2]=0 Then move (x+1, y-2);
If (x+2<=MaxX)and (y-1>0) Then
If Field[x+2, y-1] = 0 Then move (x+2, y-1);
N := N - 1;
Field[x, y]:=0;
End;
Begin
ClrScr;
N := 0;
Write (‘ Введите ширину поля (от 1 до 20): ’);
ReadLn (MaxX);
Write (‘Введите высоту поля (от 1 до 20):’);
ReadLn(MaxY);
For x:=1 To MaxX Do
For y:=1 To MaxY Do Field[x,y]:=0;
ClrScr;
Move (1,1);
WriteLn (‘Решение не найдено…’);
End.
Посмотрите что нужно изменить.. Заранее спасибо. Жду ответа
← →
Alien1769 © (2008-06-03 11:19) [23]Тебе уже "настучали" на клаве:
1.убрать
> Uses
> CRT;
2.Заменить управление установки курсора
> GotoXY
← →
Mystic © (2008-06-03 11:31) [24]Говорилось уже: убрать CRT, ClrSrc. Переписать вывод без использования GotoXY.
← →
Anatoly Podgoretsky © (2008-06-03 12:23) [25]
> Посмотрите что нужно изменить.. Заранее спасибо. Жду ответа
Вот только этоUses
CRT;
Заменить наUses
хххCRT;
Где ххх это заменитель модуля под Виндоус, в Интернет должно быть несколько альтернативных модулей. Больше ничего в данно коде менять не надо. Простой поиск в Сети позволит это найти.
← →
Vlad Oshin © (2008-06-03 12:35) [26]Да просто gotoxy переписывается,
ClrScr не обязательно, gotoxy просто правильно делается, и пустые writeln
Алгоритм обхода сравнил с алгоритмом Варнсдорфа (конь ходит на поле, с которого колво возможных ходов минимально). Скорости
uses
Windows;
Con: integer;
procedure GotoXY(X,Y:integer);
var
Coord: TCoord;
begin
Coord.x:=X;
Coord.y:=Y;
SetConsoleCursorPosition(Con,Coord);
end;
Con := GetStdHandle(STD_OUTPUT_HANDLE);
← →
Vlad Oshin © (2008-06-03 12:35) [27]Удалено модератором
← →
Vlad Oshin © (2008-06-03 12:35) [28]Удалено модератором
← →
boa_kaa (another comp) (2008-06-03 12:57) [29]
> non1ka © (03.06.08 10:57) [22]
> Вылаживаю листинг программы на Turbo Pascale...
а ведь правильно сказал в общем-то... :)
← →
non1ka © (2008-06-03 13:10) [30]Так после замены CRT
У меня получилось
Uses
{$IFDEF WIN32}
{$APPTYPE CONSOLE}
{$ENDIF}
Var
GotoXY я меня не стал...
а что делать с операторами ввода и вывода writeln я не понял :(
← →
@!!ex © (2008-06-03 13:14) [31]> [30] non1ka © (03.06.08 13:10)
Спасибо, посмешил. :)))
← →
non1ka © (2008-06-03 13:15) [32]Пжалуйста всегда готов... я признаю Что я не черта не понял...
Я понимаю есть модуль CRT его нужно заменить.. как я не знаю...
Вам может это понятно мне нет...
← →
@!!ex © (2008-06-03 13:16) [33]{$IFDEF WIN32}
{$APPTYPE CONSOLE}
{$ENDIF}
Ставится в САМОМ НАЧАЛЕ проекта, перед всем остальным кодом.
Вы бы хоть соизволили почитать, что этот код делает.
← →
Anatoly Podgoretsky © (2008-06-03 13:17) [34]> non1ka (03.06.2008 13:15:32) [32]
хххCRT заменить на имя пользователя.
← →
@!!ex © (2008-06-03 13:18) [35]uses CRT - просто удаляется.
← →
non1ka © (2008-06-03 13:19) [36]
> Вы бы хоть соизволили почитать, что этот код делает.
Как я предпологаю подключает библиотеки или модули delphi.. все что могу предположить!! я в верху написал что эти волшебные строки делают.. Мне сказали
> в рассказе смысла будет куча терминов, так же нуждающихся
> в рассказе об их смысле...
← →
non1ka © (2008-06-03 13:20) [37]{$IFDEF WIN32}
{$APPTYPE CONSOLE}
{$ENDIF}
Program HorseMoving;
Var
Field: Array [1..20] of Array [1..20] of Integer;
Вот так??
← →
Vlad Oshin © (2008-06-03 13:28) [38]некогда ему читать, эмо не читают
← →
Vlad Oshin © (2008-06-03 13:28) [39]Удалено модератором
← →
Vlad Oshin © (2008-06-03 13:28) [40]Удалено модератором
Страницы: 1 2 3 вся ветка
Форум: "Прочее";
Текущий архив: 2008.07.20;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.058 c