реклама на сайте
подробности

 
 
35 страниц V  « < 18 19 20 21 22 > »   
Reply to this topicStart new topic
> Pascal для AVR
Жека
сообщение Dec 11 2008, 12:26
Сообщение #286


Знающий
****

Группа: Участник
Сообщений: 672
Регистрация: 6-01-06
Из: Петербург
Пользователь №: 12 870



Народ, давайте серьезную задачу сформулируем.
Например, "8 ферзей".
Найти все возможные варианты расстановки 8 ферзей на шахматной доске, при которой ни один из них не бьет других. Никакой графики, варианты выдавать в виде строк типа "а3 b7 e8 ..."
Это чистая алгоритмика, интересно будет сравнить


--------------------
Льва Абалкина больше нет. Забудь о нем. На нас идет автомат Странников!
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Dec 11 2008, 12:32
Сообщение #287


Местный
***

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



Цитата(ARV @ Dec 11 2008, 15:21) *
неожиданно наталкиваешься на давно забытые штуки типа режима консольного ввода smile.gif

Что значит забытые??? ( laughing.gif А теперь понаблюдаем за холиваром GUI vs CLI)


Цитата(Жека @ Dec 11 2008, 15:26) *
Народ, давайте серьезную задачу сформулируем.
Например, "8 ферзей".

Ага... Сурьезная задача wink.gif
Go to the top of the page
 
+Quote Post
Жека
сообщение Dec 11 2008, 12:36
Сообщение #288


Знающий
****

Группа: Участник
Сообщений: 672
Регистрация: 6-01-06
Из: Петербург
Пользователь №: 12 870



Цитата(Aesthete Animus @ Dec 11 2008, 15:32) *
Ага... Сурьезная задача wink.gif


Ну всяко интереснее, чем ввод-вывод строк мусолить wink.gif


--------------------
Льва Абалкина больше нет. Забудь о нем. На нас идет автомат Странников!
Go to the top of the page
 
+Quote Post
Goodefine
сообщение Dec 11 2008, 13:22
Сообщение #289


Местный
***

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



Цитата(Жека @ Dec 11 2008, 16:26) *
...давайте серьезную задачу сформулируем.
Например, "8 ферзей"...

Эту задачу люди на МК-61 (микрокалькулятор такой, кто помнит) решали. Вариантов программ было множество, включая вариант, учитывающий "зеркальность" некоторых расстановок... А память команд МК-61 была шагов на 102, если склероз не изменяет...


--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Go to the top of the page
 
+Quote Post
Harbinger
сообщение Dec 11 2008, 14:13
Сообщение #290


старший лаборант
******

Группа: Свой
Сообщений: 2 702
Регистрация: 30-09-05
Из: ЮЗЖД
Пользователь №: 9 097



Цитата(Goodefine @ Dec 11 2008, 15:22) *
А память команд МК-61 была шагов на 102, если склероз не изменяет...

105. У 54-го 98 (это если склероз не изменяет мне).


--------------------
Китайская комплектация - европейское качество! ;)
Go to the top of the page
 
+Quote Post
Жека
сообщение Dec 11 2008, 14:16
Сообщение #291


Знающий
****

Группа: Участник
Сообщений: 672
Регистрация: 6-01-06
Из: Петербург
Пользователь №: 12 870



Цитата(Goodefine @ Dec 11 2008, 16:22) *
Эту задачу люди на МК-61 (микрокалькулятор такой, кто помнит) решали. Вариантов программ было множество, включая вариант, учитывающий "зеркальность" некоторых расстановок... А память команд МК-61 была шагов на 102, если склероз не изменяет...


Ну и здорово. Я же не предлагаю написать шахматную программу уровня Deep Blue biggrin.gif
Для сравнительного теста в самый раз будет


--------------------
Льва Абалкина больше нет. Забудь о нем. На нас идет автомат Странников!
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Dec 11 2008, 14:24
Сообщение #292


;
******

Группа: Участник
Сообщений: 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.

Рекурсия.
Go to the top of the page
 
+Quote Post
Leka
сообщение Dec 11 2008, 16:58
Сообщение #293


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



задача о ферзях для доски N*N, критерий - максимальное N для времени счета не более 1 мин. Или 10 мин.

Сообщение отредактировал Leka - Dec 11 2008, 16:59
Go to the top of the page
 
+Quote Post
forever failure
сообщение Dec 11 2008, 17:03
Сообщение #294


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112



Казалось бы, причём тут микроконтроллеры Atmel AVR....
Go to the top of the page
 
+Quote Post
Herz
сообщение Dec 11 2008, 17:15
Сообщение #295


Гуру
******

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



Цитата(forever failure @ Dec 11 2008, 19:03) *
Казалось бы, причём тут микроконтроллеры Atmel AVR....

+1! Вот и я удивляюсь...
Мало того, что спорщики уже давно спорят "ради спора", признавая, что переубедить их нереально в любом случае...
Мало того, что скатились, как обычно, до взаимных обвинений...
Мало того, что аргументов на всём 20-страничном сражении так и не встретилось...
Кажется, и сам предмет спора вот-вот будет забыт...
Господа! Вспомните хоть название темы!
Go to the top of the page
 
+Quote Post
Жека
сообщение Dec 11 2008, 17:44
Сообщение #296


Знающий
****

Группа: Участник
Сообщений: 672
Регистрация: 6-01-06
Из: Петербург
Пользователь №: 12 870



Вот зануды... Если бы все посты во всех темах были по делу, Электроникс ужался бы раз в 10 smile.gif
Сейчас проверим, как Пашин вариант в Дельфях фунциклирует


--------------------
Льва Абалкина больше нет. Забудь о нем. На нас идет автомат Странников!
Go to the top of the page
 
+Quote Post
forever failure
сообщение Dec 11 2008, 17:57
Сообщение #297


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112



Твёрдое окончательное Тьфу.

Шумный, бурлящий слифф засчитан. Расчёт окончен.
Go to the top of the page
 
+Quote Post
Жека
сообщение Dec 11 2008, 18:02
Сообщение #298


Знающий
****

Группа: Участник
Сообщений: 672
Регистрация: 6-01-06
Из: Петербург
Пользователь №: 12 870



Вольно, Вечный Облом biggrin.gif

Exe-шник получился 374 Кб в Дельфи 7. Найдены все 92 варианта, ура!


--------------------
Льва Абалкина больше нет. Забудь о нем. На нас идет автомат Странников!
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Dec 11 2008, 18:07
Сообщение #299


;
******

Группа: Участник
Сообщений: 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 мин.

Не согласен. А как избавиться от оси? Она ж тормозить станет... результаты случайные получатся
Go to the top of the page
 
+Quote Post
SSerge
сообщение Dec 11 2008, 18:29
Сообщение #300


Профессионал
*****

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post

35 страниц V  « < 18 19 20 21 22 > » 
Reply to this topicStart new topic
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 11:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01482 секунд с 7
ELECTRONIX ©2004-2016