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

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


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

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

Выпуск № 741
от 16.05.2007, 21:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 482, Экспертов: 70
В номере:Вопросов: 5, Ответов: 10


Вопрос № 86353: Приветствую, нужно найти обратную матрицу методом Гаусса (4х4). Пытался найти сам, но безуспешно. Интересует всё, в смысле реализация на любом языке или хотя - бы понятное математическое объяснение как это делается. Заранее спасибо...
Вопрос № 86400: Здравствуйте, уважаемые эксперты! Проблемка: нужно убрать из заголовка окна кнопку "Close" ( [Х] ) (именно убрать, а не Disable), оставив кнопки сворачивания/разворачивания ( [-] ). Вроде чепуха, а застрял. MS Visual C++ (Visual Stu...
Вопрос № 86429: Ни как не могу составить, решение это задачи на С++. НЕlp!!! Матрица А содержит координаты N точек на плоскости, а матрица B задаёт М прямоугольников(координатами левого верхнего и нижнего правого угла). Для каждого прямоугольника подсчитать...
Вопрос № 86486: здраствуйти! У менеа такои вопрос: Как создавать динамические char * и потом его обновлять.. чтото типа: char * test; test=new char[100]; test="TEST"; //test = "TESTtest=new char[200] ...
Вопрос № 86487: Здравствуйте ! Подскажите пожалуйста как написать программу , которая открывает и закрывает cd-rom ? Там вроде бы работа с портами. И еще может расскажете какие номера портов соответсвуют определенным устройствам ?...

Вопрос № 86.353
Приветствую,
нужно найти обратную матрицу методом Гаусса (4х4). Пытался найти сам, но безуспешно. Интересует всё, в смысле реализация на любом языке или хотя - бы понятное математическое объяснение как это делается.
Заранее спасибо
Отправлен: 10.05.2007, 23:22
Вопрос задал: Sidukas (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Gh0stik
Здравствуйте, Sidukas!

Алгоритма нахождения обратной матрицы:
* Заменить каждый элемент на его алгебраическое дополнение,
* Транспонировать полученную матрицу,
* Разделить каждый элемент на определитель исходной матрицы.

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

Также нашел решение задачи на языке Pascal.

В приложении привожу свой собственный алгоритм написанный на Delphi (но он может показаться Вам немного диким... :)

Good Luck!!!

Приложение:

---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.

Ответ отправил: Gh0stik (статус: Профессионал)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 10.05.2007, 23:59

Отвечает: Терсков Сергей
Здравствуйте, Sidukas!
Был уже подобный вопрос. Вот здесь есть STL реализация вашей проблемы.

http://rusfaq.ru/info/question/84400

Правда, в комментарии было сказано, что можно и проще написать, но вариантов больше не последовало.
Ответ отправил: Терсков Сергей (статус: 9-ый класс)
Ответ отправлен: 11.05.2007, 03:02

Отвечает: kool
Здравствуйте, Sidukas!
Обратную матрицу методом Гаусса найти нельзя.
Это будет уже другая матрица. Методом Гаусса
решается система линейных уравнений.
Удачи!

---------
I am.
Ответ отправил: kool (статус: Студент)
Ответ отправлен: 11.05.2007, 20:29


Вопрос № 86.400
Здравствуйте, уважаемые эксперты!
Проблемка: нужно убрать из заголовка окна кнопку "Close" ( [Х] ) (именно убрать, а не Disable), оставив кнопки сворачивания/разворачивания ( [-] ). Вроде чепуха, а застрял.
MS Visual C++ (Visual Studio .NET 2005).
Заранее спасибо.
Отправлен: 11.05.2007, 10:55
Вопрос задал: AlexKlaip (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Vest
Здравствуйте, AlexKlaip!
К сожалению, её нельзя убрать, во всяком стандартными функциями API (я этого не нашёл). А потому придётся это организовывать вручную: сделать заголовок окна без стиля WS_SYSMENU. Тогда пропадут все кнопки, и самому уже заниматься отрисовкой тех кнопок, которые тебе нужны.
---------
"Халявы не бывает" (c)
Ответ отправил: Vest (статус: 4-ый класс)
Ответ отправлен: 13.05.2007, 12:54


Вопрос № 86.429
Ни как не могу составить, решение это задачи на С++. НЕlp!!!

Матрица А содержит координаты N точек на плоскости, а матрица B задаёт М прямоугольников(координатами левого верхнего и нижнего правого угла). Для каждого прямоугольника подсчитать число точек, находящихся строго внутри прямоугольника.
Отправлен: 11.05.2007, 14:04
Вопрос задал: Кальметьев Эмиль (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Терсков Сергей
Здравствуйте, Кальметьев Эмиль!
Не могу представить как в матрице хранить координаты точек и прямоугольников. Вот вариант с использованием обычных одномерных массивов.

Приложение:

Ответ отправил: Терсков Сергей (статус: 9-ый класс)
Ответ отправлен: 14.05.2007, 04:24
Оценка за ответ: 4
Комментарий оценки:
Спасибо, ппопробую использовать, но поже должно подойти.


Вопрос № 86.486
здраствуйти!
У менеа такои вопрос:

Как создавать динамические char * и потом его обновлять..
чтото типа:

char * test;
test=new char[100];
test="TEST";
//test = "TESTtest=new char[200] // чтото типа append??
test="TEST2";
//Здесь Мне Нужно чтоб добовлеалось а не стиралось... Нужен тест чтоб бил test="TESTTEST2"

зарание спасибо
Отправлен: 11.05.2007, 20:41
Вопрос задал: spider (статус: 6-ой класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: Dark Daskin
Здравствуйте, spider!
Используйте код вида:
char *str = new char[100]; //Создание пустой строки длиной 100
strcpy(str, "Str1"); //Копирование значения в строку
realloc(str, 200); //Изменение длины строки на 200
strcat(str, "Str2"); //Добавление к строке значения
cout << str; //Str1Str2
Использовать str = "Str" не стоит, т.к. при этом память выделяется снова, а предыдущее значение теряется.
---------
Драконы наступают!
Ответ отправил: Dark Daskin (статус: 1-ый класс)
Ответ отправлен: 11.05.2007, 20:56

Отвечает: kool
Здравствуйте, spider!
Если использовать MFC
такое возможно с классом CString.
Иначе можно использовать шаблон vector.
Такая запись
test=new char[100];
test="TEST";
ошибочна.
Вместо test="TEST";нуно strcpy(test,"TEST");
Лучше вообще сразу выделять память с запасом.
>>//Здесь Мне Нужно чтоб добовлеалось а не стиралось... Нужен тест чтоб бил
Для добавления можно воспользоваться ф-ций strcat(test,"TEST2");
Удачи!
---------
I am.
Ответ отправил: kool (статус: Студент)
Ответ отправлен: 11.05.2007, 23:17

Отвечает: Ross
Здравствуйте, spider!

Чтобы увеличить длину строки:
char * test = new char[100];
strcpy(test,"TEST");
char * test_tmp = new char [100];
strcpy(test_tmp,test);
delete test; test = new char[200];
strcpy(test,test_tmp);
strcat(test,"TEST2");
delete test_tmp;

Как видишь довольно геморно... :( Т.е. нужно создавать временный массив, копировать туда данные, потом его удалять... Гораздо проще для этой цели использовать класс CString из MFC. Тогда можно написать чтото типа этого:
CString test;
test = "TEST";
test += "TEST2";
---------
Доступно только то, что видимо (c) Б. Керниган
Ответ отправил: Ross (статус: 9-ый класс)
Ответ отправлен: 12.05.2007, 20:33


Вопрос № 86.487
Здравствуйте ! Подскажите пожалуйста как написать программу , которая открывает и закрывает cd-rom ? Там вроде бы работа с портами. И еще может расскажете какие номера портов соответсвуют определенным устройствам ?
Отправлен: 11.05.2007, 20:43
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Lomer
Здравствуйте, Whiteman!
Насчет портов не знаю, но открытие cd-rom производится так:
#include <mmsystem.h>
mciSendString("Set cdaudio door open wait", NULL, 0, NULL);
Закрытие:
mciSendString("Set cdaudio door closed wait", NULL, 0, NULL);

Ответ отправил: Lomer (статус: 4-ый класс)
Ответ отправлен: 11.05.2007, 21:13

Отвечает: Dark Daskin
Здравствуйте, Whiteman!

CDRomOpen(true, "X:"); //Открытие привода X:
CDRomOpen(false, "X:"); //Закрытие привода X:

Взято отсюда: http://www.codeproject.com/system/eject_cdrom.asp

Для использования функций мультимедиа, в свойствах проекта в разделе Linker/Input/Additional Dependencies добавьте winmm.lib
Также не забудьте #include <windows.h> в начале программы.

Приложение:

---------
Драконы наступают!

Ответ отправил: Dark Daskin (статус: 1-ый класс)
Ответ отправлен: 11.05.2007, 21:29


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100

В избранное