Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flasher.ru > Флейм

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.04.2008, 02:56
lak вне форума Посмотреть профиль Отправить личное сообщение для lak Найти все сообщения от lak
  № 1  
Ответить с цитированием
lak

Регистрация: Apr 2008
Сообщений: 4
По умолчанию Хорошее дело или машина Тьюринга

Уважаемые Господа flash-программисты.

Меня зовут Женя Лакштанов, я математик и занимаюсь с младшеклассниками математикой и, в частности, алгоритмикой. Недавно мне удалось найти неплохую реализацию машины Тьюринга:

http://www.danilova.ru/phpbb/viewtop...2619&start=180
(в конце страницы, под заголовком "Несколько задач для веселого грузовичка")

Там же есть примеры задач, которые мои дети писали "на бумажке". Ясно, что неплохо бы иметь под это дело интерпретатор. Я детально могу описать, как он может выглядеть, но я очень много лет не программировал, и у меня это займет много времени. Хотя, видимо для человека в форме, это дело 1часа.
Буду рад, если кто-нибудь возьмется сделать это.
Спасибо за внимание.

Старый 03.04.2008, 13:18
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 2  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
к сожалению вы попали на форум флэшеров, а не альтруистов. сомневаюсь что у кого-то найдется время и желание.
__________________
Breakcore them all!

Старый 03.04.2008, 13:25
zurmansor вне форума Посмотреть профиль Отправить личное сообщение для zurmansor Найти все сообщения от zurmansor
  № 3  
Ответить с цитированием
zurmansor
[+1 21.01.08]
 
Аватар для zurmansor

Регистрация: Jul 2007
Сообщений: 126
Колега
Могу помочь. Пиши в личку. что нужно сделать. За 1 час не обещаю, но до понедельника управлюсь . Хотя раздел для поста конечно ты выбрал не совсем верный. Это скорее для вакансий подходит.

Старый 03.04.2008, 13:26
zurmansor вне форума Посмотреть профиль Отправить личное сообщение для zurmansor Найти все сообщения от zurmansor
  № 4  
Ответить с цитированием
zurmansor
[+1 21.01.08]
 
Аватар для zurmansor

Регистрация: Jul 2007
Сообщений: 126
Цитата:
Сообщение от KidsKilla
к сожалению вы попали на форум флэшеров, а не альтруистов. сомневаюсь что у кого-то найдется время и желание.
Да ладно... задание ведь не сложное.

Старый 03.04.2008, 14:10
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 5  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
Цитата:
Сообщение от zurmansor
Да ладно... задание ведь не сложное.
а это все не важно. тут кабэ в основном народ занятой и ленивый =)
__________________
Breakcore them all!

Старый 03.04.2008, 16:08
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
я вот бездельничаю на работе... мог бы и сделать %)
Ток вот не понял, нужно чтобы программа сама прокладывала маршрут исходя из условий, или юзер сам определяет маршрут, а программа просто показывает, что будет сделано при таких условиях? (Второе можно сделать и меньше чем за час, а первое - муторно... конец рабочей недели, думать не хочется %)
Код:
/**
* ...
* @author wvxvw
* @version 0.1
*/

package  {

	public class PathXML {
		
		public static const LINE:String = 'line';
		public static const STATION:String = 'station';
		public static const CARGO:String = 'cargo';
		public static const TRUCK:String = 'truck';
		public static const BOX:String = 'box';
		public static const DIR:String = 'dir';
		public static const IN:String = 'in';
		public static const OUT:String = 'out';
		public static const LOADED:String = 'loaded';
		public static const EMPTY:String = 'empty';
		public static const LOAD:String = 'load';
		public static const UNLOAD:String = 'unload';
		public static const STOP:String = 'stop';
		public static const LEFT:String = 'left';
		public static const RIGHT:String = 'right';
		public static const LT:String = '<';
		public static const GT:String = '>';
		public static const SLASH:String = '/';
		
		private var _xml:XML;
		
		public function PathXML(xml:XML = null, i:int = 0) {
			super();
			_xml = new XML(LT + LINE + SLASH + GT);
			for (var j:int = 0; j < i; j++ ) {
				addStation();
			}
		}
		
		public function addStation():void {
			var xn:XML = new XML(LT + STATION + SLASH + GT);
			var xin:XML = new XML(LT + IN + SLASH + GT);
			var xout:XML = new XML(LT + OUT + SLASH + GT);
			xn.appendChild(xin);
			xn.appendChild(xout);
			_xml.appendChild(xn);
		}
		
		public function setTruck(i:int, b:Boolean):void {
			var tx:XML = new XML(LT + TRUCK + SLASH + GT);
			tx.@[CARGO] = b ? LOADED : EMPTY;
			_xml[STATION][i].appendChild(tx);
		}
		
		public function setBoxes(i:int, b:int):void {
			var bx:XML = new XML(LT + BOX + SLASH + GT);
			for (var j:int = 0; j < i; j++ ) {
				_xml[STATION][b].appendChild(bx);
			}
		}
		
		public function setStationIN(i:int, b:Boolean):void {
			_xml[STATION][i][IN].@[DIR] = b ? LOAD : UNLOAD;
		}
		public function setStationOUT(i:int, b:String):void {
			switch(b) {
				case LEFT:
					_xml[STATION][i][OUT].@[DIR] = LEFT;
					break;
				case RIGHT:
					_xml[STATION][i][OUT].@[DIR] = RIGHT;
					break;
				default:
					_xml[STATION][i][OUT].@[DIR] = STOP;
					break;
			}
		}
		
		public function moveTruck():void {
			var tx:XML = getXMLItem(TRUCK)[0];
			var bx:XML = new XML(LT + BOX + SLASH + GT);
			var ttx:XML;
			var tp:int;
			if (tx.@[CARGO] == LOADED) {
				if (tx.parent()[IN].@[DIR] == UNLOAD) {
					tx.@[CARGO] = EMPTY;
					tx.parent().appendChild(bx);
				}
			} else {
				if (tx.parent()[BOX].length()) {
					if (tx.parent()[IN].@[DIR] == LOAD) {
						tx.@[CARGO] = LOADED;
						delete tx.parent()[BOX][0];
					}
				} else {
					// all boxes removed from the station
				}
			}
			trace(tx.parent()[OUT].@[DIR]);
			if (tx.parent()[OUT].@[DIR] == LEFT) {
				for (var i:int = 0; i < _xml[STATION].length(); i++ ) {
					if (_xml[STATION][i][TRUCK].length()) {
						ttx = _xml[STATION][i][TRUCK][0].copy();
						tp = i;
						break;
					}
				}
				delete _xml[STATION][tp][TRUCK][0];
				_xml[STATION][tp - 1].appendChild(ttx);
			} else if(tx.parent()[OUT].@[DIR] == RIGHT) {
				for (var j:int = 0; j < _xml[STATION].length(); j++ ) {
					if (_xml[STATION][j][TRUCK].length()) {
						ttx = _xml[STATION][j][TRUCK][0].copy();
						tp = j;
						break;
					}
				}
				delete _xml[STATION][tp][TRUCK][0];
				_xml[STATION][tp + 1].appendChild(ttx);
			}
		}
		
		public function toString():String {
			return _xml.toXMLString();
		}
		
		public function getXMLItem(s:String):XMLList {
			return _xml.descendants(s);
		}
	}
	
}
Код:
import PathXML;
var tf:TextField = new TextField();
tf.border = true;
tf.width = 600;
tf.height = 400;
addChild(tf);
var tm:Timer = new Timer(500);
var px:PathXML = new PathXML(null, 8);
tm.addEventListener(TimerEvent.TIMER,renderPosition)
px.setTruck(2,true);
px.setBoxes(5,5);
for (var i:int = 0; i < px.getXMLItem(PathXML.STATION).length() - 1; i++){
	px.setStationIN(i, true);
	px.setStationOUT(i, PathXML.RIGHT);
}
px.setStationIN(i, true);
px.setStationOUT(i, PathXML.STOP);
//trace(px);
function renderPosition(tevt:TimerEvent):void {
	px.moveTruck();
	tf.text = px.toString();
}
tm.start();
Ну вот пример, правда в примере программа для грузовика составляется так, что все коробки он никогда не увезет, но это уже либо задача пользователя, либо автора %)
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 03.04.2008 в 18:23.
Старый 03.04.2008, 16:44
zurmansor вне форума Посмотреть профиль Отправить личное сообщение для zurmansor Найти все сообщения от zurmansor
  № 7  
Ответить с цитированием
zurmansor
[+1 21.01.08]
 
Аватар для zurmansor

Регистрация: Jul 2007
Сообщений: 126
Второе. Вообщем стандартный способ обучения програмированию - исполнитель(грузовик) и набор возможных команд и условий. а ученик пишет програму, запускает её (построчно или сразу) и видит результат.

Старый 03.04.2008, 16:47
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 8  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Кстати, читал: ученые после сложнейших вычислений и экспериментов пришли к выводу, что счастье можно купить - для этого нужно всего лишь делать подарки окружающим.

Старый 03.04.2008, 17:53
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 9  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Млин, забыл добавить опцию остановить грузовик, ну ничего, вернусь домой - добавлю... ну и наверное нуна будет какой-нть более "дружественный ЮАЙ" приделать %)

ЗЫ. Пофиксил стопы
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 03.04.2008 в 18:21.
Старый 03.04.2008, 20:25
lak вне форума Посмотреть профиль Отправить личное сообщение для lak Найти все сообщения от lak
  № 10  
Ответить с цитированием
lak

Регистрация: Apr 2008
Сообщений: 4
Спасибо всем за поддержку. Коллега Zurmansor уже изъявил желание помочь, поэтому вопросы по реализации можно, при желании, обсуждать с ним.

Я в восторге от комментария WVXVW по поводу программы, которая сама построит алгоритм для машины Тьюринга. Ведь, как известно, машина Тьюринга может реализовать любой алгоритм

http://ru.wikipedia.org/wiki/%D0%9F%...BD%D0%B3%D1%83

Вряд ли такую программу можно написать за конечное время...
хотя, может быть я ошибаюсь. я не специалист

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:54.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:54.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.