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

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


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

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

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

Выпуск № 945
от 24.12.2007, 06:05

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

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


Вопрос № 114610: Добрый день, уважаемые эксперты! Можно ли на C++ в абстрактном классе описать обычный метод использующий абстрактный. К примеру: Class class1{ public: virtual float ProcessValue(float value)=0; float SafelyProcess(flo...
Вопрос № 114742: Здравствуйте! 1) Описать процедуру ДП(d,p), преобразующюю координаты точки на плоскости из декартовых D в полярные P. Напомню: Координата х=rcos(fi), y=rsin(fi) где r=sqrt(x^2+y^2), cos(fi)=x/r, sin(fi)=y/r; 2) Описать функцию srr(f) от непус...
Вопрос № 114751: Помогите пожалуйста!! Задание: 1. В символьной строке оставить только те слова, в которых есть повторяющиеся буквы. 2. В двумерном N*K массиве целых чисел поменять местами строку, содержащую минимальный элемент массива, со строкой, содерж...

Вопрос № 114.610
Добрый день, уважаемые эксперты!

Можно ли на C++ в абстрактном классе описать обычный метод использующий абстрактный. К примеру:

Class class1{
public:
virtual float ProcessValue(float value)=0;
float SafelyProcess(float value) {
try{
return ProcessValue(value);
cout<<\'ok\';
} catch (char* msg) {
cout<<\'error \' + msg;
}
}
};

То есть я не хочу во всех наследниках писать перехват исключений. Я знаю как это сделать на java и на Object Pascal. Может я что-то не так делаю на C++??
Отправлен: 18.12.2007, 10:39
Вопрос задал: Азалецкий Павел (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Aristos
Здравствуйте, Азалецкий Павел!

Да, так можно делать. Только воздержитесь от использования виртуальных функций в конструкторах и деструкторе.

ps: еще один момент. В CC++ выражение "aa" + "bb" не даст конкатенации (сложения) строк. Необходимо использовать функции вроде strcat, strcpy и т.д., или классы для работы со строками, например, std::string из стандартной библиотеки, AnsiString из библиотеки vcl от Borland, или CString из библиотеки mfc от Microsoft.
---------
нет ничего невозможного
Ответ отправил: Aristos (статус: 9-ый класс)
Ответ отправлен: 18.12.2007, 11:25


Вопрос № 114.742
Здравствуйте!
1) Описать процедуру ДП(d,p), преобразующюю координаты точки на плоскости из декартовых D в полярные P. Напомню: Координата х=rcos(fi), y=rsin(fi) где r=sqrt(x^2+y^2), cos(fi)=x/r, sin(fi)=y/r;
2) Описать функцию srr(f) от непустого файла f, которая подсчитывает кол-во элементов файла f, меньших среднего арифметического всех элементов этого файла.
===
Времени очень мало (~3-4 часа).
Пожалуйста выручите, для некоторых это дело двух минут...
Заранее огромное спасибо тому, кто ответит!
Отправлен: 18.12.2007, 21:30
Вопрос задал: LexXx (статус: Практикант)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: V1s0r
Здравствуйте, LexXx!

1) Проверьте алгоритм перевода координат.
2) Нерационально, 3 раза пробегаем по файлу, зато лаконично.

Приложение:

Ответ отправил: V1s0r (статус: 3-ий класс)
Ответ отправлен: 18.12.2007, 23:43
Оценка за ответ: 5
Комментарий оценки:
Сделал всё сам. Всё гораздо проще ;-)


Вопрос № 114.751
Помогите пожалуйста!!
Задание:
1. В символьной строке оставить только те слова, в которых есть повторяющиеся буквы.
2. В двумерном N*K массиве целых чисел поменять местами строку, содержащую минимальный элемент массива, со строкой, содержащей максимальный элемент массива.

Приложение:

Отправлен: 18.12.2007, 22:18
Вопрос задал: Sneider (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Лясин Александр Владимирович
Здравствуйте, Sneider!
В общем пример НЕрабочий, так как отсутствует инициализация, либо ввод в переменную типа char* temp. Если исправить данное упущение - работать будет.
Ниже я расписал, какой код для чего нужен. Но я Вам настоятельно СОВЕТУЮ, возмите мой пример. Он рабочий, проверен под GCC 3.3.5. Код конечно можно ещё усовершенствовать - т.к. выполнен на скорую руку, но Вам полностью подойдёт, см. приложение. Ниже расписанный код предоставленный Вами.
// Ваш код
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define LEN_STR 256
#define LEN_WORD 50
#define N 5

// объявляется список переменных

char seps[10] = " ,.:;'!?%";
char* text;
char* temp; // в данном месте предполагаю, что переменная должна быть проинициализирована строкой, типа char *temp="12rt 5732 drtu ";
// так как далее я не вижу ввода строки
char* last;
char* word;
char* res;
int i = 0;
int c = 0;
int l = 0;
int maxi = 0;
int maxl = 0;

void main(void)
{
char count[256];

memset(count, 0, 256); // обнуление массива - заполнение массива нулевым символом
last = temp;
word = strtok(temp, seps); // в данном месте ищем первую подстроку до первого разделительного символа из массива seps
while (word) // выполняем до достижения конца строки
{
strncat(res, text + (last - temp), word - last); // производим слияние (выражаясь по-русски) строк результата со словом word

c = 0;
memset(count, 0, 256); // см. выше
for (i = 0;i < strlen(word); i ++) // видимо в данном цикле осуществляется поиск дубликатов-символов
{
if (++ count[word[i]] == 2)
{
c = 1;
break;
}
}
if (c)
strcat(res, word);

last = word + strlen(word);
word = strtok(NULL, seps);
}
printf("%s ", word);
}

Приложение:

Ответ отправил: Лясин Александр Владимирович (статус: 5-ый класс)
Ответ отправлен: 19.12.2007, 09:30
Оценка за ответ: 5
Комментарий оценки:
Огромное спасибо за помощь с первым заданием!!!Подробно и понятно! еще раз спаибо! Если можете, помогите не много с вторым заданием (В двумерном N*K массиве...) еще раз спаибо!

Отвечает: Solar
Здравствуйте, Sneider!

Вот вам задача номер два. Код в приложении.

Приложение:

Ответ отправил: Solar (статус: 1-ый класс)
Ответ отправлен: 22.12.2007, 03:08
Оценка за ответ: 5
Комментарий оценки:
Спасибо Вам за ответ!!!


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

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

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

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

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

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


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


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

В избранное