Форум программистов, компьютерный форум CyberForum.ru

Описать класс Fraction - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Работа с массивом односвязных списков http://www.cyberforum.ru/cpp-beginners/thread250241.html
нужна помощь с кодом в следубщей программе: Разработать программу работу с массивом односвязных списков. Программа должна содержать следующие процедуры, вызываемые из меню: -построение массива односвязных списков, вводя исходные данные из текстового файла; -добавление нового элемента в указанный список; -вывод указанного списка.
C++ Контрольная сумма и вектор Узнал что с помощью sse 4.2 можно рассчитывать crc. Хочу хранить значения в векторе в crc. Будет ли это быстрее если сейчас значения string, со строками длиной до 30 байт? Спасибо. Добавлено через 21 час 16 минут разобрался, всем спасибо http://www.cyberforum.ru/cpp-beginners/thread250210.html
Рекурсивный способ решения C++
Вычислить y = x^n по следующему правилу: y = ( x^(n/2))^2, если n четное и y = x *y^(n–1), если n нечетное.
C++ Передать в функцию размер массива указателей
Всем привет. Есть массив указателей допустим char *array = { "строка 1", "строка 2"... "строка n" } Нужно предать его размер (sizeof()) в функцию. #include <iostream> #include <curses.h> #include "my_header.h" using namespace std; int i, g_Choice = 0;
C++ Не могу найти\исправить ошибку http://www.cyberforum.ru/cpp-beginners/thread250191.html
Делаю телефонный справочник (думаю всех у универах заставляют :D) Ну вот, я вроде сделал, но не могу понять где ошибка, точней даже не знаю как исправить, кто чем может помогите)) Сама ошибка в том, что при выводе списка имён и прочего, всё зацикливается и бесконечно выводит одно и тоже.. Ну думаю поймёте, про что я, как посмотрите... Вот исходник: Вот сам код, навсякий, если кому лень...
C++ статический массив в динамическом int** unsIntText = new int*; //создаём "столбцы" for (int i = 0; i < _unsCharMod; i++) unsIntText; for (int i = 0; i < _unsCharMod; i++) { //по столбцам подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
01.03.2011, 14:25     Описать класс Fraction
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
// L1.cpp: главный файл проекта.
 
#include "stdafx.h"
#include <stdio.h>  
#include <stdlib.h>
#include <iostream>
 
 
using namespace std;
class Fraction 
{
private:
        int num, den; 
    void normalize (); 
    int gcf (int a, int b);
    int lcm (int a, int b);
public:
        void set (int n, int d){num = n; den = d; normalize();}
        int get_num(){return num;}
        int get_den(){return den;}
        Fraction add(Fraction other);
    Fraction mult(Fraction other);
};
 
int main()
{
        Fraction fract1, fract2, fract3 ;
    int X1, Y1, x2 ,y2 ;
        char str [81];
        while (1){
                cout << " Enter numerator: " ;
                cin  >> X1;
        cout << " Enter denominator: " ;
                cin  >> Y1;
                fract1.set(X1,Y1);
                cout <<  "Drob is " << fract1.get_num()<< "/" << fract1.get_den() <<endl;
        cout << " Enter numerator: " ;
                cin  >> x2;
        cout << " Enter denominator: " ;
                cin  >> y2;
        fract2.set(x2,y2);
                cout <<  "Drob is " << fract2.get_num()<< "/" << fract2.get_den()<<endl;        
        fract3 = fract1.add(fract2);
                cout << fract3.get_num()<< "/" <<fract3.get_den();
                cout << " Do again (Y or N)";
                cin  >> str;
                if (!(str[0] == 'Y' || str[1] == 'N'))
                        break;
        }
}
 
void Fraction::normalize() {
                 
      if (num == 0 || den == 0) {
          num=0;
          den=1;
      }
     
      if (den < 0) {
          num *= -1;
          den *= -1;
      }
 
      int n = gcf(num,den);
      num = num / n;
      den = den / n;
}
 
int Fraction::gcf(int a, int b) {
     if (a % b==0)
        return abs(b);
     else
          return gcf(b, a % b);
}
 
int Fraction::lcm(int a, int b) {
     return (a / gcf(a,b)) * b;
}
 
Fraction Fraction::add(Fraction other) {
            Fraction fract;
            int lcd = lcm(den, other.den);
            int quot1 = lcd/den;
            int quot2 = lcd/other.den;
            fract.set(num * quot1 + other.num * quot2, lcd);
            fract.normalize();
            return fract;
}
 
Fraction Fraction::mult(Fraction other) {
            Fraction fract;
            fract.set(num * other.num, den * other.den);
            fract.normalize();
            return fract;
}
 
Текущее время: 22:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru