Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.07.20;
Скачать: [xml.tar.bz2];

Вниз

Преобразования Pascal в Delphi   Найти похожие ветки 

 
Vlad Oshin ©   (2008-06-03 13:28) [40]

Удалено модератором


 
non1ka ©   (2008-06-03 13:29) [41]

Удалено модератором


 
non1ka ©   (2008-06-03 13:34) [42]

чувствую себя бревном :(


 
Vlad Oshin ©   (2008-06-03 13:48) [43]

ты списал пасовскую программку
тебе все написали (и даже функцию gotoxy)
ты сам хоть что-то сделал, здоровый ты мой
зы
ну не люблю я эмо и прочих .. альтернативных феЙ


 
Vlad Oshin ©   (2008-06-03 13:48) [44]

Удалено модератором


 
Vlad Oshin ©   (2008-06-03 13:48) [45]

Удалено модератором


 
@!!ex ©   (2008-06-03 14:28) [46]

> [37] non1ka ©   (03.06.08 13:20)

Вот так.
Объясняю.
{} - Это комментарий.
Если комментарий содержит знак $ в начале, это значит что это не простой комментарий, а код препроцессора.
Блок
{$IFDEF WIN32}
...
{$ENDIF}
выполняется только под виндой.
Препроцессор смотрит на этот код, и если ОС - не виндовс, то он этот код игнорирует, просто удаляет, если же винда, то обрабатывается команда:
{$APPTYPE CONSOLE}
Эта команда указывает, что приложение не простое, а консольное. С тем самым окошком черным, на котором работает Writeln/Readln


 
non1ka ©   (2008-06-03 15:06) [47]


> @!!ex

Спасибо за четкое объяснение... я понял...

> Vlad Oshin


Во первых объсните от куда вы знаете про феЙ???
Во вторых это было давно и не правда, а на тот момент просто интересно...
И зачем троить пост..???


 
non1ka ©   (2008-06-03 15:11) [48]


> @!!ex


> {$APPTYPE CONSOLE}

И это означает что производить каки либо изменения с операторами Writeln/Readln не нужно..??


 
non1ka ©   (2008-06-03 15:15) [49]

Все я понял что не нужно.....


> Vlad Oshin

Ты описал мне процедуру для алгоритма Варнсдорфа. Я про этот алгоритм перебора читал он напоминает впринципе мою задачу. Он так же является рекурсивным как я понимаю. вопрос в следующем заменить GotoXY на данный листинг??


 
Palladin ©   (2008-06-03 15:17) [50]


> Блок
> {$IFDEF WIN32}
> ...
> {$ENDIF}
> выполняется только под виндой.

компилируется только если задано Win32, выполнение тут ни причем...

...препроцессора, ни в одном продукте Паскалевского направления от Borland, нет..


> non1ka ©   (03.06.08 15:06) [47]

и чего"же ты понял?


 
Vlad Oshin ©   (2008-06-03 15:20) [51]

я описал процедуру
GOTOXY
, причем тут варнсдорф?


> Во первых ......

просто поискал в нете, не мог же ты только тут так здоровско отметится


 
Vlad Oshin ©   (2008-06-03 15:20) [52]

Удалено модератором


 
Vlad Oshin ©   (2008-06-03 15:20) [53]

Удалено модератором


 
non1ka ©   (2008-06-03 15:22) [54]


> Palladin

Про
Эти строки понятно...

> > {$IFDEF WIN32}
> > ...
> > {$ENDIF}


Это условие что программа должна выполняться на платформах Win32. Это понятно...

{$APPTYPE CONSOLE} Это означает что программа консольная.. т.е. Не оконный Win вариант а именно мною привычный варианткак в  Pascale.

Единственное на данный момент не понятно на счет процедуры GotoXY как одни говорят что ее нужно преобразовывать в отдельную процедуры другие говорят оставлять без изменения :(


 
non1ka ©   (2008-06-03 15:26) [55]


> Vlad Oshin

Я подумал ты показал типовое описание алгоритма..

Я не знал что именно под мой конкретный премер...

А на счет остального я не понимаю какую цель ты приследовал когда писал в поисковике мой ник :) Для чего!!??? я понимаю ты логичный человек.. тогда объясни мне ЗАЧЕМ?


 
Kostafey ©   (2008-06-03 15:28) [56]

> Во первых объсните от куда вы знаете про феЙ???

А никто не знает :)

Но вот эта штука компилится:

program Project2;

{$APPTYPE CONSOLE}

uses
 SysUtils;

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 ("Anou ?aoaiea!!!");
WritePosition;
//ReadKey;
readln;
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 ("Aaaaeoa oe?eio iiey (io 1 ai 20): ");
ReadLn (MaxX);
Write ("Aaaaeoa aunioo iiey (io 1 ai 20): ");
ReadLn(MaxY);
For x:=1 To MaxX Do
For y:=1 To MaxY Do Field[x,y]:=0;
//ClrScr;
Move (1,1);
WriteLn ("?aoaiea ia iaeaaii...");
End.



 
non1ka ©   (2008-06-03 15:33) [57]


> Kostafey ©  

Ты за коментил. Очистку экрана, ожидание нажатия, и саму процедуру GotoXY;

Если не указывать шаг как можно проделать перебор...

Или просто "//" не значит комментарий... хотя да вроде мне написали что в делфи "{}" значек комментарий... а что тогда означает //....


 
Palladin ©   (2008-06-03 15:36) [58]

http://www.google.ru/search?hl=ru&q=%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5+%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D1%8C%D0%BD%D1%8B%D1%85+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC+delphi&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=


 
non1ka ©   (2008-06-03 15:40) [59]


> Palladin

Все я понял.. Я достал уже... :)  Спасибо за помощь... Попытаюсь разобраться в остальном сам....


 
Renegat   (2008-06-03 15:40) [60]

WriteLn ("?aoaiea ia iaeaaii..."); // все символы строки после двойного фронт-слэша являются комментом


 
Kostafey ©   (2008-06-03 15:42) [61]

> [57] non1ka ©   (03.06.08 15:33)

Да, // - однострочный комментарий
{} - многострочный.

Вообще, сама задача кажется дикой.

Использование проприетарной интегрированной среды
для решения академической задачи - это...
имеет смысл разьве что для упрощения задачи
(в случее хорошего владения данной средой).

А для этой задачи FPC - самое оно! :)


 
non1ka ©   (2008-06-03 15:52) [62]


> Kostafey

... Ну просто наверное наш примитивный ум не потянул бы более сложные задачи ореентированные на среду Delphi. поэтому преподователь и дал задачу такого типа...

И на счет того кода, который ты выложил ты закоментил GotoXY, по какому правилу тогда будет осуществлятся перебор?


 
non1ka ©   (2008-06-03 15:55) [63]

все разобрался!!


 
Kostafey ©   (2008-06-03 15:56) [64]

> наш примитивный ум

Никогда так не говори и не думай :)


> по какому правилу тогда будет осуществлятся перебор?

Как и до того.
Цикл определяет последовательность перебора.

gotoXY лишь определяет положение курсора на экране
перед выводом.
Соответсвенно форматировать вывод нужно будет иначе.


 
non1ka ©   (2008-06-03 16:01) [65]

вот эта функция написана для позиционирования курсора

procedure GotoXY(X, Y : integer);
begin
Coord.X := X; Coord.Y := Y;
SetConsoleCursorPosition(ConHandle, Coord);
end;

а это Con := GetStdHandle(STD_OUTPUT_HANDLE); консольный вывод.... впринципе помойму не нужен


 
Kostafey ©   (2008-06-03 16:05) [66]

Ты про это?
http://forum.tsure.ru/lofiversion/index.php/t23712.html

Так, я убежал...


 
non1ka ©   (2008-06-03 16:06) [67]


> Kostafey


> Никогда так не говори и не думай :)

Просто мне самому стыдно. Не лежит у меня душа к этому. Не люблю и все. Каждый год новый язык. Сначала ассемблер начали только втягиваться, тут сразу на следующий год с++, Потом паскаль, Вот теперь делфи. А мне некогда разбираться я работаю в другом городе и вообще я понимаю это не оправдание, Но когда стоит выбор чем заниматься после работы (доделать работу, или занятся учебой) приходится выбирать работу. А свещенные выходные и те иногда проводиш в работе :( и нет времени даже с друзьями увидется..

Ладно я себя оправдал хотя бы в своих глазах. И это мою совесть еще на недельку приглоушит :)


 
Anatoly Podgoretsky ©   (2008-06-03 16:19) [68]

За это время, уже можно было сто раз скачать CRT модуль для Виндоус, даже на самом низкоскоростном модеме и вся работа свелась бы к замене одной строчки с CRT


 
non1ka ©   (2008-06-03 16:32) [69]


> Anatoly Podgoretsky

Это задание выдали неделю назад!!! :)


 
Anatoly Podgoretsky ©   (2008-06-03 16:39) [70]

> non1ka  (03.06.2008 16:32:09)  [69]

А на поиск нужно несколько секунд и чуть больше, чем этот мини модуль скачать.


 
ketmar ©   (2008-06-03 16:53) [71]

>[67] non1ka © (2008-06-03 16:06:00)
>Но когда стоит выбор чем заниматься после работы (доделать работу

нет. уволиться.

---
Understanding is not required. Only obedience.


 
non1ka ©   (2008-06-03 17:36) [72]


> ketmar

Ага это всегда так решение всех проблем это забить :)
Я вот пытался решить одну проблему вывел половину участников форума из себя и почувствовал себя безумно глупым!!! Весь реультат :)
Но в целом решил :)


 
Vlad Oshin ©   (2008-06-03 17:43) [73]

ладно, лови

rogram HorseMoving;
{$APPTYPE CONSOLE}
uses
 Windows;
Var
 Field: Array [1..20] of Array [1..20] of Integer;
 N: Integer;
 MaxX, MaxY: Integer;
 x, y: Integer;
 Con: integer;

procedure GotoXY(X,Y:integer);
var
 Coord: TCoord;
begin
 Coord.x:=X;
 Coord.y:=Y;
 SetConsoleCursorPosition(Con,Coord);
end;

Procedure WritePosition;
Var
 X, y: Integer;
Begin
 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
         GotoXY(3,3);
         WritePosition;
         writeln;
         WriteLN (" Есть Решение!!!");
         Readln;
         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
 Con := GetStdHandle(STD_OUTPUT_HANDLE);
 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;
 Move (1,1);
 GotoXY(3,3);
 WriteLn ("Решение не найдено");
 readln;
End.


 
Vlad Oshin ©   (2008-06-03 17:43) [74]

Удалено модератором


 
Vlad Oshin ©   (2008-06-03 17:43) [75]

Удалено модератором


 
non1ka ©   (2008-06-03 17:50) [76]

Удалено модератором
Примечание: сорри, удалено по ошибке


 
non1ka ©   (2008-06-03 17:56) [77]


> Vlad Oshin

Спасибо огромное...
Но в целом я уже разобрался...

Теперь у меня опять появились вопросы...

Then Begin
        GotoXY(3,3);
        WritePosition;
        writeln;
        WriteLN (" Есть Решение!!!");
        Readln;
        Halt;
      End;

Что означает GotoXY (3,3) мы начинаем движение четко с клетки 3 по горизонтали и 3 по вертикале??


 
non1ka ©   (2008-06-03 17:57) [78]

Тоесть не правильно выразился при определенных условия тех которые нас неудовлетворяют мы возвращаемся в эту клетку??


 
non1ka ©   (2008-06-03 17:58) [79]

блин все понял


 
non1ka ©   (2008-06-03 18:05) [80]

Ладно все не буду больше раздражать!! вас пойду домой попробую сделать как я думаю!! и попробую листинг написанный Человеком ненавидящим альтернативные культуры :)... А результатах сообщу поздне...

Всем огромное спасибо за ваше терпение :)... До встречи



Страницы: 1 2 3 вся ветка

Форум: "Прочее";
Текущий архив: 2008.07.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.62 MB
Время: 0.044 c
4-1193159147
Delll
2007-10-23 21:05
2008.07.20
ClipCursor


2-1213800461
Nucer
2008-06-18 18:47
2008.07.20
GetWindow


2-1213792192
ciborg
2008-06-18 16:29
2008.07.20
Как отключить сообщения об эксепшенах?


15-1212729969
PHoeNiX
2008-06-06 09:26
2008.07.20
описание процедур


2-1213713341
Alex_C
2008-06-17 18:35
2008.07.20
Кол-во Auto-create Forms





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский