Приветствуем на Форум Херсона. Форум Херсонской молодежи.. На данный момент Вы находитесь на форуме как Гость и имеете очень ограниченные возможности и права. Что бы писать или отвечать в темах, загружать картинки, файлы на форуме Вам нужно зарегистрироваться, что совершенно бесплатно. Регистрация очень быстрая, не откладывайте эту процедуру! Если возникнут проблемы с регистрацией напишите нам. |
|
Программирование Все вопросы по написанию программ |
Просмотр темы (Новые вначале) |
30.10.2019 11:27 | ||
Lester | Якщо С++, то QtCreator та Qt. | |
30.10.2019 11:07 | ||
user123 | Судя по описанию, вы совсем не связаны с программированием . Лучше кому-то заказать | |
30.10.2019 08:12 | ||
VoVaN |
Панове, а підкажіть. Мені потрібно зляпати дуже простеньку програмку під ондроєд. Яку IDE використати? Бажано С++. Функціонал - примітивна робота із зображенням (захопити один кадр з камери, відмасштабувати, накреслити кілька векторів, відобразити не екрані). |
|
03.10.2019 11:35 | ||
kovalev |
Цитата:
|
|
26.09.2019 20:16 | ||
oleg7 | если нужно написать программу и хочется выучить язык, то есть куча видеоуроков на ютубе. И даже видеокурсов, также можно найти платные видеокурсы или пойти на сайты складчин и получить их по совсем скромной цене. | |
01.11.2017 16:34 | ||
VoVaN |
... Штирліц ще ніколи не був таким близьким до цілковитого провалу |
|
27.10.2017 22:21 | ||
Switlanka | Ну почему Вы так решили? Я хотела наоборот, чтобы было больше доверия, и обратила на достоинства репетиторов. Вы можете самостоятельно проверить. На сайте реальные люди, при выборе Вы получаете реальные координаты. Если у Вас такие подозрения, подключите к разговору с кандидатом знающего человека, пусть прощупает. А если вдруг - в чем я сомневаюсь - кто-то окажется не тем, за кого себя выдает, сообщите администрации сайта. Хотя все кандидаты проходят тщательную проверку, но возможность ошибки нельзя исключить. Все же я надеюсь, что воспользовавшись нашими услугами, Вы будете довольны и сможете разрешить те проблемы, что стоят перед Вами. | |
27.10.2017 13:18 | ||
PhoeniXX |
Цитата:
|
|
27.10.2017 12:41 | ||
Switlanka | Если есть затруднения в пограмировании, можно обратиться к репетитору. Дороговато, конечно, но если толковый наставник, то и наука пойдет быстрее. Програмисты-репетиторы есть на сайте http://repetitor.org.ua/repetitory/programmirovanie Люди с международными сертификатами, опытом работы. Затраты на науку быстро окупятся | |
17.10.2016 06:18 | ||
olegjack | Неисповедимы пути TCP пакетов... | |
17.10.2016 01:20 | ||
VoVaN |
ну кагбэ если между клиентскими компьютерами есть "прямая видимость" - это банальный клиент-сервер. Ну, т.е. если у всех клиентских машин есть доступный друг для друга ИП-адрес (будь то реальный ИП, или внутрисетевой, если речь тока о работе в локалке). Т.е. на каждом клиентском компутере открыт серверный сокет, на который стучится клиентский сокет с другого клиентского компьютера; оба стучатся на сидящий где-то в интернетах выделенный сервер для получения нужных данных для координации. Как это писать - гугли примеры клиент-серверных приложений, обычно это всякие демки с пересылкой строки текста из одной софтины в другую, на базе этого знания сможешь построить всё остальное. Хотя вообще-то если всё равно есть общий выделенный сервер к которому все стучатся за координацией... Если объем данных это не терабайты парнушки то проще будет не заморачиваться с изобретением P2P-велосипедов, а пустить через твой сервер и межклиентский трафик. Просто на сервере сидит куча клиентских подключений, сервер пихает клиентам список дескрипторов наличных подключений, а клиенты по надобности шлют на сервер блоки данных с пометкой какому из клиентов их нужно передать. С третьей стороны, как сказал Олег, нафиг изобретать велосипеды вообще не обязательно. Можно с таким же успехом заюзать уже сто лет назад изобретенные почтовые и файловые серверы (а то и даже вообще левые халявные серверы. Но то уже по вкусу), устроив всё что нужно поверх них. |
|
16.10.2016 22:45 | ||
ПВО |
Та да. . Я так понимаю, нужно штудировать какие-то книжки по сетям, TCP/IP... |
|
16.10.2016 22:34 | ||
rezonat3 |
Цитата:
|
|
16.10.2016 22:17 | ||
ustas | Процедуры нет, но задача типичная, банально стоит смотреть в сторону древних месседжеров типа miranda, icq и сколько уже напилено за много лет примеров на эту тему. | |
16.10.2016 16:29 | ||
PhoeniXX | нет такой магической процедуры которая сделает все это сразу. это слишком не типичная задача. | |
16.10.2016 14:22 | ||
ПВО | Я сам не знаю - как это называется. Мне нужно, чтобы программа на одном компьютере связывалась напрямую с такой же программой на другом компьютере в сети. Каждый комп в сети должен иметь свой уникальный адрес, чтобы к нему можно было обращаться. Что это за адресация, какие есть процедуры в языках программирования для реализации таких возможностей? | |
16.10.2016 13:46 | ||
olegjack |
Как то совсем непонятно что нужно. Выделенный IP, PPTP поднять или сервисы типа dyndns, noip. Чем старые добрые почтовые и фтп протоколы неподходят? |
|
16.10.2016 12:29 | ||
ПВО |
Новая задача. Нужно, чтобы один компьютер напрямую соединялся с другим компьютером в интернете и передавал данные. Для этого компьютер, который вышел в сеть, должен оставлять свои идентификационные данные (или как они называются?) на сайте в сети. А другой компьютер мог брать эти данные и напрямую связываться с первым компьютером. Что-то вроде связи торрент-трекеров. Сколько ни ищу информации по форумам и книжкам - как это можно сделать, какие принципы, какие методы или функции есть для этого в языках программирования, но ничего пока не нашел, чтобы можно было уяснить подробно. Может кто подскажет - где искать ответы? |
|
30.05.2015 13:52 | ||
ПВО | wouldnt_even, ну, все тривиальные задачи давно уже решены. Остается ходить по неведомым дорожкам | |
01.05.2015 08:02 | ||
wouldnt_even | "забить нужным кодом" - чушь какая-то. без оглядки на размер памяти? объем кода? просто забить? что надо доказать шефу, что на компе мало памяти и нужен апгрейд? или неуклюжая попытка написать вирус? | |
30.04.2015 21:46 | ||
ПВО | На сейчас задача такая - забить не используемую область озу нужным кодом и оставить ее в свободном доступе.: По идее, тут самое место что то типа прямому доступу к памяти, просто я когда искал инфу, то ничего нужного не нашел. Мой код, это просто попытка выкрутиться. | |
30.04.2015 17:15 | ||
Lester | И потому очень интересно - а что за задача вообще будет решаться таким способом. Возможно подойдет банальная СУБД с shared cache, например, berkeley db или sqlite. | |
30.04.2015 17:09 | ||
Школьник | ||
30.04.2015 17:07 | ||
PhoeniXX |
Цитата:
Во втором случае с str = str + textBox1.Text - да, тут память используется активнее, но так как промежуточные состояния переменной str нигде не сохраняются, то и они очень быстро уничтожаются GC в процессе работы метода. При данном подходе компромиссом будет где-то такое внутри цикла, который будет выполнять этот кусок для каждого элемента массива: Код:
str = str + textBox1.Text; stringArray[i - 1] = str; Опять же, это private память, а не shared, и таким образом процесс просто будет забирать свободную память у системы(наверняка файловый кэш), и все остальные процессы начнут активно свапиться, и как следствие все приложения начнут тупить. |
|
30.04.2015 16:55 | ||
ПВО |
Ребята, вы точно наши, а не из гарварда пишите? Привожу код, а в комментарии еще буду вникать. В целом так: 1. Определяем размер свободной части ОЗУ 2. Высчитываем, сколько туда поместится строк текста 3. Если процессор не загружен, записываем в переменную строку Код:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Diagnostics; namespace mg { public partial class Form1 : Form { PerformanceCounter ramCounter = new PerformanceCounter("Memory", "Available MBytes"); PerformanceCounter cpuCounter = new PerformanceCounter(); int cpucnt; string[] stringArray; string str; int arrlenght; int ramfree; int i = 1; public Form1() { InitializeComponent(); cpuCounter.CategoryName = "Processor"; cpuCounter.CounterName = "% Processor Time"; cpuCounter.InstanceName = "_Total"; str = textBox1.Text; ramfree = (int)ramCounter.NextValue(); label_memory.Text = ramfree+"MB"; } private void checkBox1_CheckedChanged(object sender, EventArgs e) { if (checkBox1.Checked) timer1.Enabled = true; else timer1.Enabled = false; textBox1.Text = str; } private void timer1_Tick(object sender, EventArgs e) // Каждые 10 милисекунд дописываем строку в память { cpucnt = (int)cpuCounter.NextValue(); // Определяем загрузку процессора if (cpucnt < 35) { arrlenght = (int)ramfree*1024*1024 / (textBox1.Text.Length*2+10); // Определяем - сколько в памяти поместится нужных строк arrlenght = (int)arrlenght / 10; // stringArray = new string[arrlenght]; label_arr.Text = "Допуст. кол. в массиве: " + arrlenght.ToString(); label_txt_nb.Text = textBox1.Text.Length.ToString(); if ( i+100 < arrlenght ) { // stringArray[i - 1] = textBox1.Text; // Сначала я записывал строку в массив for (int n = 0; n < 100; n++) { str = str + textBox1.Text; } // Потом дописывал строку в переменную стринг i = i + 100; } // stringArray = null; if (i >= arrlenght) { i = 1; str = null; } } } private void timer_renew_Tick(object sender, EventArgs e) // Каждую секунду обновляем показания на форме { label_cpu.Text = cpucnt + "%"; label_i.Text = "i = " + i; ramfree = (int)ramCounter.NextValue(); label_free_2.Text = ramfree+"MB"; } } } |
|
29.04.2015 12:06 | ||
Lester |
Цитата:
PHP код:
|
|
29.04.2015 11:17 | ||
PhoeniXX |
Цитата:
Код:
const int count = 1024*1024*1024/sizeof(int); Console.ReadLine(); int[] q = new int[count]; //for (int index = 0; index < q.Length; index++) //{ // q[index] = 0; //} Console.ReadLine(); GC может вполне и в процессе работы метода вмешаться и удалить не используемые данные. Только опять же это будет private память, и она будет доступна только этому процессу. В чем практическая ценность задачи? Зачем нужна такая логика? |
|
29.04.2015 11:02 | ||
Lester |
Цитата:
|
|
29.04.2015 03:58 | ||
wouldnt_even |
Цитата:
|
|
29.04.2015 03:19 | ||
Lester |
Цитата:
"оставляем к нему доступ других программ" - очевидно речь идет о shared memory. Вот дока для C#: https://msdn.microsoft.com/ru-ru/lib...vs.110%29.aspx "определяем место в озу, которое не испол.дается в данный момент, его заполняем кодом" - типичное поведение ОС для файлового кэша. А эффективно реализовать такое же на уровне процесса в user space не получится. Так что просто пишем сколько нужно, а ОС разрулит. Это если речь не идет о регулярной передаче и обновлении гигабайт данных, тогда задача изначально решается неверно. "и смотрел опять размер свободной памяти, но она как была свободной, так и оставалась" - значит рантайм C# изначально запросил достаточно памяти для размещения новых данных. Это делается для оптимизации. Даже банальный malloc большей частью занимается просто "нарезанием", а не вызовом syscall mmap на каждый чих. Ну или смотреть использование памяти было надо не там. |
|
В этой теме более 30 ответов(а). Нажмите здесь, чтобы перезагрузить эту тему. |