Вопрос № 151695: Здравствуйте! Помогите, пожалуйста, в решении следующего вопроса. Необходимо на С++ создать дерево процессов в Windows, используя функцию CreateProcess(). На экран необходимо выдавать pid процесса и pid родительского процесса. Буду благодарна за ссыл...
Вопрос № 151727: Начинающий программист. Напишите код для перевода фунтов в килограммы на С++...Вопрос № 151748: Здравствуйте
уважаемые эксперты!Помогите справится с задачкой, с использование только,и только С++Builder v.6 Даны матрицы А и В размера M*N и K*L соответственно. Найти произведение матриц. В заранее агромное спасибо! ...Вопрос № 151750: Здравствуйте уважаемые эксперты!Помогите справится с задачкой, с использование только,и только С++Builder v.6 Даны три точки на плоскости. Выяснить, являются ли они вершинами прямоугольника. Найти коор
динаты четвертой вершины. В заранее...Вопрос № 151777: Здравствуйте , увахаемые эксперты. У меня 2 вопроса по С++ - нужно сдать завтра, а я пробездельничал. 1. На форме кнопка. При нажатии левой кл. мышки на форме кнопка переносится в место, куда показывает курсор. 2. На форме есть вторая форма,...Вопрос № 151779: Здравствуйте.Помогите с написанием программы мигания светодиода,таймера . под Cи для микроконтроллера
PIC16F870 >>Можно несколько программ.Огромное спасибо....
Вопрос № 151.695
Здравствуйте! Помогите, пожалуйста, в решении следующего вопроса. Необходимо на С++ создать дерево процессов в Windows, используя функцию CreateProcess(). На экран необходимо выдавать pid процесса и pid родительского процесса. Буду благодарна за ссылки на конкретные примеры создания именно деревьев процессов.
Отправлен: 24.11.2008, 19:51
Вопрос задала: ALenaS (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
В приложение добавлено обсуждение по указанной ссылке.
--------
∙ Отредактировал: Николай Владимирович / Н.В., Академик
∙ Дата редактирования: 25.11.2008, 16:37 (время московское)
Приложение:
Ответ отправил: Olegzp (статус: 7-й класс)
Ответ отправлен: 25.11.2008, 16:05
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 236655 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 4 Комментарий оценки: Спасибо, попробую воспользоваться.
Вопрос № 151.727
Начинающий программист. Напишите код для перевода фунтов в килограммы на С++
Отвечает: Dr_Andrew
Здравствуйте, Сон Константин Александрович! Вы не указали, каких именно фунтов. Будем считать, что русских (1 фунт - 0,40951 кг). Тогда Килограммы = Фунты * 0.40951. Остальное см. в приложении.
Приложение:
Ответ отправил: Dr_Andrew (статус: Студент)
Ответ отправлен: 25.11.2008, 04:44
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 236614 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 151.748
Здравствуйте уважаемые эксперты!Помогите справится с задачкой, с использование только,и только С++Builder v.6
Даны матрицы А и В размера M*N и K*L соответственно. Найти произведение матриц.
Отвечает: Verena
Здравствуйте, Масленников Александр! Произведение матриц возможно найти только в случае, если в первой матрице-множителе должно быть столько же столбцов, сколько строк во второй, т.е. в данном случае n должно быть равно k и, если это условие не выполняется, программа должна завершаться. Алгоритм умножения матриц можно выразить формулой: c[i][j] = сумма (a[i][k]*b[k][j]), где i=0..m-1, j=0..l-1, k=0..n-1 Несколько примеров можно увидеть в Википедии, например, такой:
Остальное должно быть ясно из комментариев. Поскольку Вы не указыва
ли тип элементов матрицы, я взяла целочисленный. Скомпилировано и проверено в Borland Builder 6.0, как Вы хотели. Удачи!
Приложение:
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Практикант)
Ответ отправлен: 28.11.2008, 23:23
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 237028 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 151.750
Здравствуйте уважаемые эксперты!Помогите справится с задачкой, с использование только,и только С++Builder v.6
Даны три точки на плоскости. Выяснить, являются ли они вершинами прямоугольника. Найти координаты четвертой вершины.
Отвечает: Verena
Здравствуйте, Масленников Александр! Алгоритм слегка запутанный, постараюсь объяснить попонятней. Три точки могут образовывать три разные линии (т.е. линии т1-т2, т1-т3, т2-т3). Нужно проверить поочерёдно угол между этими линиями, и если в одном из случаев мы получаем прямой угол - значит, они могут образовывать прямоугольник. Уравнение прямой линии на плоскости можно записать так: Ax+By+C = 0 Если прямая задана двумя точками (пусть это точки (x1;y1) и (x2;y2)), как в нашем случае, то коэффициенты можно
выразить так: A = y2-y1 B = x1-x2 C = - (Ax1 + By1) Нас будут интересовать коэффициенты A и B, поскольку условие перпендикулярности прямых (что и есть угол между прямыми равный 90 градусов) выражается именно через них: A1*A2+B1*B2=0 Заводим структуру для хранения точки с действительными координатами и структуру для хранения линии (двух её коэффициентов и номеров соответствующих точек). Массив из трёх точек получаем с клавиатуры, заполняем массив ли
ний (обратите внимание на структуру цикла). Затем проверяем сочетания линий (таких сочетаний три), если нам попадается прямой угол - запоминаем номера соотвествующих линий. После цикла проверяем переменные для номеров линий - если в них ничего не было записано, сообщаем, что точки не являются вершинами прямоугольника, и выходим из программы. В противном случае ищем четвёртую точку. Учитывая, что прямоугольник не обязательно должен быть параллелен осям координат, задача эта не совсем проста. По сути, если представить
три имеющиеся точки в виде прямоугольного треугольника (т.е. половины прямоугольника, отделённой диагональю), то чтобы найти четвёртую точку надо повернуть этот треугольник на -180 градусов вокруг центра своей гипотенузы (т.е. диагонали прямоугольника). Вообще, поворот точки на градус а относительно центра координат производится по формулам: x* = x*cos a - y*sin a y* = x*sin a + y*cos a Нам надо сначала перенести центр координат в середину диагонали (сер
едину находим как среднее арифметическое соответствующих координат концов диагонали). Чтобы перенести точку в новую систему координат, надо вычесть из её координат смещение по соотвествующей оси. Для обратного преобразования - обратное действие. Преобразованную точку можем спокойно вращать на нужный угол, а вернув её к исходной системе координат, получим искомую точку. Чтобы не делать лишних преобразований, процедуры переноса центра, поворота и обратного переноса объединим в одну формулу: x = (xt-xdim)*cos
(-180) - (yt-ydim)*sin (-180) + xdim = 2*xdim - xt, где xdim - смещение по оси Х, xt - координата х переносимой точки. y = (xt-xdim)*sin (-180) + (yt-ydim)*cos (-180) + ydim = 2*ydim - yt, где ydim - смещение по оси Y, yt - координата y переносимой точки. Алгоритм примерно такой. Реализацию смотрите в приложении, скомпилировано в Borland Builder 6.0. Удачи!
Приложение:
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Практикант)
Ответ отправлен: 28.11.2008, 22:03
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 237019 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 151.777
Здравствуйте , увахаемые эксперты. У меня 2 вопроса по С++ - нужно сдать завтра, а я пробездельничал. 1. На форме кнопка. При нажатии левой кл. мышки на форме кнопка переносится в место, куда показывает курсор. 2. На форме есть вторая форма, которую не видно. При нажатии на любой из форм - дочерняя форма становится видимой. Если не успеет выйти рассылка пришлите , пожалуйста на е-майл : bipline@list.ru Заранее спасибо.
Отвечает: Dr_Andrew
Здравствуйте, Alexeishatko! К сожалению, Вы не указали ни операционную систему, под которой работаете, ни среду разработки. Поэтому приведу платформозависимый вариант решения (ОС - Windows, среда разработки Borland C++ Builder) и кроссплатформенный вариант (ОС Linux, MacOS, Windows, коммерческие версии Unix и др., библиотека - Qt 3.x). Вторая задача представляется более простой, поэтому начнём именно с неё. Задача 2. Пример 1. Для удобства оставил компонентам Borland C++ Builder те имена, которые даются
им по умолчанию. Создайте проект. Установите свойство Visible Form1 в true. Создайте новую форму (File - NewForm). Установите свойство Visible Form2 в false. Щёлкните по Form1, выберите в меню File - Include Unit Hdr, в появившемся диалоговом окне выберите Unit2. Тем самым, при запуске приложения вторая форма будет невидимой. Создайте обработчик события OnClick Form1. В него запишите Form2->Visible = true; Тем самым, при щелчке на главной форме приложения на этапе
выполнения будет появляться дочерняя форма (см. Пример 1 приложения). Пример 2 Создадим класс главного окна приложения TMainForm, унаследовав его от QMainWindow, а также класс дочернего окна TSecondForm, унаследовав его от QDialog (см. Пример 2 приложения). Переменную класса TSecondForm объявим в качестве закрытого члена класса TMainForm. Переопределим событие mouseReleaseEvent главной формы, в результате чего по щелчку на главной форме будет генерироваться сигнал Clicked(). В конструкторе главной формы
установим соединение между сигналом Clicked() и слотом ClickedSlot(). Этот слот показывает дочернюю форму: pSecondWindow->show(); (см. Пример 2 в приложении). Задача выполнена. Задача 1. Пример 3. Создайте новый проект Borland C++ Builder. Поместите на форму кнопку. Установите её свойство Visible в false. Создайте обработчик события OnMouseUp главной формы. В него запишите:
Тем самым, верхнелевые координаты мыши устанавливаются согласно координатам щелчка мыши по форме, а кнопка становится видимой (см. Пример 3 приложения). Пример 4. Создадим класс главного окна приложения TMainForm, унаследовав его от QMainWindow. В качестве закрытого
члена приложения объявим кнопку pButton класса QPushButton. В конструкторе главной формы запишем pButton->setShown(FALSE); (кнопка невидима). Аналогично вышеописанному, переопределим событие mouseReleaseEvent главной формы, однако сигнал Clicked в качестве параметров будет получать координаты щелчка мышью по форме. В вызываемом сигналом слоте ClickedSlot(int, int) установим геометрию кнопки, где верхнелевыми координатами кнопки будут координаты щелчка мышью, а
нижнеправими - длина и ширина самой кнопки. Делаем кнопку видимой: pButton->setShown(TRUE); Тем самым, при щелчке мышью по форме в этом месте будет появляться кнопка (точнее, перемещаться туда - см. Пример 4). Задача выполнена. Удачи!
Приложение:
Ответ отправил: Dr_Andrew (статус: Студент)
Ответ отправлен: 25.11.2008, 22:37
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 236704 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 151.779
Здравствуйте.Помогите с написанием программы мигания светодиода,таймера . под Cи для микроконтроллера PIC16F870 >>Можно несколько программ.Огромное спасибо.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.