Страница 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
что-то там мне мало что понятно!!!ладно сама как-нибудь!!!
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, можно сразу перевести в четверичную каждое число из этого выражения и выполнить операции, но я думаю что неудобно это )) Проще вычислить в десятичной и перевести из десятичной в четверичную. Но вручную я бы считал через двоичную всетаки.