16-ная система
От: Grim  
Дата: 16.12.03 21:53
Оценка: -1 :))
Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт!
Re: 16-ная система
От: folk Россия  
Дата: 16.12.03 22:40
Оценка: 1 (1) +1 :))) :))
Здравствуйте, Grim, Вы писали:

G> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт!



#include <iostream>

int main()
{
  int num;
  std::cin >> std::dec >> num;
  std::cout << std::hex << num << std::endl;
  return 0;
}
На самом деле, люди не читают газеты, они принимают их каждое утро, так же как ванну. ©Маршалл Мак-Льюэн
Re: 16-ная система
От: Аноним  
Дата: 16.12.03 22:41
Оценка: 6 (1) -1
Здравствуйте, Grim, Вы писали:

G> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт!



// для unsigned.

#define DEC_SIZEOF_INT 10
const char hexArr[16] = "0123456789ABCDEF";

char* Dec2Hex(unsigned num)
{
   char* str = (char*) malloc(DEC_SIZEOF_INT);
   int i;
   for (i = DEC_SIZEOF_INT - 1; i <= 0; --i)
   {
      str[i] = hexArr[num & 0xF];
      num >>= 4;
   }
   return str;
}

int main()
{
unsigned num;
scanf("%d",num);
printf(Dec2Hex(num));
return 1;
}
Re[2]: 16-ная система
От: ArtDenis Россия  
Дата: 17.12.03 03:43
Оценка:
Здравствуйте, folk, Вы писали:

G>> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт!

F>
F>#include <iostream>
F>int main()
F>{
F>  int num;
F>  std::cin >> std::dec >> num;
F>  std::cout << std::hex << num << std::endl;
F>  return 0;
F>}
F>


Если преподаватель ожидает увидеть программу размером в десяток листов распечатки, то за такую он точно двояк поставит.
... << RSDN@Home 1.1.0 stable >>
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[3]: 16-ная система
От: Шахтер Интернет  
Дата: 17.12.03 04:57
Оценка:
Здравствуйте, ArtDenis, Вы писали:

AD>Здравствуйте, folk, Вы писали:


G>>> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт!

F>>
F>>#include <iostream>
F>>int main()
F>>{
F>>  int num;
F>>  std::cin >> std::dec >> num;
F>>  std::cout << std::hex << num << std::endl;
F>>  return 0;
F>>}
F>>


AD>Если преподаватель ожидает увидеть программу размером в десяток листов распечатки, то за такую он точно двояк поставит.


Странно, мне всегда казалось, что чем короче программа, тем лучше. Меньше слов (ключевых), больше дела!
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[4]: 16-ная система
От: ArtDenis Россия  
Дата: 17.12.03 05:02
Оценка: :))) :)
Здравствуйте, Шахтер, Вы писали:
AD>>Если преподаватель ожидает увидеть программу размером в десяток листов распечатки, то за такую он точно двояк поставит.
Ш>Странно, мне всегда казалось, что чем короче программа, тем лучше. Меньше слов (ключевых), больше дела!

Это с точки зрения программиста. А сточки зрения преподавателя — чем больше программа, тем больше знаний у студента
... << RSDN@Home 1.1.0 stable >>
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[5]: 16-ная система
От: Шахтер Интернет  
Дата: 17.12.03 05:17
Оценка:
Здравствуйте, ArtDenis, Вы писали:

AD>Здравствуйте, Шахтер, Вы писали:

AD>>>Если преподаватель ожидает увидеть программу размером в десяток листов распечатки, то за такую он точно двояк поставит.
Ш>>Странно, мне всегда казалось, что чем короче программа, тем лучше. Меньше слов (ключевых), больше дела!

AD>Это с точки зрения программиста. А сточки зрения преподавателя — чем больше программа, тем больше знаний у студента


Разве больше? По-моему, это какой-то странный преподаватель!
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[6]: 16-ная система
От: ArtDenis Россия  
Дата: 17.12.03 05:49
Оценка:
Здравствуйте, Шахтер, Вы писали:

AD>>Это с точки зрения программиста. А сточки зрения преподавателя — чем больше программа, тем больше знаний у студента

Ш>Разве больше? По-моему, это какой-то странный преподаватель!

Преподаватели разные бывают. Иногда и такие попадаются.
... << RSDN@Home 1.1.0 stable >>
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[2]: 16-ная система
От: alexkro  
Дата: 17.12.03 06:04
Оценка:
Здравствуйте, Аноним, Вы писали:

Эх, подставил ты студента своей хакерской программкой! Он же ни на один вопрос по ней ответить не сможет.

PS:
return 1 — это сильно! Ну, и остальная экзотика сюда же.
Re[7]: 16-ная система
От: Denwer Россия  
Дата: 17.12.03 07:11
Оценка: :))
Здравствуйте, ArtDenis, Вы писали:

AD>Здравствуйте, Шахтер, Вы писали:


AD>>>Это с точки зрения программиста. А сточки зрения преподавателя — чем больше программа, тем больше знаний у студента

Ш>>Разве больше? По-моему, это какой-то странный преподаватель!

AD>Преподаватели разные бывают. Иногда и такие попадаются.


В таком случае данную задачу надо как минимум реализовать с использование DirectX, и не забыв про такие модные вещи как SOAP+XML, COM/DCOM, CORBA. Вот это вот тогда точно круто получится.
Re[2]: 16-ная система
От: Vamp Россия  
Дата: 17.12.03 08:34
Оценка: -2 :))
Это... Коде ревью сделаем

А>
А>// для unsigned.

А>//#define DEC_SIZEOF_INT 10
/* заменяем дефайны на константы
я уж не говорю о том, что такой константы нам вообще не надо
*/
const unsigned int dec_sizeof_int 10;

А>//const char hexArr[16] = "0123456789ABCDEF";
/*Зачем выполнять копирование? И тем более прописывать размер массива - пусть компилятор работает за нас!*/
const char* const = "0123456789ABCDEF";

А>char* Dec2Hex(unsigned num)
А>{
А>   char* str = (char*) malloc(DEC_SIZEOF_INT);
/*Не фонтан. Память удалять не там, где выделяли - дурной тон. Не говорю уже о том, 
что результат выделения надо проверять!*/
А>   int i;
А>   for (i = DEC_SIZEOF_INT - 1; i <= 0; --i)
А>   {
А>      str[i] = hexArr[num & 0xF];
А>      //num >>= 4; 
/*не на 4, а на sizeof(int)*/
num >>= sizeof(int); 

А>   }
/*строка не завершена 0. Функции работы со строками работать с ней корректно не будут.*/
А>   return str;
А>}

А>int main()
А>{
А>unsigned num;
А>//scanf("%d",num);
/*Просто ошибка. Нужно адрес передавать.*/
scanf("%d",&num);

А>//printf(Dec2Hex(num));
/*очень дурно. Нельзя печатать строку как есть. А если там управляющие символы?*/
printf("%s", Dec2Hex(num));

/*Так и есть. Память, выделенная под строку, не освобождается.*/
А>return 1;
А>}

Итого - 2 с минусом. Увы.
А>
Да здравствует мыло душистое и веревка пушистая.
Re: 16-ная система
От: Socrat Россия  
Дата: 17.12.03 09:26
Оценка:
Здравствуйте, Grim, Вы писали:

G> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт!


А как хранится десятичное число? В двоичном виде? Или в виде строки?
Re[3]: 16-ная система
От: Анатолий Широков СССР  
Дата: 17.12.03 09:46
Оценка:
Здравствуйте, Vamp, Вы писали:

А>      //num >>= 4; 
/*не на 4, а на sizeof(int)*/
num >>= sizeof(int);


Что-то вас занесло. Причем здесь sizeof(int)? Деление на 16 и есть сдвиг вправо на 4.
Re[4]: 16-ная система
От: Vamp Россия  
Дата: 17.12.03 09:51
Оценка:
АШ>Что-то вас занесло. Причем здесь sizeof(int)? Деление на 16 и есть сдвиг вправо на 4.
Конечно. Вошел в раж, это называется. Переклинило, я просто как раз на работе смотрел на размер int и с кодом разбирался, в котором используется фиксированное значение.
Да здравствует мыло душистое и веревка пушистая.
Re[3]: 16-ная система
От: LaptevVV Россия  
Дата: 17.12.03 17:40
Оценка:
Здравствуйте, ArtDenis, Вы писали:

G>>> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт!

F>>
F>>#include <iostream>
F>>int main()
F>>{
F>>  int num;
F>>  std::cin >> std::dec >> num;
F>>  std::cout << std::hex << num << std::endl;
F>>  return 0;
F>>}
F>>


AD>Если преподаватель ожидает увидеть программу размером в десяток листов распечатки, то за такую он точно двояк поставит.

Я б поставил трояк
Это решение проблемы наипростейшим способом. Значит — соображает хоть что-то!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: 16-ная система
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 17.12.03 17:56
Оценка:
Здравствуйте, Grim, Вы писали:

G> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт!


Под С++ Билдером это ну буквально одна строка


String str = IntToHex(num,8);
Re[2]: 16-ная система
От: Кодт Россия  
Дата: 18.12.03 09:01
Оценка: :))
Здравствуйте, Flamer, Вы писали:

F>Под С++ Билдером это ну буквально одна строка

F>
F>String str = IntToHex(num,8);
F>


На голом Це тоже в одну строку
// эти строки - за пределами собственно решения
char strdec[] = "3735928559";
char strhex[11]; // "0xDEADBEEF\0"

// а вот и оно
sprintf(strhex, "0x%08X", atoi(strdec));
Перекуём баги на фичи!
Re[3]: 16-ная система
От: Shroo  
Дата: 18.12.03 11:25
Оценка:
Здравствуйте, ArtDenis, Вы писали:

AD>Здравствуйте, folk, Вы писали:


G>>> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт!

F>>
F>>#include <iostream>
F>>int main()
F>>{
F>>  int num;
F>>  std::cin >> std::dec >> num;
F>>  std::cout << std::hex << num << std::endl;
F>>  return 0;
F>>}
F>>


AD>Если преподаватель ожидает увидеть программу размером в десяток листов распечатки, то за такую он точно двояк поставит.


Вот-вот... вот что можно сказать на такой случай:
неделю назад сдаю курсовой... задача стоит так: "написать клиента к орклу, чтобы данные из заданной базы выбирал"
Всем выдали делфёвый компанент из серии TConnectToDataBaseVeryEasyAndDontThinkAtAll и сказали — вот так можно... Ну, народ написал все это на делфяке за 30 минут и сдал.
Приношу я... написал клиента... интерфейс командной строки, коннектится, использую ODBC API и дальше можно туда любой sql писать... супер, мне понравилось.. И что вы думаете... отправили меня как миленького назад, не объяснив даже почему... Вот и стремись после этого к знаниям..

ЗЫ простите за офф-топ
Re[5]: 16-ная система
От: Shroo  
Дата: 18.12.03 11:27
Оценка:
Здравствуйте, ArtDenis, Вы писали:

AD>Здравствуйте, Шахтер, Вы писали:

AD>>>Если преподаватель ожидает увидеть программу размером в десяток листов распечатки, то за такую он точно двояк поставит.
Ш>>Странно, мне всегда казалось, что чем короче программа, тем лучше. Меньше слов (ключевых), больше дела!

AD>Это с точки зрения программиста. А сточки зрения преподавателя — чем больше программа, тем больше знаний у студента


100% даю, что зарубят stl ... как студент говорю... у меня такое сто раз было... вот еще помню потянуло меня на GDI+ в прошлом семестре, когда все обычном api писали... эх... зарубили... что это за фигня сказали..
Re[4]: 16-ная система
От: Алексей Одинцов Россия  
Дата: 18.12.03 11:37
Оценка: -4
Здравствуйте, LaptevVV, Вы писали:
LVV>Я б поставил трояк
LVV>Это решение проблемы наипростейшим способом. Значит — соображает хоть что-то!
стимулируете к неиспользованию включенных в современные средства стандартных возможностей?? %)))

я бы даже такое задание не дал... как впрочем не дал бы и заданий аля "написать бабль сорт" или что ужасней "написать qsort" — нафих??? надо стимулировать к использованию std::sort, а не заставлять людей понапрасну мучацца. если бы у меня работник написал сортировкую массива с использованием своей функции-сортировки бабль сортом, я бы его уволил нахрен тут же...

задания надо давать соответствующие... ну где щас понадобится опыт в написании dec2hex? времена ASM канули в прошлое.
я бы за подобное решение поставил 5. тока это должно было бы быть не с std::cin/std::cout работать а со строками string
... << RSDN@Home 1.1.0 stable >>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.