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

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

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


[1-15] [16-30] ... [1696-1710] [1711-1719]


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

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

Encoding: Windows-1251 (Russian). Если картинки выключены: Поиск ::: Статистика ::: Помощь ::: E-mail ::: RSS ::: Nickolay.info

Для полноценной работы блога нужны картинки + JavaScript + Cookies. Ссылки, открывающие новое окно (вкладку), подсвечены.

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


Атомы сопротивления

Как-то радикально некогда, - и понимаешь, что убиваешь время на ерунду, и его же нет, чтоб остановиться и подумать. Если восстановить в памяти неделю, трудно даже припомнить, когда была секунда поразмыслить и прекратить это всё :) И ладно бы, занимался философией, текстами, политическими инсинуациями, медитацией или хоть программированием. Нет же - безумными бумагами и общением с адскими персонажами, от одного вида которых слазит эмаль с зубов.

Успел заметить, что сработали, можно сказать, наклейки, у нас даже в унылых автобусах, ползущих "на микрорайоны", появилось: Страница статьидалее...
28.04.2017, 22:04 [25]


Studio: как узнать из приложения, сколько памяти свободно?

Узнать текущее количество свободной физической памяти можно, конечно, и довольно простым кодом (консоль Visual C++):

#include <iostream>
#include "windows.h"

size_t GetMemory() {
 MEMORYSTATUSEX statex;
 GlobalMemoryStatusEx (&statex);
 return statex.ullAvailPhys;
}

int main() {
 std::cout <<  std::endl << GetMemory() << " byte(s)";
 system("pause>nul");
}

Но это не будет означать, что нашему приложению вся эта память доступна :) Проблема управления памятью в современной архитектуре ЭВМ вообще непроста, я бы начал с Windows API и чего-то вот такого: Страница статьидалее...
23.04.2017, 22:04 [82]


QT: отображаем одни и те же данные в разных компонентах

Для иллюстрации MVC-подхода не обязательно программировать отдельные классы, как в этом примере с матрицей. Во встроенные model-based виджеты модель, в конце концов, уже "зашита", и достаточно привыкнуть обращаться к данным через эту "лишнюю", а на самом деле, вовсе не лишнюю сущность.

В качестве примера разработаем список, который может отображаться в двух видах – компоненте QT ListView и классическом выпадающем списке ComboBox. При этом доступ к данным мы будем получать через модельные индексы, уже "заложенные" во все model-based компоненты. Создав проект на шаблоне QWidget, разработаем в дизайнере форм окно приложения.

Напомним, что выделить на форме несколько компонент можно при зажатой клавише Ctrl, сгруппировать их в горизонтальный блок нажатием Ctrl+H, а в вертикальный – нажатием Ctrl+L. Вид формы показан на рисунке: Страница статьидалее...
21.04.2017, 14:25 [141]


С++: как обработать исключения самостоятельно?

Конструкция try - throw - catch - часть стандарта С++, как и класс exception, поэтому в простых случаях достаточно поместить "опасный" код в блок try { } и использовать блок catch () { } для вывода сообщений о проблемах, например, здесь мы перехватываем попытку выделить память под 500 миллионов элементов массива:

#include <iostream>
#include <exception>
using namespace std;

int main () {
 int *a=NULL;
  try {
   a = new int[500000000];
  }
  catch (exception &e) {
    cout << "Exception: " << e.what() << endl;
  }
  system ("pause >nul");
  return 0;
}

У меня на машине с небольшим количеством оперативки (2 Гб) в Studio эта программка выдала, как и положено,

Exception: bad allocation

Не сложнее организовать и собственные обработчики исключений, в простейшем случае они могут быть даже просто пустыми классами: Страница статьидалее...
19.04.2017, 14:09 [148]


QT и MySQL - работают ли вместе?

Если вкратце - да, но нужно собирать драйвер самому - тема форума, статья из официального мануала.

Тем не менее, ниже прилагается пример готового проекта QT+MySQL. Как водится в таких случаях, это список книг :)

Если просто запусить проект в QT, установленном на Windows-машине, вероятнее всего, увидите лишь сообщение в отладчике

QSqlDatabase: QMYSQL driver not loaded

Для работы с SQL в файле проекта QT нужно не забыть подключить соответствующий модуль

QT       += core gui sql

и, конечно, сделать саму базу, например, в PhpMyAdmin из Denwer таким образом: Страница статьидалее...
19.04.2017, 11:16 [132]


Популяризация очевидного :)

Профессору СГУ Вере Афанасьевой удалось то, чего не смог сделать целый большой класс образованных и квалифицированных профессионалов, каковым, несмотря на все усилия "инноваторов", всё ещё является наше ВУЗовское сообщество. Она смогла привлечь внимание СМИ, общества и прокуратуры своей, в общем, довольно невинной ироничной заметкой "Пять причин, по которым не следует становиться профессором".

Эффект Стрейзанд начался, пожалуй, с момента вступления в историю правоохранительных органов.

Умные полицейские прибыли... допросить профессора по поводу коррупции в её родном ВУЗе :) С обобщениями у людей совсем плохо.

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

Вот свежее от Веры Афанасьевой, открытое письмо министру образования РФ: Страница статьидалее...
17.04.2017, 23:47 [147]


Javascript: рисуем смайлик на канве

Всё, что мы сегодня успели нарисовать в свободную минуту - вот этот классический жёлто-чёрный смайлик на Javascript :)

Sorry, your browser does not support canvas tag

Как и радуга, он просто увеличится или уменьшится при изменении размеров в теге <canvas>. Ориентируется на меньший из линейных размеров, так что на не-квадратной канве будет слева/вверху. Будет занимать половину линейного размера квадратной канвы. Исходник прикреплён ниже, без обрамления HTML. Страница статьидалее...
15.04.2017, 20:37 [176]


QT: используем List Widget и обрабатываем клик + нажатие клавиши

В стандартном комплекте QT реализованы основные средства для работы со списками и таблицами. В режиме редактирования формы легко увидеть, что им посвящены 2 группы элементов:

В блоге уже есть примеры как на "поэлементный" подход (списки, дерево), так и на "модельный" MVC-подход (теория по MVC, простой пример приложения MVC).

Не хватает только примера на самую "базовую" компоненту List Widget, восполним этот пробел.

Создав проект на основе класса QWidget, разработаем простейшее приложение для работы со списком List Widget. Для этого удалим из проекта файлы widget.*, а в main.cpp запрограммируем создание объекта класса QListWidget. При этом сигналы от виджета будет обрабатывать отдельный класс-контроллер списка ListContoller: Страница статьидалее...
14.04.2017, 15:08 [248]


Javascript: определяем количество слов в документе и составляем из них массив

Тоже парсинг текста, только не такой примитивный, как в начале блога.

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

В простейшем случае, конечно, возможно и однострочное решение:

alert (document.body.innerText.split(/\s+/).length);

где-нибудь в теге скрипта.

Но грамотнее, конечно, будет написать рекурсивный метод для получения списка слов и немного пофильтровать контент страницы. Вот пример с комментариями. Страница статьидалее...
12.04.2017, 22:58 [198]


C++: пишем маленькие классы

Просто несколько учебных примеров на классы под общим лозунгом "КРТКСТ - СТ".

1. Переопределение операторов - удобная и красивая вещь, на неё в блоге есть и теория, и примеры. Тем не менее, вот ещё один маленький пример - научим программу складывать объекты класса c.

В простых случаях достаточно, чтобы переопределённый оператор возвращал новый объект класса, тогда будет работать и сложение "по цепочке" вида a+b+... Аргумент слева от знака "+" доступен через указатель this, справа - через ссылочный аргумент оператора b: Страница статьидалее...
10.04.2017, 22:39 [226]


Радужный круг и радуга на Javascript

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

И нарисовали :)

Исходник прикреплён ниже, для увеличения диаметра круга просто увеличьте размеры канвы в теге <canvas>. Страница статьидалее...
08.04.2017, 13:49 [313]


С++: симплекс-метод в исходниках

Симплекс-метод - дело почти святое :)

Мои решения в Excel есть, например, здесь, теория - в этих или этих лекциях.

А в заметке просто выложена парочка проектов на C++ в исходниках (которые можно улучшить :) Страница статьидалее...
05.04.2017, 14:01 [302]


C++: генерируем случайные числа для основных распределений

Массив равномерно распределённых случайных чисел относительно "новыми" средствами библиотеки <random> уже генерировался вот здесь.

Если нужны другие распределения, а также хочется изобразить хотя бы самую примитивную гистограмму из "звёздочек" в консоли, поможет приложенный пример. В нём генерируется нормальное распределение с параметрами (0,1), сами числа сохраняются в массиве numbers. Чтобы получить другие часто нужные распределения - экспоненциальное и равномерное, раскомментируйте их фрагменты кода в многострочных комментариях /* ... */ вместо имеющегося фрагмента для нормального распределения.

Код проверен в Visual Studio 2015. Страница статьидалее...
04.04.2017, 14:27 [317]


QT: выгружаем стандартный контейнер в файл и загружаем обратно

В продолжение темы стандартных контейнеров QT и работы с ними...

Для простоты создано консольное приложение, в котором показаны запись и чтение бинарного файла, содержимым файла будут 2 списка - один из строк QString, другой - из целых чисел. При конфигурации QT по умолчанию, файл создастся в папке build-… проекта. В файле проекта .pro добавлена строка

QT       += widgets

вместо

QT       -= qui

Код файла main.cpp (единственный файл проекта): Страница статьидалее...
31.03.2017, 14:22 [328]


[1-15] [16-30] ... [1696-1710] [1711-1719]

  в началопоиск по блогунаписать авторустатистика

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