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

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


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

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

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

Выпуск № 937
от 16.12.2007, 02:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 476, Экспертов: 58
В номере:Вопросов: 11, Ответов: 16


Вопрос № 113183: Здравствуйте, уважаемые эксперты! Прошу ответить на такой вапрос: необходимо в произвольном порядке загружать программы обработки данных, связь через внешний файл. Как производить загрузку? Как очищать память от предыдущей программы обработк...
Вопрос № 113193: Добрый день я изучаю С++ (MS Visual Studio2005) возникла одна проблема с динамическим распределением памяти для многомерного масива. исправте пожалуйста мой пример так , чтоб память под масив m[3][4] выделялась динамически. ..
Вопрос № 113198: Здравствуйте. Подскажите пожалуйста, как на языке С++ сделать вот какое задание: Дана строка слов, разделённых пробелами. Построить строку, которая состоит из символов первой строки, расположенных в обратном порядке, не используя методы библиотеки st...
Вопрос № 113248: Уважаемые товарищи по несчастью))))) У меня к вам есть один вопрос... Помогите ламеру несчастному... У меня есть массив который надо ввести с клавы. Но проблема мне назо задать кол-во строк и столбцов не в коде программы а в тот момент когда я запуск...
Вопрос № 113249: Добрый вечер!Все еще ниак не могу победить задачку, помогите пожалуста решить задачку в самом простом виде решения в среде C2.01. Дана квадратная матрица А.Составить матрицу,симметричную данной относительно побочной диогонали. Результат записаь н...
Вопрос № 113256: У меня возник ещё один вопрос: дана матрица размера МхН надо получить новую. старую матрицу разбиваем на четыре части и поворотом по часовой стрелке переставляем эти части на новые места. У меня только одно но возникло - я делаю новый массив МхН и то...
Вопрос № 113275: Не могли бы вы мне исправить ошибки в этой программе...я уже даже не знаю в чем тут может быть проблема...Заранее спасибо. #include<iostream.h> void massiv(int m[5][5], char name) { int i,j; cout<<"bod...
Вопрос № 113276: Библиотека написана в VC (ОФОРМЛЕНА КАК КЛАСС) в dll как ее подключить к проекту borland C++ Bulder 6 Проблема с вызовом функции класса (имя???) Как сделать GetProcAddress конструктора класса? def файл: /*****************************...
Вопрос № 113284: Здравствуйте. Помогите подкорректировать программу. Она составлена по следующему заданию: A<<V {Aj =V. xj; возвращается A.} А нужно сделать по этому: a+=V {а=? V. xj ; возвращается &a.} Заранее спасибо. P.S. Возможно, текст ...
Вопрос № 113301: Помогите, пожалуйста. Есть некий язык Vee, в него мне надо портировать функция со значениями, по которым он постоит график. Но как мне передать несколько значений с учетом возврата значений?? И можно ли как-то портировать массив?...
Вопрос № 113308: Помогите написать программу на С++ для ВС.3 Алгоритм Форда-Беллмана нахождения кратчайшего пути в графе. Спасибо!!!...

Вопрос № 113.183
Здравствуйте, уважаемые эксперты!
Прошу ответить на такой вапрос: необходимо в произвольном порядке загружать программы обработки данных, связь через внешний файл.
Как производить загрузку? Как очищать память от предыдущей программы обработки и от загруженного файла данных? Как вернуться в предыдущую программу?
С уважением ! Владимир.
Отправлен: 10.12.2007, 09:11
Вопрос задал: Степанов В.А. (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Лясин Александр Владимирович
Здравствуйте, Степанов В.А.!
В общем всё достаточно понятно из Вашего вопроса. Но для ответа на Ваш вопрос хотелось бы, чтобы Вы сделали несколько небольших уточнений:

- что за "программы обработки данных" имеются ввиду? Это исполняемые файлы? Скрипты?
- в какой операционной системе Вы хотите это проделывать?
- какие (формат) данные подразумевается обрабатывать?
- связь через внешний файл - с чем связь?
....
....
Зачем возвращаться в предыдущую программу?

В общем - опишите подробней Вашу задачу - от этого зависит ответ на неё
Ответ отправил: Лясин Александр Владимирович (статус: 4-ый класс)
Ответ отправлен: 10.12.2007, 09:37
Оценка за ответ: 3

Отвечает: Mitya86
Здравствуйте, Степанов В.А.!

Программы можно загружать таким образом - см. приложение.

Приложение:

Ответ отправил: Mitya86 (статус: 3-ий класс)
Ответ отправлен: 10.12.2007, 12:46
Оценка за ответ: 4


Вопрос № 113.193
Добрый день
я изучаю С++ (MS Visual Studio2005)
возникла одна проблема с динамическим распределением памяти для многомерного масива.
исправте пожалуйста мой пример так , чтоб память под масив m[3][4] выделялась динамически.

Приложение:

Отправлен: 10.12.2007, 10:36
Вопрос задал: serjuar (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

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

Приложение:

Ответ отправил: Терсков Сергей (статус: Практикант)
Ответ отправлен: 10.12.2007, 10:58
Оценка за ответ: 5

Отвечает: Lemeshev Konstantin
Здравствуйте, Сергей Богданович!
см. приложение

Приложение:

Ответ отправил: Lemeshev Konstantin (статус: 6-ой класс)
Ответ отправлен: 10.12.2007, 11:11


Вопрос № 113.198
Здравствуйте. Подскажите пожалуйста, как на языке С++ сделать вот какое задание: Дана строка слов, разделённых пробелами. Построить строку, которая состоит из символов первой строки, расположенных в обратном порядке, не используя методы библиотеки string.h
Отправлен: 10.12.2007, 11:10
Вопрос задала: Bossixa (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Mitya86
Здравствуйте, Bossixa!

А в каком виде дана строка? Если в виде массива char то тогда можно просто вывести этот массив наоборот.
А причем тут разделение пробелами? Может имелось в виду вывести первое слово наоборот?
В общем смотри в приложении пример вывода массива наоборот.

Удачи.

Приложение:

Ответ отправил: Mitya86 (статус: 3-ий класс)
Ответ отправлен: 10.12.2007, 11:57

Отвечает: Лясин Александр Владимирович
Здравствуйте, Bossixa!
Я так понимаю, раз нельзя использовать string.h - то видимо это касается всего - что он подключает - класс basic_string (косвенно) и ф-ии типа strlen и т.п.

// небольшое условие - надо выделить массив бОльший размером, чем длина строка, // минимум на 1, или использовать что-либо на подобии vector<int>
static char over_input_str[0x100]; // дабы обнулилось сразу, memset то по условию //нельзя пользовать

int main (int argc, char** args) {
char *p_over_input_str=&over_input_str[0x100-2]; // укажем на предпоследний //элемент

char *input_str="Строка слов разделена пробелами";

for (int i=0; input_str[i]; i++, p_over_input_str--) {
*p_over_input_str=input_str[i];
}
char *new_str=++p_over_input_str;
}

Ну вот примерно так
Ответ отправил: Лясин Александр Владимирович (статус: 4-ый класс)
Ответ отправлен: 10.12.2007, 13:23


Вопрос № 113.248
Уважаемые товарищи по несчастью))))) У меня к вам есть один вопрос... Помогите ламеру несчастному... У меня есть массив который надо ввести с клавы. Но проблема мне назо задать кол-во строк и столбцов не в коде программы а в тот момент когда я запускаю программу. Как мне это сделать???
Я пытался, вот моё решение, но оно говорит ошибку...

Приложение:

Отправлен: 10.12.2007, 16:35
Вопрос задал: Яроц А.С. (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Sergey A. Wedensky
Здравствуйте, Яроц А.С.!

Создавайте массив динамически. Не забудьте очистить память после использования.
См. операторы new, delete. Исправленный код в приложении.

Приложение:

Ответ отправил: Sergey A. Wedensky (статус: Студент)
Ответ отправлен: 10.12.2007, 16:41

Отвечает: kool
Здравствуйте, Яроц А.С.!
Можно использовать динамическое выделение памяти
int *x=new int [n]
......................
delete(x);
Или заранее задать размер x значительно большим,
чем все возможные размеры кот. вы будете вводить с клавиатуры
а использовать только n из них
int x[M];//например M=10000
Удачи!


---------
I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 11.12.2007, 10:25


Вопрос № 113.249
Добрый вечер!Все еще ниак не могу победить задачку, помогите пожалуста решить задачку в самом простом виде решения в среде C2.01.
Дана квадратная матрица А.Составить матрицу,симметричную данной относительно побочной диогонали. Результат записаь на месте исходной матрицы.
Заранее Спасибо!
Отправлен: 10.12.2007, 16:37
Вопрос задал: Pimp (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Pimp!
Вариант решения вашей задачи см. в приложении...

Приложение:

Ответ отправил: Терсков Сергей (статус: Практикант)
Ответ отправлен: 11.12.2007, 06:02


Вопрос № 113.256
У меня возник ещё один вопрос: дана матрица размера МхН надо получить новую. старую матрицу разбиваем на четыре части и поворотом по часовой стрелке переставляем эти части на новые места. У меня только одно но возникло - я делаю новый массив МхН и тоже разбиваю его на те же самые части а затем его приравниваю к начальному массиву. Т.е. a[m][n]=b после чего снова пишу вывод b и ставлю его элементы на новые места по условию. Но П О Ч Е М У у меня выводит бред типа PxF=1x000.... и т.д. Может мне просто я чего-то не учел???

Приложение:

Отправлен: 10.12.2007, 17:25
Вопрос задал: Яроц А.С. (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

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

Приложение:

Ответ отправил: Терсков Сергей (статус: Практикант)
Ответ отправлен: 11.12.2007, 05:50


Вопрос № 113.275
Не могли бы вы мне исправить ошибки в этой программе...я уже даже не знаю в чем тут может быть проблема...Заранее спасибо.


#include<iostream.h>
void massiv(int m[5][5], char name)
{
int i,j;
cout<<"bodim massiv " << name << " ";
for (i=0; i<5; i++)
for (j=0; j<5; j++)
{
cout<<"name["<<i<<"]["<<j<<"]=";
cin>>m[i][j];
}
}
int raschet(int d[5][5])
{

int kol1,kol2,i,j,R;
for(i=0; i<5; i++)
for(j=0; j<5; j++)
{
if (d[i][j]>0)
kol1++;
if (d[i][j]<0)
kol2++;
}
if (kol1 > kol2)
R=1;
else
R=0;
return R;
}
void output(int d[5][5])
{
int i, j, d[5][5];
for (i=0;i<5;i++)
for (j=0;j<5;j++)
{
cout<<d<<"["<<i<<"]["<<j<<"]=";
}
}
void main()
{
int s[5][5], x[5][5], A, B;

massiv(s, 'S');
massiv(x, 'X');
A = raschet(s);
B = raschet(x);
output(s, 'S', A);
output(x, 'X', B);
}
Отправлен: 10.12.2007, 19:07
Вопрос задал: Кощеев Никита Иванович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Verena
Здравствуйте, Кощеев Никита Иванович!
Поскольку задания к своей задаче Вы не предоставили, проверила только с синтаксической точки зрения.
1. Если у Вас VS2005 или выше, то необходимо писать
#include < iostream >
using namespace std;
а также #include "stdafx.h"
Если у Вас другой компилятор, то оставьте в том виде, как это было у Вас изначально.
2. В функции output не нужно переопределять переменную d - она же у Вас как параметр функции передаётся.
3. Та же функция output имеет один входной параметр, а Вы вызываете её с тремя. Один параметр - название массива - я Вам доопределила, а уж как Вы хотели свой расчёт выводить, я не знаю.
4. В функции output вы зачем-то выводите переменную d, но это же адрес массива и выводиться будет вовсе не элемент (хотя что Вы там вообще собирались вывести непонятно, но я предположила, что название массива.
В общем, Ваша исправленная программа в приложении, она компилируется и что-то делает.

Приложение:

---------
Эта история - не для истории, понимаешь?

Ответ отправила: Verena (статус: Студент)
Ответ отправлен: 10.12.2007, 23:36
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое...впреть буду писать задание... Такого развернутого ответа я не ожидал.


Вопрос № 113.276
Библиотека написана в VC (ОФОРМЛЕНА КАК КЛАСС) в dll как ее подключить к проекту borland C++ Bulder 6
Проблема с вызовом функции класса (имя???) Как сделать GetProcAddress конструктора класса?

def файл:
/*****************************************/
LIBRARY SERIALGATE.DLL

EXPORTS
??0SerialGate@@QAE@XZ @1 ; ??0SerialGate@@QAE@XZ
??1SerialGate@@QAE@XZ @2 ; ??1SerialGate@@QAE@XZ
??4SerialGate@@QAEAAV0@ABV0@@Z @3 ; ??4SerialGate@@QAEAAV0@ABV0@@Z
?Clean@SerialGate@@QAEXXZ @4 ; ?Clean@SerialGate@@QAEXXZ
?Close@SerialGate@@QAEXXZ @5 ; ?Close@SerialGate@@QAEXXZ
?GetLine@SerialGate@@QAE_NW4IN_LINES_NAME@1@@Z @6 ; ?GetLine@SerialGate@@QAE_NW4IN_LINES_NAME@1@@Z
?GetPortsInfo@SerialGate@@QAEXPAUPortInfo@@@Z @7 ; ?GetPortsInfo@SerialGate@@QAEXPAUPortInfo@@@Z
?Open@SerialGate@@QAE_NHH@Z @8 ; ?Open@SerialGate@@QAE_NHH@Z
?Recv@SerialGate@@QAEHPADH@Z @9 ; ?Recv@SerialGate@@QAEHPADH@Z
?Send@SerialGate@@QAEHPADH@Z @10 ; ?Send@SerialGate@@QAEHPADH@Z
?SetLine@SerialGate@@QAEXW4OUT_LINES_NAME@1@_N@Z @11 ; ?SetLine@SerialGate@@QAEXW4OUT_LINES_NAME@1@_N@Z
/*********************************************/
Отправлен: 10.12.2007, 19:09
Вопрос задал: Fuzzy (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Лясин Александр Владимирович
Здравствуйте, Fuzzy!
Посмотрите здесь http://rsdn.ru/article/baseserv/dlluse.xml, надеюсь поможет, хотя там только азы.
Ответ отправил: Лясин Александр Владимирович (статус: 4-ый класс)
Ответ отправлен: 11.12.2007, 08:55


Вопрос № 113.284
Здравствуйте. Помогите подкорректировать программу. Она составлена по следующему заданию:
A<<V {Aj =V. xj; возвращается A.}
А нужно сделать по этому:
a+=V {а=? V. xj ; возвращается &a.}
Заранее спасибо.
P.S. Возможно, текст программы покажется перегруженным (или что-то вроде этого). Но эту программу составлял преподаватель, и структуры и т.д. нужно оставить.

Приложение:

Отправлен: 10.12.2007, 19:55
Вопрос задал: Dima777 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лясин Александр Владимирович
Здравствуйте, Dima777!
Понял из Вашего вопроса - что Вам нужна перегрузка оператора +=.
В приложении один из простейших вариантов. Компилируется в VC++ 6.0.
Добавочный код помечен как // overload +=

Приложение:

Ответ отправил: Лясин Александр Владимирович (статус: 4-ый класс)
Ответ отправлен: 12.12.2007, 08:15
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо, Вы мне очень помогли!


Вопрос № 113.301
Помогите, пожалуйста. Есть некий язык Vee, в него мне надо портировать функция со значениями, по которым он постоит график. Но как мне передать несколько значений с учетом возврата значений?? И можно ли как-то портировать массив?

Приложение:

Отправлен: 10.12.2007, 21:19
Вопрос задал: Dumycbka (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: kool
Здравствуйте, Dumycbka!
Наверное нужно экспортировать функцию, а затем вызвать
ее на выполнение, а затем по результатам ее работы построить график
Удачи!

---------
I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 11.12.2007, 10:25
Оценка за ответ: 4

Отвечает: Лучников Ю.В.
Здравствуйте, Dumycbka!

Не вижу в чем проблема;) Допустим у нас есть ф-ия say() которой мы передаем два int-числа: a и b. В ответ она должна провести некие манипуляции согласно нашему алгоритму и вернуть int-массив значений...

extern "C" __declspec(dllexport) void say(int a, int b, int **mass)
{
*mass = new int[a+b]; //Создаем массив и что либо делаем с ним...
//.......
}

---------
//Предположим что say() уже импортирована в программу, используем:

int *MyMass = NULL;
say(2, 2, &MyMass); // В итоге у нас выделится память под 4 элемента MyMass массива...
//Тут обрабатываем...
delete[] MyMass; //Очищаем память...
___
Успехов!
---------
If you want to fuck on sky, you must teach your ass to fly.
Ответ отправил: Лучников Ю.В. (статус: Практикант)
Ответ отправлен: 12.12.2007, 02:37
Оценка за ответ: 5
Комментарий оценки:
дело в том, что функция не должна иметь аргумента, должна быть типа int/float => возвращать значения. В си это компилиться как dll, к которой обращается уже другой язык. Ему нужна только функиция, т.к. он обращается к ней по названию через поиск по хедеру.


Вопрос № 113.308
Помогите написать программу на С++ для ВС.3

Алгоритм Форда-Беллмана нахождения кратчайшего пути в графе.

Спасибо!!!
Отправлен: 10.12.2007, 21:51
Вопрос задал: Предеин Денис Дмитроевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Предеин Денис Дмитроевич!

Вот ссылки для решения вашей задачи:

Описание алгоритма (algolist.manual.ru)

Задача о кратчайших путях + Исходник (ishodniki.ru)
Ответ отправил: Терсков Сергей (статус: Практикант)
Ответ отправлен: 11.12.2007, 03:01
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое!!


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

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

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

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

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


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


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

В избранное