БлогNot. Блог ПерСа

Помощь дата->рейтинг Поиск Почта RSS канал Статистика nickolay.info Домой

studio c++ программирование шахматы рейтинг история javascript графика сказка маразм личное php словарь язык english алгоритм random firefox браузеры статистика блог учебное россия общество список тест форматы время числа цвет сервис mysql памятка чат стихи ретро люди rip mathcad математика ошибка google ссылки форум образование сервер html безопасность игра деградация все теги все комментарии


[1-15] [16-30] ... [1801-1815] [1816-1829]


Прикреплённое сообщение, правила и всё такое

Остеклить балкон, лоджию в Новосибирске? Проверено, Вам сюда

Encoding: Windows-1251 (Russian). Для полноценной работы блога нужны включённые в браузере картинки + JavaScript + Cookies.
Если картинки выключены, используйте эти ссылки: Поиск ::: Статистика ::: Помощь ::: E-mail ::: RSS ::: Nickolay.info
Ссылки, открывающие новое окно (вкладку), везде подсвечены.

Даже по законам Эрефии этот блог не является СМИ, все сообщения выражают личную точку зрения автора блога и являются оценочными суждениями, при этом любые совпадения мест, имён, названий и действующих лиц далеко не случайны. В блоге нет файлов, способных нанести вред Вашему компьютеру или мобильному устройству. Если Вам не исполнилось 18+, срочно отвалите отсюда, прикиньтесь ветошью и не отсвечивайте покиньте этот блог. Учтите, что читая его, Вы вторгаетесь на мою личную территорию :) Страница статьидалее...
19.01.2038, 15:15 [10642]


Visual C++: основные действия над строками и столбцами таблицы DataGridView

В дополнение к примерам на табличные компоненты (1, 2) покажем работу со строками и столбцами таблицы DataGridView, в частности, их добавление и удаление плюс "сбор" информации из ячеек таблицы.

вид формы приложения в конструкторе
вид формы приложения в конструкторе

На рисунке показана форма примера, её можно сделать так:

Нам понадобится обработать только нажатия пяти кнопок, поскольку "ручной" ввод данных в таблицу разрешён по умолчанию.

При добавлении строки сначала сформируем её программно, установив также заголовок строки HeaderCell и настроив его ширину RowHeadersWidth. Страница статьидалее...
22.11.2017, 11:05 [11]


Как росла сила шахматных движков?

Наткнулся на интересный график, так как он лежал "не открыто", кину сюда копию.

Реальный график увеличения силы движков во времени по-моему выглядит, всё-таки, скорее логарифмическим, чем линейным.

Где-то видел также теоретические оценки верхнего предела для ELO, там говорили о 5500-6000, но ведь ещё недавно и 3600 казалось максимумом.

примерные средние рейтинги ELO шахматных программ для суперкомпьютеров и персоналок, по годам
примерные средние рейтинги ELO шахматных программ для суперкомпьютеров и персоналок, по годам

Страница статьидалее...
19.11.2017, 01:03 [33]


Javascript: сетка из правильных шестиугольников на канве

Одноразово для ребёнка, так как аналогии с пчелиными сотами не хватило. Дело в том, что в сказку про Ёжку-Кошку неожиданно вкралась Вавилонская библиотека - пожалуй, лучшее из известных мне художественных произведений вообще, я не преувеличиваю :)

Как известно, Кот и Таракан (из Другой Сказки, те самые, что едва не стрясли Дерево Мира), в итоге оказались в Лесу, где Кот, наконец, смог поселиться на берегу молочной реки с кисельными берегами, а Таракан стал библиотекарем в замке Волшебника.

Когда они всё же собрались снова, Ёжка-Кошка привезла Кота и Таракана на ковре-самолёте в Замок. Волшебника не было дома, а эти трое ухитрились заблудиться в Бесконечной Библиотеке Волшебника, которая снаружи казалась просто пыльным скопищем из нескольких стеллажей, а внутри представляла собой правильную сетку гексов, заставленных рандомными книгами. Двери, стеллажи и угловые удобства в виде кроваток, санузлов и Неправильных Автоматов для заказа пищи (они работали, но всегда выдавали не то, что ты заказал), я рисовать поленился, а вот саму сеточку из шестиугольников - пожалуйста (javascript + canvas). Текущая комната меняется движением мыши.

Исходник вместе с обрамлением HTML - под катом. Он может быть сохранён как файл типа .html в кодировке Юникод (UTF-8). Извините, ваш браузер не поддерживает тег canvas

Извините, требуется включённый Javascript для работы приложения!
Страница статьидалее...
17.11.2017, 23:43 [31]


PHP: ищем в словаре слова-анаграммы нужной длины

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

Напишем небольшой скрипт, находящий в тексте анаграммы заданной в символах длины (не все подряд, чтобы не получалось слишком много результатов).

Использованный алгоритм - "лобовой", он сильно избыточен и не претендует на оптимальное быстродействие, но хорошо показывает, как на PHP удобно решать такие задачи, если быстродействие не критично.

Ниже приведён полный исходник приложения с подробными комментариями. Чтобы его выполнить на своём компьютере, нужно установить локальный сервер и записать скрипт в его корневую папку, например, под именем anagram.php, затем скопировать в ту же папку развёрнутый из архива .zip словарь под именем words.txt и выполнить скрипт из любого браузера как http://localhost/anagram.php Страница статьидалее...
16.11.2017, 14:41 [38]


Про шахматы Фишера и скрипт для начальной расстановки фигур в них

Из всех многочисленных альтернативных шахмат наиболее популярны, пожалуй, шахматы Фишера, по ним проводятся вполне представительные турниры, а некоторые гроссмейстеры (как правило, из "второго эшелона") активно их пропагандируют в качестве замены классике (например, Андрей Девяткин).

Суть фишеровской новации состоит в том, что расстановка фигур по первой линии выбирается случайным образом. Так как в этой случайности есть ограничения (чёрные и белые фигуры стоят симметрично, слоны должны быть разнопольными, а ладьи - с разных сторон от короля), то различных начальных позиций оказывается всего 960, почему шахматы Фишера ещё называют "Шахматы-960".

Идея Фишера была, конечно, в том, чтобы уйти в дебюте от "скучных схем", но выиграли ли мы больше, чем проиграли? На мой скромный любительский взгляд, шахматы Фишера обладают значительным количеством недостатков:

В общем, вот такая присказка, хотя с ней, конечно, можно не соглашаться. А в качестве сказки - вот маленькая "расставлялка" начальных позиций в шахматы Фишера с возможностью генерации картинки:

Идея такого алгоритма расстановки принадлежит Гансу Бодландеру (Hans L. Bodlaender).

Полный исходник скрипта, включая обрамление HTML, приводится ниже. Его можно сохранить как файл типа .html, предполагается, что выбрана кодировка Юникод (UTF-8). Страница статьидалее...
16.11.2017, 08:25 [36]


Firefox Quantum - не ждали?

Firefox обновился до ожидаемой многими версии 57. Новая версия даже получила отдельное название Quantum.

Разработчики заявляют, что Firefox Quantum - самый большой шаг, сделанный компанией со времён версии 1.0 от 2004 года, а "серфинг стал вдвое быстрее". Последнее, конечно, не так, но прирост производительности (и увеличившиеся нагрузка на проц + требования к оперативке) налицо.

Возможно, это связано с новым движком для анализа и обработки CSS-файлов Stylo.

Согласно блогу компании, добавлены также приоритизация открытых вкладок, поддержка аппаратного декодера AMD VP9 для улучшения воспроизведения видео, по нажатию "гамбургера" возвращено более-менее классическое меню вместо панели с картинками.

Интерфейс Photon в целом выглядит приятней мерзкого Australis, но на кой сделали прямоугольными ярлыки вкладок, прямо как как в "яндекс-браузере"?

У страницы about:home появились настройки, удобнее стала настраиваемая панель инструментов, например, я сделал так: Страница статьидалее...
15.11.2017, 15:27 [43]


9 лет бложеку

Раз уж сложилась такая традиция, кину в очередной раз пару подобных же строк.

За год нацарапано опять 210 заметок, счётчик перевалил за 15 100 000 переходов к статьям.

Зима началась вовремя, то есть, на этой неделе.

Что произошло с тегами? Важнее "России" стал даже "PHP", но ведь так оно и есть - "Таки вы посмотрите на этот мир, и вы посмотрите на эти брюки!". Страница статьидалее...
15.11.2017, 12:13 [38]


Visual C++/CLI: рисуем линию на PictureBox "как в Paint"

То есть, при движении мыши с зажатой кнопкой линия должна динамически обновляться, а при отпускании кнопки добавляться на существующий рисунок. Так как PictureBox удобно сохранять и легко снабдить полосами прокрутки, будем рисовать на ней. Компонента может быть частью интерфейса приложения как в этой заметке или растянутой на всю форму. Проект создан как приложение Windows Forms, код проверен в Visual Studio 2015.

Опишем в классе формы (после директивы #pragma endregion) необходимые данные:

private:
 Point p1, p2; //начало и конец линии
 Pen^ pen1; //перо
 Bitmap ^Img1; //основная картинка, на которой рисуем
 bool isPressed; //флажок "кнопка мыши зажата"

Для самой формы нам понадобится запрограммировать только событие Load, где мы инициализируем всё, что нужно - создадим рисунок по текущим размерам PictureBox, назначим его компоненте, создадим перо и выставим в "ложь" флажок: Страница статьидалее...
14.11.2017, 13:29 [41]


Visual C++/CLI: рисуем простой график функции в PictureBox

В этом примере мы хотим нарисовать простой график на компоненте PictureBox "по точкам", а не с использованием готовой компоненты Chart.

Создав проект Windows Forms в любой версии Studio 2012 и выше, придадим окну формы удобный размер и перетащим туда компоненту TableLayoutPanel, установим ей свойство Dock=Fill, затем удалим последнюю строку так, чтобы осталось 2 столбца, первому столбцу зададим относительную ширину 100%, а второму - абсолютную ширину 100 пикселов (как выполнять такие действия, показано в этой заметке).

В правую ячейку TableLayoutPanel перетащим кнопку Button и привяжем её ко всем краям формы, кроме нижнего (свойство Anchor = Top, Left, Right, свойство Dock=Top).

В левую ячейку перетащим PictureBox и также установим ему Dock=Fill. Внешний вид полученной формы показан на рисунке: Страница статьидалее...
10.11.2017, 13:12 [65]


Отчего бывают революции?..

"...лишь от недостатка эволюции", так я написал в статусе социальной сети, и на этом, собственно, статью можно закончить.

Россия умерла. Ровно 100 лет назад. На удивление, столетие трагической её гибели (после тяжёлой и продолжительной болезни) прошло без плясок на костях, ряженых казачков и словесной пачкотни об единстве и национальном примирении. Может, даже у нынешней власти хватило здравых рефлексов не ворошить лишний раз столетней давности прах, а может и впрямь сочли повод малозначительным - чего там отмечать-то, ещё ведь даже Медведева не было на свете.

Россия умерла. Но она было серьёзно больна уже к 1881 году, когда убийство террористами царя-освободителя Александра II на время повернуло историю вспять, и пришли Александр III с Победоносцевым, 1905-й год, Первая Мировая, блаженный Николай II, охотившийся на ворон и кошек, герой шуточек вроде "Царь с Егорием, а царица с Григорием", да много чего было, но нормальной терапии в виде Конституционной монархии - строя, при котором страна могла бы жить до сих пор, она вовремя не получила, а лечение после 1905-го оказалось запоздавшим и паллиативным.

Могла ли страна избежать той катастрофы? Это всё равно, что спрашивать, могло ли не быть уже произошедшего землетрясения. С революциями дело обстоит примерно так же - мы неплохо можем описать зоны сейсмической опасности и затем, уже после произошедших разрушений, удивляться "слепоте" сейсмологов, не сумевших вовремя нас предупредить. Но конкретных методик предсказания землетрясений не существует, как нет их и для революций.

Да, пять признаков революции от Джека Голдстоуна имеют смысл, я бы мог добавить к ним и ещё какие-нибудь, например, подросшее и не нашедшее себе места в обществе "поколение демографического взрыва", которое всегда в революции присутствует, но всю проблему можно описать короче. Основную причину всех революций я в этом блоге уже формулировал: Страница статьидалее...
09.11.2017, 10:34 [59]


C++: прочитать файл как вектор из символов char

В примере читается текстовый файл data.txt из текущей папки, но будет прочитан и любой бинарный.

Метод vectorRead возвращает вектор, сформированный из байтов нужного файла. Обратите внимание, что вектор должен быть создан в "куче", явным вызовом конструктора new, а не в стеке как локальная переменная (то есть, не кодом вида vector <char> v(len);).

Цикл в главной функции печатает символы в 16-ричном представлении по 16 штук в строке, таким образом, получается 16-ричный дамп файла средствами <iostream>.

Проблемы также может создать то, что в Studio тип данных char по умолчанию - знаковый, соответственно, коды русских букв в однобайтовой кодировке отрицательны. Мы их преобразуем оператором вида if (c < 0) c += 256;

Проверено в консоли Studio 2015. Страница статьидалее...
07.11.2017, 22:21 [61]


Тест на PHP: можно ли ещё проще?

По сути, это лишь ещё упрощённая версия вот такого теста, понадобилось в работе :)

Разница в том, что в упрощённом коде есть всего один вид вопросов - выбор варианта ответа из нескольких предложенных. Весь тест по-прежнему хранится в массиве $test, только теперь там для единообразия вложенные данные (о вариантах ответа на вопрос и баллах за них) также оформлены в виде массивов. Везде по умолчанию выбран "пустой" вариант с обозначением "???", то есть, за вопросы, на которые не выбиралось никакого ответа, баллы не начисляются.

Полный исходник приложения приводится ниже, выполнить его можно, установив на своём компьютере локальный сервер и выполнив на нём код, сохранённый в папке сервера как файл типа .php. Разметка файла - HTML5, а не 4, как в исходном скрипте. Страница статьидалее...
06.11.2017, 15:17 [62]


PHP: ищем среднее время за сутки

Имеется несколько строк со значениями времени вида ЧЧ:ММ или ЧЧ:ММ:СС в 24-часовом формате, найти среднее время.

Будем считать, что 0:00 - это прошедшая полночь, а 24:00 - следующая.

Строки со временем "положим" в массив $timestamps, с помощью функции time2sec найдем время в секундах (массив $times), усредним его и переведём обратно в часы, минуты и секунды функцией sec2time.

Думается, для практических целей такой точности, как в показанном ниже коде достаточно (вообще-то, значение $average выходит вещественным и при обработке его функцией sec2time мы теряем точность). Ниже показан PHP-код функций для перевода времени ЧЧ:ММ:СС в секунды и обратно и тестовый вызов этих функций. Страница статьидалее...
05.11.2017, 20:40 [60]


Visual C++: рисуем мышью графическую кривую на PictureBox

Мы уже рисовали на канве формы с помощью Visual C++/CLI вот в этом примере. На сей раз используем для рисования канву компоненты PictureBox.

В Studio 2015 создадим проект Windows Forms на C++, добавим на форму компоненту PictureBox и растянем её на всё окно (свойство Dock установим в значение Fill).

Для использования в проекте списка точек (Point) шаблонного класса List, в начале файла MyForm.h подключим нужное пространство имён:

using namespace System::Collections::Generic;

Мы хотим мышкой рисовать кривую по точкам, следя при этом за регенерацией рисунка при изменении размеров окна. Прилагаемый ниже исходник - это вся пользовательская часть проекта, расположенная после директивы #pragma endregion в коде файла MyForm.h. Обратите внимание на "двойной" вызов сначала pictureBox1->Refresh(), а затем pictureBox1->Invalidate() в методе pictureBox1_SizeChanged, следящем за изменением размеров окна. Без этого рисунок нормально перерисовываться не будет, например, перерисуется при увеличении, но не при уменьшении размеров окна мышкой. Стоит также помнить о возможности подключения для формы двойной буферизации, она может изменить поведение кода при перерисовке элементов "на лету". Страница статьидалее...
05.11.2017, 19:37 [67]


[1-15] [16-30] ... [1801-1815] [1816-1829]

  свежие записипоиск по блогуоткомментироватьстатистика

Наверх Яндекс.Метрика
© PerS
вход