Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Классы, дело жизни и смерти

54K
23 декабря 2009 года
yuik
3 / / 27.11.2009
Разработать класс для представления ЦЕЛЫХ чисел в виде «по модулю максимальное простое плюс минимальный остаток» (20=19+1).

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

Продемонстрировать:
выполнение цепочки для сложения и вычитания объектов класса и целых чисел;
цепочки присваиваний.
Разработать функцию:
для сортировки массива объектов; (ввод тестовых массивов объектов – из файла);
для сложения элементов массива, являющихся четными числами.
(ввод тестовых массивов объектов – из файла строкой вида 19-1 или 23+2);


Подскажите, какие переменные должны быть представлены в этом классе, и какие методы? Я даже не знаю, с какой стороны взяться....
87
23 декабря 2009 года
Kogrom
2.7K / / 02.02.2008
Цитата: yuik
Я даже не знаю, с какой стороны взяться....



Пока возьмись за учебник и напиши класс-обертку для обычных целых чисел. А потом посмотрим, что можно сделать, как изменить.

54K
23 декабря 2009 года
yuik
3 / / 27.11.2009
2 проблемы - учебника как такового нам не выдали - читайте, мол, Кернигана Ричи - очень хороший учебник, а так же то, что задача нужна до завтра...
297
23 декабря 2009 года
koodeer
1.2K / / 02.05.2009
Цитата: yuik
2 проблемы - учебника как такового нам не выдали - читайте, мол, Кернигана Ричи - очень хороший учебник, а так же то, что задача нужна до завтра...



Кто-то гонит: либо топик-стартер, либо преподаватель.
Керниган-Ричи и классы???

ЗЫ: топик-стартер, небось весь семестр пыво пыл?

87
23 декабря 2009 года
Kogrom
2.7K / / 02.02.2008
Цитата: yuik
учебника как такового нам не выдали - читайте


Ну, в Internet то доступ есть. Набирай в поисковике что-то типа "c++ пример перегрузка операторов". Может и готовое решение найдешь.

Цитата: yuik
а так же то, что задача нужна до завтра...



Это никого не волнует. Даже тебя ещё недавно не волновало.

54K
23 декабря 2009 года
yuik
3 / / 27.11.2009
Цитата:
Кто-то гонит: либо топик-стартер, либо преподаватель.
Керниган-Ричи и классы???



Кернигана выдали в самом начале, а сейчас я болел 3 недели, хзы, мб и рекомендовали что-либо еще

Цитата:

Это никого не волнует. Даже тебя ещё недавно не волновало.


Я болел, не надо думать, что я пиво семестр пил)
Я первокурсник, а классы мы прошли за 2 занятия практических, на которых я болел...Структуры мы вообще за занятие прошли..

Что я не могу понять - это сам алгоритм.

То есть, число должно быть введено, но как это число передать в класс в нужном нам виде? мб коряво выразился, но.....мм....блин...

Цитата:

Ну, в Internet то доступ есть. Набирай в поисковике что-то типа "c++ пример перегрузка операторов". Может и готовое решение найдешь.



Как ни странно, я нагуглил перегрузку операторов, и вроде понял

51K
23 декабря 2009 года
Indian
37 / / 23.12.2009
Цитата:
Разработать класс для представления ЦЕЛЫХ чисел в виде «по модулю максимальное простое плюс минимальный остаток» (20=19+1).



Вот, приблизительно, только алгоритм в виде функции, а не класса.

Код:
#include <stdio.h>
int near_prime_number(int);

int main(){

near_prime_number(900);

}

//функция поиска ближайшего(в меньшую сторону) простого числа
int near_prime_number(int N){
int a[N];//устанавливаем размер массива равный нашему числу

//заполнение массива а с размером N,
//т.е. получим массив со всеми числами от 0 до нашего числа
       for(int i=0; i<N; i++){
           a = i;
       }

       //единица - не простое число, поэтому обнулим эту ячейку
       a[1]=0;

       //алгоритм - "Решето Эратосфена". гуглить обязательно

        for(int s=2; s<N; s++){
           if(a!=0){
               for(int j=s*2; j<N; j+=s){
                   a[j]=0;
               }
           }
       }//теперь имеем отфильтрованный массив, в котором
//только нули и простые числа:0,0,2,3,0,5,0,7, и т.д.

        //алгоритм поиска максимального числа в массиве
        //ищем максимальное из оставшихся простых чисел
        int max=a[0];
        for(int i=0;i<N;i++){
//здесь еще можно проверить, не равен ли элемент нулю
            if (a>max) max=a;
        }

        printf("Maxumum prime: %d\n",max);//если не нужен встроенный вывод, то это лишнее

        if (max==0) printf("Нет наибольшего ближаейшего простого числа");//для чисел 2,1

        return max;

   }


На выводе получем 887

остаток=N - near_prime_number(N)
т.е. 900 - 887=13
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог