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

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


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

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

Выпуск № 650
от 27.01.2007, 21:05

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


Вопрос № 71982: Помогите решить задачу с использованием функций с указателями в качестве аргументов: Даны вещественные массивы А[4][6], B[4][6]. Для каждого массива определить сумму и количество отрицательных элементов, расположенных в нечетных строках. И если м...
Вопрос № 71984: Здравствуйте господа эксперты! Помогите разобраться в следующем вопросе! Я, посылаю lisbox-у сообщение SendMessage(hList,LB_GETCURSEL,0,0), в результате отправки этого сообщения, функция SendMessage возвращает либо целочисленный идентификатор...
Вопрос № 72020: Здравствуйте эксперты!Скажите что такое рекурсия и где она применяется.Если можно то дайте ссылки где можно об этом прочесть.Заранее спасибо....
Вопрос № 72060: Расскажите пожалуйста, как сохранить и загрузить данные из трёх таблиц StringGrid на одной форме...
Вопрос № 72138: Зравствуйте эксперты. У меня возникла проблема. У меня есть код программы на Паскале, мне нужно написать тукую же программу на С++. Если кто может прошу помочь. Код программы в приложении. Заранее благоларен....
Вопрос № 72142: Использую Borland C++ Builder 6. У меня два взаимосвязанных вопроса: 1) как создать функцию в С++ и использовать ее в пакете Mathcad (Mathsoft)? 2) как функцию из Mathcad использовать в программном коде на С++? Подскажите с ресурсами ил...
Вопрос № 72146: Есть прога, шрифт по умолчанию SANS_SERIF, а мне препод сказала, исправить его на TRIPLEX, и как-то прилинковать, описать в одельном файле. Сам zero:) PS побыстрее plz...

Вопрос № 71.982
Помогите решить задачу с использованием функций с указателями в качестве аргументов:
Даны вещественные массивы А[4][6], B[4][6]. Для каждого массива определить сумму и количество отрицательных элементов, расположенных в нечетных строках. И если можно то написать комментарии.
Отправлен: 21.01.2007, 22:21
Вопрос задала: Lena_25 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

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

Приложение:

Ответ отправил: Терсков Сергей (статус: 5-ый класс)
Ответ отправлен: 22.01.2007, 03:45
Оценка за ответ: 5
Комментарий оценки:
Спасибо!
Программа замечательно работает


Вопрос № 71.984
Здравствуйте господа эксперты!
Помогите разобраться в следующем вопросе!
Я, посылаю lisbox-у сообщение SendMessage(hList,LB_GETCURSEL,0,0), в результате отправки этого сообщения, функция SendMessage возвращает либо целочисленный идентификатор выделенного элемента, либо LB_ERR, если нет выделенных элементов. Вопрос вот в чем, как преобразовать это целочисленное значение в “строку”, например для того чтобы отобразить в MessageBox-е.
Заранее благодарю, Павел Насыров.
Отправлен: 21.01.2007, 22:25
Вопрос задал: Pashokq (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: ramok
Здравствуйте, Pashokq!

стандартно такое делается с помощью фунции sprintf
long i = 3;
char str[100];
sprintf(str, "%ld", i);
это пример "преобразования" переменной i в строку str в десятичном формате
в зависимости от того что за среду вы используете может сущестровать например
IntToStr
Ответ отправил: ramok (статус: Студент)
Ответ отправлен: 22.01.2007, 00:01

Отвечает: Nightm@re
Здравствуйте, Pashokq!

Могу предложить использовать просто if и в случае возврата из SendMessage - LB_ERR делать что угодно: см. приложение

Вместо MessageBox можете использовать любые возможные выражения и операции.
Желаю удачи ;-)

Приложение:

Ответ отправил: Nightm@re (статус: 1-ый класс)
Ответ отправлен: 22.01.2007, 01:36

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

попробуй преобразование типов см. приложение

Приложение:

Ответ отправил: Mitya86 (статус: 2-ой класс)
Ответ отправлен: 22.01.2007, 11:48
Оценка за ответ: 5
Комментарий оценки:
Ответ точен, и лаконичен. Без лишней воды.

Отвечает: kool
Здравствуйте, Pashokq!
---------------------------------------
Используй, например функцию sprintf(.....).
Удачи!
---------------------------------------
Ответ отправил: kool (статус: 5-ый класс)
Ответ отправлен: 22.01.2007, 12:41


Вопрос № 72.020
Здравствуйте эксперты!Скажите что такое рекурсия и где она применяется.Если можно то дайте
ссылки где можно об этом прочесть.Заранее спасибо.
Отправлен: 22.01.2007, 05:17
Вопрос задал: Hunter20 (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Lemeshev Konstantin
Здравствуйте, Hunter20!
Если по простому, то рекурсия - это когда функция вызыает сама себе самостоятельно или посредством других функций. Обычно в качестве примера рекурсии приводят функции вычисления целой степени от числа и факториала.
Пример кода в приложении.
Думаю все должно быть понятно.

Еще один несколько примеров задач, где возможна рекурсия (код не привожу, он слишком объемный):

1) вычисление определителя матрицы
2) вычисление хроматического многочлена матрицы
Других сейчас не вспомню

Приложение:

Ответ отправил: Lemeshev Konstantin (статус: 3-ий класс)
Ответ отправлен: 22.01.2007, 06:23
Оценка за ответ: 5

Отвечает: Thread
Здравствуйте, Hunter20!
Реккурсия - это объвление какой-либо функции с использованием ее самой. Классический пример рекурсии, это факториал числа.
F(x) = 1, x = 0
F(x) = x * F(x-1), x > 0

вот пример реализации на Си:

int Factorial(x)
{
if (x == 0)
{
return 1;
}
else
{
return x * Factorial(x - 1);
}
}

Еще применяется для отображения содержимого каталогов. Алгоритм примерно такой: на входе функции получаем каталог, выводим на экран названия всех файлов, после этого смотрим есть ли вложенные каталоги, если есть, то вызываем эту же функцию для каждого, используя в качестве параметра каталог.
Ответ отправил: Thread (статус: 2-ой класс)
Ответ отправлен: 22.01.2007, 07:27
Оценка за ответ: 5

Отвечает: ramok
Здравствуйте, Hunter20!

в дополнении к тому что сказали:
1. найти множество материала можно например в google.com по запросу "рекурсия"
например неплохие ссылки:

тут рассмотрены виды рекурсии в примерах
http://comp-science.narod.ru/Progr/Rekursia.html

тут описаны недостатки рекурсии и то что любой рекурсивный алгоритм можно
заменить циклом for с использщованием польщовательской стековой структуры
http://www.kalinin.ru/programming/alg/04_09_00.shtml
http://ru.wikibooks.org/wiki/%D0%A0%D0%B5%D0%BA%D1%83%D1%80%D1%81%D0%B8%D1%8F:_%D0%BF%D0%BB%D0%BE%D1%85%D0%BE_%D0%B8%D0%BB%D0%B8_%D1%85%D0%BE%D1%80%D0%BE%D1%88%D0%BE

2. в профессиональном программировании рекурсия используется обычто для:
- обхода дерева каталоговов и файлов http://www.opennet.ru/docs/RUS/bogatyrev/ex_13.html

- обхода различного вида древовидных структур данных(например бинарное дерево http://ru.wikipedia.org/wiki/%D0%94%D0%B2%D0%BE%D0%B8%D1%87%D0%BD%D0%BE%D0%B5_%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%BE_(%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85 и http://rk6.bmstu.ru/electronic_book/posapr/zadanpo/bintree.htm)

- реализация регулярных выражений http://kimrycity.mcomm.ru/books/PROGR/Praktical_programing/Glava%209/Index3.htm
Ответ отправил: ramok (статус: Студент)
Ответ отправлен: 22.01.2007, 09:34
Оценка за ответ: 5

Отвечает: kool
Здравствуйте, Hunter20!
Рекурсия в программировании - это грубо говоря, когда функция
вызывает саму себя.
Применяется, например для просмотра дерева каталогов или
для вычисления факториала.
Почитать можно в любом учебнике по программированию на "C".
Или в поисковике по слову "рекурсия"

Приложение:

Ответ отправил: kool (статус: 5-ый класс)
Ответ отправлен: 22.01.2007, 12:41
Оценка за ответ: 5


Вопрос № 72.060
Расскажите пожалуйста, как сохранить и загрузить данные из трёх таблиц StringGrid на одной форме
Отправлен: 22.01.2007, 11:51
Вопрос задал: Tornadosss (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Lemeshev Konstantin
Здравствуйте, Tornadosss!
Если не ошибаюсь, то только вручную, стардантными методами (определенным изначально) можно сохранить только отдельные строки либо столбцы.
Когда решал такую же задачу, то взял за основу формат CSV (посохраняй таблицы Excel в этом формате и разберешься - ничего сложного). Плюс такого решения (или минус- это как посмотреть) - возможность редактирования не только в твоей программе но и в Excel, причем без лишних заморочек. Не зачем придумывать ничего нового.
Ответ отправил: Lemeshev Konstantin (статус: 3-ий класс)
Ответ отправлен: 22.01.2007, 12:14

Отвечает: John Paramol
Здравствуйте, Tornadosss!
В приложении реализованы две функции:
StringGridLoadFromFile - загрузка в StringGrid данных из файла;
StringGridSaveToFile - сохранение данных из StringGrid в файл.
Загружается и сохраняется только текстовая информация, другие параметры, такие как размеры ячеек, цвет, шрифт и прочее игнорируются.
Удачи!

Приложение:

---------
1=2, at values 1 large enough

Ответ отправил: John Paramol (статус: 6-ой класс)
Ответ отправлен: 23.01.2007, 22:21


Вопрос № 72.138
Зравствуйте эксперты. У меня возникла проблема. У меня есть код программы на Паскале, мне нужно написать тукую же программу на С++. Если кто может прошу помочь. Код программы в приложении. Заранее благоларен.

Приложение:

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

Отвечает: John Paramol
Здравствуйте, Bizhuk!

В приложении переведенный на C++ вариант.

Удачи!

Приложение:

---------
1=2, at values 1 large enough

Ответ отправил: John Paramol (статус: 6-ой класс)
Ответ отправлен: 23.01.2007, 16:33


Вопрос № 72.142
Использую Borland C++ Builder 6. У меня два взаимосвязанных вопроса:
1) как создать функцию в С++ и использовать ее в пакете Mathcad (Mathsoft)?
2) как функцию из Mathcad использовать в программном коде на С++?
Подскажите с ресурсами или дайте простенький пример.
Отправлен: 22.01.2007, 20:26
Вопрос задал: Volodymyr (статус: 3-ий класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: ramok
Здравствуйте, Volodymyr!

в поставке с Mathcad должен быть Component Software Developers Kit - SDK, который позволяет разрабатывать модули для Mathcad на C++. там же должны быть примеры
Ответ отправил: ramok (статус: Студент)
Ответ отправлен: 23.01.2007, 17:52


Вопрос № 72.146
Есть прога, шрифт по умолчанию SANS_SERIF, а мне препод сказала, исправить его на TRIPLEX, и как-то прилинковать, описать в одельном файле. Сам zero:)
PS побыстрее plz
Отправлен: 22.01.2007, 20:41
Вопрос задал: NoViK (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Boriss
Здравствуйте, NoViK!
SetTextStyle(TriplexFont, HorizDir, 4);
---------
Вывод - то место в тексте, где вы устали думать
Ответ отправил: Boriss (статус: Профессор)
Россия, Саранск
Организация: mte
WWW: Программирование на Паскале
----
Ответ отправлен: 23.01.2007, 11:26
Оценка за ответ: 4


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.43 beta от 26.01.2007
Яндекс Rambler's Top100

В избранное