|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.10.2009, 17:19 | #1 |
Новичок
Джуниор
Регистрация: 01.10.2009
Сообщений: 3
|
Класс Дробей
Прошу помощи. Мне надо написать программу, описывающую класс обычных дробей, а так же методы сложения,вычитания,умножения деления.
Каждый разрабатываемый класс должен, как правило, содержать следующие элементы: скрытые поля, конструкторы с параметрами и без параметров, методы, свойства. Методы и свойства должны обеспечивать непротиворечивый, полный, минимальный и удобный интерфейс класса. При возникновении ошибок должны выбрасываться исключения. |
01.10.2009, 19:24 | #2 |
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,189
|
В чем сложность??? Где наработки??
Уже совсем народ оборзел, задания выкладывают и все. |
01.10.2009, 19:38 | #3 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
Тут недавно валялась аналогичная тема про дроби.
P.S. Hollander, совершенно с Вами согласен.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
01.10.2009, 19:58 | #4 |
Новичок
Джуниор
Регистрация: 01.10.2009
Сообщений: 3
|
Я ваще не уловил тему Классы. Первый раз с нею знакомлюсь, раньше программировал на паскале и бейсике...
|
02.10.2009, 12:59 | #5 |
Участник клуба
Регистрация: 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() { } } |
04.10.2009, 13:40 | #6 |
Пользователь
Регистрация: 04.10.2009
Сообщений: 29
|
Я сам писал похожую программу. Она очень простая - калькулятор с дробями. Вводишь в текстовое поле строку (например 1 / 3 + 1 / 2) и получаешь результат (5 / 6 ~= 0.833333).
Программа компилится в CodeBlocks. Прикрепляю код и программу.
A, B, C++,..
|
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);//возращаем результат } } } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сумма дробей | 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 |