Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.041 c
1-1195553133
DVM
2007-11-20 13:05
2008.07.20
TWinControl.WMPaint от Delphi7 запостите пожалуйста.


2-1214159152
krot
2008-06-22 22:25
2008.07.20
При нажатии правой кнопки мыши


2-1213877006
Гость
2008-06-19 16:03
2008.07.20
TNT компонент и Clipboard


2-1213685432
Муслик
2008-06-17 10:50
2008.07.20
Проследняя запись в таблице


4-1192435518
TIF
2007-10-15 12:05
2008.07.20
Программирование USB





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский