Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2010, 12:55   #1
RodionL3
 
Регистрация: 21.04.2010
Сообщений: 7
Вопрос класс «дробное число»

Определить класс «дробное число» с компонентными данными: целая часть, числитель, знаменатель (проверить, не равен ли знаменатель нулю). Предусмотреть компонентные функции: получения каждого элемента дан-ных по отдельности, форматного вывода дроби на экран, если целая часть равна нулю, то не выводить ее), приведения дроби к несократимому виду. Описать дружественную функцию преобразования дроби в десятичный фор-мат и ее вывода на экран
RodionL3 вне форума Ответить с цитированием
Старый 21.04.2010, 13:49   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну не так уж и сложно...
Сам уже что-то пытался делать?
Покажи наработки.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.04.2010, 19:56   #3
RodionL3
 
Регистрация: 21.04.2010
Сообщений: 7
По умолчанию

// Класс дробное число2.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <iostream>
using namespace std;

class drob {
private:
double cl;double zn; double ch; double n;
public:
void arrcl(double);
void arrzn(double);
void arrch(double);
void print();


drob (double F=0)
{cl=0; ch=0; zn=0;
}
};

void drob::arrcl (double c) {
cout<<"Введите целое=>";
cin>>c;
cl=c;}

void drob::arrch (double cc) {
cout<<"Введите чеслитель=>";
cin>>cc;
ch=cc;}

void drob::arrzn (double z) {
cout<<"Введите знаменатель=>";
cin>>z;
zn=z;
}

void drob:rint ()
{
cout<<"Привести к несократимому виду 1-да"<<endl;
cin>>n;
if(n==1)
{cout<<((cl*zn+ch)/zn)<<endl;}
else

if (zn==0)
cout<<"Знаменатель не может = 0"<<endl;
else
if (cl==0)
cout<<ch<<"/"<<zn<<endl;
else
cout<<cl<<" "<<ch<<"/"<<zn<<endl;
}

void main ()
{setlocale(LC_ALL,"Russian");

drob arrdrob;
arrdrob.arrcl (1);
arrdrob.arrch (1);
arrdrob.arrzn (1);
arrdrob.print ();

system ("pause");}
RodionL3 вне форума Ответить с цитированием
Старый 22.04.2010, 09:17   #4
RodionL3
 
Регистрация: 21.04.2010
Сообщений: 7
По умолчанию

не могу привести к несократимому виду
RodionL3 вне форума Ответить с цитированием
Старый 22.04.2010, 09:24   #5
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

ой зря в методах класса описываешь ввод вывод на консоль, эт надо делать вне класса, а классу просто передавать параметры
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 24.04.2010, 12:44   #6
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию

Цитата:
не могу привести к несократимому виду
Я бы нашел наибольший общий делитель знаменателя и числителя. Затем разделил числитель и знаменатель на НОД.
НОД можно найти хотябы так:
Код:
// а - числитель b - знаменатель

while (a!=b)
	{
		if (a>b)
			a-=b;
		else
			b-=a;
	}
	nod=a;
Делим числитель и знаменатель на НОД и получается несократимая дробь
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол

Последний раз редактировалось atenon; 24.04.2010 в 12:53.
atenon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дробное отрицательное в двоичный вид ajaxtpm Общие вопросы Delphi 0 13.04.2010 21:49
Записать дробное число в форматах Single и Double, а целое в формате Integer!!!! AlexSed Помощь студентам 4 08.01.2010 23:39
Как записывается дробное число. Altera Свободное общение 2 18.12.2009 20:30
Вывести число, предшествующее первому отрицательному и число, следующее за последним отрицательным Rid Паскаль, Turbo Pascal, PascalABC.NET 4 22.12.2008 16:50
Ввести число N и определить делится ли оно без остатка на число M (VBA) Ivanich Microsoft Office Excel 7 24.04.2008 19:43