Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт!
Здравствуйте, Grim, Вы писали:
G> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт!
#include <iostream>
int main()
{
int num;
std::cin >> std::dec >> num;
std::cout << std::hex << num << std::endl;
return 0;
}
Здравствуйте, 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;
}
Здравствуйте, folk, Вы писали:
G>> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт! F>
Здравствуйте, ArtDenis, Вы писали:
AD>Здравствуйте, folk, Вы писали:
G>>> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт! F>>
Здравствуйте, Шахтер, Вы писали: AD>>Если преподаватель ожидает увидеть программу размером в десяток листов распечатки, то за такую он точно двояк поставит. Ш>Странно, мне всегда казалось, что чем короче программа, тем лучше. Меньше слов (ключевых), больше дела!
Это с точки зрения программиста. А сточки зрения преподавателя — чем больше программа, тем больше знаний у студента
Здравствуйте, ArtDenis, Вы писали:
AD>Здравствуйте, Шахтер, Вы писали: AD>>>Если преподаватель ожидает увидеть программу размером в десяток листов распечатки, то за такую он точно двояк поставит. Ш>>Странно, мне всегда казалось, что чем короче программа, тем лучше. Меньше слов (ключевых), больше дела!
AD>Это с точки зрения программиста. А сточки зрения преподавателя — чем больше программа, тем больше знаний у студента
Разве больше? По-моему, это какой-то странный преподаватель!
Здравствуйте, Шахтер, Вы писали:
AD>>Это с точки зрения программиста. А сточки зрения преподавателя — чем больше программа, тем больше знаний у студента Ш>Разве больше? По-моему, это какой-то странный преподаватель!
Преподаватели разные бывают. Иногда и такие попадаются.
Здравствуйте, ArtDenis, Вы писали:
AD>Здравствуйте, Шахтер, Вы писали:
AD>>>Это с точки зрения программиста. А сточки зрения преподавателя — чем больше программа, тем больше знаний у студента Ш>>Разве больше? По-моему, это какой-то странный преподаватель!
AD>Преподаватели разные бывают. Иногда и такие попадаются.
В таком случае данную задачу надо как минимум реализовать с использование DirectX, и не забыв про такие модные вещи как SOAP+XML, COM/DCOM, CORBA. Вот это вот тогда точно круто получится.
А>// для 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 с минусом. Увы.
А>
Здравствуйте, Grim, Вы писали:
G> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт!
А как хранится десятичное число? В двоичном виде? Или в виде строки?
АШ>Что-то вас занесло. Причем здесь sizeof(int)? Деление на 16 и есть сдвиг вправо на 4. Конечно. Вошел в раж, это называется. Переклинило, я просто как раз на работе смотрел на размер int и с кодом разбирался, в котором используется фиксированное значение.
Здравствуйте, ArtDenis, Вы писали:
G>>> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт! F>>
AD>Если преподаватель ожидает увидеть программу размером в десяток листов распечатки, то за такую он точно двояк поставит.
Я б поставил трояк
Это решение проблемы наипростейшим способом. Значит — соображает хоть что-то!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Grim, Вы писали:
G> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт!
Здравствуйте, Flamer, Вы писали:
F>Под С++ Билдером это ну буквально одна строка F>
F>String str = IntToHex(num,8);
F>
На голом Це тоже в одну строку
// эти строки - за пределами собственно решенияchar strdec[] = "3735928559";
char strhex[11]; // "0xDEADBEEF\0"
// а вот и оно
sprintf(strhex, "0x%08X", atoi(strdec));
Здравствуйте, ArtDenis, Вы писали:
AD>Здравствуйте, folk, Вы писали:
G>>> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт! F>>
AD>Если преподаватель ожидает увидеть программу размером в десяток листов распечатки, то за такую он точно двояк поставит.
Вот-вот... вот что можно сказать на такой случай:
неделю назад сдаю курсовой... задача стоит так: "написать клиента к орклу, чтобы данные из заданной базы выбирал"
Всем выдали делфёвый компанент из серии TConnectToDataBaseVeryEasyAndDontThinkAtAll и сказали — вот так можно... Ну, народ написал все это на делфяке за 30 минут и сдал.
Приношу я... написал клиента... интерфейс командной строки, коннектится, использую ODBC API и дальше можно туда любой sql писать... супер, мне понравилось.. И что вы думаете... отправили меня как миленького назад, не объяснив даже почему... Вот и стремись после этого к знаниям..
Здравствуйте, ArtDenis, Вы писали:
AD>Здравствуйте, Шахтер, Вы писали: AD>>>Если преподаватель ожидает увидеть программу размером в десяток листов распечатки, то за такую он точно двояк поставит. Ш>>Странно, мне всегда казалось, что чем короче программа, тем лучше. Меньше слов (ключевых), больше дела!
AD>Это с точки зрения программиста. А сточки зрения преподавателя — чем больше программа, тем больше знаний у студента
100% даю, что зарубят stl ... как студент говорю... у меня такое сто раз было... вот еще помню потянуло меня на GDI+ в прошлом семестре, когда все обычном api писали... эх... зарубили... что это за фигня сказали..
Здравствуйте, LaptevVV, Вы писали: LVV>Я б поставил трояк LVV>Это решение проблемы наипростейшим способом. Значит — соображает хоть что-то!
стимулируете к неиспользованию включенных в современные средства стандартных возможностей?? %)))
я бы даже такое задание не дал... как впрочем не дал бы и заданий аля "написать бабль сорт" или что ужасней "написать qsort" — нафих??? надо стимулировать к использованию std::sort, а не заставлять людей понапрасну мучацца. если бы у меня работник написал сортировкую массива с использованием своей функции-сортировки бабль сортом, я бы его уволил нахрен тут же...
задания надо давать соответствующие... ну где щас понадобится опыт в написании dec2hex? времена ASM канули в прошлое.
я бы за подобное решение поставил 5. тока это должно было бы быть не с std::cin/std::cout работать а со строками string
Здравствуйте, LaptevVV, Вы писали:
LVV>Я б поставил трояк LVV>Это решение проблемы наипростейшим способом. Значит — соображает хоть что-то!
Я бы пять поставил бы... Ну, коенчно, если бы это была бы одна работа на поток (а не у каждого вторго) ... Объясняю почему: прежде чем я (речь лично обо мне) знал о том, что это можно сделать средствами stl я перелопатил столько кода, что в состоянии написать это и на чистом с... Вывод: человек, докопавшийся до такого способа в состоянии решить эту задачу и другим способом.
Только не надо кидать в меня помидорами, я понимаю, что бывает море исключений из этого правила, но задача преподавателя и есть отсеивать эти исключения... вот ...my humble opinion
Здравствуйте, Алексей Одинцов, Вы писали:
АО>Здравствуйте, LaptevVV, Вы писали: LVV>>Я б поставил трояк LVV>>Это решение проблемы наипростейшим способом. Значит — соображает хоть что-то! АО>стимулируете к неиспользованию включенных в современные средства стандартных возможностей?? %)))
АО>я бы даже такое задание не дал... как впрочем не дал бы и заданий аля "написать бабль сорт" или что ужасней "написать qsort" — нафих??? надо стимулировать к использованию std::sort, а не заставлять людей понапрасну мучацца. если бы у меня работник написал сортировкую массива с использованием своей функции-сортировки бабль сортом, я бы его уволил нахрен тут же...
Работника и я б уволил. А тут студент, который и так ни хрена не знает, да еще и на халяву проехать за чужой счет хочет. АО>задания надо давать соответствующие... ну где щас понадобится опыт в написании dec2hex? времена ASM канули в прошлое.
Это смотря где. Мой друг в питере уже 30 лет пишет бортовые системы. АО>я бы за подобное решение поставил 5. тока это должно было бы быть не с std::cin/std::cout работать а со строками string
Да, и под таким углом можно посмотреть.
Дело явно не в алгоритме перевода. Такие задания даются начинающим студентам, чтоб он освоил целочисленные операции и циклы. Ну и с системами счисления на практике чуть-чуть познакомиться. Это просто развите мозгов. Судя по вопросу, товарищ не знает ничего, то есть АБСОЛЮТНО ничего.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Shroo, Вы писали:
S>Здравствуйте, LaptevVV, Вы писали:
LVV>>Я б поставил трояк LVV>>Это решение проблемы наипростейшим способом. Значит — соображает хоть что-то!
S> Я бы пять поставил бы... Ну, коенчно, если бы это была бы одна работа на поток (а не у каждого вторго) ... Объясняю почему: прежде чем я (речь лично обо мне) знал о том, что это можно сделать средствами stl я перелопатил столько кода, что в состоянии написать это и на чистом с... Вывод: человек, докопавшийся до такого способа в состоянии решить эту задачу и другим способом. S> Только не надо кидать в меня помидорами, я понимаю, что бывает море исключений из этого правила, но задача преподавателя и есть отсеивать эти исключения... вот ...my humble opinion
Не больше 3-х не заслуживает. Обращаю Ваше внимание на ваши же слова:
прежде чем я (речь лично обо мне) знал о том, что это можно сделать средствами stl я перелопатил столько кода, что в состоянии написать это и на чистом с...
Судя по вопросу, товарищ себя не утруждал такой работой. И хочет быстренько на чужом горбу в рай попасть.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Shroo, Вы писали:
S> Вот-вот... вот что можно сказать на такой случай: S> неделю назад сдаю курсовой... задача стоит так: "написать клиента к орклу, чтобы данные из заданной базы выбирал" S> Всем выдали делфёвый компанент из серии TConnectToDataBaseVeryEasyAndDontThinkAtAll и сказали — вот так можно... Ну, народ написал все это на делфяке за 30 минут и сдал. S> Приношу я... написал клиента... интерфейс командной строки, коннектится, использую ODBC API и дальше можно туда любой sql писать... супер, мне понравилось.. И что вы думаете... отправили меня как миленького назад, не объяснив даже почему... Вот и стремись после этого к знаниям..
Переходи ко мне на кафедру — переведу на индивидуальный план и дам реальную работу.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали:
LVV>Не больше 3-х не заслуживает. Обращаю Ваше внимание на ваши же слова: LVV>
LVV>прежде чем я (речь лично обо мне) знал о том, что это можно сделать средствами stl я перелопатил столько кода, что в состоянии написать это и на чистом с...
LVV>Судя по вопросу, товарищ себя не утруждал такой работой. И хочет быстренько на чужом горбу в рай попасть.
Согласен! Вот я ж и писал, что таких надо отсеить.. А того, кто stl долбил — надо пропускать... кажется, сразу к stl никто не подходит... сначала на c/c++ пишут... хотя... может сейчас все по-другому...
Здравствуйте, Shroo, Вы писали:
S> Согласен! Вот я ж и писал, что таких надо отсеить.. А того, кто stl долбил — надо пропускать... кажется, сразу к stl никто не подходит... сначала на c/c++ пишут... хотя... может сейчас все по-другому...
Это как учить. Мы вот сейчас уже вплотную подошли к преподаванию додиеза, поэтому и С++ можем начинать почти с контейнеров вместо массивов. Надо только задания переработать. А то они уж больно упрощаются при использовании стандартной библиотеки. Переработка требует времени.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали: LVV>Дело явно не в алгоритме перевода. Такие задания даются начинающим студентам, чтоб он освоил целочисленные операции и циклы. Ну и с системами счисления на практике чуть-чуть познакомиться. Это просто развите мозгов. Судя по вопросу, товарищ не знает ничего, то есть АБСОЛЮТНО ничего.
и всё-таки, я бы дал какое-нить другое задание... просто ко всем заданиям приложил бы простенькую иерархию классов, которую при выполнении надо было бы использовать as is.. например эта система — случайно генерируемый граф, и в нем надо посчитать длину пути от узла 1 до узла 10 — тоже, целочисленные операции и циклы...
или другое задание — сделать трансформацию массива vector<int> по заданной функции. по алгоритмической сложности — то же самое, зато поощряется использование стандартных средств...
а знает он или не знает — всё равно будет понятно при сдаче задания... только сделать при этом уже ничего нельзя (в смысле обучения). только уже оценку выставлять.
Здравствуйте, LaptevVV, Вы писали: LVV>Это как учить. Мы вот сейчас уже вплотную подошли к преподаванию додиеза, поэтому и С++ можем начинать почти с контейнеров вместо массивов. Надо только задания переработать. А то они уж больно упрощаются при использовании стандартной библиотеки. Переработка требует времени.
конечно требует... хорошо хоть перерабатываете
Здравствуйте, What, Вы писали:
W>>> Посчитать сумму чисел в файле. В теле функции main должна быть 1 строка. W> В догонку: W> Я бы даже сказал 1 выражение, чтобы нельзя было сделать так: W> <...>
Все равно можно будет сделать так:
void f()
{
// . . .
}
int main()
{
f();
}
Posted via RSDN NNTP Server 1.7 "Bedlam"
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Здравствуйте, What, Вы писали:
W>>> Посчитать сумму чисел в файле. В теле функции main должна быть 1 строка. W>Строка в его понимании — последовательность символов до ;
Здравствуйте, Алексей Одинцов, Вы писали:
АО>Здравствуйте, LaptevVV, Вы писали: LVV>>Дело явно не в алгоритме перевода. Такие задания даются начинающим студентам, чтоб он освоил целочисленные операции и циклы. Ну и с системами счисления на практике чуть-чуть познакомиться. Это просто развите мозгов. Судя по вопросу, товарищ не знает ничего, то есть АБСОЛЮТНО ничего. АО>и всё-таки, я бы дал какое-нить другое задание... просто ко всем заданиям приложил бы простенькую иерархию классов, которую при выполнении надо было бы использовать as is.. например эта система — случайно генерируемый граф, и в нем надо посчитать длину пути от узла 1 до узла 10 — тоже, целочисленные операции и циклы...
Это — во втором семестре. И по другому предмету — дискретная математика. Там графы генерируются. А пока — рановато. Как он классы будет использовать, если циклы не умеет писать?
Математику тоже постепенно изучают — сначала алгебру и анализ, а потом функциональный анализ и дифференциальные уравнения. АО>или другое задание — сделать трансформацию массива vector<int> по заданной функции. по алгоритмической сложности — то же самое, зато поощряется использование стандартных средств...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, What, Вы писали:
W>>>> Посчитать сумму чисел в файле. В теле функции main должна быть 1 строка. W>>Строка в его понимании — последовательность символов до ;
К>Никто не мешает использовать оператор ,
К>
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, What, Вы писали:
W>>>> Посчитать сумму чисел в файле. В теле функции main должна быть 1 строка. W>>Строка в его понимании — последовательность символов до ;
К>Никто не мешает использовать оператор ,
К>
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, What, Вы писали:
W>>>> Посчитать сумму чисел в файле. В теле функции main должна быть 1 строка. W>>Строка в его понимании — последовательность символов до ;
К>Никто не мешает использовать оператор ,
К>
Здравствуйте, What, Вы писали:
W>>>>> Посчитать сумму чисел в файле. В теле функции main должна быть 1 строка. W>>>Строка в его понимании — последовательность символов до ; W> <...> W>с STL всё очень просто и красиво: W>
По-моему, Маразм.
Мне вот интересно, а что будет, если в файле миллион чисел типа 1234567890987654321 ?
А если где-то случайно затесалась буквочка ?
В чем вообще смысл подобных задач? Научиться комбинировать итераторы с алгоритмами?
Здравствуйте, Grim, Вы писали:
G> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт!
Здравствуйте, ArtDenis, Вы писали:
AD>Здравствуйте, Шахтер, Вы писали: AD>>>Если преподаватель ожидает увидеть программу размером в десяток листов распечатки, то за такую он точно двояк поставит. Ш>>Странно, мне всегда казалось, что чем короче программа, тем лучше. Меньше слов (ключевых), больше дела!
AD>Это с точки зрения программиста. А сточки зрения преподавателя — чем больше программа, тем больше знаний у студента
По мне так препод хочет увидеть реализацию преобразования. И ему не покатит использование готовой реализации.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Алексей Одинцов, Вы писали:
АО>Здравствуйте, LaptevVV, Вы писали: LVV>>Я б поставил трояк LVV>>Это решение проблемы наипростейшим способом. Значит — соображает хоть что-то! АО>стимулируете к неиспользованию включенных в современные средства стандартных возможностей?? %)))
АО>я бы даже такое задание не дал... как впрочем не дал бы и заданий аля "написать бабль сорт" или что ужасней "написать qsort" — нафих???
Чтоб знали и понимали как это все работает. АО> надо стимулировать к использованию std::sort, а не заставлять людей понапрасну мучацца. если бы у меня работник написал сортировкую массива с использованием своей функции-сортировки бабль сортом, я бы его уволил нахрен тут же...
даа, хреновый вы руководитель. В некоторых случаях бабл гораздо быстрее std::sort-а. И если использование баблсорта оправдано — то нет никакой причины бухтеть на исполнителя.
АО>задания надо давать соответствующие... ну где щас понадобится опыт в написании dec2hex? времена ASM канули в прошлое.
Вот и растет поколение, у которого шаг в сторону — и капут, приехали. Алгоритмы не знают, знают только как ими пользоваться.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
CC>даа, хреновый вы руководитель. В некоторых случаях бабл гораздо быстрее std::sort-а. И если использование баблсорта оправдано — то нет никакой причины бухтеть на исполнителя.
А мне интересно, в каких случах бабл быстрее q-sort?
Здравствуйте, Vamp, Вы писали:
CC>>даа, хреновый вы руководитель. В некоторых случаях бабл гораздо быстрее std::sort-а. И если использование баблсорта оправдано — то нет никакой причины бухтеть на исполнителя. V>А мне интересно, в каких случах бабл быстрее q-sort?
Когда надо досортировать почти отсортированные данные.
У нас применяется в проекте — по результатам тестов замена std::sort на рукописный бабл дала заметный прирост.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
А>>//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 и тогда безимянная область памяти станет утерянной.
CC>Когда надо досортировать почти отсортированные данные. CC>У нас применяется в проекте — по результатам тестов замена std::sort на рукописный бабл дала заметный прирост.
На первый взгляд не очевидно — бабл как делал n сравнений на каждый проход, так и делает. От того, что массив уже отсортирован, вроде ничего изменяться не должно... если только операция собственно копирования значений не слишком долгая.
MS>>.... Вы можете изменить переменную const
V>Это как, интересно?
Ту ошибку которую вы совершили в коде
А>//const char hexArr[16] = "0123456789ABCDEF";
/*Зачем выполнять копирование? И тем более прописывать размер массива - пусть компилятор работает за нас!*/const char* const = "0123456789ABCDEF";
Можно трактовать как
const char* hexArr = "0123456789ABCDEF";
или как
const char* const hexArr = "0123456789ABCDEF";
Я трактовал Вашу ошибку как первый вариант.
Имя переменной конечно не может быть const, но поскольку в оригинальном сообщении вообще нет имени, в моем предложении которое вы цитировали под "переменной const" следует читать "переменную которая должна стоять на месте const"
Здравствуйте, Vamp, Вы писали:
CC>>Когда надо досортировать почти отсортированные данные. CC>>У нас применяется в проекте — по результатам тестов замена std::sort на рукописный бабл дала заметный прирост. V>На первый взгляд не очевидно — бабл как делал n сравнений на каждый проход, так и делает. От того, что массив уже отсортирован, вроде ничего изменяться не должно... если только операция собственно копирования значений не слишком долгая.
Прирост получается на достаточно специфическом наборе данных. Более точно не скажу — нету сення того чела который тот код писал. Юзается при отрисовке большого кол-ва прозрачных частиц.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Vamp, Вы писали:
CC>>Когда надо досортировать почти отсортированные данные. CC>>У нас применяется в проекте — по результатам тестов замена std::sort на рукописный бабл дала заметный прирост. V>На первый взгляд не очевидно — бабл как делал n сравнений на каждый проход, так и делает. От того, что массив уже отсортирован, вроде ничего изменяться не должно... если только операция собственно копирования значений не слишком долгая.
quick sort — далеко не всегда идеальный вариант. Другой пример его медленной работы — сортировка массива состоящего из больших отсортированных кусков. Смотрите внимательней на его алгоритм.
Хотя за использование bubble sort я бы всё-таки уволил (может и не уволил бы, но за нежелание помимо quicksort'a и бабла вспомнить какой-нибудь ещё алгоритм наказать следует).
Для маленьких массивов можно применять insertion sort (развитие бабла), для тех что покрупнее — либо сортировать quick sort'ом наоборот (то есть именить функцию сравнения на обратную), либо использовать какой-то другой алгоритм. Либо вообще всегда использовать алгоритмы с фиксированной сложностью, например — heapsort.
Когда я имел дело с данными в несколько миллионов елементов, простой quick sort проседал на полтора часа (а может полчаса, точно не помню, но очень на много); heapsort ~ 20 секунд. Переделанный quicksort ~15 секунд.
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 от нашего соотечественника) это просто самолёт!
Здравствуйте, Алексей Одинцов, Вы писали:
АО>если бы у меня работник написал сортировкую массива с использованием своей функции-сортировки бабль сортом, я бы его уволил нахрен тут же...
А что бы ты сделал с сотрудником, который не может написать функцию dec2hex()?
Здравствуйте, What, Вы писали:
W>Всё в принципе нормально, но в теле for нужно ещё открыть файл и где-нибудь его закрыть. А с STL всё очень просто и красиво:
...и неправильно:
W>
Change: In C++, when initializing an array of character with a string, the number of characters in the string (including the terminating ’\0’) must not exceed the number of elements in the array. In C, an array can be initialized with a string even if the array is not large enough to contain the string terminating ’\0’ Example:
char array[4] = "abcd"; // valid C, invalid C++
Rationale: When these non-terminated arrays are manipulated by standard string routines, there is potential for major catastrophe. Effect on original feature: Deletion of semantically well-defined feature. Difficulty of converting: Semantic transformation. The arrays must be declared one element bigger to contain the string terminating ’\0’. How widely used: Seldom. This style of array initialization is seen as poor coding style.