|
|
  |
Pascal для AVR |
|
|
|
Dec 11 2008, 12:32
|

Местный
  
Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317

|
Цитата(ARV @ Dec 11 2008, 15:21)  неожиданно наталкиваешься на давно забытые штуки типа режима консольного ввода  Что значит забытые??? (  А теперь понаблюдаем за холиваром GUI vs CLI) Цитата(Жека @ Dec 11 2008, 15:26)  Народ, давайте серьезную задачу сформулируем. Например, "8 ферзей". Ага... С урьезная задача
|
|
|
|
|
Dec 11 2008, 13:22
|

Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 6-08-07
Из: Приднестровье, Тирасполь
Пользователь №: 29 581

|
Цитата(Жека @ Dec 11 2008, 16:26)  ...давайте серьезную задачу сформулируем. Например, "8 ферзей"... Эту задачу люди на МК-61 (микрокалькулятор такой, кто помнит) решали. Вариантов программ было множество, включая вариант, учитывающий "зеркальность" некоторых расстановок... А память команд МК-61 была шагов на 102, если склероз не изменяет...
--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
|
|
|
|
|
Dec 11 2008, 14:24
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(Жека @ Dec 11 2008, 16:26)  Например, "8 ферзей".
Это чистая алгоритмика, интересно будет сравнить По двум критериям? размер исходника/размер ехешника ? Вот нагуглил Код program ferz; uses crt; var s,i:integer; a:array[1..8] of boolean; b:array[2..16] of boolean; c:array[-7..7] of boolean; x:array[1..8]of integer;
procedure print; var k:integer; begin s:=s+1; write('Решение номер ',s:2,' : '); for k:=1 to 8 do write(x[k]:4); writeln; write('Press <Enter>'); readln; end;{of print}
procedure try(i:integer); var j:integer; begin for j:=1 to 8 do if a[j]and b[i+j]and c[i-j] then begin x[i]:=j; a[j]:=false;b[i+j]:=false;c[i-j]:=false; if i<8 then try(i+1) else print; a[j]:=true;b[i+j]:=true;c[i-j]:=true; end; end;{of try}
begin{of main} clrscr; for i:=1 to 8 do a[i]:=true; for i:=2 to 16 do b[i]:=true; for i:=-7 to 7 do c[i]:=true; s:=0; try(1) end. Рекурсия.
|
|
|
|
|
Dec 11 2008, 17:15
|

Гуру
     
Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287

|
Цитата(forever failure @ Dec 11 2008, 19:03)  Казалось бы, причём тут микроконтроллеры Atmel AVR.... +1! Вот и я удивляюсь... Мало того, что спорщики уже давно спорят "ради спора", признавая, что переубедить их нереально в любом случае... Мало того, что скатились, как обычно, до взаимных обвинений... Мало того, что аргументов на всём 20-страничном сражении так и не встретилось... Кажется, и сам предмет спора вот-вот будет забыт... Господа! Вспомните хоть название темы!
|
|
|
|
|
Dec 11 2008, 18:07
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(Herz @ Dec 11 2008, 21:15)  Мало того, что аргументов на всём 20-страничном сражении так и не встретилось... Гы! Автор спросил, какие есть паскалевские компиляторы, и все началось - что мол нафиг оно надо, итд. Цитата Господа! Вспомните хоть название темы! А чего вспоминать? Ну нет нормальных паскалей для АВР! Уже ж все выяснили... Цитата(Leka @ Dec 11 2008, 20:58)  задача о ферзях для доски N*N, критерий - максимальное N для времени счета не более 1 мин. Или 10 мин. Не согласен. А как избавиться от оси? Она ж тормозить станет... результаты случайные получатся
|
|
|
|
|
Dec 11 2008, 18:29
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Кстати, о ферзях и различиях между С и Паскалем Код ======== Г. С. Цейтин, Алгол-68 рrос Ферзи = (int k, proc(int, int) bool Можно, proc void Печать) void: if k = 8 then Печать else int p = k+1; for q to 8 do if Можно (p,q) then proc МожноHовое = (int x,y) bool: if у = q or x-p = abs(y-q) then false else Можно(x,y) fi; proc ПечатьHовое = void: (Печать; print((",", "abcdefgh"[p], "12345678"[q]))); Ферзи(p, МожноHовое, ПечатьHовое) fi od fi;
proc МожноHачальное = (int x, y) bool: true;
proc ПечатьHачальная = void: print(newline);
Ферзи(О, МожноHачальное, ПечатьHачальная); ========
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
  |
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0
|
|
|