Re: 16-ная система
От: Sm0ke Россия ksi
Дата: 21.06.06 11:19
Оценка:
Здравствуйте, Grim, Вы писали:

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


#include <stdlib.h>
#include <iostream>
void main()
{
  int num;
  std::cin >> num;
  char buf[40];
  _itoa_s(num, buf, 40, 16);
  std::cout << std::endl << buf << std::endl;
}
Re[5]: 16-ная система
От: CreatorCray  
Дата: 21.06.06 11:38
Оценка:
Здравствуйте, ArtDenis, Вы писали:

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

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

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

По мне так препод хочет увидеть реализацию преобразования. И ему не покатит использование готовой реализации.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: 16-ная система
От: CreatorCray  
Дата: 21.06.06 11:38
Оценка: +2
Здравствуйте, Алексей Одинцов, Вы писали:

АО>Здравствуйте, LaptevVV, Вы писали:

LVV>>Я б поставил трояк
LVV>>Это решение проблемы наипростейшим способом. Значит — соображает хоть что-то!
АО>стимулируете к неиспользованию включенных в современные средства стандартных возможностей?? %)))

АО>я бы даже такое задание не дал... как впрочем не дал бы и заданий аля "написать бабль сорт" или что ужасней "написать qsort" — нафих???

Чтоб знали и понимали как это все работает.
АО> надо стимулировать к использованию std::sort, а не заставлять людей понапрасну мучацца. если бы у меня работник написал сортировкую массива с использованием своей функции-сортировки бабль сортом, я бы его уволил нахрен тут же...
даа, хреновый вы руководитель. В некоторых случаях бабл гораздо быстрее std::sort-а. И если использование баблсорта оправдано — то нет никакой причины бухтеть на исполнителя.

АО>задания надо давать соответствующие... ну где щас понадобится опыт в написании dec2hex? времена ASM канули в прошлое.

Вот и растет поколение, у которого шаг в сторону — и капут, приехали. Алгоритмы не знают, знают только как ими пользоваться.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[2]: 16-ная система
От: CreatorCray  
Дата: 21.06.06 11:52
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>
А>...
А>


Среди всех теоретиков нашелся таки один практик. Решпект. Unsafe (как это стало тут модно говорить), зато по теме.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[6]: 16-ная система
От: Vamp Россия  
Дата: 21.06.06 12:24
Оценка:
CC>даа, хреновый вы руководитель. В некоторых случаях бабл гораздо быстрее std::sort-а. И если использование баблсорта оправдано — то нет никакой причины бухтеть на исполнителя.
А мне интересно, в каких случах бабл быстрее q-sort?
Да здравствует мыло душистое и веревка пушистая.
Re[7]: 16-ная система
От: CreatorCray  
Дата: 21.06.06 12:39
Оценка:
Здравствуйте, Vamp, Вы писали:

CC>>даа, хреновый вы руководитель. В некоторых случаях бабл гораздо быстрее std::sort-а. И если использование баблсорта оправдано — то нет никакой причины бухтеть на исполнителя.

V>А мне интересно, в каких случах бабл быстрее q-sort?
Когда надо досортировать почти отсортированные данные.
У нас применяется в проекте — по результатам тестов замена std::sort на рукописный бабл дала заметный прирост.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: правильный вариант
От: pullover  
Дата: 21.06.06 12:39
Оценка:
std::string Dec2Hex(int n)
{
    if (!n)
        return "0";

    const char* pszDict = "0123456789ABCDEF";

    std::string strRes;
    for (; n > 0; n >>= 4)
        strRes = pszDict[n & 0xF] + strRes;

    return strRes;
}
Re[3]: 16-ная система
От: MShura  
Дата: 21.06.06 12:42
Оценка:
А>>//const char hexArr[16] = "0123456789ABCDEF";
V>/*Зачем выполнять копирование? И тем более прописывать размер массива - пусть компилятор работает за нас!*/
V>const char* const = "0123456789ABCDEF";/ccode]


Строка [ccode]
const char hexArr[16] = "0123456789ABCDEF";


Объявляет именованную/инициализированную область памяти размером 16 байт и помещает её в секцию с аттрибутами read-only.

Строка
const char* const = "0123456789ABCDEF";


Объявляет неименованную область памяти размером 17 байт и помещает её в секцию с аттрибутами read-only
Кроме того заводится глобальная переменная 4 байта, которая инициализируется адресом безимянной области и помещается в секцию read-write. Вы можете изменить переменную const и тогда безимянная область памяти станет утерянной.

имхо первый вариант существенно лучше.
Re[8]: 16-ная система
От: Vamp Россия  
Дата: 21.06.06 12:48
Оценка:
CC>Когда надо досортировать почти отсортированные данные.
CC>У нас применяется в проекте — по результатам тестов замена std::sort на рукописный бабл дала заметный прирост.
На первый взгляд не очевидно — бабл как делал n сравнений на каждый проход, так и делает. От того, что массив уже отсортирован, вроде ничего изменяться не должно... если только операция собственно копирования значений не слишком долгая.
Да здравствует мыло душистое и веревка пушистая.
Re[2]: 16-ная система
От: saproj  
Дата: 21.06.06 12:49
Оценка:
Здравствуйте, Sm0ke, Вы писали:

У человека зачет прошел уже 2.5 года назад.
Re[4]: 16-ная система
От: Vamp Россия  
Дата: 21.06.06 12:49
Оценка:
MS>.... Вы можете изменить переменную const

Это как, интересно?
Да здравствует мыло душистое и веревка пушистая.
Re[5]: 16-ная система
От: MShura  
Дата: 21.06.06 13:14
Оценка:
MS>>.... Вы можете изменить переменную const

V>Это как, интересно?


Ту ошибку которую вы совершили в коде

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


Можно трактовать как

const char* hexArr = "0123456789ABCDEF";


или как

const char* const hexArr = "0123456789ABCDEF";


Я трактовал Вашу ошибку как первый вариант.
Имя переменной конечно не может быть const, но поскольку в оригинальном сообщении вообще нет имени, в моем предложении которое вы цитировали под "переменной const" следует читать "переменную которая должна стоять на месте const"
Re[9]: 16-ная система
От: CreatorCray  
Дата: 21.06.06 13:32
Оценка:
Здравствуйте, Vamp, Вы писали:

CC>>Когда надо досортировать почти отсортированные данные.

CC>>У нас применяется в проекте — по результатам тестов замена std::sort на рукописный бабл дала заметный прирост.
V>На первый взгляд не очевидно — бабл как делал n сравнений на каждый проход, так и делает. От того, что массив уже отсортирован, вроде ничего изменяться не должно... если только операция собственно копирования значений не слишком долгая.
Прирост получается на достаточно специфическом наборе данных. Более точно не скажу — нету сення того чела который тот код писал. Юзается при отрисовке большого кол-ва прозрачных частиц.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[9]: 16-ная система
От: Tumypka  
Дата: 22.06.06 14:26
Оценка: 1 (1)
Здравствуйте, Vamp, Вы писали:

CC>>Когда надо досортировать почти отсортированные данные.

CC>>У нас применяется в проекте — по результатам тестов замена std::sort на рукописный бабл дала заметный прирост.
V>На первый взгляд не очевидно — бабл как делал n сравнений на каждый проход, так и делает. От того, что массив уже отсортирован, вроде ничего изменяться не должно... если только операция собственно копирования значений не слишком долгая.

quick sort — далеко не всегда идеальный вариант. Другой пример его медленной работы — сортировка массива состоящего из больших отсортированных кусков. Смотрите внимательней на его алгоритм.
Хотя за использование bubble sort я бы всё-таки уволил (может и не уволил бы, но за нежелание помимо quicksort'a и бабла вспомнить какой-нибудь ещё алгоритм наказать следует).
Для маленьких массивов можно применять insertion sort (развитие бабла), для тех что покрупнее — либо сортировать quick sort'ом наоборот (то есть именить функцию сравнения на обратную), либо использовать какой-то другой алгоритм. Либо вообще всегда использовать алгоритмы с фиксированной сложностью, например — heapsort.

Когда я имел дело с данными в несколько миллионов елементов, простой quick sort проседал на полтора часа (а может полчаса, точно не помню, но очень на много); heapsort ~ 20 секунд. Переделанный quicksort ~15 секунд.

И именно поэтому алгоритмы всё-таки надо изучать.

Тимур
Re[10]: 16-ная система
От: Vamp Россия  
Дата: 22.06.06 14:38
Оценка:
С тем, что Вы написали, спорить не приходится. Я спрашивал именно о пузырьке и как он может быть быстрее q-сорта.
Да здравствует мыло душистое и веревка пушистая.
Re[3]: 16-ная система
От: __SPIRIT__ Россия  
Дата: 29.06.06 11:56
Оценка: :)
Здравствуйте, saproj, Вы писали:

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


S>У человека зачет прошел уже 2.5 года назад.


Похоже писалось на случай если допса у человека затянулась
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: 16-ная система
От: Evgeniy13 Россия  
Дата: 03.07.06 15:15
Оценка: +1
к нам бы тебя даже на работу не взяли бы... не то, чтобы увольнять...
Не все в этом мире можно выразить с помощью нулей и единиц...
Re[11]: 16-ная система
От: cures Россия cures.narod.ru
Дата: 04.07.06 16:43
Оценка: 2 (1) +1
V>С тем, что Вы написали, спорить не приходится. Я спрашивал именно о пузырьке и как он может быть быстрее q-сорта.

Стандартный вариант пузырька делает не жёстко заданные n-1 проходов, а выполняет проходы до тех пор, пока делается хотя бы одна перестановка. Если данные уже почти отсортированы, т.е. все элементы находятся от своих правильных мест не далее чем на k позиций, то он потребует порядка k*n операций, а не n*log(n), как квик в лучшем случае (и в среднем), а хип — в худшем. Соответственно, если n~=2^25, а k~=5, то получим выигрыш в 5 раз.
Re[4]: 16-ная система
От: Аноним  
Дата: 05.07.06 05:13
Оценка:
Здравствуйте, Shroo, Вы писали:


S> Приношу я... написал клиента... интерфейс командной строки, коннектится, использую ODBC API и дальше можно туда любой sql писать... супер, мне понравилось.. И что вы думаете... отправили меня как миленького назад, не объяснив даже почему... Вот и стремись после этого к знаниям..


Для Оракла лучше OCI пользовать, уж очень ODBC драйвера к нему кривы и убоги. А OCI всвязке с OTL (Oracle Template Library от нашего соотечественника) это просто самолёт!
Re[2]: 16-ная система
От: Stoune  
Дата: 20.10.06 14:49
Оценка:
Здравствуйте, folk, Вы писали:

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


G>> ........ Сжальтесь, напишите пожалуйста! Завтра зачёт!


F>
F>#include <iostream>

F>int main()
F>{
..............
F>  std::cout << std::hex << num << std::endl;
..................
F>}
F>


Я обычно уточняю что функцию перевода студент должен сделать самостоятельно.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.