Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 28.11.2009, 18:49   #1
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,853 пользователей)
Помогите решить задачку

Создайте класс, определяющий некоторый тип вещественных чисел, имеющий конструктор, операторы +, -, * функцию вывода на экран - print. Написать простой пример программы, использующей числа данного типа и операции над ними с выводом результатов на экран.
Одно из выражений должно содержать 2 числа данного типа, а также константу встроенного типа: char, int или float. Для этого выражения объяснить какие и в какой последовательности операции и преобразования используются и почему.
Основной конструктор должен иметь один параметр типа float и формировать объект эквивалентного значения в формате двух int чисел. Также создайте дополнительный конструктор, который получает два параметра типа int, которые представляют собой внутренний формат хранения чисел с возможной нормализацией в случае необходимости..
Плавающей арифметики в реализации не использовать.

Вариант 1.
Вещественное число плавающего формата. Мант. и эксп. - 10 бит целые.
Число представлено в формате: А=0.Мант*2^Эксп

Вариант 2.
Вещественное число плавающего формата. Мант. и эксп. - 10 бит целые.
Число представлено в формате: А=0.Мант*10^Эксп

Вариант 3.
Вещественное число фиксированного формата. Целая и дробная части - 10 бит целые.
Число представлено в формате: А=Цел.Дроб

Вариант 4.
Дробное число. Числитель и знаменатель - 10 бит целые.
Число представлено в формате: А=Числ/Знам
Помогите пожалуйста. Требуется только вариант №4, а я в CИ не силён.
Вобще не представляю как создать такой класс.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti

Последний раз редактировалось Randomize, 01.12.2009 в 05:40.
(Offline)
 
Ответить с цитированием
Старый 01.12.2009, 05:40   #2
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,853 пользователей)
Ответ: Помогите решить задачку

Никто не поможет?
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Старый 09.12.2009, 03:31   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Помогите решить задачку

Первое:
я так и невпёр в приматскую шуточку:
как разбить float на два числа о0 я понимаю разбить int - это факторизация.
Для флоата нам досточно узнать число знаков после запятой (1.23 = 123/100)
Попытки поколдовать с последовательным сдвигом FP путём умножения на 10 и вычисления разницы между floor() и получившимся числом проваливаются из-за точности.
Т.е. я хотел бы так:
1.23 преобразуем:
0 1.23-1=0.23 далее
1 12.3-12=0.3 далее
2 123-123=0 готово //хрен!

Прочитал ТЗ ещё раз. Собственно индусоидность кода нигде не фиксируется (как и используемые функции СИ++). Нахреначил говнокодище.
	char t[30];
	sprintf(t,"%f",x);
	char* ptr=strstr(t,".");
	int n=ptr-(char*)t;
	int m;
	for(m=strlen(t)-1;m>n;m--){
		if(t[m]!='0')break;
	}
	int d=m-n;
	this->up=x*pow(10,d);
	this->down=pow(10,d);
единственное что напрягает - во всех ли платформах юзается точка как десятичный разделитель?

Второе:
Дробное число. Числитель и знаменатель - 10 бит целые.
Это чо-чо? Битовые поля что-ли?
	short up:10;
	short down:10;
Проблема перемещается в функцию вывода - необходимо выковрять 10 значащих бит из 16-битного слова. Просто замаскировать их не вышло - хрен его знает как оргнизовал это дело компилятор (или же надо круить rfc для шортов?), но ождиаемый эффект конструкция &1023 не дала.
Потому я просто забил =\

Вот что вышло в итоге:

файл NUMBER.h
#ifndef _NUMBER_H_
#define _NUMBER_H_

class NUMBER{
private:
	short up;
	short down;
public:
	NUMBER(float x);
	NUMBER(int Up,int Down);
	NUMBER operator+(const NUMBER &x);
	NUMBER operator-(const NUMBER &x);
	NUMBER operator*(const NUMBER &x);
	NUMBER operator*(int x);
	void PRINT();
};
#endif
файл NUMBER.cpp
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<math.h>
#include"NUMBER.h"


NUMBER::NUMBER(int Up,int Down){
	this->down=Down;
	this->up=Up;
}


NUMBER::NUMBER(float x){
	char t[30];
	sprintf(t,"%f",x);
	char* ptr=strstr(t,".");
	int n=ptr-(char*)t;
	int m;
	for(m=strlen(t)-1;m>n;m--){
		if(t[m]!='0')break;
	}
	int d=m-n;
	this->up=x*pow(10,d);
	this->down=pow(10,d);	
}

void NUMBER::PRINT(){
	cout<<(this->up)<<" / "<<(this->down)<<endl;
}

NUMBER NUMBER::operator +(const NUMBER &x){
	return NUMBER(x.up*this->down+this->up*x.down,x.down*this->down);
}

NUMBER NUMBER::operator -(const NUMBER &x){
	return NUMBER(x.up*this->down-this->up*x.down,x.down*this->down);
}

NUMBER NUMBER::operator *(const NUMBER &x){
	return NUMBER(x.up*this->up,x.down*this->down);
}

NUMBER NUMBER::operator *(int x){
	return NUMBER(x*this->up,this->down);
}
файл main.cpp
#include<iostream.h>
#include<math.h>
#include<conio.h>
#include"NUMBER.h"

void main(){
	NUMBER Q(1.3);
	Q.PRINT();
	NUMBER R=Q*2;
	R.PRINT();
	NUMBER T(6,5);
	T.PRINT();
	NUMBER Z=R-T*2;
	Z.PRINT();
	NUMBER F=Z+T;
	F.PRINT();

	getch();

}
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
ABTOMAT (09.12.2009), Harter (06.01.2010), Randomize (09.12.2009), Reizel (06.01.2010)
Старый 06.01.2010, 15:35   #4
xsnakes
Оператор ЭВМ
 
Аватар для xsnakes
 
Регистрация: 16.07.2009
Адрес: Пятигорск
Сообщений: 39
Написано 4 полезных сообщений
(для 4 пользователей)
Добрые люди ПОЖАЛУЙСТА помогите решить задачки.

Пришли задания с учебниками из Ставрополя, получил я их только сегодня (хотя должен был получить 2 декабря, шли долго из института), а cдавать нужно уже 14 января. Я в С++ нуль, выучить не успею, ещё и сделать.
Помогите плиз. Там наверняка не сложные задачки для таких профов как вы А C++ я буду учить, изучу ваши ответы и следующие задания сделаю сам.

Ответы надо в архиве выложить, чтоб поиском вдруг не нашли меня здесь
А схемы алгоритмов можно накарякать где угодно, даже в строчку, я разберу потом.

Скачать задачки (73 Кб)

Ну что мне некто не поможет?

Последний раз редактировалось jimon, 08.01.2010 в 12:32.
(Offline)
 
Ответить с цитированием
Старый 06.01.2010, 21:10   #5
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Помогите решить задачку

догадливый
__________________
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
ABTOMAT (07.01.2010), Harter (08.01.2010), NitE (06.01.2010), Reizel (06.01.2010)
Старый 06.01.2010, 22:09   #6
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Помогите решить задачку

Пришли задания с учебниками из Ставрополя, получил я их только сегодня
штемпель на почтовом документе о дате прибытия корреспонденции - документ, подтверждающий, что ты не придумал эту историю (там указывается дата). Таким образом, если ты не мог выполнить задание, по причине задержки учебников (и это оговорено с учебным заведением) - у тебя есть аргумент.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 08.01.2010, 11:17   #7
xsnakes
Оператор ЭВМ
 
Аватар для xsnakes
 
Регистрация: 16.07.2009
Адрес: Пятигорск
Сообщений: 39
Написано 4 полезных сообщений
(для 4 пользователей)
Так а это не отмазка от того что задание не могу сделть

И задержала не почта, а Жаба Классный руководитель!

Эх люди вы не добрые Придётся за оставшиеся дни выучить то, что за месяц нужно было выучить

Последний раз редактировалось jimon, 08.01.2010 в 12:32.
(Offline)
 
Ответить с цитированием
Старый 08.01.2010, 11:57   #8
ISergey
AnyKey`щик
 
Регистрация: 10.11.2008
Сообщений: 18
Написано 4 полезных сообщений
(для 5 пользователей)
Ответ: Помогите решить задачку

Сообщение от xsnakes Посмотреть сообщение
Эх люди вы не добрые Придётся за оставшиеся дни выучить то, что за месяц нужно было выучить
Ты денег людям предложи.. Сразу подобреют..
__________________
Шутить надо так, чтобы потом не было мучительно больно за бесцельно выбитые зубы.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо ISergey за это полезное сообщение:
Reizel (08.01.2010), SBJoker (08.01.2010)
Старый 08.01.2010, 15:24   #9
xsnakes
Оператор ЭВМ
 
Аватар для xsnakes
 
Регистрация: 16.07.2009
Адрес: Пятигорск
Сообщений: 39
Написано 4 полезных сообщений
(для 4 пользователей)
Ответ: Помогите решить задачку

А у меня привод деньги не читает! Как я отправлю? :D
(Offline)
 
Ответить с цитированием
Старый 08.01.2010, 16:02   #10
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Помогите решить задачку

переводом, по эмайлу или заказным письмом.
(Offline)
 
Ответить с цитированием
Старый 08.01.2010, 16:16   #11
xsnakes
Оператор ЭВМ
 
Аватар для xsnakes
 
Регистрация: 16.07.2009
Адрес: Пятигорск
Сообщений: 39
Написано 4 полезных сообщений
(для 4 пользователей)
Ответ: Помогите решить задачку

От делать нечего Я лучше ещё на 100 форумах напишу такое, кто-то да решит.
А этот форум в чёрный список тут не помогают.
А если б я по одной задаче спрашивал, то решили б, но поисковик найдёт меня тут
(Offline)
 
Ответить с цитированием
Старый 08.01.2010, 16:52   #12
Android
Бывалый
 
Регистрация: 29.03.2007
Сообщений: 662
Написано 199 полезных сообщений
(для 448 пользователей)
Ответ: Помогите решить задачку

Сообщение от xsnakes Посмотреть сообщение
А этот форум в чёрный список
Одним попрошайкой меньше.
Следующий! (с)
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо Android за это полезное сообщение:
Harter (28.01.2010), NitE (08.01.2010), Praedo (08.01.2010), Tadeus (08.01.2010)
Старый 24.01.2010, 19:02   #13
xsnakes
Оператор ЭВМ
 
Аватар для xsnakes
 
Регистрация: 16.07.2009
Адрес: Пятигорск
Сообщений: 39
Написано 4 полезных сообщений
(для 4 пользователей)
Ответ: Помогите решить задачку

Помогите
Идет k-я секунда суток. Определить сколько полных часов X и полных минут Y прошло к этому моменту.
(Offline)
 
Ответить с цитированием
Старый 24.01.2010, 19:15   #14
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Помогите решить задачку

былы-бы власть, сам-бы тебя выкинул нафиг, чтоб в армию забрали, и ты не мог поганить отечественный игрострой или что-либо другое
(Offline)
 
Ответить с цитированием
Старый 24.01.2010, 19:24   #15
xsnakes
Оператор ЭВМ
 
Аватар для xsnakes
 
Регистрация: 16.07.2009
Адрес: Пятигорск
Сообщений: 39
Написано 4 полезных сообщений
(для 4 пользователей)
Ответ: Помогите решить задачку

ты че флудишь
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помагите решить задачу Sliver Visual Basic 26 26.11.2009 10:35
Помогите.Задачи в С++ Борланд FeaDell C++ 46 19.02.2009 23:14
Помогите решить задачку ISKATEL Visual Basic 2 22.06.2007 02:51
Помогите решить задачу (Статистика). Chrono Syndrome Болтовня 3 27.04.2007 20:45


Часовой пояс GMT +4, время: 10:20.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com