Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Аномалия в матрице 
:(
    Опции темы
kolpeex1
  Дата 11.3.2010, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 11.3.2010

Репутация: нет
Всего: нет



Предыстория: По электронике необходимо оптимизировать большие логические выражения. В-общем, оптимизировать-то я оптимизировал, а вот проверять лень, поскольку выражений четыре (два раза: оригинал и оптимизированное), входов X - 8. Т.е. для каждого выражения надо высчитать 256 комбинаций битов X. Итого: 2048 умственных расчётов.
Решил всё сделать синтетический тест на Ruby.

Проблема: Чтобы делать много проверок для всех комбинаций решил сделать массив этих самых комбинаций (т.е. матрицу). Примерно так:
Код

  комбинация 1:   0 0 0 0 0 0 0 0
  комбинация 2:   0 0 0 0 0 0 0 1
...
  комбинация 256: 1 1 1 1 1 1 1 1

Написал алгоритм, который должен заполнить пустую матрицу 256x8 нужными значениями. (Заполняется первый столбец наполовину нулями, наполовину - единицами. 0011. Следующий по четверти, но уже два раза. 0101)
*** размеры матрицы и значений поменял на меньшие для удобства. С нужными размерами тоже самое.
Код

x_from = 0
x_to = 2
values = [0, 1]

variants = density = values.size ** (x_to - x_from + 1)
repeat = 1

tests = Array.new variants, (Array.new ((x_to - x_from + 1), 0))


for x in (x_from)..(x_to)
  density = density / values.size
  y = 0
  repeat.times {
    values.each {|b|
      density.times {
        tests[y][x] = b
        print y.to_s + ':' + x.to_s + ' = ' + tests[y][x].to_s + "\n"
        y = y + 1
      }
    }
  }
  repeat = repeat * values.size
end


Работает цикл столько, сколько надо. Отладка выводит то, что и ожидалось:
Код

0:0 = 0
1:0 = 0
2:0 = 0
3:0 = 0
4:0 = 1
5:0 = 1
6:0 = 1
7:0 = 1
0:1 = 0
1:1 = 0
2:1 = 1
3:1 = 1
4:1 = 0
5:1 = 0
6:1 = 1
7:1 = 1
0:2 = 0
1:2 = 1
2:2 = 0
3:2 = 1
4:2 = 0
5:2 = 1
6:2 = 0
7:2 = 1


Обратите внимание на 
Код

print y.to_s + ':' + x.to_s + ' = ' + tests[y][x].to_s + "\n"

Я вывожу tests[y][x], всё ок. Больше этот элемент я нигде не трогаю.
Т.е. 6:2 = 0, а 7:2 = 1.  smile 

Ставлю теперь строчку
Код

print tests[6][2].to_s + tests[7][2].to_s + "\n"


Что бы вы думали? 
11

Чтобы описать моё состояние, дам ссылку на картинку: http://shattl.org/i/ffuuu.jpg

Я решил, что каким-то образом последнее присвоение случается для всех элементов матрицы. И тогда я немного видоизменил внутренность самого внутреннего цикла.
Код

...
        if x==2 && y==7
          print tests[6][2].to_s + " is "
        end
        tests[y][x] = b
        if x==2 && y==7
          print tests[6][2].to_s + "\n"
        end
...


Что бы вы думали? Компьютер с полной уверенностью пишет, что
0 is 1

Вопрос: Неужели я так сильно хочу спать, что прямо возле носа не вижу своей ошибки?

P.S. tests.each {... утверждает, что все элементы матрицы - единички.

Добавлено через 3 минуты и 26 секунд
Понимаю, что можно в тесте просто чесать от 0 до 255, разделяя i на восемь бит и отдавая их Y-выражениям. Я просто хочу уже разобраться, наконец, с этой аномалией.
PM MAIL   Вверх
source777
Дата 12.3.2010, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 6
Всего: 56



Цитата(kolpeex1 @  11.3.2010,  19:19 Найти цитируемый пост)
x_from = 0
x_to = 2
values = [0, 1]
variants = density = values.size ** (x_to - x_from + 1)
repeat = 1
tests = Array.new variants, (Array.new ((x_to - x_from + 1), 0))
for x in (x_from)..(x_to)
  density = density / values.size
  y = 0
  repeat.times {
    values.each {|b|
      density.times {
        tests[y][x] = b
        print y.to_s + ':' + x.to_s + ' = ' + tests[y][x].to_s + "\n"
        y = y + 1
      }
    }
  }
  repeat = repeat * values.size
end


Какой-то мегагемморойный способ заполнить матрицу нулями и единичками... без пол литра(и отладчика) не разберёшься.
Пожалей людей, которые твой код читать будут!!!

Лично мне первое что пришло в голову для заполнения матрицы всеми возможными комбинациями нулей и единиц по 8 штук - перебрать все числа от 0 до 255:
Код

x = 8
tests = []
(0...2**x).each do |int|
  const = 2**(x-1)
  test = []
  (1..x).each do |i|
    test << ((int & const != 0) ? 1 : 0)
    const = const >> 1
  end
  tests << test
end


Цитата

[0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 1]
[0, 0, 0, 0, 0, 0, 1, 0]
[0, 0, 0, 0, 0, 0, 1, 1]
[0, 0, 0, 0, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 1, 0, 1]
[0, 0, 0, 0, 0, 1, 1, 0]
[0, 0, 0, 0, 0, 1, 1, 1]
[0, 0, 0, 0, 1, 0, 0, 0]
[0, 0, 0, 0, 1, 0, 0, 1]
[0, 0, 0, 0, 1, 0, 1, 0]
[0, 0, 0, 0, 1, 0, 1, 1]
[0, 0, 0, 0, 1, 1, 0, 0]
[0, 0, 0, 0, 1, 1, 0, 1]
[0, 0, 0, 0, 1, 1, 1, 0]
[0, 0, 0, 0, 1, 1, 1, 1]
[0, 0, 0, 1, 0, 0, 0, 0]
[0, 0, 0, 1, 0, 0, 0, 1]
[0, 0, 0, 1, 0, 0, 1, 0]
[0, 0, 0, 1, 0, 0, 1, 1]
[0, 0, 0, 1, 0, 1, 0, 0]
[0, 0, 0, 1, 0, 1, 0, 1]
[0, 0, 0, 1, 0, 1, 1, 0]
[0, 0, 0, 1, 0, 1, 1, 1]
[0, 0, 0, 1, 1, 0, 0, 0]
[0, 0, 0, 1, 1, 0, 0, 1]
[0, 0, 0, 1, 1, 0, 1, 0]
[0, 0, 0, 1, 1, 0, 1, 1]
[0, 0, 0, 1, 1, 1, 0, 0]
[0, 0, 0, 1, 1, 1, 0, 1]
[0, 0, 0, 1, 1, 1, 1, 0]
[0, 0, 0, 1, 1, 1, 1, 1]
[0, 0, 1, 0, 0, 0, 0, 0]
[0, 0, 1, 0, 0, 0, 0, 1]
[0, 0, 1, 0, 0, 0, 1, 0]
[0, 0, 1, 0, 0, 0, 1, 1]
[0, 0, 1, 0, 0, 1, 0, 0]
[0, 0, 1, 0, 0, 1, 0, 1]
[0, 0, 1, 0, 0, 1, 1, 0]
[0, 0, 1, 0, 0, 1, 1, 1]
[0, 0, 1, 0, 1, 0, 0, 0]
[0, 0, 1, 0, 1, 0, 0, 1]
[0, 0, 1, 0, 1, 0, 1, 0]
[0, 0, 1, 0, 1, 0, 1, 1]
[0, 0, 1, 0, 1, 1, 0, 0]
[0, 0, 1, 0, 1, 1, 0, 1]
[0, 0, 1, 0, 1, 1, 1, 0]
[0, 0, 1, 0, 1, 1, 1, 1]
[0, 0, 1, 1, 0, 0, 0, 0]
[0, 0, 1, 1, 0, 0, 0, 1]
[0, 0, 1, 1, 0, 0, 1, 0]
[0, 0, 1, 1, 0, 0, 1, 1]
[0, 0, 1, 1, 0, 1, 0, 0]
[0, 0, 1, 1, 0, 1, 0, 1]
[0, 0, 1, 1, 0, 1, 1, 0]
[0, 0, 1, 1, 0, 1, 1, 1]
[0, 0, 1, 1, 1, 0, 0, 0]
[0, 0, 1, 1, 1, 0, 0, 1]
[0, 0, 1, 1, 1, 0, 1, 0]
[0, 0, 1, 1, 1, 0, 1, 1]
[0, 0, 1, 1, 1, 1, 0, 0]
[0, 0, 1, 1, 1, 1, 0, 1]
[0, 0, 1, 1, 1, 1, 1, 0]
[0, 0, 1, 1, 1, 1, 1, 1]
[0, 1, 0, 0, 0, 0, 0, 0]
[0, 1, 0, 0, 0, 0, 0, 1]
[0, 1, 0, 0, 0, 0, 1, 0]
[0, 1, 0, 0, 0, 0, 1, 1]
[0, 1, 0, 0, 0, 1, 0, 0]
[0, 1, 0, 0, 0, 1, 0, 1]
[0, 1, 0, 0, 0, 1, 1, 0]
[0, 1, 0, 0, 0, 1, 1, 1]
[0, 1, 0, 0, 1, 0, 0, 0]
[0, 1, 0, 0, 1, 0, 0, 1]
[0, 1, 0, 0, 1, 0, 1, 0]
[0, 1, 0, 0, 1, 0, 1, 1]
[0, 1, 0, 0, 1, 1, 0, 0]
[0, 1, 0, 0, 1, 1, 0, 1]
[0, 1, 0, 0, 1, 1, 1, 0]
[0, 1, 0, 0, 1, 1, 1, 1]
[0, 1, 0, 1, 0, 0, 0, 0]
[0, 1, 0, 1, 0, 0, 0, 1]
[0, 1, 0, 1, 0, 0, 1, 0]
[0, 1, 0, 1, 0, 0, 1, 1]
[0, 1, 0, 1, 0, 1, 0, 0]
[0, 1, 0, 1, 0, 1, 0, 1]
[0, 1, 0, 1, 0, 1, 1, 0]
[0, 1, 0, 1, 0, 1, 1, 1]
[0, 1, 0, 1, 1, 0, 0, 0]
[0, 1, 0, 1, 1, 0, 0, 1]
[0, 1, 0, 1, 1, 0, 1, 0]
[0, 1, 0, 1, 1, 0, 1, 1]
[0, 1, 0, 1, 1, 1, 0, 0]
[0, 1, 0, 1, 1, 1, 0, 1]
[0, 1, 0, 1, 1, 1, 1, 0]
[0, 1, 0, 1, 1, 1, 1, 1]
[0, 1, 1, 0, 0, 0, 0, 0]
[0, 1, 1, 0, 0, 0, 0, 1]
[0, 1, 1, 0, 0, 0, 1, 0]
[0, 1, 1, 0, 0, 0, 1, 1]
[0, 1, 1, 0, 0, 1, 0, 0]
[0, 1, 1, 0, 0, 1, 0, 1]
[0, 1, 1, 0, 0, 1, 1, 0]
[0, 1, 1, 0, 0, 1, 1, 1]
[0, 1, 1, 0, 1, 0, 0, 0]
[0, 1, 1, 0, 1, 0, 0, 1]
[0, 1, 1, 0, 1, 0, 1, 0]
[0, 1, 1, 0, 1, 0, 1, 1]
[0, 1, 1, 0, 1, 1, 0, 0]
[0, 1, 1, 0, 1, 1, 0, 1]
[0, 1, 1, 0, 1, 1, 1, 0]
[0, 1, 1, 0, 1, 1, 1, 1]
[0, 1, 1, 1, 0, 0, 0, 0]
[0, 1, 1, 1, 0, 0, 0, 1]
[0, 1, 1, 1, 0, 0, 1, 0]
[0, 1, 1, 1, 0, 0, 1, 1]
[0, 1, 1, 1, 0, 1, 0, 0]
[0, 1, 1, 1, 0, 1, 0, 1]
[0, 1, 1, 1, 0, 1, 1, 0]
[0, 1, 1, 1, 0, 1, 1, 1]
[0, 1, 1, 1, 1, 0, 0, 0]
[0, 1, 1, 1, 1, 0, 0, 1]
[0, 1, 1, 1, 1, 0, 1, 0]
[0, 1, 1, 1, 1, 0, 1, 1]
[0, 1, 1, 1, 1, 1, 0, 0]
[0, 1, 1, 1, 1, 1, 0, 1]
[0, 1, 1, 1, 1, 1, 1, 0]
[0, 1, 1, 1, 1, 1, 1, 1]
[1, 0, 0, 0, 0, 0, 0, 0]
[1, 0, 0, 0, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0, 1, 0]
[1, 0, 0, 0, 0, 0, 1, 1]
[1, 0, 0, 0, 0, 1, 0, 0]
[1, 0, 0, 0, 0, 1, 0, 1]
[1, 0, 0, 0, 0, 1, 1, 0]
[1, 0, 0, 0, 0, 1, 1, 1]
[1, 0, 0, 0, 1, 0, 0, 0]
[1, 0, 0, 0, 1, 0, 0, 1]
[1, 0, 0, 0, 1, 0, 1, 0]
[1, 0, 0, 0, 1, 0, 1, 1]
[1, 0, 0, 0, 1, 1, 0, 0]
[1, 0, 0, 0, 1, 1, 0, 1]
[1, 0, 0, 0, 1, 1, 1, 0]
[1, 0, 0, 0, 1, 1, 1, 1]
[1, 0, 0, 1, 0, 0, 0, 0]
[1, 0, 0, 1, 0, 0, 0, 1]
[1, 0, 0, 1, 0, 0, 1, 0]
[1, 0, 0, 1, 0, 0, 1, 1]
[1, 0, 0, 1, 0, 1, 0, 0]
[1, 0, 0, 1, 0, 1, 0, 1]
[1, 0, 0, 1, 0, 1, 1, 0]
[1, 0, 0, 1, 0, 1, 1, 1]
[1, 0, 0, 1, 1, 0, 0, 0]
[1, 0, 0, 1, 1, 0, 0, 1]
[1, 0, 0, 1, 1, 0, 1, 0]
[1, 0, 0, 1, 1, 0, 1, 1]
[1, 0, 0, 1, 1, 1, 0, 0]
[1, 0, 0, 1, 1, 1, 0, 1]
[1, 0, 0, 1, 1, 1, 1, 0]
[1, 0, 0, 1, 1, 1, 1, 1]
[1, 0, 1, 0, 0, 0, 0, 0]
[1, 0, 1, 0, 0, 0, 0, 1]
[1, 0, 1, 0, 0, 0, 1, 0]
[1, 0, 1, 0, 0, 0, 1, 1]
[1, 0, 1, 0, 0, 1, 0, 0]
[1, 0, 1, 0, 0, 1, 0, 1]
[1, 0, 1, 0, 0, 1, 1, 0]
[1, 0, 1, 0, 0, 1, 1, 1]
[1, 0, 1, 0, 1, 0, 0, 0]
[1, 0, 1, 0, 1, 0, 0, 1]
[1, 0, 1, 0, 1, 0, 1, 0]
[1, 0, 1, 0, 1, 0, 1, 1]
[1, 0, 1, 0, 1, 1, 0, 0]
[1, 0, 1, 0, 1, 1, 0, 1]
[1, 0, 1, 0, 1, 1, 1, 0]
[1, 0, 1, 0, 1, 1, 1, 1]
[1, 0, 1, 1, 0, 0, 0, 0]
[1, 0, 1, 1, 0, 0, 0, 1]
[1, 0, 1, 1, 0, 0, 1, 0]
[1, 0, 1, 1, 0, 0, 1, 1]
[1, 0, 1, 1, 0, 1, 0, 0]
[1, 0, 1, 1, 0, 1, 0, 1]
[1, 0, 1, 1, 0, 1, 1, 0]
[1, 0, 1, 1, 0, 1, 1, 1]
[1, 0, 1, 1, 1, 0, 0, 0]
[1, 0, 1, 1, 1, 0, 0, 1]
[1, 0, 1, 1, 1, 0, 1, 0]
[1, 0, 1, 1, 1, 0, 1, 1]
[1, 0, 1, 1, 1, 1, 0, 0]
[1, 0, 1, 1, 1, 1, 0, 1]
[1, 0, 1, 1, 1, 1, 1, 0]
[1, 0, 1, 1, 1, 1, 1, 1]
[1, 1, 0, 0, 0, 0, 0, 0]
[1, 1, 0, 0, 0, 0, 0, 1]
[1, 1, 0, 0, 0, 0, 1, 0]
[1, 1, 0, 0, 0, 0, 1, 1]
[1, 1, 0, 0, 0, 1, 0, 0]
[1, 1, 0, 0, 0, 1, 0, 1]
[1, 1, 0, 0, 0, 1, 1, 0]
[1, 1, 0, 0, 0, 1, 1, 1]
[1, 1, 0, 0, 1, 0, 0, 0]
[1, 1, 0, 0, 1, 0, 0, 1]
[1, 1, 0, 0, 1, 0, 1, 0]
[1, 1, 0, 0, 1, 0, 1, 1]
[1, 1, 0, 0, 1, 1, 0, 0]
[1, 1, 0, 0, 1, 1, 0, 1]
[1, 1, 0, 0, 1, 1, 1, 0]
[1, 1, 0, 0, 1, 1, 1, 1]
[1, 1, 0, 1, 0, 0, 0, 0]
[1, 1, 0, 1, 0, 0, 0, 1]
[1, 1, 0, 1, 0, 0, 1, 0]
[1, 1, 0, 1, 0, 0, 1, 1]
[1, 1, 0, 1, 0, 1, 0, 0]
[1, 1, 0, 1, 0, 1, 0, 1]
[1, 1, 0, 1, 0, 1, 1, 0]
[1, 1, 0, 1, 0, 1, 1, 1]
[1, 1, 0, 1, 1, 0, 0, 0]
[1, 1, 0, 1, 1, 0, 0, 1]
[1, 1, 0, 1, 1, 0, 1, 0]
[1, 1, 0, 1, 1, 0, 1, 1]
[1, 1, 0, 1, 1, 1, 0, 0]
[1, 1, 0, 1, 1, 1, 0, 1]
[1, 1, 0, 1, 1, 1, 1, 0]
[1, 1, 0, 1, 1, 1, 1, 1]
[1, 1, 1, 0, 0, 0, 0, 0]
[1, 1, 1, 0, 0, 0, 0, 1]
[1, 1, 1, 0, 0, 0, 1, 0]
[1, 1, 1, 0, 0, 0, 1, 1]
[1, 1, 1, 0, 0, 1, 0, 0]
[1, 1, 1, 0, 0, 1, 0, 1]
[1, 1, 1, 0, 0, 1, 1, 0]
[1, 1, 1, 0, 0, 1, 1, 1]
[1, 1, 1, 0, 1, 0, 0, 0]
[1, 1, 1, 0, 1, 0, 0, 1]
[1, 1, 1, 0, 1, 0, 1, 0]
[1, 1, 1, 0, 1, 0, 1, 1]
[1, 1, 1, 0, 1, 1, 0, 0]
[1, 1, 1, 0, 1, 1, 0, 1]
[1, 1, 1, 0, 1, 1, 1, 0]
[1, 1, 1, 0, 1, 1, 1, 1]
[1, 1, 1, 1, 0, 0, 0, 0]
[1, 1, 1, 1, 0, 0, 0, 1]
[1, 1, 1, 1, 0, 0, 1, 0]
[1, 1, 1, 1, 0, 0, 1, 1]
[1, 1, 1, 1, 0, 1, 0, 0]
[1, 1, 1, 1, 0, 1, 0, 1]
[1, 1, 1, 1, 0, 1, 1, 0]
[1, 1, 1, 1, 0, 1, 1, 1]
[1, 1, 1, 1, 1, 0, 0, 0]
[1, 1, 1, 1, 1, 0, 0, 1]
[1, 1, 1, 1, 1, 0, 1, 0]
[1, 1, 1, 1, 1, 0, 1, 1]
[1, 1, 1, 1, 1, 1, 0, 0]
[1, 1, 1, 1, 1, 1, 0, 1]
[1, 1, 1, 1, 1, 1, 1, 0]
[1, 1, 1, 1, 1, 1, 1, 1]


И никаких тебе аномалий...



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
kolpeex1
Дата 12.3.2010, 05:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 11.3.2010

Репутация: нет
Всего: нет



Нормальное заполнение-то я сделал. Меня конкретно смущает то, что запись в элемент массива переписывает все элементы.

А алгоритм простой:
Внешний цикл - это обход столбцов.
density - это плотность заполнения, изначально равная половине количества вариантов.
Самый внутренний цикл заполняет density ячеек нулями, а потом (цикл values.each) единичками.
Для следующего ряда density уменьшается вдвое.
Примерно так:
Код

density = 4
0
0
0
0
1
1
1
1
density = 2
0
0
1
1
density = 1
0
1

Но поскольку каждый ряд заполнен только на density значений, я повторяю заполнение. При чём количество повторов удваивается каждый ряд
Код

density:
421
repeats:
124
bits:
000
001
010
011
100
101
110
111


А насчёт сопровождения: я специально вынес размерность и принимаемые аргументы. Чтобы в будущем просто использовать это код без изменений. Например, чтобы получить массив всех возможных IP-адресов, достаточно задать x_from=0, x_to=3, values=(0..255).to_a

PM MAIL   Вверх
source777
Дата 12.3.2010, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 6
Всего: 56



Цитата(kolpeex1 @  12.3.2010,  05:22 Найти цитируемый пост)
Нормальное заполнение-то я сделал.

Что ж в нём нормального, если даже ты как автор не можешь понять почему он не работает корректно, а на выходе получается массив из одних единиц. Код не просто попахивает, он воняет: взять хотя бы 4 вложенных цикла для заполнения двумерного массива, за такое можно смело премии лишать.  smile  А если серьёзно, то рефакторинг просто необходим, чтобы код стал нормальным и читаемым. 


Цитата(kolpeex1 @  12.3.2010,  05:22 Найти цитируемый пост)
Меня конкретно смущает то, что запись в элемент массива переписывает все элементы.

Чего ж тебя смущает, ты ведь сам под все вложенные массивы выделил одну общую область памяти:
Код

tests = Array.new variants, (Array.new ((x_to - x_from + 1), 0))

можно конечно просто продемонстрировать глубокое знание Ruby и использовать правильный для данного случая синтаксис:
Код

tests = Array.new(variants) { Array.new(x_to - x_from + 1, 0) }


Но лучше выкинуть все 24 строки и переписать нормально весь алгоритм, чтобы код стал читабельным, а не write-only. Всё-таки Ruby - очень выразительный язык, и весьма неприятно видеть подобные примеры его использования.


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
kolpeex1
Дата 14.3.2010, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 11.3.2010

Репутация: нет
Всего: нет



Спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby: Общие вопросы"
source777
  • С чего начать? начинаем
  • Ссылки на полезные ресурсы смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0681 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.