IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Магический квадрат, Visual basic 6.0
Muffin
сообщение 2.12.2007 19:40
Сообщение #1





Группа: Пользователи
Сообщений: 5
Пол: Женский
Реальное имя: Наталья

Репутация: -  0  +


Привет вам дорогие форумчане. Не могли бы вы помочь мне с одной програмкой. Програмка та ещё,на уровне фантастики. Вот само описание: дается квадрат с где k номер каждой ячейки... за определенное конечное колическтво шагов необходимо просчитать где перемещаемая точка быть не может, она не может двигаться по диагонали, и при этом при каждом шаге должно быть так чтобы точке было куда двигаться, за некоторое колическтво ходов по несколько шагов, точка должна остаться только в одном месте, которое и должна выдавать программа, гдt на выходе должна быть матрца квадрата, а ячейка в которой остается точка должна принимать значение истина. Компилятор Visual Basic Studio 6.0
P.S. Заранее огромное вам спасибо))))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Michael_Rybak
сообщение 6.12.2007 17:46
Сообщение #2


Michael_Rybak
*****

Группа: Модераторы
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


Алгоритм примерно такой. Мысленно переносим всё это на шахматную доску. Зафиксируем количество шагов в ходе, пусть будет 6, например.

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

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

В целом, так.

Цвет клетки (x, y) можно определять так:

Код
if (x + y) mod 2 = 0 then
  ' черная
  ...
else
  ' белая
  ...
end if

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Muffin   Магический квадрат   2.12.2007 19:40
Michael_Rybak   Совершенно бессвязное условие, как по мне. Пойми ...   3.12.2007 14:32
klem4   я вот тоже ничего не понял ... ps :)   3.12.2007 17:49
Michael_Rybak   ps Упс :) Пасиб, исправил :)   3.12.2007 19:04
Muffin   слушайте, ребят, если я девочка это не значит что ...   3.12.2007 21:23
klem4   Ну вот теперь более понятно. Очень интересная зада...   3.12.2007 21:40
Michael_Rybak   Протестую. То, что я мальчик, тоже не значит, чт...   4.12.2007 0:05
Гость   Пасиба.... аж приятно стало за такой ответ, серьез...   4.12.2007 21:35
Muffin   это я была, тока войти забыла)   4.12.2007 21:37
Michael_Rybak   Тогда давай начинать с простого. Насколько я пони...   4.12.2007 21:51
Muffin   а там не должен быть строгоквадрат, там 3 на 3 или...   5.12.2007 17:42
Michael_Rybak   Алгоритм примерно такой. Мысленно переносим всё эт...   6.12.2007 17:46
Muffin   ок в результате программа должна выдать матруцу k1...   6.12.2007 19:50
Michael_Rybak   скорее, программа должна последовательно выводить ...   6.12.2007 19:57


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 23.07.2025 21:07
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"