Страница 1 из 2

Задача на С++ :'(

Добавлено: 05 сен 2009, 13:16
Hatycuk
Привет тем кто это читает...

Нужна помощь в решении задачи...
Суть программы в чем,нужно заполнить таблицу шестнадцатиричными числами,потом нужно реализовать операции сложения и вычитания,а результат нужно вывести в четверичной системе счисления!!!

Вся проблема в выводе результата и операции вычитания...с остальным вроде разобралась...

Напишите пожалуйста этот кусочек программы...буду очень вам благодарна...некого просить больше(((....:-*

Re: Задача на С++ :'(

Добавлено: 06 сен 2009, 20:40
Newbie
выложи для начала, что у тебя уже есть, тогда можно будет поглядеть.

Re: Задача на С++ :'(

Добавлено: 07 сен 2009, 14:47
Hatycuk
Newbie писал(а):выложи для начала, что у тебя уже есть, тогда можно будет поглядеть.

Код: Выделить всё

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

char TO[64][4];
int createTO()
{
	int i,j;
	//FILE *F;
	//F=fopen("D:\\HataLLIA\\Project1\\TO.txt","w");
	for (i=0;i<8;i++)
		for (j=0;j<8;j++)
		{
			TO[i*8+j][0]=i+48;
			TO[i*8+j][1]=j+48;
			TO[i*8+j][2]=(i+j)%8+48;
			TO[i*8+j][3]=(i+j)/8+48;
			cout<<TO[i*8+j][0]<<TO[i*8+j][1]<<TO[i*8+j][2]<<TO[i*8+j][3]<<endl;
		}

	//fclose(F);
	return 0;
}

int _tmain(int argc, _TCHAR* argv[])
{
	char A,B;
	int i;

	createTO();
	cout<<("Vvedite A v vos`merichnoy sisteme: ");
	cin>>A;
	cout<<("Vvedite B v vos`merichnoy sisteme: ");
	cin>>B;
	i=0;

	for  (i=0;i<64;i++) {
		if (TO[i][0]==A && TO[i][1]==B) break;
	}

	cout<<"Rezultat:"<<endl;
	cout<<TO[i][2]<<endl;
	if (TO[i][3]=='1') {cout<<"Proizoshlo perepolnenie"<<endl;}	
	return 0;
}



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

помогите пожалуйста!!!

Re: Задача на С++ :'(

Добавлено: 07 сен 2009, 18:43
Albor
А почему не сделать проще? Или тебя ограничивают способом решения задачи? Почему просто не сложить/вычесть два числа, после чего результат перевести в нужную ссч. И ещё, функция заполнения таблицы, можно, конечно, догадаться что 48 - это ASCII код нуля, но было-бы понятнее, еслиб использовалось '0'.

Re: Задача на С++ :'(

Добавлено: 07 сен 2009, 21:27
Hatycuk
Albor писал(а):А почему не сделать проще? Или тебя ограничивают способом решения задачи? Почему просто не сложить/вычесть два числа, после чего результат перевести в нужную ссч. И ещё, функция заполнения таблицы, можно, конечно, догадаться что 48 - это ASCII код нуля, но было-бы понятнее, еслиб использовалось '0'.
так вот именно что понты с переводом...посоветуйте как можно сделать перевод из восьмиричной ссч в четверичную ссч...хоть чуток напишите, я уже сама разберусь!!!

Re: Задача на С++ :'(

Добавлено: 08 сен 2009, 10:36
Albor
На форуме это есть: http://forum.developing.ru/showthread.php?t=13761, нужно только поискать и перевести на нужный язык

Re: Задача на С++ :'(

Добавлено: 08 сен 2009, 16:46
Hatycuk
Albor писал(а):На форуме это есть: http://forum.developing.ru/showthread.php?t=13761, нужно только поискать и перевести на нужный язык
что-то там мне мало что понятно!!!ладно сама как-нибудь!!!

Re: Задача на С++ :'(

Добавлено: 09 сен 2009, 03:29
rrrFer
Hatycuk писал(а):так вот именно что понты с переводом...посоветуйте как можно сделать перевод из восьмиричной ссч в четверичную ссч...хоть чуток напишите, я уже сама разберусь!!!
можно через двоичную перевести, так как 8=2^3 то каждую цифру восьмеричного заменяшь на 3 цифры двоичного чисел. Например 8=111, 7=110. Потом, так как 4=2^2, то для получения числа в четверичной СС надо сгруппировать по 2 цифры в двоичной СС для получения одной цифры четверичной.
Наример
762(8) -> 111 110 010 (2) -> 1 3 3 0 2 (4)
как то так :)

Re: Задача на С++ :'(

Добавлено: 09 сен 2009, 12:31
Hatycuk
rrrFer писал(а):можно через двоичную перевести, так как 8=2^3 то каждую цифру восьмеричного заменяшь на 3 цифры двоичного чисел. Например 8=111, 7=110. Потом, так как 4=2^2, то для получения числа в четверичной СС надо сгруппировать по 2 цифры в двоичной СС для получения одной цифры четверичной.
Наример
762(8) -> 111 110 010 (2) -> 3 3 2 1 0 (4)
как то так :)

А можно как нибудь сразу в четверичную систему???или никак вообще???

Re: Задача на С++ :'(

Добавлено: 09 сен 2009, 14:30
rrrFer
Hatycuk писал(а):А можно как нибудь сразу в четверичную систему???или никак вообще???
Вроде через двоичную проще )). Можно через десятичную - ну потому что в десятичной привычно выполнять всякие операции.
например 762(8) это 7*8*8+6*8+2, можно сразу перевести в четверичную каждое число из этого выражения и выполнить операции, но я думаю что неудобно это )) Проще вычислить в десятичной и перевести из десятичной в четверичную. Но вручную я бы считал через двоичную всетаки.