Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

Чемпионы рейтинга экспертов в этой рассылке

Verena
Статус: Практикант
Рейтинг: 94
∙ повысить рейтинг >>
Лысков Игорь Витальевич
Статус: Специалист
Рейтинг: 55
∙ повысить рейтинг >>
Dr_Andrew
Статус: Студент
Рейтинг: 40
∙ повысить рейтинг >>

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 1174
от 30.11.2008, 16:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 434, Экспертов: 40
В номере:Вопросов: 6, Ответов: 6

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 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)

Отвечает: Olegzp
Здравствуйте, ALenaS!
Думаю вам поможет http://www.programmersforum.ru/showthread.php?t=13333

В приложение добавлено обсуждение по указанной ссылке.
--------
∙ Отредактировал: Николай Владимирович / Н.В., Академик
∙ Дата редактирования: 25.11.2008, 16:37 (время московское)

Приложение:

Ответ отправил: Olegzp (статус: 7-й класс)
Ответ отправлен: 25.11.2008, 16:05

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236655 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 4
    Комментарий оценки:
    Спасибо, попробую воспользоваться.


    Вопрос № 151.727
    Начинающий программист. Напишите код для перевода фунтов в килограммы на С++
    Отправлен: 25.11.2008, 03:48
    Вопрос задал: Сон Константин Александрович (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 1)

    Отвечает: Dr_Andrew
    Здравствуйте, Сон Константин Александрович!
    Вы не указали, каких именно фунтов. Будем считать, что русских (1 фунт - 0,40951 кг). Тогда Килограммы = Фунты * 0.40951. Остальное см. в приложении.

    Приложение:

    Ответ отправил: Dr_Andrew (статус: Студент)
    Ответ отправлен: 25.11.2008, 04:44

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236614 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 151.748
    Здравствуйте уважаемые эксперты!Помогите справится с задачкой, с использование только,и только С++Builder v.6

    Даны матрицы А и В размера M*N и K*L соответственно. Найти произведение матриц.

    В заранее агромное спасибо!
    Отправлен: 25.11.2008, 11:04
    Вопрос задал: Масленников Александр (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: 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 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 151.750
    Здравствуйте уважаемые эксперты!Помогите справится с задачкой, с использование только,и только С++Builder v.6

    Даны три точки на плоскости. Выяснить, являются ли они вершинами прямоугольника. Найти координаты четвертой вершины.

    В заранее агромное спасибо!
    Отправлен: 25.11.2008, 11:05
    Вопрос задал: Масленников Александр (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: 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 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 151.777
    Здравствуйте , увахаемые эксперты. У меня 2 вопроса по С++ - нужно сдать завтра, а я пробездельничал.
    1. На форме кнопка. При нажатии левой кл. мышки на форме кнопка переносится в место, куда показывает курсор.
    2. На форме есть вторая форма, которую не видно. При нажатии на любой из форм - дочерняя форма становится видимой.
    Если не успеет выйти рассылка пришлите , пожалуйста на е-майл : bipline@list.ru
    Заранее спасибо.
    Отправлен: 25.11.2008, 14:58
    Вопрос задал: Alexeishatko (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 9)

    Отвечает: 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 главной формы. В него запишите:
    Код:

    Button1->Left = X;
    Button1->Top = Y;
    Button1->Visible = true;

    Тем самым, верхнелевые координаты мыши устанавливаются согласно координатам щелчка мыши по форме, а кнопка становится видимой (см. Пример 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 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 151.779
    Здравствуйте.Помогите с написанием программы мигания светодиода,таймера . под Cи для микроконтроллера PIC16F870
    >>Можно несколько программ.Огромное спасибо.
    Отправлен: 25.11.2008, 15:08
    Вопрос задал: Михайленко А.Е (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Olegzp
    Здравствуйте, Михайленко А.Е!
    Могу посоветовать сайт http://kazus.ru/
    по поиску есть инфа.
    Ответ отправил: Olegzp (статус: 7-й класс)
    Ответ отправлен: 25.11.2008, 16:16

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236657 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 1


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

    Отправить вопрос экспертам этой рассылки

    Приложение (если необходимо):

    * Код программы, выдержки из закона и т.п. дополнение к вопросу.
    Эта информация будет отображена в аналогичном окне как есть.

    Обратите внимание!
    Вопрос будет отправлен всем экспертам данной рассылки!

    Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
    экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


    Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
    Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2008, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.12 от 19.11.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное