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

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


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

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

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

Выпуск № 901
от 09.11.2007, 08:05

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


Вопрос № 107852: СРОЧНО НУЖНА ВАША ПОМОЧ!!! 15 вопросов на опысание алгоритьмов: 1.Рекурсия на примере задачи сортировки выбором и нахождения наибольшего и наименьшего элемента в массиве Вариант 2. 1. Рекуррентные уравнения. Примеры. Асимптотические ...
Вопрос № 107889: Здравствуйте! Подскажите, пожалуйста, как изменить размер консольной панели. Панель разворачивается только по высоте, хотелось бы ширину во весь экран. Пользуюсь Builder C++...
Вопрос № 107913: Подскажите в чем ошибка... Вот код: float xr[5][6]={{1,2,3,4,5,7},{1,7,4,8,3,7},{3,5,2,2,1,7},{2,3,1,2,1,5},{4,5,7,8,9,5}}; float a[5]={0,0,0,0,0}; float b[5]={6,6,6,6,6}; int N=6; int n=3; int m=2; int myr[3][6]={0};<...
Вопрос № 107931: Вопрос по MVC, консольный режим. Работа со строками. Использование класса string. Вопрос: как грамотно вводить строку с пробелами? Использование cin позволяет вводить строку только до первого пробела, а метод getline требует указания последнего симво...
Вопрос № 107932: Подскажите, пожалуйста, как в MFC (VS 6 C/C++) dialog bazed уже к имеющемуся диалоговому окну привязать другое, например "about" и окошко в котором будет выведен результат арифметического действия....

Вопрос № 107.852
СРОЧНО НУЖНА ВАША ПОМОЧ!!! 15 вопросов на опысание алгоритьмов:

1.Рекурсия на примере задачи сортировки выбором и нахождения наибольшего и наименьшего элемента в массиве
Вариант 2.
1. Рекуррентные уравнения. Примеры. Асимптотические решения.
Вариант 3.
1. Вычисление сложности рекурсивного алгоритма нахождения наибольшего и наименьшего элемента в массиве.
Вариант 4.
1. Сортировка слиянием. Сложность алгоритма.
Вариант 5.
1. Динамическое программирование. Задача о произведении матриц.
Вариант 6.
1. Динамическое программирование. Задача о рюкзаке.
Вариант 7.
1. Полиморфизм, примеры.
Вариант 8.
1. Инкапсуляция, примеры.
Вариант 9.
1. Виртуальные методы на примере иерархии графических объектов.
Вариант 10.
1. Списки. Типы списков. Задание списков с помощью массивов. Операции ДОБАВИТЬ, УДАЛИТЬ, НАЙТИ.

Вариант 11.
1. Реализация списков с помощью динамических записей. Операции ДОБАВИТЬ, УДАЛИТЬ, НАЙТИ.
Вариант 12.
1. Полиморфизм на примере объекта ОЧЕРЕДЬ.
Вариант 13.
1.Граф. Способы задания графов.
Вариант 14.
1. Матрица смежностей, списки смежностей, задание списков смежностей с помощью массивов.
Вариант 15.
1.Деревья. Способы представления деревьев
СПАСИБО!!!
Отправлен: 03.11.2007, 10:55
Вопрос задал: Предеин Денис Дмитроевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Гальцов Андрей
Здравствуйте, Предеин Денис Дмитроевич!

Рекурсивная сортировка - http://codelab.ru/task/quick_sort:basic/
Рекурсивные алгоритмы - http://kursovie.referatoff.ru/003617-1.html
Сложность рекурсивных алгоритмов (там надо скачать реферат) - http://ref.a.ua/?id=277382
Разные виды сортировки слиянием - см. приложение(1)
Динамическое программирование. Перемножение матриц - http://club.shelek.com/viewart.php?id=131
Динамическое программирование. Задача о загрузке(тоже самое, что и задача о рюкзаке) - http://ref.net.ua/work/det-16802.html
Полиморфизм, инкапсуляция - см приложение(2)
Динамические структуры данных: списки(там сначала Pascal, а ниже С) - http://www.bestreferat.ru/referat-1872.html
Графы (формат Adobe PDF, размер 268 Кб) - http://www.ict.edu.ru/lib/index.php?id_res=3588
Работа со списком...там и добавление, и удаление, и распечатка... - см приложение(3)

Надеюсь помог...Удачи!

Приложение:

---------
Свобода слова это не стрась в комментах!...

Ответ отправил: Гальцов Андрей (статус: Студент)
Ответ отправлен: 03.11.2007, 21:30
Оценка за ответ: 5
Комментарий оценки:
Супер!!! Спасибо!!!


Вопрос № 107.889
Здравствуйте! Подскажите, пожалуйста, как изменить размер консольной панели. Панель разворачивается только по высоте, хотелось бы ширину во весь экран. Пользуюсь Builder C++
Отправлен: 03.11.2007, 15:46
Вопрос задала: Mart (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: SiRuS
Здравствуйте, Mart!
Попробуйте нажать Alt+Enter. Это стандартная комбинация для развёртывания окон в полноэкранный режим.
Ответ отправил: SiRuS (статус: 3-ий класс)
Ответ отправлен: 03.11.2007, 16:43
Оценка за ответ: 5

Отвечает: Sov
Здравствуйте, Mart!
В приложении пример как сделать окно максимального размера

Приложение:

Ответ отправил: Sov (статус: 7-ой класс)
Ответ отправлен: 03.11.2007, 17:16


Вопрос № 107.913
Подскажите в чем ошибка...
Вот код:
float xr[5][6]={{1,2,3,4,5,7},{1,7,4,8,3,7},{3,5,2,2,1,7},{2,3,1,2,1,5},{4,5,7,8,9,5}};
float a[5]={0,0,0,0,0};
float b[5]={6,6,6,6,6};
int N=6;
int n=3;
int m=2;
int myr[3][6]={0};
int cyr[3][6]={0};
int sum_myr, myr_i;
for (int i=0; i<N; i++)
{
for (int r=0; r<n; r++)
{
sum_myr=0;
if (xr[r][i]<=a[r] || xr[r][i]>=b[r])
{
for (int j=n; j<(n+m); j++)
{
if (xr[j][i]>=a[j] && xr[j][i]<=b[j]){myr_i=1;} else {myr_i=0;}
sum_myr=sum_myr+myr_i;
//printf("myr_i = %i ",myr_i);
}
}
if (sum_myr==m) {myr[r][i]=1;} else {myr[r][i]=0;}
}

for (int r=n; r<(n+m); r++)
{
if (xr[r][i]>=a[r] && xr[r][i]<=b[r]){cyr[r][i]=0;}
else {cyr[r][i]=1;}
}
}

for (int r=0; r<n; r++)
{
for (int i=0; i<N; i++)
{
printf("myr[%i][%i] = %i",r,i,myr[r][i]);
}
printf(" ");
}
for (int r=n; r<(n+m); r++)
{
for (int i=0; i<N; i++)
{
printf("cyr[%i][%i] = %i",r,i,cyr[r][i]);
}
printf(" ");
}
ответ получается неверный.
А если убрать строки:
for (int r=n; r<(n+m); r++)
{
if (xr[r][i]>=a[r] && xr[r][i]<=b[r]){cyr[r][i]=0;}
else {cyr[r][i]=1;}
}
то все правильно . В чем может быть дело?
Отправлен: 03.11.2007, 19:38
Вопрос задала: Mart (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 7)

Отвечает: Гальцов Андрей
Здравствуйте, Mart!
В приложении Ваша программа, которая компилируется...я исправил всего 2 ошибки...там было 3 объявления переменной r...там достаточно и одного...так как весь код выполняется в одном так сказать модуле...(Turbo C++ 3.0)
Ну и еще возможно лучше вместо: (xr[r][i]<=a[r] || xr[r][i]>=b[r])
писать: ((xr[r][i]<=a[r]) || (xr[r][i]>=b[r]))...т.е. всё условие в скобки и кажое условие в скобки(между которыми должно стоять "и","или")...

Приложение:

---------
Свобода слова это не стрась в комментах!...

Ответ отправил: Гальцов Андрей (статус: Студент)
Ответ отправлен: 03.11.2007, 22:01

Отвечает: Воробьёв Алексей Викторович
Здравствуйте, Mart!

Ваша проблема в том, что размеры массива cyr[3][6], а в указанном массиве вы прописываете в строки с индесами 3 и 4, т.е. за пределами массива.
Поэтому Вам нужно либо расширить массив cyr[5][6] либо писать
for(int r = n; r < (n + m); r++)
{
if(xr[r][i] >= a[r] && xr[r][i] <= b[r])
{
cyr[r - n][i] = 0;
}
else
{
cyr[r - n][i] = 1;
}
}
Код Гальцова Андрея Михайловича не исправляет сути проблемы - переполнение массива.
Код Виктора Пырлика полон новых синтасических ошибок типа пробела в знаках >= и <= и не исправляет суть проблемы - переполнение массива.
memset() Вам не нужен. Виктор Пырлик, видимо, не знает или не понимает, что именно это и достигается записью
int cyr[3][6] = {0};
Согласно стандарту при частичной инициализации массива все отсальные элементы массива инициализируются величинами по умолчанию.
Ответ отправил: Воробьёв Алексей Викторович (статус: 8-ой класс)
Ответ отправлен: 04.11.2007, 05:06
Оценка за ответ: 5


Вопрос № 107.931
Вопрос по MVC, консольный режим. Работа со строками. Использование класса string. Вопрос: как грамотно вводить строку с пробелами? Использование cin позволяет вводить строку только до первого пробела, а метод getline требует указания последнего символа при вводе (для пользователя это не удобно). Сокращенная форма метода требует двойного нажатия на ввод (первое нажатие трактуется как символ прекращения ввода, а второе -- вводит строку). Это тоже не удобно (каждый раз дважды нажимать на ввод).
Второй вопрос. Имеется ли для строк Си (сhar имя строки [размер]) стандартная функция для удаления символов с указанного места?
Отправлен: 03.11.2007, 23:32
Вопрос задал: Navnav (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 9)

Отвечает: CruelHity
Здравствуйте, Navnav!
Вы ошибаетесь насчет getline. Вот синтаксис
getline(_Elem *_Str, streamsize _Count)
getline(_Elem *_Str,streamsize _Count, _Elem _Delim)
где _Str - это буфер куда вводиться
_Count - количесво символов
_Delim - это символ который заканчивает ввод.
Как видете функция перегружена и последний параметр можно не исп
В приложении пример!

А насчет удаления символов точно не помню какие-то функции были ну лучше напишите сами алгоритм! Вам нужно и исп. функции работы со строками такие как strcpy и strcat!!! описание этих функций вы найдете на MSDN: www.msdn.com(и там вы найдете очень много интересного!!)
Пример работы функций см в приложении

Приложение:

Ответ отправил: CruelHity (статус: 3-ий класс)
Ответ отправлен: 04.11.2007, 00:30
Оценка за ответ: 3
Комментарий оценки:
Немножко не про то ответ. Я спрашивал про работу с классом string.
Например:
string st;
getline(cin,st);


Вопрос № 107.932
Подскажите, пожалуйста, как в MFC (VS 6 C/C++) dialog bazed уже к имеющемуся диалоговому окну привязать другое, например "about" и окошко в котором будет выведен результат арифметического действия.
Отправлен: 03.11.2007, 23:44
Вопрос задал: Чернов Андрей (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: CruelHity
Здравствуйте, Чернов Андрей!
Для этого перейдите на вкладку Resource и Меню Insert, далее New Resource и из списка выберите "диалоговая панель"(Dialog).Жмем new!
Теперь используем ClassWizard для создания нового класса. Для этого вызовите для нашего нового диалогового окна контекстное меню и выберите в нем ClassWizard. В появившемся окне Adding a Class выберите Create a new class и нажмите на OK.
Появится следующее диалоговое окно New Class. В нем задайте свойство Name как CDlg(тут можно любое имя класса) и убедитесь, что в ComboBox'е Dialog ID выбран идентификатор нашего нового диалого IDD_DIALOG1, после чего нажмите OK.

Потом в файле в котором вы будете исп его(напримере MainDlg.срр) вам нужно прописать:
#include "Dlg.h"
После этого вы можете вызывать диалог таким образом
CDlg dlg;
dlg.DoModal();

//@@@@@@
чтобы выводить результат вам в этом диалоге достаточно созадат Edit Contor или Edit Text точно не помню как наз.!!
после этого через мастера присвоить этому едиту переменую желательно не Control! а тип который вам необходим например int если целое или CString если строки!()пусть оно у нас называеться как m_Edit1 тогда вот код например при нажатии кнопки чтобы появилось окно и показало результат!

Приложение:

Ответ отправил: CruelHity (статус: 3-ий класс)
Ответ отправлен: 04.11.2007, 00:58
Оценка за ответ: 5
Комментарий оценки:
Все отлично, работает! Но немножко поподробней если б.


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.62.0 от 08.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное