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

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


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

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

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

Выпуск № 920
от 28.11.2007, 17:35

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


Вопрос № 110567: Здравствуйте, уважаемые эксперты! Попалась мне задача, и как-то не хватает мне пока знаний для ее полного решения. Непонятная часть звучит так: "В консольном приложении спроектировать класс Employee (служащие). Он должен хранить имена FirstN...
Вопрос № 110613: Здравтсвтуйте! Подскажите пожалуйста. У меня есть массив типа float. И в поцессе заполнения этого массива возникает ситуация когда i-ый элемент данного массива считать не нужно. Я раньше просто заполняла его нулем. Но сложилось так, что можно получит...
Вопрос № 110639: Здравствуйте! Я начинаю изучать С++, и мне досталось задание... Даны действительные числа а0,..., а5, d0,..., d5. Получить многочлен шестой степени d0 + d1 (x — а0) + d2 (x — а0) (x — а1) + ... + d5 (x — а0) (x — а1)... (x- а5).<br...
Вопрос № 110674: Здравтсвуйте эксперты. Подскажите мне как указать сумму чисел от 1 до 1000 кратных к 13...

Вопрос № 110.567
Здравствуйте, уважаемые эксперты!
Попалась мне задача, и как-то не хватает мне пока знаний для ее полного решения. Непонятная часть звучит так: "В консольном приложении спроектировать класс Employee (служащие). Он должен хранить имена FirstName и фамилии LastName служащих. В класс Employee необходимо включить конструктор с параметрами Имя и Фамилия, который копирует их в переменные FirstName и LastName". Вот тут и непонятно - как копировать и как сохранять. Помогите, пожалуйста! Большое спасибо!
Отправлен: 22.11.2007, 17:59
Вопрос задал: Mangoost (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Зубков Сергей Вячеславович
Здравствуйте, Mangoost!
Переменные FirstName и LastName должны быть методами твоего класса, а конструктор копирования просто скопирует данные с поданного ему на в ход во внутренние переменные.
Удачи!

Приложение:

Ответ отправил: Зубков Сергей Вячеславович (статус: 1-ый класс)
Ответ отправлен: 22.11.2007, 18:11

Отвечает: Sergey A. Wedensky
Здравствуйте, Mangoost!

Копировать - в зависимости от типов, выбранных Вами для хранения.
Если строку хранить как массив символов (char*), то можно strcpy, strncpy.
Если пользоваться, например, классом string из STL - можно просто оператор присваивания использовать, он копирование данных возьмет на себя... и т.д.

А что значит как сохранять я не понял... В этих самых переменных-членах, естественно.

В приложении пример без использования STL.

Приложение:

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

Отвечает: Dr_Andrew
Здравствуйте, Mangoost!
Решение Вашей задачи в приложении (использован Standard C++).

Приложение:

Ответ отправил: Dr_Andrew (статус: 4-ый класс)
Ответ отправлен: 23.11.2007, 07:48


Вопрос № 110.613
Здравтсвтуйте! Подскажите пожалуйста. У меня есть массив типа float. И в поцессе заполнения этого массива возникает ситуация когда i-ый элемент данного массива считать не нужно. Я раньше просто заполняла его нулем. Но сложилось так, что можно получить счетное значение ноль. И тогда отличить какое значение было нулем счетное или искуственно мной созданное не возможно. Подскажите можно ли заполнить не нужные елементы массива какой-то единице. Ну null или еще что либо?
Отправлен: 23.11.2007, 05:57
Вопрос задала: Mart (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Lemeshev Konstantin
Здравствуйте, Mart!
На сколько я знаю хранить NULL в элементе массива типа float нельзя.
Из алтернативных путей могу предложить следущее:

1. Создать еще один массив (например типа char) в котором и хранить номера нужных (не нужных элементов).

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

3. Создавать массив следующим образом.

//этот код
float ** mass=new float*[100];
for(int i=0;i<100;i++)
{
if(должен i-ый использоваться)
{
mass[i]=new float;
mass[i][0]=нужное значение;
}
else
mass[i]=NULL;
}

4. На мой взгляд более логичное - пересмотреть алгоритм, что бы не появлялись неиспользуемые элементы массива.

5. Сменить структуру данных для хранения, т.е. использовать вместо массива что-то другое.
Ответ отправил: Lemeshev Konstantin (статус: 6-ой класс)
Ответ отправлен: 23.11.2007, 06:25
Оценка за ответ: 5

Отвечает: kool
Здравствуйте, Mart!
Вопрос не очень понятен, но заполнять можно!
А null это и есть нуль
Удачи!

---------
I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 23.11.2007, 07:44
Оценка за ответ: 2

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

Вы можете использовать для этой цели специальные символы для неопределённого числа (NaN - Not a Number).
http://en.wikipedia.org/wiki/NaN

Так называемый Quiet NaN как раз служит для целей указания неинициализированных переменных с плавающей запятой.

Для float Вы можете использовать

int inan = 0x7f820000; // IEEE NaN
float fnan = *((float*)&inan);

или

float fnan;
*((int*)&fnan) = 0x7f820000;

Например, инициализация массива:

float array[10];
for(int i = 0; i < 10; ++i)
{
*((int*)(&array[i])) = fnan;
}

или напрямую

for(int i = 0; i < 10; ++i)
{
*((int*)(&array[i])) = 0x7f820000;
}

Чтобы сделать проверку на NaN

#include

_isnan(fnan);

Ответ отправил: Воробьёв Алексей Викторович (статус: Студент)
Ответ отправлен: 23.11.2007, 08:10
Оценка за ответ: 5


Вопрос № 110.639
Здравствуйте! Я начинаю изучать С++, и мне досталось задание...

Даны действительные числа а0,..., а5, d0,..., d5.
Получить многочлен шестой степени
d0 + d1 (x — а0) + d2 (x — а0) (x — а1) + ... + d5 (x — а0) (x — а1)... (x- а5).

Пожалуста помогите.
Отправлен: 23.11.2007, 09:33
Вопрос задал: Domin9es (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Boriss
Здравствуйте, Domin9es!
В приложении код. Но в следующий раз пишите, в чем Вы работаете
И еще, спрашивайте в минифоруме, если что не понятно

Приложение:

---------
Вывод - то место в тексте, где вы устали думать

Ответ отправил: Boriss (статус: Профессор)
Россия, Саранск
Организация: mte
WWW: Программирование на Паскале
----
Ответ отправлен: 23.11.2007, 11:05
Оценка за ответ: 5
Комментарий оценки:
Это полный ответ на мой вопрос


Вопрос № 110.674
Здравтсвуйте эксперты. Подскажите мне как указать сумму чисел от 1 до 1000 кратных к 13
Отправлен: 23.11.2007, 15:16
Вопрос задал: Kizlyar (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Vas177
Здравствуйте, Kizlyar!

int Sum13 = 0; // вычисляем сумму

for (int i = 13; i <= 1000; i += 13) { // цикл с шагом в 13
Sum13 += i;
}

// результат в Sum13
Ответ отправил: Vas177 (статус: 2-ой класс)
Ответ отправлен: 23.11.2007, 15:25

Отвечает: SiRuS
Здравствуйте, Kizlyar!
Рабочая часть в приложение..

Приложение:

Ответ отправил: SiRuS (статус: 4-ый класс)
Ответ отправлен: 23.11.2007, 15:33

Отвечает: CruelHity
Здравствуйте, Kizlyar!
Есть два способа:
1)через цикл просто увеличиваем на 13
начально число 13
int sum=0;
for(int x=13;x<1000;x+=13)// вот все кратные 13
sum=sum+x;
2)по очереди перечислять каждое число и делить его на 13 и находить остаток
for(int x=1;x<1000;x++)
if((x%13)==0)
sum=sum+x;

Метод выбирайте сами! А вообще их очень много! просто надо чуть подумать!
удачи!
Ответ отправил: CruelHity (статус: 5-ый класс)
Ответ отправлен: 23.11.2007, 15:52

Отвечает: Dr_Andrew
Здравствуйте, Kizlyar!
Код ответа приведён в приложении (Standard C++).

Приложение:

Ответ отправил: Dr_Andrew (статус: 4-ый класс)
Ответ отправлен: 23.11.2007, 17:14


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

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

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

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

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала 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

В избранное