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

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

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

> Массивы, ...и работа с ними.
Lik
сообщение 25.03.2004 23:12
Сообщение #1


Новичок
*

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

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


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


Новичок
*

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

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


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


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


Новичок
*

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

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


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


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

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

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


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


Новичок
*

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

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


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


Новичок
*

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

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


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


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

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

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


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

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

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


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

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

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


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

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

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

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


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


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

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

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


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


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

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

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


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

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

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

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

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

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


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


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

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

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


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

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


Новичок
*

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

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


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


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


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

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

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


Пришли, пожалуйста, если не трудно. Интересно сравнить. Вообще игрушка интересная. В 70-х она разорила США на тысячи часов машинного времени. Игры - страшная сила smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lik
сообщение 10.04.2004 14:38
Сообщение #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 
 К началу страницы 
+ Ответить 
APAL
сообщение 12.04.2004 10:01
Сообщение #15


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

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

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


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


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

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

 



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