Quantcast
Channel: Форум программистов и сисадминов Киберфорум
Viewing all 519145 articles
Browse latest View live

как захватить окно и нажать ок!? - С++ для начинающих

$
0
0
Здравствуйте. На ПК сотрудниках устанавливаем программу, в конце выходит окошка и нужно нажать ок!

как захватить данное окно и нажать да, автоматический? Чтобы все было в автономном режиме. Если есть код поделитесь пожалуйста. По сути нетрудная задача, но у меня знании не хватает. пытался через командную строку но никак.

Написать программу вычисления таблицы значений функции f(x) - С++ для начинающих

Делаю GUI на Haskell - Haskell

$
0
0

Предпосылки
Нормального, кроссплатформенного, графического интерфейса в настоящий момент для Haskell нет. Имеющиеся обёртки к сишным либам (GTK+, WxWidgets) оставляют желать лучшего, мягко говоря. С каждой новой версией и сишной библиотеки, и обёртки вылезают баги их совместимости. Особенно это заметно под Windows, т.к. под этой ОС авторы обёрток не привыкли их проверять. Проблемы кросс-языковой совместимости, в принципе, это проблемы человеческого фактора. Но они реально достают.
Выбор
И так, я стал выбирать как можно более низкоуровневую кроссплатформенную библиотеку с тем, что бы она наименее мешалась, а практический весь GUI реализовать на Haskell. Такой подход, как я предполагаю, максимально снизит «обёрточные» проблемы, или, если угодно, они будут сосредоточены в одном Haskell пакете (или нескольких взаимосвязанных) где фиксить их будет куда проще. Кроме того, разработка новых компонент GUI-я, так же будет происходить в рамках одного языка, что, очевидно, удобнее.
Из рассматриваемых кандидатов я отклонил OpenGL как очень избыточную для целей обычного (2D) интерфейса. К тому же она медленна под Windows.
От использования браузера через JavaScript я отказался на основании некоторых, накладываемых на такой интерфейс ограничений.
Выбор я остановил на библиотеке SDL2. И, хотя это мультимедийная библиотека, якобы заточенная под геймдев, мне в ней понравился простой API для работы с окнами, мышью и клавиатурой. Под винду она использует DirectX (хотя может и OpenGL), под другие ОС только OpenGL. Допускается создание любого числа окон операционной системы, получение сообщений от устройств ввода через очередь сообщений. Возможность создавать свои сообщения (нужны для обновления интерфейса из потоков), возможность работать с весьма ограниченным набором примитивов и текстурами. Рендеринг текста и загрузка изображений из многих графических форматов реализована сопутствующими сишными библиотеками SDL_ttf и SDL2_image. В принципе, возможно подключить более «навороченную» библиотеку cairo в качестве дополнения, Haskell обёртки к которой есть, при чём даже специально к SDL, но я пока cairo в сам проектируемый GUI не заложил. Для GUI хватает и графических примитивов SDL2.


Упрощённо иерархия выглядит так.


Нудное описание
Базовый слой GUI поддерживает дерево Widget-ов общего назначения. Алгоритмы последовательности их отрисовки, доставку событий (в виде вызовов функций Widget-а) от мыши и клавиатуры, учёт наложений, скроллирования, взаимодействия между окнами приложения и прочие «общие» моменты. Базовый Widget представляет собой фиксированную запись с полями – свойствами Widget-а и набором полей – функций, создаваемых, предположительно, только при (даже перед) созданием самого виджета. Набор функций напоминает набор обработчиков событий в распространённых, ООП-ешных GUI. Конкретные виджеты (виджеты компоновок – layout-ы, надписи, кнопки и пр. представляют собой (на уровне данных) объединение в одном типе типа базового виджета и типа уникального для конкретного виджета. Т.е. данные описывающие более высокоуровневые виджеты имеют в качестве одного из полей запись виджета более низкоуровневого. Базовый виджет всегда хранится по ссылке (IORef). Так же, через
IORef он доступен в дереве виджетов базового слоя.
В известном чате мне советовали использовать FRP, но если посмотреть исходники FRP пакетов, то внутри там IORef-ы и есть. Пока воздержусь от использования в GUI. Может потом поумнею? [S](хм... куда уж там)[/S].
Про исходники (нет, я не копира...)
Исходники, к сожалению, я пока не готов выложить по следующим причинам:

- Ещё мало чего можно показать. Не хотелось бы что бы скачали, посмотрели и сказали «фи, опять какая то недоделка». Да, пока весьма недоделка, даже на базовом уровне по которой надо ходить опасно.

Вторая причина – нет комментариев. Да, надо бы их сразу писать, я знаю. Но я себе установил для начального этапа некоторые сроки, а дело двигается медленно, и времени нет, и редизайнил уже много раз.
Так что, как только хоть что то будет – так сразу.
Ну и зачем?
Зачем я это делаю? Ну, во первых «Мужик что бык: втемяшится В башку какая блажь — Колом ее оттудова
Не выбьешь» (с) Н. А. Некрасов. Потом, это, потенциально бесконечная работа. Если (а что крайне врят ли) кто не подключится, она меня переживёт. Чем то этот момент меня привлекает. (Видимо, тоже весеннее обострение. Кодить начал, аккурат 1 марта, хотя задумывался об этом давно).

Что бы было хоть ну на что то посмотреть приведу код (без import-ов) которым создаётся верхняя картинка.
Код:

mkExampleWidgetHelloWorld :: WidgetInit SimpleWidget
mkExampleWidgetHelloWorld = mkSimpleWidget (WidgetMarginXY 20 10) $ defNoChildrenFns{
        onCreate = (\widget -> notifyParentOnSizeChangedAndMarkForRedraw widget $ V2 0 80)
        ,onDraw=drawFn}
    where drawFn widget canvas = do
                canvasRect <- getCanvasRect widget
                setColor canvas $ V4 0 0 255 0
                fillRect canvas canvasRect
                setColor canvas $ V4 255 0 0 0
                drawRect canvas $ shrinkRect' 5 canvasRect
                fnt <- getFont canvas ""
                drawStrAligned canvas fnt AlignCenter DrawStrFine (V4 255 255 255 0) canvasRect
                                            "Привет, мир!"

mkExampleWidgetPicture :: WidgetInit SimpleWidget
mkExampleWidgetPicture = mkSimpleWidget (WidgetMarginXY 20 10) $ defNoChildrenFns{
        onCreate = (\widget -> notifyParentOnSizeChangedAndMarkForRedraw widget $ V2 0 160)
        ,onDraw=(\widget canvas -> do
                    canvasRect <- getCanvasRect widget
                    drawStretchedTextureR canvas "snapshot_00.41.57.jpg" Nothing canvasRect
                )}

mkExampleTextGrid :: WidgetInit SimpleWidget
mkExampleTextGrid = mkSimpleWidget (WidgetMarginXY 20 10) $ defNoChildrenFns{
        onCreate = (\widget -> notifyParentOnSizeChangedAndMarkForRedraw widget $ V2 0 (-1))
        ,onDraw=drawFn}
  where drawFn widget canvas = do
            canvasRect@(  SDL.Rectangle (P (V2 l t)) (V2 w h)) <- getCanvasRect widget
            setColor canvas $ grayColor 200
            fillRect canvas canvasRect
            fnt <- getFont canvas ""
            let dx = 30
                dy = 20
                txtColor = (V4 0 100 0 0)
                txtFill r y =
                    let txtRow c x = when (x < w) $ do
                                drawStr canvas fnt txtColor (P (V2 x y)) [c,r]
                                txtRow (succ c) (x+dx)
                    in when (y < h) $ do
                        txtRow '0' l
                        txtFill (succ r) (y+dy)
            txtFill '0' t

main :: IO ()
main = runGUI defSkin [GuiFontDef "" "PTM55F.ttf" 14] $ \gui _ -> do
    win <- newWindow gui "GUI : vertical layout test" $
                      SDL.defaultWindow { SDL.windowInitialSize = V2 300 400 }
    vLayout <- (win $+) =<< mkVLayout WidgetMarginNone zero (grayColor 230)
    mapM_ (vLayout $+) [mkExampleWidgetHelloWorld, mkExampleWidgetPicture, mkExampleTextGrid]


И наконец.
Радужные перспективы.
Сделать более менее нормальный GUI со своей изюминкой, полностью типобезопасный, а потом, на нём сотворить, наконец, нормальное IDE для Haskell.

Изображения
Тип файла: png vLayoutTest.PNG (116.6 Кб)
Тип файла: png GUI_diagram.PNG (94.6 Кб)

Изменение определённой строки в символьном массиве - С++ для начинающих

$
0
0
Здравствуйте, помогите пожалуйста с таким вопросом. У меня есть текстовый файл, из которого я вывожу строки в символьный массив. Мне нужно изменить элемент символьного массива с номером, который вводится в переменную ul. То есть вместо этой строки, должна появится та, которую введёт пользователь. Вот эта часть.
cin>>ul;
const int lrel = 30, srtringse=10;
const char crhe = '\n';
char masre[lrel][srtringse];
ifstream cser("nosolution2.txt", ios::in | ios::binary);
if (!cser) return 1;
for (int fr=0; fr<stringse;fr++)
{cser.getline (masre[fr],lel,crhe);
if (ul==fr){masre[fr]=;break;

};}

Побитовые операции в С++ - С++ для начинающих

$
0
0
Здраствуйте. Нужно написать программу которая будед считывать количество единичек (1) в побитовом представлении числа.
Пример input: 15 output: 4
input 65536 output 1
in: 2222222 out: 10
я что-то попробовал написать, но программа не работает корректно. Кто может подкинуть идею ? Буде рад если кто-то даст пример более оптимального алгоритма, или скажет в чем ошибка моего, и как его можно исправить
Моя идея: создаем битовую сетку и сдвигаем на n-1 вправо и на 1++ влево. В результате остаеться только один бит который мы будем сравнивать с 0.

Код:

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

int main ()
{
    int a;
    cout << "Enter your number : ";
    //if the number can`t be bigger that 4294967295 ,because bitset of this number contains 32 of 1, else program will not work correct
    //if you want to use bigger numbers  change parametrs of bitset < >
    cin >> a;
    bitset <32> abit=a;
    int bitl=31, counter=0, bitr=1;
          while (bitl!=0)
          {
                  if (((abit >> bitl)==0) and ((abit << bitl)==0))
                          counter = counter++;
                else counter=counter--;
                bitl= bitl--;
                bitr= bitr++;
        }
        cout << "Quantity of 1: " <<counter; 
    return 0;
}

Как рассеять свет светодиода - Оптика

$
0
0
Добрый день!

Есть изделие - пластиковый полый цилиндр, в который вставляются провода и заливается он эпоксидным клеем.

Теперь я добавляю светодиод и хочу, чтобы когда он горел, его со всех сторон видно было.
Если использовать прозрачную заливку, свет от светодиода идет преимущественно вперёд, а с боков видно плохо.
Попробовал эпоксидный клей смешать со стеклянными шариками диаметром 100-600 мкм. (используются для дорожной разметки). Однако результат неудовлетворительный.

Подскажите, как можно сделать так, чтобы включенный светодиод было видно со всех сторон?

Senior .NET Developers.Minsk/from 3000$ - Предложения работодателей

$
0
0
Atea Global Services is part of Atea Group. Due to the extensive development plans of AGS in Minsk, Belarus, we are inviting new professionals to join our growing team!
Atea is the leading Nordic and Baltic supplier of IT infrastructure with approximately 6,504 employees. Atea is present in 90 cities in Norway, Sweden, Denmark, Finland, Lithuania, Latvia and Estonia. Atea delivers IT products from leading vendors and assist its customers with specialist competencies within IT infrastructure services with its approximately 3,700 consultants and 7,500 technology certifications.

Position:Senior.Net Developer

Project: Implementation of Cloud B2B E-Commerce platform for Cloud Services sales and management.

We offer:
· Attractive salary and benefits package (from 3,000$)
· Constant flow of challenges in investigating new technology and building clever solutions on top
· Ability to work with some of the largest companies in the world in all verticals
· Daily work with colleagues that are regarded one of the best experts in the IT industry by numerous CEOs around the world
· Numerous possibilities to grow professionally in your own pace

Minimum requirements:

· ASP.net MVC
· MS SQL
· Entity Framework
· Angular 2.0

Ideal would have:

· Significant experience with SaaS, web-based application development
· Focused most of life on .net, C#, Microsoft SQL, ASP.net MVC (or / and ASP.net Core) and not too much on other backend stuff
· Has developed something in billing, invoicing, banking, finance, CRM or any other transactional application that involves sales processes
· Has experience in Azure, the more Azure technologies listed, the better. Azure certification, even better.
· On frontend knows Angular 2
· Knows TDD, DDD, EventSourcing, CQRS, functional programming
· English

Responsibilities:
· Translate application storyboards and use cases into functional applications
· Design, build, and maintain efficient, reusable, and reliable code
· Ensure the best possible performance, quality, and responsiveness of applications
· Identify bottlenecks and bugs, and devise solutions to mitigate and address these issues
· Help maintain code quality, organization, and automatization

Ask for more details:
skype:yuliyashe
e-mail: Yulia.Sharhun@atea.com

Расчет миноров в квадратной матрице - Turbo Pascal

$
0
0
Задание такое: написать программу, которая должна рассчитать все миноры второго порядка в квадратной матрице. входящими данные являются размерность матрицы матрицы, и сама матрица вводимая построчно. на выходе миноры матрицы. программа должна выводить результат на экран и в файл "output.txt".

Код:

for i := 1 to n-1 do
for j := i+1 to n do
for k := 1 to n-1 do
for l := k+1 to n do
writeln(a[i,k]*a[j,l]-a[i,l]*a[j,k]);

Вот написал код, для расчета минора. Как теперь сделать так, чтобы рассчитывались все миноры, а не только один?

не могу разобраться с заданием с++ - С++ для начинающих

$
0
0
я недавно начала программировать, не могу разобраться с задачей пожалуйста. в С++, дана строка перевернуть слова в ней в обратном порядке. например привет любимый друг. вывод друг любимый привет. пожалуйста напишите на максимально простом языке

Libre 5 - сломался recent files list - OpenOffice/LibreOffice

$
0
0
Hello

Новые открываемые файлы не добавляются в список. Старые видны. Удалить их из списка можно.
В настройках PickListSize включен, =15
Версия 5.2.6 последняя "стабильная"
Переустановка либры не помогла.

Добавлено через 22 часа 24 минуты
Hello

Спасибо, но это не по теме.
Я уже пошарил поиском и по этому и по другим форумам
У меня НЕ windows-7, не visual c++ и так далее.
Recent files системы и recent files либры - два разных списка.
Фолдер для recent files links в винде-хр есть, линки там есть, в мелкософт-офисе они видны, но в Либре они не отображаются.
В либре отображались другие.
Очевидно, что у либры свой собственный список.
В её список новые не добавляются.

Я не знаю где Либра намерена хранить СВОЙ список recent files, но с этой работой она явно не справляется.
И надо традиционно решить кто виноват и что делать

Ноутбук намертво заисает, а экран покрывается шахматным узором - Компьютерная безопасность

$
0
0
Как я и написал в теме, иногда, без видимой на то причины, ноутбук намертво заисает, а экран покрывается дёргающимся шахматным узором. (Фотографию приложил ниже.)
Если ноут зависает, я не могу сделать вообще ничего. Помогает только ручной перезапуск.
Случалась эта ошибка когда я смотрел видео в YouTube, в плеере MPC-HC, когда просто сидел в ВК, а в последний раз случилось прямо в игре. Ничего общего между этими ошибками не заметил.

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

Видео ошибки:
[YOUTUBE]hG2ifZgoFTQ[/YOUTUBE]

Изображения
Тип файла: jpg Фото экрана.jpg (316.8 Кб)

Чем лучше восстановить файлы (Windows) - Восстановление данных

$
0
0
Ребят, такая незадача.
Случайно удалил в ФАРе папку кнопкой F8, а она не попала в корзину (наверное, из-за большого размера)

Чем восстановить? (Windows 7)
Спасибо

энкодер+плк - АСУ ТП, промэлектроника

$
0
0
По каким критериям выбирается энкодер?

сумма модулей элементов строки в двумерной матрице - С++ для начинающих

$
0
0
Здравствуйте! Никак не могу понять, что не так с этой функцией, она не суммирует ничего. Сиауты в цикле чтоб наблюдать за значениями, но они у меня постоянно равны 0.. Может кто-то подскажет в чем ошибка.
Код:

void Norma()
        {
                int sum = 0, max = 0;
                for (int k = 0; k < size; k++)
                {
                        for (int i = 0; i < size; i++)
                        {
                                for (int j = 0; j < size; j++)
                                {
                                        sum += abs(mas[i][j]);
                                        cout << sum << "\n";
                                        if (sum > max) max = sum;
                                        cout << max << "\n";
                                }
                                sum = 0;
                        }
                }
                cout<< max<<"\n";
        }

Многомерные динамические массивы - С++ для начинающих

$
0
0
Написать программу, которая дает пользователю ввести 5 фамилий студентов, а затем сортирует их по возрастанию длины фамилии.

Найти самую короткую подпоследовательность,массива А,состоящую из элементов, которые являются простыми числами - Pascal ABC

$
0
0
Найти самую короткую подпоследовательность, массива А, состоящую из элементов, которые являются простыми числами.

Само задание я вроде как понял,но написать программу не получается.

Деление на ноль - MathCAD

$
0
0
С маткадом столкнулся пару дней назад, еще вопросы появляются через каждое действие, вот один так и не смог самостоятельно решить, просьба поочь

подскажите, как настроить сеть в Cisco Packet Tracer? - Кабельные сети

$
0
0
привет!
подскажите, как настроить сеть в Cisco Packet Tracer?
я настраиваю, сеть в курсовую хочу вставить l]https://www.youtube.com/watch?v=OtY-Z6_PDpU&t=1373s[/url] минута 27:50
https://habrahabr.ru/post/134892/

по схеме на видео все нормально, а у меня - %Invalid interface type and number (ниже копия кода, и фото)
прошу, пожалуйста, подскажите, что делать чтобы избежать этой ошибки, одним словом что делать, чтобы двигатся дальше?

заранее спасибо.

msk-arbat-dsw1(config-if)#int gig1/2
%Invalid interface type and number
msk-arbat-dsw1(config)#int fa1/2
%Invalid interface type and number
msk-arbat-dsw1(config)#

Вложение 816081

Вложение 816082

Вложение 816083

Изображения
Тип файла: jpg 2017-04-01_00-28-16.jpg (233.8 Кб)
Тип файла: jpg IMG_20170401_002738.jpg (304.8 Кб)
Тип файла: jpg 2017-04-01_00-28-10.jpg (460.3 Кб)

О коврах в доме - Дом и хозяйство

$
0
0
Не пойму почему перестали использовать ковры в квартирах. На мой взгляд ковры создают уют и тепло в доме. Красиво смотрятся стены и босиком уютно ходить по ковру. Недавно общался по Скайпу с другом, он увидев на стене у меня ковер начал удивляться и смеяться говоря, что их уже никто не использует. Вот мои соседи тоже не используют ковры, так грохот от их пят и передвигающихся диванов слышно по всей квартире. Что хорошего без ковров, кто-нибудь объяснит?

Не работают некоторые клавиши, дело в windows - Windows 7

$
0
0
Вообщем У менЯ таКоЙ слУчаЙ : была У менЯ КлавиатУра, в один преКрасныЙ день У менЯ отКазали Клавиши Й У К Я, Я дУмал что КосЯК в КлавиатУре, таК КаК она была стараЯ. Заменил на новУю, подКлючил, опЯть не работают ТЕ ЖЕ Клавиши ( Й У К Я ). Обрыл весь интернет, ничего не нашел дельного. Но тУт Я Узнаю, что Горячие клавиши могут функционировать непредвиденным образом, если одновременно с ними нажимается клавиша-модификатор (например SHIFT, CONTROL, ALT или WINDOWS). Нажал на Shift, и ВОАЛЯ: Клавиши работают, но тольКо с одновременным нажатием Shift. Без нажатиЯ Shift КнопКи Й У К Я не работают. Вы, наверное, видели, что много бУКв - заглавные :) Вообщем, ПРОШУ ВАС, ПОМОГИТЕ РЕШИТЬ МОЮ СИТУАЦИЮ. Я УЖЕ НЕЗНАЮ ЧТО ДЕЛАТЬ( Спасибо.
Viewing all 519145 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>