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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2009, 17:19   #1
finargot
Новичок
Джуниор
 
Регистрация: 01.10.2009
Сообщений: 3
По умолчанию Класс Дробей

Прошу помощи. Мне надо написать программу, описывающую класс обычных дробей, а так же методы сложения,вычитания,умножения деления.
Каждый разрабатываемый класс должен, как правило, содержать следующие
элементы: скрытые поля, конструкторы с параметрами и без параметров, методы,
свойства. Методы и свойства должны обеспечивать непротиворечивый, полный,
минимальный и удобный интерфейс класса. При возникновении ошибок должны
выбрасываться исключения.
finargot вне форума Ответить с цитированием
Старый 01.10.2009, 19:24   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

В чем сложность??? Где наработки??
Уже совсем народ оборзел, задания выкладывают и все.
Hollander вне форума Ответить с цитированием
Старый 01.10.2009, 19:38   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Тут недавно валялась аналогичная тема про дроби.

P.S. Hollander, совершенно с Вами согласен.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 01.10.2009, 19:58   #4
finargot
Новичок
Джуниор
 
Регистрация: 01.10.2009
Сообщений: 3
По умолчанию

Я ваще не уловил тему Классы. Первый раз с нею знакомлюсь, раньше программировал на паскале и бейсике...
finargot вне форума Ответить с цитированием
Старый 02.10.2009, 12:59   #5
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Надо создать класс с двумя полями:
* Числитель
* Знаменатель
И 4-мя методами:
* Сумма
* Разность
* Умножение
* Деление

Примерно так, реализацию пиши сам.

class Fraction
{
public int numerator; // числитель
public int denominator; // знаменатель

public Fraction(int numerator, int denominator)
{
this.numerator = numerator;
this.denominator = denominator;
}

public Fraction Summ()
{
}
public Fraction Substract()
{
}
public Fraction Muiltiply()
{
}
public Fraction Division()
{
}
}
Hollander вне форума Ответить с цитированием
Старый 04.10.2009, 13:40   #6
mitryz
Пользователь
 
Регистрация: 04.10.2009
Сообщений: 29
По умолчанию

Я сам писал похожую программу. Она очень простая - калькулятор с дробями. Вводишь в текстовое поле строку (например 1 / 3 + 1 / 2) и получаешь результат (5 / 6 ~= 0.833333).
Программа компилится в CodeBlocks.
Прикрепляю код и программу.
Вложения
Тип файла: zip Calculator.zip (21.4 Кб, 128 просмотров)
A, B, C++,..
mitryz вне форума Ответить с цитированием
Старый 18.03.2010, 23:03   #7
Даниил Панарин
Новичок
Джуниор
 
Регистрация: 18.03.2010
Сообщений: 1
По умолчанию

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Drobi
{
class Program
{
static void Main(string[] args)
{
//Основная программа
Drob a = new Drob(4, -8);//создание объекта класса Drob
Drob b = new Drob(2, 5);//создание объекта класса Drob

Drob c;
c = a + b;
Console.WriteLine("Проверка на сложение: " + a.ToString() + "+" + b.ToString() + "=" + c.ToString());
Console.ReadKey();

}
}
class Drob//Описание класса Drob
{
public double c = 0;
public double z = 0;

public Drob(int c, int z)
{
this.c = c;
this.z = z;

}

public override string ToString()//cтроковое представление
{
return "(" + c.ToString() + "/" + z.ToString() + ")";
}

public static Drob operator +(Drob a, Drob b)//сложение дробей
{
Drob t = new Drob(1, 1);//создание и инициализация новой дроби
t.c = (a.c * b.z + a.z * b.c);//числитель новой дроби
t.z = a.z * b.z;//знаменатель новой дроби
Drob.SetFormat(t);//сокращаем дробь
return t;//возвращаем результат

}
public static Drob operator -(Drob a, Drob b)//вычитание дробей
{
Drob t = new Drob(1, 1);//создание и инициализация новой дроби
t.c = (a.c * b.z - a.z * b.c);//числитель новой дроби
t.z = a.z * b.z;//знаменатель новой дроби
Drob.SetFormat(t);//сокращаем дробь
return t;//возвращаем результат

}
public static Drob operator *(Drob a, Drob b)//вычитание дробей
{
Drob t = new Drob(1, 1);//создание и инициализация новой дроби
t.c = (a.c * b.c);//числитель новой дроби
t.z = a.z * b.z;//знаменатель новой дроби
Drob.SetFormat(t);//сокращаем дробь
return t;//возвращаем результат

}
public static Drob operator /(Drob a, Drob b)//вычитание дробей
{
Drob t = new Drob(1, 1);//создание и инициализация новой дроби
t.c = (a.c / b.c);//числитель новой дроби
t.z = a.z / b.z;//знаменатель новой дроби
Drob.SetFormat(t);//сокращаем дробь
return t;//возвращаем результат
}
//процедура по сокращению дроби
public static Drob SetFormat(Drob a)
{

double max = 0;

//выбираем что больше числитель или знаменатель
if (a.c > a.z)
max = Math.Abs(a.z);//ВНИМАНИЕ! берем по модулю, что работало и с отрицательными
else
max = Math.Abs(a.c);//ВНИМАНИЕ! берем по модулю, что работало и с отрицательными
//поиск от максимума до 2
for (double i = max; i >= 2; i--)
{
//такого числа, поделив на которое бы делилось без
//остатка и на числитель и на знаменатель
if ((a.c % i == 0) & (a.z % i == 0))
{
a.c = a.c / i;
a.z = a.z / i;
}

}
//Определяемся со знаком
//если в знаменателе минус, поднимаем его наверх
if ((a.z < 0))
{
a.c = -1 * (a.c);
a.z = Math.Abs(a.z);
}
return (a);//возращаем результат
}
}
}
Даниил Панарин вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумма дробей Xcopy Общие вопросы Delphi 1 05.09.2009 19:12
процедурки и функции для сложения простых дробей Frenki Паскаль, Turbo Pascal, PascalABC.NET 14 04.05.2009 08:45
Ввод десятичных дробей в поля textbox формы NikolayGVB Microsoft Office Word 9 26.04.2009 04:55
ВЫчисление дробей по модулю целого числа Камикадзе Помощь студентам 0 18.04.2009 09:29
Как написать код для укорачивание дробей? Dinamovec Помощь студентам 9 16.03.2009 15:34