Вопрос № 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++ в абстрактном классе описать обычный метод использующий абстрактный. К примеру:
То есть я не хочу во всех наследниках писать перехват исключений. Я знаю как это сделать на java и на Object Pascal. Может я что-то не так делаю на C++??
Да, так можно делать. Только воздержитесь от использования виртуальных функций в конструкторах и деструкторе.
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 Комментарий оценки: Спасибо Вам за ответ!!!