Отправляет email-рассылки с помощью сервиса Sendsay

Задачи по ассемблеру

  Все выпуски  

Задачи по ассемблеру


Информационный Канал Subscribe.Ru

Задачи по ассемблеру.


Выпуск #38.

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

Зачем нужна регистрация? Прежде всего для того, чтобы никто не мог воспользоваться Вашим именем на сервисах сайта (новости, форум, решения задач). 

Зачем отправлять решения из формы? А отправка задач из формы намного упрощает разбор решений. Во-первых, Вы сразу узнаете дошло Ваше решение или нет. Во-вторых упрощается обработка решений: если я, допустим, занят и не могу вовремя сделать рассылку, то после окончания приема решений задачи, они автоматически становятся доступными для всех. Их можно оценить в форуме. Затем я удаляю те решения, которые не удовлетворяют правилам. С другой стороны после окончания приема всех решений, мне достаточно запустить скрипт, который сгенерирует страницу со всеми решениями. Опять же простота обработки!

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

Сколько решений можно посылать?

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

Почему рейтинг имеет упрощенную форму?

Это связано с кардинальными изменениями в структуре всего сайта. Дело в том, что все решения (старые, новые) лежат в одной таблице, анализ которой для рейтинга немного затруднителен. Раньше рейтинг был "ручным", поэтому было деление на лучшие решения и просто решения. Обещаю, что на неделе обязательно сделаю нормальный рейтинг. Все Ваши старые решения сохранятся!

Почему в рейтинге некоторые имена написаны по-разному?

Это связано с тем, как именно посылалось решение. Т.е. подпись в письме была разной. Если у кого-то именно такой случай, то зарегистрируйтесь на сайте и\или пришлите ко мне запрос на изменение имен в рейтинге. И все будет сделано.

Если у меня будут проблемы с регистрацией или отправкой решений, то что мне делать?

В этом случае Вам достаточно написать мне письмо. Будем разбираться в чем причина.

 

Сегодня в выпуске:

1. Решение задачи #37.

2. Задача #38.

 

Решение задачи #37.

Таблица рекордов:

  Участник

Размер решения

1. Broken Sword 46

Условие задачи.

Проверить баланс скобок в выражении. 

 Выражение может содержать любые символы.

  Для получения выражения используется STDIN (стандартный вход).

 Скобки - это символы '(', ')', '[' и ']'.

Если количество открывающих скобок равно количеству закрывающих (для каждого типа скобок), то вывести '1', иначе '0'.

 

Решения.

Решение by Broken Sword:

; task37 by Broken Sword [HI-TECH]
; fasm task37.asm task37.com
; 46 bytes

 org 100h

 xchg AX, BP  ; AX=0900h 
 inc AH  ; AH=0Ah
 mov SI, buf
 mov DX, SI
 int 21h
_M0:
 lodsb
 sub AL, '('  ; ( ?
 jnz _M1
 inc BX
_M1:
 dec AL
 jnz _M2  ; ) ?
 dec BX
_M2:
 sub AL, 32h  ; [ ?
 jnz _M3
 inc BP
_M3:
 sub AL, 2  ; ] ?
 jnz _M4
 dec BP
_M4:
 sub AL, 0A3h ; end ?
 jnz _M0
_fin:
 mov AL, '1'
 add BX, BP
 jz _one
 dec AX
_one:
 int 29h
 ret
buf:
 db 0FFh

Задача #38.

 

Задание:

Вывод текста по спирали.

Дан текстовый файл, содержащий 121 символ (без перевода строки):

123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_abcdefghijklmnopqrstuvwxyz{|}~А
БВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзий
Содержимое файла можно представить в виде блока из 11 строк по 11 символов в каждом (см. рисунок слева):
123456789:;             B---------+
<=>?@ABCDEF             +--------+|
GHIJKLMNOPQ             |+------+||
RSTUVWXYZ[\             ||+----+|||
]^_abcdefg             |||+--+||||
hijklmnopqr             ||||+E|||||
stuvwxyz{|}             ||||+-+||||
~АБВГДЕЖЗИ             |||+---+|||
ЙКЛМНОПРСТУ             ||+-----+||
ФХЦЧШЩЪЫЬЭЮ             |+-------+|
Яабвгдежзий             +---------+
Ваша задача вывести строку, которая представляет собой последовательность символов, идущих по спирали (см. рисунок справа: B-начальный символ, E-конечный; движение почасовой стрелке):
123456789:;FQ\gr}ИУЮйизжедгвбаЯ и т.д
Содержимое файла отправляет в STDIN: task38.com < test38.txt.

Файл test38.txt можно взять здесь или сделать самостоятельно.

 

Отправить решение до 10.07.2004

 

В заключение...

На главной странице "Задач" [http://codeclimber.com/cgi-bin/asmtasks.cgi] будут даны размеры программ лидеров, как только таковые появятся, а также все официальные дополнения к условию задачи. И так будет с каждой задачей. Узнав, эту информацию каждый может прислать более оптимизированное решение.

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

 

(с) CodeClimber - Все права защищены! 
URL: http://codeclimber.com  E-Mail: compo@codeclimber.com


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться

В избранное