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

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Массивы, ...и работа с ними.
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Женский

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


Есть задачка интресная. Нужно создать двух(трех)мерный действительный массив (можно не динамический) без одинаковых элементов. Плюс там еще куча всякой ерунды, но то уже не проблемма...
А вообще, зря тему закрыли (эт та, что в важных торчит smile.gif ). Она, по моему, давольно таки актуальна для студентов...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 26

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


Ну как , если надо, чтобы разные числа, то берёшь одно какое-то число=р, а дальше идёшь циклом по массиву и заполняешь его р n-ый*х, где х-коэффициент, нужный тебе.


--------------------
QUI NON PROFICIT, DEFICIT(Кто не идёт вперёд, идёт назад)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Женский

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


В том то и загвоздка, что это не исключает повтор элементов... хотя это и мало вероятно. Вообще то задачка чуть сложнее... массив уже задан. Т.е. получается, что нужно найти два одинаковых элемента и один из них изменить так, что бы он при этом не совпадал с др. элементами.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Прогрессор
****

Группа: Пользователи
Сообщений: 602
Пол: Мужской
Реальное имя: Михаил

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


Только что в голову пришло: ищем максимальный в массиве элемент, запоминаем. Потом идём по массиву, начиная со 2 элемента ищем одинаковые элементы среди уже просмотренных. Если находим, то присваиваем одному из них значение макс. эл-та +1. Ещё находим одинаковые - присваиваем max+2 и т. д. Таким образом, новое значение гарантированно не совпадёт с другими, потому что будет больше их.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Женский

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


Есть еще неплохая задачка на сортировку массивов. Никто про Конвеевскую игру жизнь не слышал ? Ну я думаю что кодеры с большим стажем должны были слышать о ней... А суть такая: есть двумерный массив, каждый элемент которого может принимать два значения 1 и 0, ну или др. какие захотите... так вот, значение ячейки изменяется в зависимости от окружающих ее элементов (примерно как в сапере), если соседних ячеек с элементом равным 1 меньше 2 (т.е. всего одна) либо больше 4, то значение выбранной ячейки обнуляется, если таких соседей 3, то ячейка приравнивается еденице.
Вот, вроде как ничего не напутал...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Женский

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


Хотелось бы реализовать, но проблемма с выводом результата...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Прогрессор
****

Группа: Пользователи
Сообщений: 602
Пол: Мужской
Реальное имя: Михаил

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


Lik, слушай, я не только слышал, но и очень долго увлекался этой игрой!
Год назад пробовал написать, вроде получилось, но тоже возникли проблемы с выводом результата, а потом какой-то другой задачей заинтересовался...
Вообще - очень интересная тема. Где ты прочитал об этой игре? Я - у Мартина Гарднера в "Математических досугах", потом у него же в "Крестиках-ноликах" - там больще материала. Особо впечатлили "глайдерные ружья", которые раз в 30 ходов выстреливают из себя пятиклеточные фигурки, улетающие в бесконечность и "раэмножитель", да и вообще много дико интересного. Потом два раза видел {в энциклопедии и в компьютерном журнале} программки "Жизни", но не особо впечатлило. По-моему, можно оптимальнее сделать.

Американские программисты нашли "Сад Эдема"- конфигурацию, которая по правилам игры не может получиться ни из одной другой. Так вот , я как-то думал над немного другой задачей. Допустим, дала нам конфигурацию(не очень большую) и задали найти все конфигурации, умещающиеся в прямоугольнике MxN, из которых на следующем ходу получается данная.
То есть найти всех возможных "мам" ребёнка. Сложновато, но интересно. Самое главное - можно ли написать нерекурсивную процедуру? Можно, конечно, простым перебором, но тогда перебрирать 2^S, S - площадь прямоугольника.

Цитата
либо больше 4
Вернее - больше трёх.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

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


Цитата(Lik @ 31.03.04 18:01)
Хотелось бы реализовать, но проблемма с выводом результата...

А можно поподробнее?
В чем проблема м выводом рез-ов?

Я помниться сам делал "Жизнь", у меня нормально все работало....

Сообщение отредактировано: APAL -


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Прогрессор
****

Группа: Пользователи
Сообщений: 602
Пол: Мужской
Реальное имя: Михаил

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


Ну у меня проблема была, в общем-то, в моей лени и тогдашней неопытности.
Во-первых, хотелось сделать покрасивее, а с графикой я ещё не работал. Во-вторых, если действие игры происходит в ограниченном пространстве, то всё понятно , а вот сделать так, чтобы конфигурации могли развиваться практически бесконечно в разные стороны{пока пямяти хватит}, и к тому же их ещё было возможно нормально просматривать... Короче, я тогда так и забросил прогу, увлёкся реализацией консольного редактора таблиц... а жаль. Ну летом обязательно возьмусь, и чего-нибудь наколдую.
APAL, а как ты выводил развитие игры?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

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


Цитата(Atos @ 6.04.04 11:22)
APAL, а как ты выводил развитие игры?

Когда я задумался о выводе, то вспомнил одну настольную игру - ТОР.

Правил не помню, да это и не важно, главное какое там используется поле...
А оно представляет собой развертку... как думаешь чего?... правильно ТОРА!

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

При выходе фигуры за правое поле, она будет появляться слева - надо только все правильноа просчитать.

P.S.: Пока писал все выше приведенное, возникла мысль, что слово бублик можно заменить на шар.... если пренебречь искажениями... почти глобус... smile.gif


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Прогрессор
****

Группа: Пользователи
Сообщений: 602
Пол: Мужской
Реальное имя: Михаил

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


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

А что, "Жизнь" больше никто не программировал?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Новичок
*

Группа: Пользователи
Сообщений: 26

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


Я программировал, получилось легко:
Если надо, пришлю по майлу.


--------------------
QUI NON PROFICIT, DEFICIT(Кто не идёт вперёд, идёт назад)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Прогрессор
****

Группа: Пользователи
Сообщений: 602
Пол: Мужской
Реальное имя: Михаил

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


Пришли, пожалуйста, если не трудно. Интересно сравнить. Вообще игрушка интересная. В 70-х она разорила США на тысячи часов машинного времени. Игры - страшная сила smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Женский

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


Цитата(Atos @ 3.04.04 8:47)
Где ты прочитал об этой игре? Я - у Мартина Гарднера в "Математических досугах"...

А я у друга в тетрадке smile.gif Во бщем этот то друг и помог решить проблему вывода,(To APAL) у меня тогда модуль graph не работал, он на асме написал.
И проблему с тором тоже нас заинтересовала smile.gif Решили просто, но опять же с помощью ассемблера. Там вывод шел через 'х' и 'у', вот и присвоили каждой переменной свой размер, там примерно так получилось:
Код

t:array[1..320,1..200] of byte;
x:1..320;
y:1..200;

в х и у в итоге заработала цикличность smile.gif
Но с тором ерунда получилась, там все время стабильные системы появлялись в итоге... Получается, что теперь нужно ограничить время жизни точек ;) У кого какие предложения?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

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


Можно сделать остановку процесса по нажатию какой либо клавиши и вручную, курсором затереть ненужные точки... ;)


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 29.03.2024 18:05
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name