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

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


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

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

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

Выпуск № 1069
от 28.05.2008, 03:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 487, Экспертов: 46
В номере:Вопросов: 44, Ответов: 56

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 136628: Здравствуйте! Напишыте пожалуйста как подсчитать такое выражение на С++ sinx^3 + x^4 + sqrt^5 x^2 + x^3 Заранее спасибо!...
Вопрос № 136688: Здравствуйте! Помогите пожалуйста! Посмотрите это код и напишыте почему результаты подсчёта выражений у меня выводяться не дробным числом, хотя я использую типы float и double. Я просто только начал изучать это язык и ещё знаю очень мало! Заране...
Вопрос № 136736: Здравствуйте уважаемые эксперты! У меня такой вопрос: в ответе на вопрос №136191 мне понятно все кроме того, u = cos(ctg(n)) заменили на u = cos (1/tan(n)). Напишыте пожалуйста почему так. Заранее спасибо!...
Вопрос № 136744: Здравствуйте! Подскажите пожалуйста как на Си++ подсчитать такое выражение: sqrt^6 (x2 + x3) т.е. по знаком корня имеется выражение в скобках. Надеюсь на Вашу помощь, всю программу писать не нужно, просто строчку для реализации подс...
Вопрос № 136841: Здравствуйте ещё раз! Есть такая задачка: Все парные строки матрицы подвинуть на К - елементов вправо. Если можно с обьяснениями в коде. ОЧень надеюсь на Вашу помощь! Заранее спасибо!...
Вопрос № 136842: Здравствуйте! Помогите пожалуйста решить такую задачку на Си++, если можно с обьяснениями. Отсортировать по-возрастанию только те эл. массива, которые есть простыми числами. Для формирования массива использовать генератор случайных чис...
Вопрос № 136843: Здравствуйте! Помогите пожалуйста решить такую задачку на Си++: Подсчитать количество слов в строке с использованием стандартных функций библ. файла <string.h>. Лично я думаю что можно сначала подсчитать количество всех пробелов между с...
Вопрос № 136852: Здравствуйте, уважаемые эксперты! Помогите, пожалуйста, решить следующую задачу конкретно на языке программирования C. Условие задачи: "Пусть дан текстовый файл. Удалите строку с заданным номером. Если строки с указанным номером нет, сообщите об...
Вопрос № 136894: Уважаемые Эксперты! Существует ли библиотека функций для работы с реестром для Borland C/C++ Command Line Compiler 5.05? Если существует, то где можно ее скачать? Заранее благодарен, Николай....
Вопрос № 136903: Доброго Вам времени суток, подскажите пожалуйста как роль заголов. файла <conio>...
Вопрос № 136910: Здравствуйте! Подскажите пожалуйста, что в этом коде не так. Компилируеться нормально, но постоянно при вводе количества елементов выводит число -0.956872. Это код решения такой задачи: Найти первое отрицательное число последовательност...
Вопрос № 136917: Всем привет и я рад Вас всех видеть!!! Вопрос у меня краток и содержателен! Если кто может или у кого-то есть какая-нибудь литература по Мicrosoft Visual C++ 2005 г помогите,пожалуйста, кто чем может. Просто я уже запарился ее искать!!!!! Есл...
Вопрос № 136922: Здравствуйте! Помогите пожалуйста с задачкой: Сформировать одномерный динамический массив с помощью генератора случайных чисел и удалить в нем все непарные элементы. Я думаю, что непарные элементы можно по-одному определять путем де...
Вопрос № 136942: здравствуйте! помогите пожалуйста с задачами. 1.Дано натуральное число n. Вычислить, входит ли цифра 3 в запись числа n. 2.Среди двузначных чисел найти те, сумма квадратов цифр которых делится на заданное число n 3.Имеется целоч...
Вопрос № 136955: Доброго дня! Подскажите название библиотеки с кросплатформееной реализацией для работы с wav файлами ежели таковая имеется.под линукс и виндовс.скорее всего различее только через апи будет для проигрывания файлов, а запись, чтение и обработка мож...
Вопрос № 136982: Добрый вечер, честной народ! :))) Выручите помощью по вот какому вопросу... Меньшого брата загрузили в университете задачкой по C++. Привожу примерный текст задачи. Есть экран с узкой щелью. На него падает плоская световая волна с задан...
Вопрос № 137015: Здравствуйте! Наведите пожалуйста простые примеры сортировки массивов на Си++: простой обмен и простой выбор. Заранее спасибо, если можно с обьяснениями в коде....
Вопрос № 137023: Здравствуйте! Есть задача: отсортировать по-возрастанию только те эл. массива, которые есть простыми числами. Т.к. я ещё очень и очень мало знаю на программировании на Си++, очень Вас прошу, сделайте описание кода. Код в приложении, заранее ...
Вопрос № 137028: Hi dear experts!!! вопрос касается stl : [хочу при помощи stl функции sort произвести сортировку. все как бы ок, компилирует нормально, но не потом не хочет работать - ошибка доступа. пробывал третим параметром функцию сравнения, пробывал класс ...
Вопрос № 137046: Доброго времени суток, уважаемые эксперты! Помогите пожалуйста с однонаправленным списком на С++, а именно приведите пример кода, который реализует вставку, удаление элементов. Пожалуйста, оформите в виде функций. Спасибо за помощь....
Вопрос № 137135: Здравствуйте! Подскажите пожалуйста для чего предназначены заголов. файлы <time> и <cstdlib>. Заранее спасибо!...
Вопрос № 137137: Здравствуйте, подскажите пожалуйста, как написать функцию для создания динамического одномерного массива чисел, чтобы полученный массив можно было вернуть через параметры функции, какой указатель double* mas пере давать ф-ии? p.s. программа для BC...
Вопрос № 137164: Здравствуйте! Задаю это вопрос только Вам. Мне понравилось как Вы коментируете программу и мне как начинающему было почти все понятно. Сделайте пожалуйста описание этого кода, тоже написаного Вами. Также если Вам несложно, обьясните зач...
Вопрос № 137183: Чем коммерческая Qt отличается от некоммерческой? У меня MSVS2005, возможно ли мне заюзать Qt в студии?...
Вопрос № 137207: Добрый день, уважаемые эксперты. Прошу оказать помощь в написании следующей программы:надо построить двусвязный список чисел и удалить из него одинаковых соседей для каждого элемента. Напечатать все списки. Заранее благодарен....
Вопрос № 137231: Доброго Вам времени суток, думаю туда обратился. Помогите пожалуйста написать программу на С++, которая считает количество введённых слов. Желательно чтобы с обьяснениями и чтобы алгоритм был не сильно заумной, так. как я научился писать только очень...
Вопрос № 137235: Подсчитать количество слов в данной последовательности Как реализовать? :)...
Вопрос № 137269: hi dear experts!!! напишите плиз пример сортировки массива объектов класса. очень надо!!!...
Вопрос № 137290: Здравствуйте! Обьясните мне пожалуйста, почему для вывода двумерного массива нужно делать именно так: nums [t] [i] = (t * 4) + i + 1 (весь код в приложении), я о том, что почему нужно плюсировать "i" и еще и единицу?. Обьясните мне...
Вопрос № 137293: Здравствуйте! Напишыте пожалуйста код вывода двумерного массива с использованием генератора случайных чисел, желательно с обьяснениями. Заранее спасибо....
Вопрос № 137352: Доброго дня! Есть скомпилированная библиотека без исходного кода и функция в ней которая в качестве параметра принемает имя файла.затем эта функция уже внутрях его открывает и с ним работет. Я делаю запрос к серверу получаю в буфер ...
Вопрос № 137356: Доброго воскресного дня! Вопрос у меня такой. Я через сокеты формирую запрос к серверу получаю от него данные и с ними работаю. Иногода в ходе не верно сформированного запроса. Происходит зависание внутрки функции recv и иногда в дру...
Вопрос № 137409: Здравствуйте! Растолкуйте мне пожалуйста эту строку (по слову если можно) srand((unsigned) time(NULL)); Заранее спасибо! ...
Вопрос № 137413: (Задача на циклический алгоритм) Малое предприятие в первый день работы выпустило P единиц товарной продукции. Каждый последующий день оно выпускало продукции на Q единиц больше, чем в предыдущий. Сколько дней потребуется предприятию, чтобы общее...
Вопрос № 137414: (Задача на строки) Дана строка-предложение, содержащая избыточные пробелы. Преобразовать ее так, чтобы между словами был ровно один пробел. ...
Вопрос № 137430: Доброго времени суток всем.У меня небольшая проблема,никак не могу сообразить как лучше реализовать.Мне надо найти минимальный элемент каждого столбца в матрице 10X10,могу найти вообще во всей матрице самый минимальный элемент,а вот в каждой строке ч...
Вопрос № 137502: Здравствуйте! Напишыте пожалуйста кратко о заголовочном файле cstdlib, так как от других экспертов я ответа можно сказать не получил....
Вопрос № 137514: Здрвствуйте еще раз! Помогите пожалуйста ещё с одной задачкой. Сформировать динамический массив, который состоит из динамических строк, и добавить на начало этого массива К-строк. Желательно с коментариями. Спасибо Вам за то, что Вы есть....
Вопрос № 137520: Здравствуйте эксперты! Подскажите пжлста как делать поддержку нескольких языков в интерфейсе программы. Ну то есть чтобы названия кнопочек, вкладок, меток и т.д. можно было динамически менять. Например выбрал в меню пункт "Переключить н...
Вопрос № 137529: Здравствуйте! Помогите, пожалуйста, реализовать шаблон класса Stack. Для представления элемента стека использовать шаблон класса Node. Реализовать как класс контейнера и итератора. ...
Вопрос № 137586: Уважаемые Эксперты! Подскажите где можно скачать книги на русском по яызку С?...
Вопрос № 137628: Уважаемые эксперты, помогите пожалуйста разобраться в программке. Необходимо разработать программу добавления информации в произвольное место бинарного файла. Вроде добавляется, но в конец файла, а хотелось бы, чтобы в позицию, которую указывает...
Вопрос № 137679: Сдраствуйте товарищи эксперты. Помогите пожалуйста с программой! Условие: Выполнить задание В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1)сумму отрицательных элементов массива; 2)произведение элементов ...
Вопрос № 137693: Здравствуйте! Я снова с огромной просьбой прокоментировать Вашу программу (ответ на вопрос № 137514), т.к. Вы это умеете, а Вы это УМЕЕТЕ. Пожалуйста. P.S. А что такое "itoa"??? Спасибо ОГРОМНЕЙШЕЕ!...

Вопрос № 136.628
Здравствуйте! Напишыте пожалуйста как подсчитать такое выражение на С++

sinx^3 + x^4 + sqrt^5 x^2 + x^3

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

Отвечает: Терсков Сергей
Здравствуйте, Sashka!
Вычисление подобных функций производится при помощи функций из заголовочного файла cmath (С++) или math.h (С). Предсталенная вами функция будет выглядеть как:

double f(double x) {

return sin(pow(x, 3.0)) + pow(pow(x, 2.0), 1.0/5.0) + pow(x, 3.0);
}

или упрощенно:

double f(double x) {

return sin(x*x*x) + pow(x, 0.4) + x*x*x;
}

Реализация программы в приложении.

Приложение:

Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 14.05.2008, 02:16
Оценка за ответ: 5
Комментарий оценки:
Огромное Вам спасибо за помощь!


Вопрос № 136.688
Здравствуйте!
Помогите пожалуйста! Посмотрите это код и напишыте почему результаты подсчёта выражений у меня выводяться не дробным числом, хотя я использую типы float и double. Я просто только начал изучать это язык и ещё знаю очень мало! Заранее спасибо! Код в приложении.

Приложение:

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

Отвечает: Лысков Игорь Витальевич
Очевидно, получилось округление до целого.
Мне больше нравится вывод с помощью printf: можно управлять форматом преобразования.
Подправленный пример в приложении.
Формат %f означает вывести число с фиксированной точкой

Приложение:

---------
Удачи!

Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 13.05.2008, 20:59
Оценка за ответ: 5

Отвечает: Терсков Сергей
Здравствуйте, Sashka!
В ваших вычислениях результат не дробный, поэтому стандартный вывод отбрасывает дробную часть. Для ее отображения можно использовать манипуляторы стандартного вывода из заголовочного файла iomanip, такие как setprecision (точность вывода) и setiosflags (в данном случае для фиксированного вывода дроби). Подробнее может посмотреть на ©MSDN или в книге Н.Джосьютиса "Стандартная библиотека С++", в разделе "Ввод-вывод с использование потоковых классов". Исправленный вариант смотрите в приложении.

Приложение:

Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 14.05.2008, 03:31
Оценка за ответ: 5
Комментарий оценки:
Спасибо!


Вопрос № 136.736
Здравствуйте уважаемые эксперты!

У меня такой вопрос: в ответе на вопрос №136191 мне понятно все кроме того, u = cos(ctg(n)) заменили на u = cos (1/tan(n)). Напишыте пожалуйста почему так. Заранее спасибо!
Отправлен: 14.05.2008, 00:18
Вопрос задал: Sashka (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Sashka!
Все дело в том, что в библиотеке математических функций С++ нет функции ctg() (котангенс). Поэтому в ответе на ваш вопрос она была выражена через обратную ей функцию tan() (тангенс). Подробнее о тригонометрических функциях можно посмотреть здесь.
Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 14.05.2008, 02:47
Оценка за ответ: 5
Комментарий оценки:
Большое Вам спасибо за ответ!

Отвечает: Anisov Andre Nikolaevich
Здравствуйте, Sashka!
потому что котангенс обратнач функция тангенса ---согласно математическому определению
---------
не пытайся спорить с дебилом, а то опустишься до его уровня и он задавит тебя своим " умом "
Ответ отправил: Anisov Andre Nikolaevich (статус: 3-ий класс)
Ответ отправлен: 14.05.2008, 04:39
Оценка за ответ: 5

Отвечает: Kamerad
Здравствуйте, Sashka!

Потому что ctg(n)= 1/tan(n). Это из курса математики.
Ответ отправил: Kamerad (статус: 3-ий класс)
Ответ отправлен: 14.05.2008, 17:00
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое! Я это уже вспомнил!


Вопрос № 136.744
Здравствуйте!
Подскажите пожалуйста как на Си++ подсчитать такое выражение:

sqrt^6 (x2 + x3) т.е. по знаком корня имеется выражение в скобках.
Надеюсь на Вашу помощь, всю программу писать не нужно, просто строчку для реализации подсчета этого выражения. Заранее спасибо!
Отправлен: 14.05.2008, 03:25
Вопрос задал: Sashka (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Sashka!
Функция sqrt вычисляет только квадратный корень из числа. Для взятия корней других степеней нужно использовать функцию pow, т.е. возвести число в степень 1/n. В вашем случае это:

double p = pow((x2 + x3), 1.0/6.0);
Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 14.05.2008, 04:48
Оценка за ответ: 5
Комментарий оценки:
Спасибо Вам большое! Насчёт sqrt - я просто так обозначил!


Вопрос № 136.841
Здравствуйте ещё раз!
Есть такая задачка: Все парные строки матрицы подвинуть на К - елементов вправо.
Если можно с обьяснениями в коде. ОЧень надеюсь на Вашу помощь! Заранее спасибо!
Отправлен: 14.05.2008, 20:21
Вопрос задал: Sashka (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 7)

Отвечает: Терсков Сергей
Здравствуйте, Sashka!
В приложении вы найдете вариант сдвига четных строк матрицы на k-елементов вправо. Циклический сдвиг строк описан в функции void cycle_shift(int *a, int size, int k). Сдвигается массив a размером size на k элементов. Компилятор MS VS 2005.

Приложение:

Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 16.05.2008, 07:32
Оценка за ответ: 5


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

Отсортировать по-возрастанию только те эл. массива, которые есть простыми числами.
Для формирования массива использовать генератор случайных чисел.

Заранее спасибо!
Отправлен: 14.05.2008, 20:22
Вопрос задал: Sashka (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Терсков Сергей
Здравствуйте, Sashka!
Для этого можно в процессе сортировки определять - простое ли текущее число. Но это займет немало вычислительных ресурсов, т.к. алгоритмы сортировки очень часто обращаются к элементам массива, а алгоритм определения простое число или нет не такой уж и быстрый. Чтобы избежать этого, можно завести массив типа bool, содержащий флаг того, что число простое. Этот массив можно заполнить за один проход по исходному массиву. Все остальное проблем не представляет - это обычный алгоритм сортировки выбором с пропуском непростых чисел.

Приложение:

Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 15.05.2008, 09:47
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое! а это стандартная строка для функции (int argc, char* argv[])?


Вопрос № 136.843
Здравствуйте! Помогите пожалуйста решить такую задачку на Си++:
Подсчитать количество слов в строке с использованием стандартных функций библ. файла <string.h>.
Лично я думаю что можно сначала подсчитать количество всех пробелов между словами, пусть это количество будет n,
тогда количество слов будет n + 1, конечно если между словами будет не больше одного пробела.
Или может есть способ ещё проще? Если можно с обьяснениями в коде. Заранее спасибо!
Отправлен: 14.05.2008, 20:23
Вопрос задал: Sashka (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Sashka!
Метод будет работать если слова разделяются только одним пробелом. А если их несколько ? А если это вообще не пробелы, а, например, запятые ? В приложении вы найдете пример разбора строки по словам с использованием класса string из STL и его методов. Программа комментирована, поэтому алгоритм работы можно понять из кода. Компилятор MS VS 2005.

Приложение:

Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 15.05.2008, 09:19
Оценка за ответ: 5
Комментарий оценки:
Спасибо Вам большое за помощь, с кодом более чем понятно!


Вопрос № 136.852
Здравствуйте, уважаемые эксперты! Помогите, пожалуйста, решить следующую задачу конкретно на языке программирования C. Условие задачи: "Пусть дан текстовый файл. Удалите строку с заданным номером. Если строки с указанным номером нет, сообщите об этом."
Отправлен: 14.05.2008, 20:50
Вопрос задал: Vesel4 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Терсков Сергей
Здравствуйте, Vesel4!
Аналогичный вопрос №131720 вы уже задавали. Ответ удовлетворяет вашим требованиям (язык С). Код повторно привожу в приложении.

Приложение:

Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 15.05.2008, 04:16
Оценка за ответ: 5
Комментарий оценки:
Спасибо!

Отвечает: Solowey
Здравствуйте, Vesel4!
вот мое решение задачи:

#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>

using namespace std;

int main()
{
int nld = 3;
int nl=0;
string _textLine;
string temp;

ifstream file_if( "test.txt" );
if( !file_if.is_open() )
{
cout << "The file test.txt is not found! (Load)";
return -1;
}

while( getline( file_if, _textLine, ' ' ) )
{
nl++;
if(nl == nld)
{
;
}
else
{
temp = temp + _textLine + ' ';
}
}
file_if.close();
ofstream file_of( "test.txt" );
if( !file_of.is_open() )
{
cout << "The file test.txt is not found! (Save)";
return -1;
}
file_of << temp;
file_of.close();
}

Приложение:

Ответ отправил: Solowey (статус: 3-ий класс)
Ответ отправлен: 15.05.2008, 16:38


Вопрос № 136.894
Уважаемые Эксперты! Существует ли библиотека функций для работы с реестром для Borland C/C++ Command Line Compiler 5.05? Если существует, то где можно ее скачать? Заранее благодарен, Николай.
Отправлен: 15.05.2008, 08:18
Вопрос задал: Nicky (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Arshvin
Здравствуйте, Nicky!В Windows есть такой интерфейс называемый API (Application Program Interface Интерфейс прикладного программирования), с помощью которого осуществляется работа созданного прикладного программного обеспечения (да и системного тоже) с разными объектами (файлами, процессами, потоками ... и многими многими другими, в том числе и с реестром), переферийными устройствами (клавиатуры, мыши, последовательные и параллельные порты.....) и еще с кучей всего что может делать ОС. Правда это касается приложений (программ) которые используют данные интерфейс и его возможности, а ,например, не осуществляет низкоуровневые операции сама обращаясь к контроллерам "железа" или работая с функциями БИОСа или ДОСа :) Что представляет из себя этот интерфейс:это набор функций, структур, объектов (а также их методов и свойств, для организации работы с ними), который содержится в системных библиотеках (в dll файлах), среды разработки приложений под Windows, такие как delphi, borlandC++,Visual C++, Visual Basic...,их активно используют (особенно это визуального программирования тоесть приложений которые создают окна, хотя так же этот интерфейс можно использовать и в Pascal'е и в ассемблере ;) ),точнее надо сказать что в основном все программы под Win32 на них и работают.
Раз вы пользуетесь Borland C/C++ то у вас должны во включаемых модулях быть описаны функции для работы с реестром Windows. Посмотрите в исходных кодах модуля отвечающего за работу с интерфейсом API (должен он иметь название Windows, в Delphi он так и называется).В приложении приведу несколько названий функций для работы с реестром. Подробнее можно про них прочитать обратившись к MSDN

Приложение:

Ответ отправил: Arshvin (статус: 7-ой класс)
Ответ отправлен: 16.05.2008, 11:33
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо! Это именно то, что нужно. Теперь, по названиям функций, я их в help\'е найду.


Вопрос № 136.903
Доброго Вам времени суток, подскажите пожалуйста как роль заголов. файла <conio>
Отправлен: 15.05.2008, 10:12
Вопрос задал: Sashka (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Kamerad
Здравствуйте, Sashka!
в нем описаны прототипы функций для работы с консолью

напр. getch() - ждет нажатия клавиши
clrscr() - очищает экран

есть функции для работы сцветом
и др.
Ответ отправил: Kamerad (статус: 3-ий класс)
Ответ отправлен: 15.05.2008, 17:58
Оценка за ответ: 5
Комментарий оценки:
Спасибо!


Вопрос № 136.910
Здравствуйте! Подскажите пожалуйста, что в этом коде не так. Компилируеться нормально,
но постоянно при вводе количества елементов выводит число
-0.956872.
Это код решения такой задачи: Найти первое отрицательное число последовательности u = cos(ctg(n))? где n = 1,2,3.
Код в приложении.

Приложение:

Отправлен: 15.05.2008, 11:02
Вопрос задал: Sashka (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

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

Ну всё правильно.
-0.956872 - это и есть первое отрицательное число, получаемое при n =6
Ответ отправил: Сандров Алекс (статус: 8-ой класс)
Ответ отправлен: 15.05.2008, 11:08
Оценка за ответ: 5
Комментарий оценки:
Спасибо Вам большое! Я просто немножко неправильно понял само условие задачи.

Отвечает: Solowey
Здравствуйте, Sashka!
Все просто. При n=0 значение u=-0,956872. После этого происходит выход из цикла по break и программа завершается.
Ответ отправил: Solowey (статус: 3-ий класс)
Ответ отправлен: 15.05.2008, 12:49
Оценка за ответ: 5
Комментарий оценки:
Спасибо, я уже это понял, я просто невнимательно прочитал само условие задачи!

Отвечает: Ковалев Вадим
Здравствуйте, Sashka!
Для поставленой задачи решение правильное.
а выводит -0.956872 потому что первое отрицательное число последовательности u = cos(ctg(n)) при n = 1, 2, 3... равно -0.956872. (при n=6) при n<6 ничего не выводит.
вот и все=)
Ответ отправил: Ковалев Вадим (статус: 1-ый класс)
Ответ отправлен: 15.05.2008, 20:46
Оценка за ответ: 5
Комментарий оценки:
Спасибо Вам, а посмотрите пожалуйста, если Вам не сложно другие мои опросы! Ещё раз огромное спасибо!


Вопрос № 136.917
Всем привет и я рад Вас всех видеть!!!
Вопрос у меня краток и содержателен!
Если кто может или у кого-то есть какая-нибудь литература по Мicrosoft Visual C++ 2005 г помогите,пожалуйста, кто чем может. Просто я уже запарился ее искать!!!!! Если, кто-то решит оказать мне столь любезную услугу я буду очень благодарен!!! А еще лучше если вы это дело кинете на мое мыло: Сherep-88@mail.ru
Отправлен: 15.05.2008, 11:38
Вопрос задал: Chernyshov Pavel (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Solowey
Здравствуйте, Chernyshov Pavel!
C/C++ и MS Visual C++ 2005 для начинающих
Ответ отправил: Solowey (статус: 3-ий класс)
Ответ отправлен: 15.05.2008, 12:21


Вопрос № 136.922
Здравствуйте! Помогите пожалуйста с задачкой:

Сформировать одномерный динамический массив с помощью генератора случайных чисел и удалить в нем все непарные элементы.

Я думаю, что непарные элементы можно по-одному определять путем деления (с остатком на 2), а как же тогда реализовать удаление!?
Если можно с обьяснениями в коде, заранее спасибо!
Отправлен: 15.05.2008, 12:11
Вопрос задал: Sashka (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

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

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

int iLength.
int *pInt;
...
pInt = new int[1000];
...
for(int i=0; i<1000; i++)
pInt = 10;
iLength = 1000;
// тут важно помнить, что массивы индексируются с нуля, поэтому последний элемент не 1000-й, а 999-й, или iLength-1-й

//удаление делается путём сдвига на один назад всех элементов массива начиная с удаляемогого

int iDel = 545; // удалим 545-й

for(int i=iDel-1; i<iLength-1; i++)
pInt[i] = pInt[i+1];
iLength = iLength-1; // массив стал на 1 меньше.

PS. в с++ стандарте есть втроенные массивы, которые сами следят за границами, сами при удалении всё сдвигают.
это например stl::vector<data_type>
Ответ отправил: Сандров Алекс (статус: 8-ой класс)
Ответ отправлен: 15.05.2008, 14:32
Оценка за ответ: 4


Вопрос № 136.942
здравствуйте! помогите пожалуйста с задачами.

1.Дано натуральное число n. Вычислить, входит ли цифра 3 в запись числа n.

2.Среди двузначных чисел найти те, сумма квадратов цифр которых делится на заданное число n
3.Имеется целочисленный массив, состоящий из 15 элементов. Найти среднее арифметическое всех элементов массива
4.Дано натуральное число N (N<20), определяющее сумму денег в рублях. Дать для этого числа наименование: "рубль", "рубля", "рублей"

Пожалуйста, помогите!!! заранее вам благодарна!
Отправлен: 15.05.2008, 14:22
Вопрос задала: Rumiya (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Rumiya!
1. Для этого постепенно делим число на 10 и на каждом шаге проверяем остаток от деления на 10. Если он равен трем то число содержит цифру три.

2. Таких чисел нет. Программа подтверждает это. Она выводит список двузначных чисел, сумму квадратов их цифр и остаток от деления. Все остатки больше нуля, поэтому таких двузначных чисел нет.

3. В цикле суммируем элементы массива, а затем делим эту сумму на их количество - это и будет среднее.

4. Если число равно 1, то наименование "рубль", если 2, 3, 4, то "рубля", иначе "рублей".

Код программ смотрите в приложении. Компилятор MS VS 2005.

Приложение:

Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 16.05.2008, 08:12


Вопрос № 136.955
Доброго дня!
Подскажите название библиотеки с кросплатформееной реализацией для работы с wav файлами ежели таковая имеется.под линукс и виндовс.скорее всего различее только через апи будет для проигрывания файлов, а запись, чтение и обработка может быть платформенно не зависемой.я так считаю.поправте меня если я неправ.
Отправлен: 15.05.2008, 15:30
Вопрос задал: Ferzz (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Dr_Andrew
Здравствуйте, Ferzz!
Если бы речь шла только о воспроизведении аудио, то можно было бы смело рекомендовать библиотеку Qt (www.trolltech.com), класс QSound которой содержит все методы, необходимые для воспроизведения WAV. Однако на этом возможности Qt и ограничиваются. Более расширенными возможностями для разоты со звуком обладает кроссплатформенная библиотека SDL - http://www.libsdl.org/ - (к слову, Qt и SDL прекрасно взаимодействуют друг с другом). Базовая функциональность "чистой" SDL невелика, однако написано много дополнений, расширяющие возможности SDL_Sound по работе со звуком, причём большинство идёт в поставке с основной библиотекой. По сути при разработке игр для Linux SDL стала чем-то вроде DirectX для Windows. Существенный недостаток SDL - относительный дефицит вразумительной документации, даже на английском.
Кроме того, думаю полезны Вам будут следующие материалы:
http://www.mtu-net.ru/aborovsky/articles/linsnd1.htm
http://www.mtu-net.ru/aborovsky/articles/linsnd2.htm
http://www.mtu-net.ru/aborovsky/articles/linsnd3.htm
Ответ отправил: Dr_Andrew (статус: Студент)
Ответ отправлен: 15.05.2008, 23:39
Оценка за ответ: 5
Комментарий оценки:
Спасибо Вам за отличный ответ.На http://www.libsdl.org/ представленно кстати много разных кросплатформенных библиотек для работы со звуком.


Вопрос № 136.982
Добрый вечер, честной народ! :)))
Выручите помощью по вот какому вопросу... Меньшого брата загрузили в университете задачкой по C++. Привожу примерный текст задачи.

Есть экран с узкой щелью. На него падает плоская световая волна с заданной длиной. На другом экране, параллельном первому, наблюдается дифракционная картина. Нужно рассчитать интенсивность света в картине в зависимости от координаты на экране и построить график этой зависимости. Кроме того, построить график интенсивности света в центре экрана (напротив щели) в зависимости от расстояния от щели до экрана. Графики должны быть сделаны с помощью библиотеки FLTK и иметь элементы управления для изменения параметров задачи - длины волны, размеров щели, расстояния до щели.

Теперь что нам непонятно... Я не прошу написать готовую программу(как эксперт с довольно нешуточным статусом я крайне отрицательно отношусь к халяве на портале), я прошу подсказать, какой класс из данной библиотеки следует использовать. Скажем, обсчет точек графика мы сами сделаем. Основной затык - работа с графикой, да еще и с использованием библиотеки FLTK.
Расчет дифракции, конечно же, мы тоже сами осуществим, дело нехитрое.
Хотя... Если кому труднее объяснить, чем написать... Мы, конечно, не обидимся.
На PHP я бы реализовал такую задачку довольно легко, но в том-то и дело, что препод не будет ждать, пока я установлю братцу сервер на учебной машине :)))

Перефразировать вопрос можно еще вот так: есть нумерованный массив координат, где номер элемента массива - координата по оси Х, а значение элемента - координата по Y. Так вот, требуется положить эти точки на график с использованием вышеуказанной библиотеки. Пожалуй, в данном случае я бы все-таки не отказался от готового кода :)))
С уважением, Товарищ Бородин
Отправлен: 15.05.2008, 19:00
Вопрос задал: Товарищ Бородин (статус: Профессионал)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Терсков Сергей
Здравствуйте, Товарищ Бородин!
FLTK конечно не лучшая из библиотек, но если стоит такая задача... На официальном сайте FLTK есть документация (естественно на английском). В разделе Drawing Things in FLTK есть описания функций библиотеки, отвечающих за рисование различных примитивов, в том числе и нужных в данном случае линий. Например вот:
void fl_line(int x, int y, int x1, int y1).
Но простое описание мало чего дает без примеров, которых на официальном сайте нет. Примеры можно посмотреть здесь. Среди прочего есть пример рисования диагонального креста на форме (Draw An X). Вашу задачу можно решить, отталкиваясь от кода данного примера. То есть нужно создать класс наследованный от Fl_Widget, содержащий массив с данными и , переопределив метод draw, создать отрисовку графика.
Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 16.05.2008, 04:17
Оценка за ответ: 5
Комментарий оценки:
Спасибо, правда, не уверен, что братишка всю эту информацию переварит, но мы попробуем... В мини-форум обратимся если что, надеюсь, не откажете в помощи, коллега?:-)))

Отвечает: Dr_Andrew
Здравствуйте, Товарищ Бородин!
К сожалению, текст ответа на Ваш вопрос просто не влез в форму ответа. Поэтому если для Вас это ещё актуально, то составленное мной подробное руководство по отрисовке графика с помощью FLTK Вы можете посмотреть здесь.
Ответ отправил: Dr_Andrew (статус: Студент)
Ответ отправлен: 16.05.2008, 21:25
Оценка за ответ: 5
Комментарий оценки:
Спасибо за подробный и развернутый ответ! Пока еще испробовать не успели, но в целом братец мой доволен, т. к. все понятно. Спасибо! С уважением, Товарищ Бородин


Вопрос № 137.015
Здравствуйте! Наведите пожалуйста простые примеры сортировки массивов на Си++: простой обмен и простой выбор. Заранее спасибо, если можно с обьяснениями в коде.
Отправлен: 15.05.2008, 23:05
Вопрос задал: Sashka (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Sashka!
Это одни из самых простых методов сортировки и их описаний в сети множество. Например вот:
Сортировка обменом (пузырьком)
Сортировка выбором
FAQ по сортировкам
algolist.manual.ru)
Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 16.05.2008, 03:51
Оценка за ответ: 5
Комментарий оценки:
Спасибо, а то я знаю только "пузырьком" и то на pascal


Вопрос № 137.023
Здравствуйте!

Есть задача: отсортировать по-возрастанию только те эл. массива, которые есть простыми числами. Т.к. я ещё очень и очень мало знаю на программировании на Си++, очень Вас прошу, сделайте описание кода. Код в приложении, заранее спасибо!

Приложение:

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

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

Приложение:

Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 16.05.2008, 03:27
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Извиняюсь, что доставляю Вам хлопот, просто я только начинающий в этом деле, причем учусь заочно!


Вопрос № 137.028
Hi dear experts!!!
вопрос касается stl : [хочу при помощи stl функции sort произвести сортировку. все как бы ок, компилирует нормально, но не потом не хочет работать - ошибка доступа. пробывал третим параметром функцию сравнения, пробывал класс писать и ничего.
но если поставить на сортировку только два элемента, то срабатывает бех ерорав но ничего всезе не сотирует.можетнеправильная передача аргументов в функцию? просто не знаю что делать, перепробвал что мог. напишите плиз работающую прожку сортирующую обьекты класса.

Приложение:

Отправлен: 16.05.2008, 02:16
Вопрос задал: S@ZaN (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Терсков Сергей
Здравствуйте, S@ZaN!
Часть программы, которую вы привели, должна работать без проблем. Возможно проблема находится в классе CInfo, описание которого вы не привели. В приложении программа подобная вашей, только использующая объекты класса string. И если вы решили использовать STL, то от обычных массивов лучше перейти к классу vector. Он гораздо функциональнее и поддерживает практически все алгоритмы из STL.

Приложение:

Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 16.05.2008, 03:41
Оценка за ответ: 5


Вопрос № 137.046
Доброго времени суток, уважаемые эксперты! Помогите пожалуйста с однонаправленным списком на С++, а именно приведите пример кода, который реализует вставку, удаление элементов. Пожалуйста, оформите в виде функций. Спасибо за помощь.
Отправлен: 16.05.2008, 10:50
Вопрос задал: Alex_kh (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Verena
Здравствуйте, Alex_kh!
Работа с динамическими структурами данных, например, списками, сводится к внимательной работе с указателями на элементы. Важно не терять ссылки на существующие элементы, потому что из-за этого будет расходоваться лишняя память, которая не будет доступна внутри программы ввиду отсутствия её адреса. В приложении - пример реализации однонаправленного списка, функции добавления элементов в конец списка и после заданной позиции, функии удаления элемента из конца и элемента по заданной позиции. Для работы со списком необходим указатель на первый его элемент, в общем случае можно передавать этот указатель в каждую из функций, в моём примере он хранится в виду глобальной переменной. Также, в функциях вставки и удаления по позиции не реализована проверка передаваемого индекса.
Удачи!

Приложение:

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

Ответ отправила: Verena (статус: Практикант)
Ответ отправлен: 17.05.2008, 02:04


Вопрос № 137.135
Здравствуйте! Подскажите пожалуйста для чего предназначены заголов. файлы <time> и <cstdlib>. Заранее спасибо!
Отправлен: 16.05.2008, 20:28
Вопрос задал: Sashka (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: PROD
!!!
Здравствуйте, Sashka!
time позволяет работать со временем. в В нем описана структура позволяющая хранить дату время, функции для получения текущего времени, часового пояса, его названия и т.д.
по По поводу cstdlib ничего сказать не могу. еЕсли она аналогична stdlib, то это очень полезная библотечка, позволяет перегонять конвертировать char в int и double, брать модуль от длинных интов longint, выделять динамически память по старому принципу(каллок, маллок calloc, malloc и т.д.)

Исправлены сленг и грамматика.
-----
∙ Отредактировал: Николай Владимирович / Н.В. (Профессор)
∙ Дата редактирования: 19.05.2008, 14:28
Ответ отправил: PROD (статус: 6-ой класс)
Ответ отправлен: 16.05.2008, 23:10
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Я читал в книжке Герберта Шилдта, что на старых компиляторах без не будет работать abs(), я пробовал и без этого работает, вот мне и интересно было что ж оно такое!


Вопрос № 137.137
Здравствуйте, подскажите пожалуйста, как написать функцию для создания динамического одномерного массива чисел, чтобы полученный массив можно было вернуть через параметры функции, какой указатель double* mas передавать ф-ии?
p.s. программа для BC++3.1 Заранее благодарю

Приложение:

Отправлен: 16.05.2008, 20:32
Вопрос задал: Nevill (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

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

Приложение:

Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 19.05.2008, 04:55


Вопрос № 137.164
Здравствуйте! Задаю это вопрос только Вам.
Мне понравилось как Вы коментируете программу и мне как начинающему
было почти все понятно. Сделайте пожалуйста описание этого кода,
тоже написаного Вами. Также если Вам несложно, обьясните зачем
в Вашей программе (ответ на вопрос № 136842) используеться
заголов. файл <time.h>. И еще один вопросик, может не в тему,
просто интересно: Вы с первых курсов набыли опыта
в программировании, реально быстро составлять алгоритм в голове,
а потом уже клавишами, или же все это приходит со временем???.
Напишыте пожалуйста, если Вам несложно.

Огромное Вам спасибо!

Приложение:

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

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

Эээ... программку эту не я писал, сщас просто не совсем когда её смотреть, извините.

time.h - используется для инициализации случайных чисел, следующим образом:

srand((unsigned) time(NULL)); - time(NULL) - возвращает число секунд с 1970 года, то есть фактически каждый раз новое число. srand таким образом всегда инициализируется по разному и случайные числа, генерируемые rand - будут действительно случайными(хотя это и не совсем так)

Про алгоритм в голове - даже не знаю. Но в голове полезно продумывать. Бывает так, что уйдёшь из-за компа и сразу в голове находишь решение, которое не находится пока за компом сидишь. Опыт приходит с практикой.
Чем больше пишешь - тем дальше проще.
Чем дольше продумываешь - тем пишешь проще и меньше потом переделывать.
(Хорошо для себя ещё собирать полезные отлаженные куски кода, которые потом вторчино использовать в новых программах, собирать из них библиотечки)
Вобщем, как можно больше практики - и всё будет!
Ответ отправил: Сандров Алекс (статус: 8-ой класс)
Ответ отправлен: 19.05.2008, 06:37
Оценка за ответ: 5
Комментарий оценки:
Спасибо Вам!

Отвечает: Терсков Сергей
Здравствуйте, Sashka!
Комментированный текст программы смотрите в приложении. Про time() вам уже объяснял предыдущий эксперт. Насчет вопроса не в тему: все алгоритмы естественно, сначала обдумываются в голове. Затем обдумывается подход к задаче, в какой форме лучше будет осуществить ее решение (ООП например), а после этого уже непосредственное кодирование. Опыт конечно же накапливается постепенно, нужно лишь хорошо знать теорию как языка так и структур и алгоритмов данных, а практика наработается.

Приложение:

Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 19.05.2008, 06:56
Оценка за ответ: 5
Комментарий оценки:
Спасибо Вам большое!


Вопрос № 137.183
Чем коммерческая Qt отличается от некоммерческой? У меня MSVS2005, возможно ли мне заюзать Qt в студии?
Отправлен: 17.05.2008, 11:03
Вопрос задал: effort (статус: Студент)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: Dr_Andrew
Здравствуйте, effort!
Коммерческая версия Qt (ок. 1900 USD) поддерживает несколько видов компиляторов (включая Visual Studio), поддерживает технологию ActiveX, с её помощью можно распространять как некоммерческие, так и коммерческие приложения без раскрытия исходных текстов.
Некоммерческая версия позволяет создавать приложения, распространяемые исключительно под лицензией GPL. 4-я версия для Windows поддерживает из компиляторов только MinGW версии 3.5 (в то время как актуальная версия MinGW - 5.1).
За этими исключениями функциональность коммерческой и некоммерческой версий Qt примерно одинакова. Любопытно, что лицензия запрещает включать фрагменты кода, распространявшиеся под лицензией GPL, в коммерческие приложения, создаваемые с помощью коммерческой версии Qt.
P.S. Ранее бесплатно распространялась Qt 3.2.1, которая поддерживала MS Visual C++ 6 и (вроде бы) MS Visual Studio 2005, но с 2007 года Trolltech прекратила поддержку 3-й версии Qt и упомянутая версия библиотека исчесла с сайта. Кто успел скачать, тому повезло.
Ответ отправил: Dr_Andrew (статус: Студент)
Ответ отправлен: 17.05.2008, 11:26
Оценка за ответ: 5
Комментарий оценки:
Блестящий и исчерпывающий ответ


Вопрос № 137.207
Добрый день, уважаемые эксперты. Прошу оказать помощь в написании следующей программы:надо построить двусвязный список чисел и удалить из него одинаковых соседей для каждого элемента. Напечатать все списки. Заранее благодарен.
Отправлен: 17.05.2008, 14:08
Вопрос задал: Лобанов Александр (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Verena
Здравствуйте, Лобанов Александр!
К данной задаче можно подойти по-разному. Рассмотрим такой вариант: удаляются одинаковые соседи по текущему состоянию слева направо. То есть из списка, например, 1->2->1->1->3->1 получится список 2->3, из списка 1->2->1->3->1 получится список 2->3->1, а из списка 1->2->1->2->2 получится список 2. Если нужно учитывать только начальное состояние (т.е. не удалять соседей, ставших повторными при преобразованиях), надо пропускать рассмотрение соответствующего элемента в случае удаления. Чтобы удалять соседей, которые были повторными в начальном состоянии, но перестали быть таковыми в процессе работы, можно, например, сначала пройти по списку без физического удаления, возможно, как-то их пометив.
Я реализовала первый вариант. Сам двунаправленный список организуем обычным образом, реализуем функцию добавления элемента в конец, функцию удаления по ссылке и функцию удаления по условию задачи. Переменную first везде передаём по ссылке, чтобы функции могли её изменять.
Программа в приложении (VS2005), остальное, думаю, будет ясно из комментариев.
Удачи!

Приложение:

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

Ответ отправила: Verena (статус: Практикант)
Ответ отправлен: 19.05.2008, 23:28


Вопрос № 137.231
Доброго Вам времени суток, думаю туда обратился. Помогите пожалуйста написать программу на С++, которая считает количество введённых слов. Желательно чтобы с обьяснениями и чтобы алгоритм был не сильно заумной, так. как я научился писать только очень простые програмки, выучил немножко о цыклах и тапах данных и.д. Очень надеюсь на то, что Вы поможете. Большое Вам спасибо.
Отправлен: 17.05.2008, 17:28
Вопрос задал: BioStar (статус: 2-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Dr_Andrew
Здравствуйте, BioStar!
Для облегчения задачи воспользуемся библиотекой STL, имеющей много полезных классов и методов для работы с массивами и строками (поддерживается всеми современными C++ компиляторами). Для хранения списка слов используем вектор строк: vector sWords; Это удобно, т.к. вектор сам сообщает количество добавленных в него элементов sWords.size()
Все комментарии приведены в исходном тексте программы.

Приложение:

Ответ отправил: Dr_Andrew (статус: Студент)
Ответ отправлен: 17.05.2008, 18:41
Оценка за ответ: 5
Комментарий оценки:
Спасибо Вам огромное! Буду пробовать

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

Приложение:

Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 19.05.2008, 07:17
Оценка за ответ: 5


Вопрос № 137.235
Подсчитать количество слов в данной последовательности

Как реализовать? :)
Отправлен: 17.05.2008, 17:45
Вопрос задал: Tomas23 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 8)

Отвечает: Dr_Andrew
Здравствуйте, Tomas23!
Один из возможных вариантов - в приложении.

Приложение:

Ответ отправил: Dr_Andrew (статус: Студент)
Ответ отправлен: 17.05.2008, 18:45
Оценка за ответ: 5

Отвечает: Терсков Сергей
Здравствуйте, Tomas23!
Вариант решения вашей задачи смотрите в приложении. Основа программы - функция int words_count(const string& str, const string& delimiters). Она считает количество слов в предложении str разделенных символами из строки delimiters. Алгоритм ее работы можно понять из комментариев. Компилятор MS VS 2005.

Приложение:

Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 20.05.2008, 04:01


Вопрос № 137.269
hi dear experts!!!
напишите плиз пример сортировки массива объектов класса.
очень надо!!!
Отправлен: 17.05.2008, 21:04
Вопрос задал: S@ZaN (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Dr_Andrew
Здравствуйте, S@ZaN!
На простейшем примере: класс TStudent с одним свойством - имя студента и двумя методами: получить имя и показать имя. Отсортируем объекты класса (массив из 5 элементов) по значению имени методом "пузырька". Вывод программы будет выглядет так:

Код - в приложении.

Исправлена ссылка на рисунок.
-----
∙ Отредактировал: Alexey G. Gladenyuk (*Мастер-Эксперт)
∙ Дата редактирования: 18.05.2008, 10:42

Приложение:

Ответ отправил: Dr_Andrew (статус: Студент)
Ответ отправлен: 18.05.2008, 07:22


Вопрос № 137.290
Здравствуйте! Обьясните мне пожалуйста, почему для вывода двумерного массива нужно делать именно так:

nums [t] [i] = (t * 4) + i + 1 (весь код в приложении), я о том, что почему нужно плюсировать "i" и еще и единицу?. Обьясните мне пожалуйста этот момент.

Приложение:

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

Отвечает: Denisss

Здравствуйте, Sashka!

Эти действия нужны не для вывода массива, а для его заполнения. И сделано это с целью уменьшить количество переменных (в примере можете посмотреть как реализовать тоже самое, но с дополнительной переменной n).

В Вашем примере есть два цикла: в одном переменная t изменяется от 0 до 2, во втором - переменная i от 0 до 3. Вам нужно последовательно заполнить двумерный массив значениями от 1 до 12:

1. Если Вы сложите первое значение t (== 0) и первое значение i (== 0), то получится 0, а Вам нужна 1, потому Вы добавляете к сумме 1.
2. Переменная i увеличилась на 1. Если опять сложить t (== 0) и i (== 1), получим 2. Нужно 3, так что добавление 1 опять решает проблему.
...
5. Увеличиваем t на 1, обнуляем i. Если сложить t (== 1) и i (== 0), получим 1. А надо 5. Учитывая, что мы прибавляем к сумме единицу, то не хватает еще 4-ки. Для этого умножаем t на 4, прибавляем к этому i и еще 1. Это умножение не противоречит первым двум шагам - умножение нуля на 4 нам дает нуль.
6. Увеличиваем i на 1. Сумма t (== 1) * 4 + i (== 1) + 1 дает нам 6, что и требуется.
...
12. Увеличиваем i на 1. t (== 2) * 4 + i (== 3) + 1 равно 12.

Нумерация элементов в массиве начинается с нуля. От прибавляемой единицы можно избавиться, если использовать цикл
for (i = 1; i < 5; i++)

Но в этом случае заполнение массива будет выглядеть следующим образом:
nums [t] [i - 1] = (t * 4) + i;

Т.е., как видите, единица перемещается, но все равно остается.

Удачи!

Приложение:

---------
Будь осторожен, когда молишься ради чего-то, потому что можешь это получить...

Ответ отправил: Denisss (статус: Профессионал)
Россия, Москва
ICQ: 281599577
----
Ответ отправлен: 18.05.2008, 20:27
Оценка за ответ: 5
Комментарий оценки:
Спасибо, теперь все понятно.


Вопрос № 137.293
Здравствуйте!

Напишыте пожалуйста код вывода двумерного массива с использованием генератора случайных чисел, желательно с обьяснениями. Заранее спасибо.
Отправлен: 18.05.2008, 01:25
Вопрос задал: Sashka (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Dr_Andrew
Здравствуйте, Sashka!
Случайные числа генерирует функция rand(), записываемое в формате, rand() % number; где number - число, указывающее в каких пределах следует генерировать псевдослучайное число. Если мы хотим, чтобы само число number входило в этот предел, следует написать так rand() % number + 1; (нумерация в C++ начинается с нуля). Числа, генерируемые rand() являются псевдослучайными, т.е. последовательность этих чисел всегда одна и та же, что удобно для отладки. Для того, чтобы получить действительно случайные числа, в функции main до использования функции rand следует вызвать функцию srand, которая в качестве параметра получает какое-то действительно случайное значение (например, время от таймера).
Двумерный массив представляет собой как бы таблицу со столбцами и строками. Так что для его заполнения нужно два цикла: один - для прохождения столбцов, другой - строк (см. приложение).

Приложение:

Ответ отправил: Dr_Andrew (статус: Студент)
Ответ отправлен: 18.05.2008, 06:43
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое. Подскажите пожалуйста, зачаем используя генератор случ. чисел нужно еще и плюсировать единицу (в даном случае)?

Отвечает: Kamerad
Здравствуйте, Sashka!

#include<stdlib.h>

void main ()
{
..............
srand(n); // используется для установки начала последовательности,генер-
// рируемой функцией rand()
for(i=0;i<n;i++)
for(j=0;j<n;j++)

{
mas[i][j]=rand()%100; // генерирует последовательность случайных
} // чисел от 0 до 100

printf(" Проинициализированная матрица: ");

for(i=0;i<n;i++)

{
printf(" ");

for(j=0;j<n;j++)

{
printf("%d",mas[i][j]);

}
}
..........

}
Ответ отправил: Kamerad (статус: 3-ий класс)
Ответ отправлен: 18.05.2008, 11:49
Оценка за ответ: 5


Вопрос № 137.352
Доброго дня!
Есть скомпилированная библиотека без исходного кода и функция в ней
которая в качестве параметра принемает имя файла.затем эта функция уже
внутрях его открывает и с ним работет.
Я делаю запрос к серверу получаю в буфер от него данные, в буфере собержатся
бинарные данные то есть если их сохранить то они превртятся в полноценный файл.
который можно будет запускать.Что бы мне отдать их в библиотечную функцию
мне приходится их как раз сохранять, а потом отдавать как раз ей.затем удаляя
файл так как на диске он мне не нужен.Есть ли способ сразу его отдавать в функцию из
памяти точнее из буфера в котором содержится файл?
Знаю что внутри библиотечной функции точно происходит работа с файлами
через ifstream и оfstream.Слышал про маппинг, но как я понял там полюбому
нужно сначала сохранить файл, а потом толко считать его в памть и с тогда с ним можно работать.
Тоесть по сути вариант тот же что я делаю сейчас.Если я про мапинг не прав
поправте пожалуйта меня если можно с примерами ну или любые другие способы решить мою проблему.
Интересует кросплатформенное решение.Хотя буду рад любой информации.
Отправлен: 18.05.2008, 15:17
Вопрос задал: Ferzz (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: kool
Здравствуйте, Ferzz!
В вашем случае легче найти исходный текст этой функции
исправить его и перекомпилить.
Удачи!

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


Вопрос № 137.356
Доброго воскресного дня!
Вопрос у меня такой.
Я через сокеты формирую запрос к серверу получаю от него данные и с ними работаю.
Иногода в ходе не верно сформированного запроса. Происходит зависание внутрки
функции recv и иногда в других.
Можно каким либо образом скажем по таймеру или еще как отследить такую сетуацию и
прервать ее и выдать сообщение об ошибке или заново сформировать запрос?
Вариант мол подавайте правильные запросы не устраивает.:)
Отправлен: 18.05.2008, 15:21
Вопрос задал: Ferzz (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: mega
Здравствуйте, Ferzz!

функция recv принимает 4 параметра, последний параметр используется в основном для указания, как поступить с очередью на приемной стороне:
зачение 0 означает принять данные и удалить их из очереди;
значение MSG_PEEK означает, что происходит тестирование очереди, т.е. данные приходят в буфер, но не удаляются из очереди, при этом, если очередь пуста, возвращается 0 (это как раз и исправит "заависание внутрки
функции recv")

в приложении функция receive, которая извлекает из очереди все данные,

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

не помешает так же маркировка начала пакета какой-нибудь уникальной последовательностью байт, которая никогда не встретится в данных самого пакета, это поможет восттановить связь при обрыве, без принудительного повторного связывания сокетов. (это так же поможет распознавать ситуации, когда приходят данные, которые необходимо отбросить, т.е. неверно сформированный пакет)

Существует еще более надежный способ приема данных, это асинхронный приемник, основанный на использовании объектов синхронизации WinSock2, но это уже слишком большая и частная тема, советую, перед тем как задавать в ней вопросы, немного подготовиться и почитать про "асинхронный режим передачи данных в WinSock2", чтобы ответы не превышали нескольких абзацев.

Приложение:

Ответ отправил: mega (статус: 4-ый класс)
Ответ отправлен: 18.05.2008, 19:27
Оценка за ответ: 5
Комментарий оценки:
Спасибо.Я как раз использовал эту функцию с 0 в таком виде в котором скопировал из книжного примера.Спасибо за Вашу помощь, а я вследующй раз постараюсь быть более внимательным и желаю скорейшего Вам перехода в следующий класс.


Вопрос № 137.409
Здравствуйте!

Растолкуйте мне пожалуйста эту строку (по слову если можно)
srand((unsigned) time(NULL));

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

Отвечает: Dr_Andrew
Здравствуйте, Sashka!
Вообще-то ответ на этот вопрос я Вам уже давал. Ну что ж, если этого мало, выполню авторизованный перевод страниц Linux Programmers Manual ;)

rand, rand_r, srand - генераторы псевдослучайных чисел.
Подключаются #include
Прототипы функций:
int rand(void);
int rand_r(unsigned int *seedp);
void srand(unsigned int seed);
Функция rand() возвращает псевдослучайное целое между 0 и RAND_MAX
Функция srand() устанавливает принимаемый аргумент в качестве основы для новой последовательности псевдослучайных чисел. Если значение основы не установлено, то оно автоматически устанавливается в 1.
Мой комментарий: поэтому для, того, чтобы функции srand и rand генерировали действительно случайные числа, необходимо передать в качестве значения аргумента функции srand какое-то случайное число. Как его получить? С помощью команды time - таймера.
Опять Linux Programmers Manual:
Подключение #include
Команда time запускает указанную команду с заданными аргументами. Когда команда завершается, time выводит на стандартный вывод статистическое сообщение об использованном времени при этом запуске.
Код возврата: Если команда была вызвана, то код возврата соответствует тому, который возвращает команда. В противном случае он равен 127, если команда не найдена, 126 если она найдена, но не может быть вызвана.
Мой комментарий: итак, в качестве аргумента функция time принимает какую-нибудь команду, например, нулевую - NULL.
Поэтому полный вызов генератора случайных чисел - srand(time(NULL));
В качестве аргумента srand принимает число типа unsigned int, а функция time возвращает значение типа int. Некоторые компиляторы выполняют приведение типов автоматически (например, g++). Другие выдают предупреждение (warning). Поэтому для избежания этого, можно выполнить приведение типов вручную:
srand((unsigned) time(NULL));
Ответ отправил: Dr_Andrew (статус: Студент)
Ответ отправлен: 18.05.2008, 21:39
Оценка за ответ: 5
Комментарий оценки:
Спасибо Вам большое! Вы мне очень помогли!


Вопрос № 137.413
(Задача на циклический алгоритм)
Малое предприятие в первый день работы выпустило P единиц товарной продукции. Каждый последующий день оно выпускало продукции на Q единиц больше, чем в предыдущий. Сколько дней потребуется предприятию, чтобы общее количество выпущенной продукции за все время работы впервые превысило запланированный объем?
Отправлен: 18.05.2008, 21:26
Вопрос задал: Никульченко Арсений Александрович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Виталий Пироженко
!!!
Здравствуйте, Никульченко Арсений Александрович!

Можно так:

int Day=1;

while(PEnd<=PPorog){
//cout<<"Enter the quantity for "< //cin>>Q;
PEnd+=Q;
++Day;
}
cout<

Переменные PEnd, PPorog, Q используются безо всякого определения, какие-то странные закомментированные строки. Плюс к этому задача решена неверно. Код эксперта вычислит день, когда производство за день превысит заданный объем, а в вопросе речь идет о суммарном производстве.
________
Отредактировано по просьбе эксперта Терсков Сергей

-----
∙ Отредактировал: Николай Владимирович / Н.В. (Профессо р)
∙ Дата редактирования: 20.05.2008, 09:48
Ответ отправил: Виталий Пироженко (статус: 1-ый класс)
Ответ отправлен: 19.05.2008, 16:19

Отвечает: Терсков Сергей
Здравствуйте, Никульченко Арсений Александрович!
Для этого в цикле нужно увеличивать значение summ (суммарное производство) на количество продукции выпущенный в конкретный день. После такого как суммарное производство будет больше чем запланированный объем, результат будет достигнут. Код программы смотрите в приложении.

Приложение:

Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 20.05.2008, 09:37


Вопрос № 137.414
(Задача на строки)
Дана строка-предложение, содержащая избыточные пробелы. Преобразовать ее так, чтобы между словами был ровно один пробел.
Отправлен: 18.05.2008, 21:27
Вопрос задал: Никульченко Арсений Александрович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Никульченко Арсений Александрович!
Вариант реализации вашей задачи на С++ с использованием STL смотрите в приложении. Функция string remove_space(string& str) копирует в строку s только первый пробел из последовательности нескольких и возвращает результат этой операции. Компилятор MS VS 2005.

Приложение:

Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 20.05.2008, 09:14


Вопрос № 137.430
Доброго времени суток всем.У меня небольшая проблема,никак не могу сообразить как лучше реализовать.Мне надо найти минимальный элемент каждого столбца в матрице 10X10,могу найти вообще во всей матрице самый минимальный элемент,а вот в каждой строке что-то никак немогу,помогите пожайлуста дорогие эксперты,заранее благодарен.
Отправлен: 18.05.2008, 23:31
Вопрос задал: Arias (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: PROD
Здравствуйте, Arias!
ну собственно это еще проще.
допустим int m[10][10] это ваша матрица
тогда
int min=32000;
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
if(m[i][j]<min){
min=m[i][j];
}
}
cout<<min<<endl;
min=32000;
}
Ответ отправил: PROD (статус: 6-ой класс)
Ответ отправлен: 19.05.2008, 08:31
Оценка за ответ: 5
Комментарий оценки:
Спасибо огромное,особенно за cout<min=32000; вот эту часть,вчера в метро допёрло как лучше реализовать всё это,а вот нормально вывести так и не додумал,понял что надо за блоком выводить,а дальше был стопр.


Вопрос № 137.502
Здравствуйте! Напишыте пожалуйста кратко о заголовочном файле
cstdlib, так как от других экспертов я ответа можно сказать не получил.
Отправлен: 19.05.2008, 14:59
Вопрос задал: Sashka (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Sashka!
Заголовочный файл cstdlib обеспечивает совместимость С++ программ с С-функциями из заголовочного файла stdlib.h. Файл stdlib.h содержит различные функции, например: конвертации данных, выделения памяти, генерации случайных чисел и т.д. А файл cstdlib позволяет использовать все эти функции в пространстве имен std, что видно из его содержимого (см. приложение)

Приложение:

Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 20.05.2008, 03:53


Вопрос № 137.514
Здрвствуйте еще раз!

Помогите пожалуйста ещё с одной задачкой. Сформировать динамический массив, который состоит из динамических строк, и добавить на начало этого массива К-строк. Желательно с коментариями. Спасибо Вам за то, что Вы есть.
Отправлен: 19.05.2008, 15:30
Вопрос задал: Sashka (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Sashka!
Для этого воспользуемся классом из STL - deque. Это практически тот же динамический массив vector, с возможностью добавления элементов в начало. В начале программы заносим n новых строк в конец массива (strings.push_back(str);), а затем добавляем k строк уже в начало массива (strings.push_front(str);). Подробнее смотрите в приложении.

Приложение:

Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 20.05.2008, 04:23
Оценка за ответ: 5
Комментарий оценки:
Спасибо!


Вопрос № 137.520
Здравствуйте эксперты!

Подскажите пжлста как делать поддержку нескольких языков в интерфейсе программы. Ну то есть чтобы названия кнопочек, вкладок, меток и т.д. можно было динамически менять. Например выбрал в меню пункт "Переключить на англ.язык" и все поменялось. А то держать несколько копий одного проекта с разными названиями кнопок не очень удобно.
Заранее спасибо
Отправлен: 19.05.2008, 16:14
Вопрос задал: Муратов Радик Анатольевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Dr_Andrew
Здравствуйте, Муратов Радик Анатольевич!
Что ж, раз никто не ответил, придётся, видно, мне. Первое, что приходит на ум - воспользоваться компонентом TsiLang Цитирую:
"TsiLang® Components Suite позволяет добавлять поддержку для неограниченного количества языков, а также, создавать полностью локализованные версии продуктов, основанные на базовой версии проекта. Автоматически находятся и заносятся в список для перевода все необходимые элементы интерфейса пользователя".
Другие методы интернационализации Вы найдёте здесь. Хотя статья называется "Локализация приложений в Delphi для Win32", думаю, что рецепты вполне подойдут и для Builder.
Удачи!
Ответ отправил: Dr_Andrew (статус: Студент)
Ответ отправлен: 20.05.2008, 12:47
Оценка за ответ: 5
Комментарий оценки:


Вопрос № 137.529
Здравствуйте!
Помогите, пожалуйста, реализовать шаблон класса Stack. Для представления элемента стека использовать шаблон класса Node. Реализовать как класс контейнера и итератора.
Отправлен: 19.05.2008, 16:47
Вопрос задала: Alenas (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Alenas!
Реализацию класса стека по вашему заданию смотрите в приложении. Также реализован итератор для доступа к элементам. Работа программы представлен в виде консольного меню, позволяющего добавлять/извлекать элементы стека, выводить содержимое стека на экран, а также очищать стек. Компилятор MS VS 2005.

Приложение:

Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 20.05.2008, 07:59
Оценка за ответ: 5
Комментарий оценки:
Огромное спасибо за ответ. Очень помогли.


Вопрос № 137.586
Уважаемые Эксперты!
Подскажите где можно скачать книги на русском по яызку С?
Отправлен: 20.05.2008, 01:13
Вопрос задала: Убойная Наталья Тальгата (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Терсков Сергей
Здравствуйте, Убойная Наталья Тальгата!
Любой поисковик выдаст вам множество ссылок по запросам подобным "скачать книги по C++". Вот лишь некоторые из них:
Ссылка №1,
Ссылка №2,
Ссылка №3,
Ссылка №4,
Ссылка №5.
Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 20.05.2008, 03:34


Вопрос № 137.628
Уважаемые эксперты, помогите пожалуйста разобраться в программке.
Необходимо разработать программу добавления информации в произвольное место бинарного файла. Вроде добавляется, но в конец файла, а хотелось бы, чтобы в позицию, которую указывает пользователь. В приложении то, что у меня получилось.

Приложение:

Отправлен: 20.05.2008, 14:48
Вопрос задала: Белозерцева Ольга (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Drumm3R
Здравствуйте, Белозерцева Ольга!

Если пишете и читаете из файла откройте поток как:
fstream in("person.bin",ios::in|ios::out|ios::binary);
Запись в файл:
cout << " Enter number to change ";
cin >>num;
if(--num >= 0)
{
cout << " Enter struct elements. ";
in.seekp(num*sizeof(person),ios::beg); //указываем позицию для записи
char t[l_name+1];
cout << " Name : ";
cin>>t;
strcpy(st.name,t);
cout<< " Age : ";
cin>>st.age;
in.write((char *)&st,sizeof(person)); //запись в файл
}




Ответ отправил: Drumm3R (статус: 3-ий класс)
Ответ отправлен: 20.05.2008, 15:59


Вопрос № 137.679
Сдраствуйте товарищи эксперты. Помогите пожалуйста с программой!
Условие:
Выполнить задание
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1)сумму отрицательных элементов массива;
2)произведение элементов массива, расположенных между максимальным и минимальным элементами.
Упорядочить элементы массива по возрастанию.
, оформив каждый пункт задания в виде функции. Все необходимые данные для функций должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается.
Текст программы в приложении.

Приложение:

Отправлен: 20.05.2008, 23:50
Вопрос задал: Константин Шипилов (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Виталий Пироженко
Здравствуйте, Константин Шипилов!

Вот функции реализующие необходимые действия, функцию сортировки при необходимости можно улучшить.

//функция суммирования отрицательных элементов массива;
// rasmer - размер массива
double SummNegative(double mass[], int rasmer){
double sum=0;
for(int i=0; i<rasmer; i++){
if(mass[i]<0) sum+=mass[i];
}
return sum;
}

//функция нахождения индекса максимума на интервале от min до max (служебная)
int Max((double mass[], int max, int min){
int k=min;
double X=mass[min];
for(int i=min; i<max; i++){
if(X<mass[i+1]) {
k=i+1;
X=mass[i+1];
}
}
return k;
}

//функция нахождения индекса минимума на интервале от min до max (служебная)
int Min((double mass[], int max, int min){
int k=min;
double X=mass[min];
for(int i=min; i<max; i++){
if(X>mass[i+1]) {
k=i+1;
X=mass[i+1];
}
}
return k;
}

//функция нахождения произведения элементов массива,
//расположенных между максимальным и минимальным элементами
// rasmer - размер массива
double Product(double mass[], int rasmer){
int L=Min(mass[], rasmer, 0);
int M=Max(mass[], rasmer, 0);

if(L<M){double Res=1
for(int i=L; i<=M; i++){
Res*=mass[i];
}
}
if(L>M){double Res=1
for(int i=M; i<=L; i++){
Res*=mass[i];
}
}
if(L==M){
cout <<"No different number in mass"
Res=mass[L];
}
return Res;
}

//функция сортировки
// rasmer - размер массива
void Sort(double mass[], int rasmer){
for(int i=0; i<rasmer; i++){
int min=Min(mass[], rasmer, i);
double tmp=mass[i];
mass[i]=mass[min];
mass[min]=tmp;
}
}
Ответ отправил: Виталий Пироженко (статус: 1-ый класс)
Ответ отправлен: 21.05.2008, 18:56


Вопрос № 137.693
Здравствуйте!

Я снова с огромной просьбой прокоментировать Вашу программу (ответ на вопрос № 137514), т.к. Вы это умеете, а Вы это УМЕЕТЕ. Пожалуйста.

P.S. А что такое "itoa"???

Спасибо ОГРОМНЕЙШЕЕ!
Отправлен: 21.05.2008, 00:35
Вопрос задал: Sashka (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Sashka!
Комментированный код в приложении. А вот справка по функции itoawww.codenet.ru).

Приложение:

Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 21.05.2008, 05:36


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

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

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

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

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

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


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


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 4.92 pre 5.0 RC2 от 09.05.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное