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

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


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

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

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

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

Выпуск № 917
от 25.11.2007, 16:05

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


Вопрос № 110166: Даны целочисленные массивы А[4][6], B[4][6]. для каждого массива определить номер строки с наибольшим количеством положительных элементов. Плиз помогите сделать это) ток опять же попонятние))) Зарание СПС)))...
Вопрос № 110170: Помогите пожалуста с решением задачи ато я совсем непонимаю С++ :( : Даны вещественные массивы A[3][5],V[3][5].Для каждого массива определить номер столбца с наибольшим количеством положительных элементов....
Вопрос № 110186: Как в visual c++ 6 сделать аналог opendialog и savedialog билдера Заранее спасибо...
Вопрос № 110195: Вопрос по C++ Builder: TImage *Im[32]; for(i=0;i<32;i++) { Im[i]=new TImage(Panel4); Im[i]->Parent=Panel4; Im[i]->Top=h; Im[i]->Left=w; Im[i]->Picture->LoadFromFile("2.gif"); if (w=...
Вопрос № 110239: Даны вещественные массивы А[4][6], B[4][6]. Для каждого массива определить номер столбца с наибольшим количеством положительным элементов....
Вопрос № 110241: Здрасте!Помогите с программой:Данны вешественные массивы А[15],B[15].Для каждого массива определить наибольшее из отрицательных значений. Помогите пожалуйсто!...
Вопрос № 110268: Здравствуйте,помогите пожалуйса сделать задание,я сделал функцию ввода,а вот с выводом никак разобраться не могу.вот сама задача:"Составить программу, которая получает матрицу В размером m *n. Программа формирует новую матрицу, меняя местами эле...

Вопрос № 110.166
Даны целочисленные массивы А[4][6], B[4][6]. для каждого массива определить номер строки с наибольшим количеством положительных элементов.

Плиз помогите сделать это) ток опять же попонятние)))
Зарание СПС)))
Отправлен: 19.11.2007, 15:39
Вопрос задал: Александер Александров (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: CruelHity
Здравствуйте, Александер Александров!
Ну надеюсь понятно написал!

Приложение:

Ответ отправил: CruelHity (статус: 5-ый класс)
Ответ отправлен: 19.11.2007, 17:54

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

Держите:
Массивы взял целочисленные(int).

Приложение:

---------
"The more you know, the less you need to show"

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

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

Приложение:

Ответ отправил: Терсков Сергей (статус: Студент)
Ответ отправлен: 20.11.2007, 03:50

Отвечает: Архипов Александр Леонидович
Здравствуйте, Александер Александров!
Вроде работает (только свои массивы надо ввести)

#include <vcl.h>
#include <conio.h>
#include <stdio.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
int A[4][6]={{1,-4,-5,4,-7,-3},
{2,4,6,7,-7,6},
{-7,-2,-7,-6,7,1},
{-1,-1,-1,-1,-1,-2}},
B[4][6]={{2,4,6,7,-7,6},
{1,-4,-5,4,-7,-3},
{-7,-2,-7,-6,7,1},
{-1,-1,-1,-1,-1,-2}};
int KolA[4]={0}, KolB[4]={0}, MaxA = 0, MaxB=0, MaxStrA = 0, MaxStrB = 0;
for (int i = 0; i < 4; i++)
{
for (int k = 0; k < 6; k++)
{
if (A[i][k]>0) KolA[i] = KolA[i]+1;
if (B[i][k]>0) KolB[i] = KolB[i]+1;
}
}
for (int i = 0; i < 4; i++)
{
if (KolA[i]>MaxA)
{MaxStrA = i;
MaxA = KolA[i];
}
if (KolB[i]>MaxB)
{MaxStrB = i;
MaxB = KolB[i];
}

}
printf("# строки с масимальным количеством положительных чисел в массиве ");
printf("A - %d ", MaxStrA);
printf("B - %d ", MaxStrB);
getch();
return 0;
}
Ответ отправил: Архипов Александр Леонидович (статус: Студент)
Ответ отправлен: 20.11.2007, 06:32


Вопрос № 110.170
Помогите пожалуста с решением задачи ато я совсем непонимаю С++ :( :
Даны вещественные массивы A[3][5],V[3][5].Для каждого массива определить номер столбца с наибольшим количеством положительных элементов.
Отправлен: 19.11.2007, 15:52
Вопрос задала: Hikaru (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: CruelHity
Здравствуйте, Hikaru!
вот задача, написана на MVS 2003,если надо, то думаю вам не составит труда, перевести на более поздние с++;
ну если что обращайтесь
удачи!

Приложение:

Ответ отправил: CruelHity (статус: 5-ый класс)
Ответ отправлен: 19.11.2007, 21:30

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

Держите!...

Что не понято - спрашивайте...

Приложение:

---------
"The more you know, the less you need to show"

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

Отвечает: Терсков Сергей
Здравствуйте, Hikaru!
Вот STL вариант решения вашей задачи...

Приложение:

Ответ отправил: Терсков Сергей (статус: Студент)
Ответ отправлен: 20.11.2007, 03:55

Отвечает: Архипов Александр Леонидович
Здравствуйте, Hikaru!
Вот программа, которая работает, НО. В связи с УСЛОВИЕМ программы он может работать не корректно, т.к. столбцов в массиве 5, а количество положительных элементов может принимать значения 0, 1, 2, 3 (т.е. 4 варианта), то обязательно должно совпадать количество (не обязательно максимальное). Поэтому выводиться на экран будет номер столбца с наибольшим количеством положительных элементов имеющий наибольший индекс (если будет более одного столбца).

Приложение:

Ответ отправил: Архипов Александр Леонидович (статус: Студент)
Ответ отправлен: 20.11.2007, 06:17


Вопрос № 110.186
Как в visual c++ 6 сделать аналог opendialog и savedialog билдера Заранее спасибо
Отправлен: 19.11.2007, 19:49
Вопрос задал: Никифоров Дима (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: CruelHity
Здравствуйте, Никифоров Дима!
Cуществует клас CFileDialog!
описание можете найти в MSDN!
вот пример вызовава!
Удачи!

Приложение:

Ответ отправил: CruelHity (статус: 5-ый класс)
Ответ отправлен: 19.11.2007, 21:27

Отвечает: Sov
Здравствуйте, Никифоров Дима!
Можете использовать соответствующие API функции GetOpenFileName и GetSaveFileName
http://www.firststeps.ru/mfc/winapi/commdia/r.php?52
http://www.firststeps.ru/mfc/winapi/commdia/r.php?53

Приложение:

Ответ отправил: Sov (статус: 8-ой класс)
Ответ отправлен: 19.11.2007, 21:34


Вопрос № 110.195
Вопрос по C++ Builder:

TImage *Im[32];
for(i=0;i<32;i++)
{
Im[i]=new TImage(Panel4);
Im[i]->Parent=Panel4;
Im[i]->Top=h;
Im[i]->Left=w;
Im[i]->Picture->LoadFromFile("2.gif");
if (w==468){ w=48; h=h+60; }
else w=w+60;
}

Каким образом отслеживать функцию OnClick для каждой картинки этого массива Im[i]?
Отправлен: 19.11.2007, 21:37
Вопрос задал: RussianGM (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лясин Александр Владимирович
Здравствуйте, RussianGM!
OnClick - это (если проще говорить) указатель на ф-ю (функтор), которая будет вызвана в случае события OnClick.
Этот функтор наследуется в TImage, как и во многих других компонентах C++Builder.
Проще всего (хотя не лучшее) определить эту ф-ю для какого - либо объекта через инспектор объектов.
Например через указатель на объект Form1 (тип объекта не имеет значения) в инспекторе объекта во вкладке events щёлкнем дважды на строке OnClick - получим в редакторе нечто такое (см. приложение).
Далее не забыть удалить ссылку у объекта Form1 на это событие, стерев его в инспекторе объектов и
осталось только в коде присвоить указатель на эту ф-ю картинкам :

TImage *Im[32];
for(i=0;i<32;i++)
{
Im[i]=new TImage(Panel4);
Im[i]->Parent=Panel4;
// добаленный код
Im[i]->OnClick=Form1Click;
//
Im[i]->Top=h;
Im[i]->Left=w;
Im[i]->Picture->LoadFromFile("2.gif");
if (w==468){ w=48; h=h+60; }
else w=w+60;
}

Приложение:

Ответ отправил: Лясин Александр Владимирович (статус: 2-ой класс)
Ответ отправлен: 19.11.2007, 23:08
Оценка за ответ: 4

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

Ну для начала опишем обработчик нашего события.. Допустим он будет выдавать значения поля Tag нашего TImage:

void __fastcall itemClick(void* This, TObject *Sender)
{
ShowMessage("Tag = " + IntToStr(((TImage*)Sender)->Tag));
}

Указатель This будет принимать адрес экзепляра класса, вызвавшего событие, указатель Sender будет содержать адрес объекта, в котором было сгенерировано событие (так мы и будет отличать их).
Далее нам потребуется у вновь созданных объектов связать нужное событие и вышенаписанный нами обработчик (например так):
TImage *Im[5];

int Left = 0;
for(int i=0;i<5;i++)
{
Im[i]=new TImage(Form1);
Im[i]->Parent=Form1;

TMethod event; /Описываем метод ...
event.Data = this;
event.Code = itemClick;

Im[i]->OnClick = *(TNotifyEvent*)&event; //присваиваем нашему событию
Im[i]->Left = Left;
Im[i]->Picture->LoadFromFile("2.jpg");
Im[i]->Tag = Left;

Left += 50;

}

----
Это случай, если обработчик события не является методом класса...

2 вариант:
Unit1.h:

class TForm1 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
void __fastcall itemClick(TObject *Sender); //метод-обработчик события
};
Unit1.cpp:

//Наш обработчик (this уже не присутствует, т.к. он передается неявно):
void __fastcall TForm1::itemClick(TObject *Sender)
{
ShowMessage("Tag = " + IntToStr(((TImage*)Sender)->Tag));
}

Ну и собственно наш код:

TImage *Im[5];

int Left = 0;
for(int i=0;i<5;i++)
{
Im[i]=new TImage(Form1);
Im[i]->Parent=Form1;

Im[i]->OnClick = itemClick;
Im[i]->Left = Left;
Im[i]->Picture->LoadFromFile("2.jpg");
Im[i]->Tag = Left;

Left += 50;

}
}
Ответ отправил: Лучников Ю.В. (статус: 5-ый класс)
Ответ отправлен: 20.11.2007, 00:07
Оценка за ответ: 5


Вопрос № 110.239
Даны вещественные массивы А[4][6], B[4][6]. Для каждого массива определить номер столбца с наибольшим количеством положительным элементов.

Приложение:

Отправлен: 20.11.2007, 09:45
Вопрос задал: Лапотников Ден Александрович (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 2)

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

Странно...это уже третья подобная просьба за последние трое суток...Но да ладно...Держите программу!

Приложение:

---------
"The more you know, the less you need to show"

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

Отвечает: Терсков Сергей
Здравствуйте, Лапотников Ден Александрович!
Вот подобные вопросы №№110170, 110166. В них вы сможете найти достаточное количество решений вашей задачи. В приложении мой вариант...

Приложение:

Ответ отправил: Терсков Сергей (статус: Студент)
Ответ отправлен: 21.11.2007, 03:58

Отвечает: Архипов Александр Леонидович
Здравствуйте, Лапотников Ден Александрович!
В программе надо только свои массивы написать. Например:
float A[4][6]={0}, B[4][6]={0}; надо заменить на
float A[4][6]={{1,2,3,4,5,6},{1,2,3,4,5,6}, { и т.д. и для массива B тоже самое

Приложение:

Ответ отправил: Архипов Александр Леонидович (статус: Студент)
Ответ отправлен: 21.11.2007, 05:34


Вопрос № 110.241
Здрасте!Помогите с программой:Данны вешественные массивы А[15],B[15].Для каждого массива определить наибольшее из отрицательных значений.
Помогите пожалуйсто!
Отправлен: 20.11.2007, 09:47
Вопрос задал: Иванов Александр Николаевич (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Архипов Александр Леонидович
Здравствуйте, Иванов Александр Николаевич!
Только надо ввести свои массивы вместо 0
A[15]={0},
Например
A[15]={-1.2, 0, 0.5, -0.45 ... и т.д.}

Тоже самое и для масива B

Приложение:

Ответ отправил: Архипов Александр Леонидович (статус: Студент)
Ответ отправлен: 20.11.2007, 10:04

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

Приложение:

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

Отвечает: Djec
Здравствуйте, Иванов Александр Николаевич!
В приложении решение с вводом элемнтов массивов и проверкой на отсутствие отрицательных элементов.

Приложение:

---------
"Если ты что-то делаешь, делай это хорошо. если же ты не можешь или не хочешь делать хорошо, лчуше совсем не делай" Л.Н.Толстой"

Ответ отправил: Djec (статус: 4-ый класс)
Ответ отправлен: 20.11.2007, 16:32

Отвечает: Гальцов Андрей
Здравствуйте, Иванов Александр Николаевич!

Держите!
Максимальный среди отрицательных ищем сразу при вводе...

Приложение:

---------
"The more you know, the less you need to show"

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

Отвечает: Терсков Сергей
Здравствуйте, Иванов Александр Николаевич!
Вот STL-ный вариант решения вашей задачи...

Приложение:

Ответ отправил: Терсков Сергей (статус: Студент)
Ответ отправлен: 21.11.2007, 03:49


Вопрос № 110.268
Здравствуйте,помогите пожалуйса сделать задание,я сделал функцию ввода,а вот с выводом никак разобраться не могу.вот сама задача:"Составить программу, которая получает матрицу В размером m *n. Программа формирует новую матрицу, меняя местами элементы строки с номером i на элементы строки с номером j исходной матрицы В."
зарание спасибо.
Отправлен: 20.11.2007, 12:20
Вопрос задал: Arias (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

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

Приложение:

Ответ отправил: Терсков Сергей (статус: Студент)
Ответ отправлен: 21.11.2007, 04:13
Оценка за ответ: 5

Отвечает: Архипов Александр Леонидович
Здравствуйте, Arias!
B - исходный массив m*n, A - выходной массив n*m

Приложение:

Ответ отправил: Архипов Александр Леонидович (статус: Студент)
Ответ отправлен: 21.11.2007, 05:40
Оценка за ответ: 5


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

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

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

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

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


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


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

В избранное