Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разработка приложений с использованием структур, Помогите докомпилировать 
:(
    Опции темы
Ололо
  Дата 14.5.2012, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 14.5.2012

Репутация: нет
Всего: нет



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

#include <iostream>
#include <string.h>
using namespace std;
class Fraction
{ int sign;
int intPart;
int numerator;
int denoninator;
};
void GetMixedView()
{
    GetIntPart();
    Cancellation;
}
void Cancellation(int numerator,int denoninator)
{
     if(numerator != 0) 
       { 
      int m = denoninator, 
             n = numerator,  
             ost = m%n; 
    // вычисление НОД(числителя, знаменателя) 
            while(ost != 0) 
      { 
         m = n;  
      n = ost;  
      ost = m % n; 
      } 
      int nod = n; 
      if(nod != 1) 
      { 
         numerator /= nod; 
      denoninator /= nod; 
      } 
      } 
}
void GetIntPart (int numerator,int denoninator)
{
    if(numerator >= denoninator) 
   { 
      intPart += (numerator / denoninator); 
      numerator %= denoninator; 
   } 
}

Собственно запутался я в ней. Есть варианты как отладить?
PM MAIL   Вверх
borisbn
Дата 15.5.2012, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Вот тема со 0x64%-ным совпадением - http://forum.vingrad.ru/index.php?showtopi...t&p=2475663


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
baldina
Дата 15.5.2012, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



borisbn, просто интересно: почему там gcd столь сложен? для целочисленных типов он может быть проще...
PM MAIL   Вверх
borisbn
Дата 15.5.2012, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



baldina, честно ? Я его скопипастил из вики)))

Добавлено через 1 минуту и 26 секунд
http://en.wikipedia.org/wiki/Binary_GCD_al...sion_in_C.2B.2B


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
baldina
Дата 15.5.2012, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



Код

template <typename T>
T gcd (const T& m, const T& n) {
  if (n == 0) 
    return m;
  else
    return gcd(n,m%n);
}


Добавлено через 4 минуты и 3 секунды
а с делением пополам - сходится быстрее хотя длиннее
а только с вычитанием - это для типов, не имеющих эффективного вычисления остатка.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0671 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.