- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
//В H:
//...
#define Addr Byte
//...
//В СРР:
//...
bool Eraxcs(Addr b)
{
assert(sizeof(b)>0);
//...
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+162
//В H:
//...
#define Addr Byte
//...
//В СРР:
//...
bool Eraxcs(Addr b)
{
assert(sizeof(b)>0);
//...
+157
TForm1 *Form1;
//----------------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//- Буква А ---------------------------------------------------------------------
void __fastcall TForm1::Label1Click(TObject *Sender)
{
Image1->Picture->LoadFromFile("PICTURE/1.bmp");
PlaySound("SOUND/1.wav",0,SND_ASYNC);
}
//--Буква Б-----------------------------------------------------------------------
void __fastcall TForm1::Label2Click(TObject *Sender)
{
Image1->Picture->LoadFromFile("PICTURE/2.bmp");
PlaySound("SOUND/2.wav",0,SND_ASYNC);
}
//--Буква В-------------------------------------------------------------------------
void __fastcall TForm1::Label3Click(TObject *Sender)
{
Image1->Picture->LoadFromFile("PICTURE/3.bmp");
PlaySound("SOUND/3.wav",0,SND_ASYNC);
}
....
и т.д.
//--Буква Я-------------------------------------------------------------------------
void __fastcall TForm1::Label33Click(TObject *Sender)
{
Image1->Picture->LoadFromFile("PICTURE/33.bmp");
PlaySound("SOUND/33.wav",0,SND_ASYNC);
}
//---------------------------------------------------------------------------
Пример из обучающей статьи по с++, где от а до я выресовываются буквы.
+163
void SomeMethod(void) {
const int a, b;
// ...
struct {
const int a, &b;
lambda(const int a, const int &b) : a(a), b(b) {}
// весь огород ради operator()
const int operator()(const int x) { return SomeCalculation(a, b, x); }
} lambda(a, b);
//...
someContainer.SomeGroupOperation(lambda);
a++; b++;
someContainer.SomeGroupOperation(lambda);
// ...
};
Быстрее бы мы перевели все проекты в нашем отделе под новый стандарт С++0х, а то огородная реализация лямбд по всему проекту уже надоела.
+147
int main()
{
setlocale(LC_ALL, "Russian");
int chisl,znam,cel;
Fraction fA,fB,fC;
cout<<"Введите fA в виде двух чисел\n";cin>>fA.chisl>>fA.znam;
cout<<"Введите fB в виде двух чисел\n";cin>>fB.chisl>>fB.znam;
cout<<"Введите целое число\n";cin>>cel;
if ((fA.znam!=0)&&(fB.znam!=0)&&(cel!=0))
{
fC=fA+fB;
fC.getFraction(chisl,znam);
if((znam!=1)&&(chisl!=0))
cout<<"Сумма: "<< chisl << "/" << znam <<'\n';
else
cout<<"Сумма: "<< chisl <<'\n';
fC=fA-fB;
fC.getFraction(chisl,znam);
if ((znam!=1)&&(chisl!=0))
cout<<"Разность: "<< chisl << "/" << znam <<'\n';
else
cout<<"Разность: "<< chisl <<'\n';
fC=fA*fB;
fC.getFraction(chisl,znam);
if ((znam!=1)&&(chisl!=0))
cout<<"Произведение: "<< chisl << "/" << znam <<'\n';
else
cout<<"Произведение: "<< chisl <<'\n';
fC=fA/fB;
fC.getFraction(chisl,znam);
if((znam!=1)&&(chisl!=0)&&(znam!=0))
cout<<"Частное: "<< chisl << "/" << znam <<'\n';
else if(znam==0)
cout<<"Частного дробей не существует\n";
else if(znam==1)
cout<<"Частное: "<< chisl <<'\n';
else
cout<<"Частное: 0\n";
fC=fA+cel;
fC.getFraction(chisl,znam);
if((znam!=1)&&(chisl!=0))
cout<<"Сумма первой дроби и целого числа: "<< chisl << "/" << znam <<'\n';
else
cout<<"Сумма первой дроби и целого числа: "<< chisl <<'\n';
fC=fA-cel;
fC.getFraction(chisl,znam);
if((znam!=1)&&(chisl!=0))
cout<<"Разность первой дроби и целого числа: "<< chisl << "/" << znam <<'\n';
else
cout<<"Разность первой дроби и целого числа: "<< chisl <<'\n';
fC=fA*cel;
fC.getFraction(chisl,znam);
if((znam!=1)&&(chisl!=0))
cout<<"Произведение первой дроби и целого числа: "<< chisl << "/" << znam <<'\n';
else
cout<<"Произведение первой дроби и целого числа: "<< chisl <<'\n';
fC=fA/cel;
fC.getFraction(chisl,znam);
if ((znam!=1)&&(chisl!=0))
cout<<"Частное первой дроби и целого числа: "<< chisl << "/" << znam <<'\n';
else if(znam==1)
cout<<"Частное первой дроби и целого числа: "<< chisl <<'\n';
else
cout<<"Частное первой дроби и целого числа: 0\n";
fC=fB+cel;
fC.getFraction(chisl,znam);
if((znam!=1)&&(chisl!=0))
cout<<"Сумма второй дроби и целого числа: "<< chisl << "/" << znam <<'\n';
else
cout<<"Сумма второй дроби и целого числа: "<< chisl <<'\n';
fC=fB-cel;
fC.getFraction(chisl,znam);
if((znam!=1)&&(chisl!=0))
cout<<"Разность второй дроби и целого числа: "<< chisl << "/" << znam <<'\n';
else
cout<<"Разность второй дроби и целого числа: "<< chisl <<'\n';
fC=fB*cel;
fC.getFraction(chisl,znam);
if((znam!=1)&&(chisl!=0))
cout<<"Произведение второй дроби и целого числа: "<< chisl << "/" << znam <<'\n';
else
cout<<"Произведение второй дроби и целого числа: "<< chisl <<'\n';
fC=fB/cel;
fC.getFraction(chisl,znam);
if ((znam!=1)&&(chisl!=0))
cout<<"Частное второй дроби и целого числа: "<< chisl << "/" << znam <<'\n';
else if(znam==1)
cout<<"Частное второй дроби и целого числа: "<< chisl <<'\n';
else
cout<<"Частное второй дроби и целого числа: 0\n";
fC=~fA;
fC.getFraction(chisl,znam);
if((znam!=1)&&(chisl!=0))
cout<<"Сокращенная дробь равна: "<< chisl << "/" << znam <<'\n';
else
cout<<"Сокращенная дробь равна: "<< chisl <<'\n';
}
else
cout<<"Знаменатель дроби или целое число равны нулю, поэтому дроби не существует"<<'\n';
return 0;
Задача. Определить класс натуральная дробь, объекты которого числитель и знаменатель. Надо перегрузить операторы сложения, вычитания, умножения, делания и сокращения дробей, а так же сложения, вычитания, умножения и деления дроби и целого числа. То есть калькулятор дробей фактически. Написал, как-то жестоко получилось. Добавлю сразу, чтобы не было лишних разговоров. Это не задание в универе, сессия закончилась, каникулы, это для интереса, смотрю то, что мы еще не проходили. Кажется условий слишком много, короче ведь можно сделать?
П.С. Прошу удалить код предыдущей программы, она на транслите и я не думаю что ее будет удобно читать.
+148
int main()
{
int chisl,znam,cel;
Fraction fA,fB,fC;
cout<<"Vvedite fA v vide dvux 4isel\n";cin>>fA.chisl>>fA.znam;
cout<<"Vvedite fB v vide dvux 4isel\n";cin>>fB.chisl>>fB.znam;
cout<<"Vvedite celoe chislo\n";cin>>cel;
if ((fA.znam!=0)&&(fB.znam!=0)&&(cel!=0))
{
fC=fA+fB;
fC.getFraction(chisl,znam);
if((znam!=1)&&(chisl!=0))
cout<<"Summa: "<< chisl << "/" << znam <<'\n';
else
cout<<"Summa: "<< chisl <<'\n';
fC=fA-fB;
fC.getFraction(chisl,znam);
if ((znam!=1)&&(chisl!=0))
cout<<"Raznost: "<< chisl << "/" << znam <<'\n';
else
cout<<"Raznost: "<< chisl <<'\n';
fC=fA*fB;
fC.getFraction(chisl,znam);
if ((znam!=1)&&(chisl!=0))
cout<<"Proizvedenie: "<< chisl << "/" << znam <<'\n';
else
cout<<"Proizvedenie: "<< chisl <<'\n';
fC=fA/fB;
fC.getFraction(chisl,znam);
if((znam!=1)&&(chisl!=0)&&(znam!=0))
cout<<"Chastnoe: "<< chisl << "/" << znam <<'\n';
else if(znam==0)
cout<<"Chastnogo drobei ne sushestvuet\n";
else
cout<<"Chastnoe: 0\n";
fC=fA+cel;
fC.getFraction(chisl,znam);
if((znam!=1)&&(chisl!=0))
cout<<"Summa 1 drobi i celogo 4isla: "<< chisl << "/" << znam <<'\n';
else
cout<<"Summa 1 drobi i celogo 4isla: "<< chisl <<'\n';
fC=fA-cel;
fC.getFraction(chisl,znam);
if((znam!=1)&&(chisl!=0))
cout<<"Raznost 1 drobi i celogo 4isla: "<< chisl << "/" << znam <<'\n';
else
cout<<"Raznost 1 drobi i celogo 4isla: "<< chisl <<'\n';
fC=fA*cel;
fC.getFraction(chisl,znam);
if((znam!=1)&&(chisl!=0))
cout<<"Proizvedenie 1 drobi i celogo 4isla: "<< chisl << "/" << znam <<'\n';
else
cout<<"Proizvedenie 1 drobi i celogo 4isla: "<< chisl <<'\n';
fC=fA/cel;
fC.getFraction(chisl,znam);
if ((znam!=1)&&(chisl!=0))
cout<<"Chastnoe 1 drobi i celogo 4isla: "<< chisl << "/" << znam <<'\n';
else
cout<<"Chastnoe 1 drobi i celogo 4isla: 0\n";
fC=fB+cel;
fC.getFraction(chisl,znam);
if((znam!=1)&&(chisl!=0))
cout<<"Summa 2 drobi i celogo 4isla: "<< chisl << "/" << znam <<'\n';
else
cout<<"Summa 2 drobi i celogo 4isla: "<< chisl <<'\n';
fC=fB-cel;
fC.getFraction(chisl,znam);
if((znam!=1)&&(chisl!=0))
cout<<"Raznost 2 drobi i celogo 4isla: "<< chisl << "/" << znam <<'\n';
else
cout<<"Raznost 2 drobi i celogo 4isla: "<< chisl <<'\n';
fC=fB*cel;
fC.getFraction(chisl,znam);
if((znam!=1)&&(chisl!=0))
cout<<"Proizvedenie 2 drobi i celogo 4isla: "<< chisl << "/" << znam <<'\n';
else
cout<<"Proizvedenie 2 drobi i celogo 4isla: "<< chisl <<'\n';
fC=fB/cel;
fC.getFraction(chisl,znam);
if ((znam!=1)&&(chisl!=0))
cout<<"Chastnoe 2 drobi i celogo 4isla: "<< chisl << "/" << znam <<'\n';
else
cout<<"Chastnoe 1 drobi i celogo 4isla: 0\n";
fC=~fA;
fC.getFraction(chisl,znam);
if((znam!=1)&&(chisl!=0))
cout<<"Sokrashennaya drob ravna: "<< chisl << "/" << znam <<'\n';
else
cout<<"Sokrashennaya drob ravna: "<< chisl <<'\n';
}
else
cout<<"Znamenatel drobi ili celoe chislo raven nulu, poetomu drobi net"<<'\n';
return 0;
}
Задача. Определить класс натуральная дробь, объекты которого числитель и знаменатель. Надо перегрузить операторы сложения, вычитания, умножения, делания и сокращения дробей, а так же сложения, вычитания, умножения и деления дроби и целого числа. То есть калькулятор дробей фактически. Написал, как-то жестоко получилось. Добавлю сразу, чтобы не было лишних разговоров. Это не задание в универе, сессия закончилась, каникулы, это для интереса, смотрю то, что мы еще не проходили. Кажется условий слишком много, короче ведь можно сделать?
+160
void check( const elemType eps = std::numeric_limits<elemType>::epsilon() ){
count = 4;
int isAB=0, isAC=0, isAD=0, isBC=0, isBD=0, isCD=0;
if(A==B) isAB = 1;
if(A==C) isAC = 1;
if(A==D) isAD = 1;
if(B==C) isBC = 1;
if(B==D) isBD = 1;
if(C==D) isCD = 1;
if(isAB) {B=C;C=D;--count;}
if(isAC) {C=D;--count;}
if(isAD) {--count;}
if(isBC) {C=D;--count;}
if(isBD) {--count;}
if(isCD) {--count;}
if(count<3){std::cerr <<"Warning: Bad Frame.\n";}
}
Есть структура. В ней четыре поля. Два любых поля могут совпадать, могут не совпадать. Если два поля совпадают, то лишнее нужно удалить и установить счетчик в 3. Если больше двух полей совпадают сообщить об ошибке. Как это попроще (покрасивше) это сделать в стиле cpp?
+154
//TransFunc.h
//Девиз
#ifndef MyOwn
#define MyOwn
#define Blackjack J♠
#define Hookers
#endif
class TransferFunction
{
private:
//...
class Polynom
{
Polynom(TransferFunction * Base); //Ссылка на базовый класс обязательна!
//...
}
Polynom *Numerator, *Denominator;
//...
class TransferProcess
{
TransferProcess(TransferFunction * Base); //Ну куда же я без него...
DynamicArray<double> TransGraphic; //Данные графика.
//...
}
TransferProcess * TrancProc;
//...
class SystemOptimisator
{
SystemOptimisator(TransferFunction * Base); //Именно так и никак иначе.
TransferFunction * TempFunction; //Это я так, на всякий случай...
Polynom *Backup_Numerator, *Backup_Denominator;
DynamicArray<Polynom> CorrectingDevice; //А чо? Работает ведь...
//...
}
SystemOptimisator * Opt;
//Тут ещё классы "Matrix", "Vector", "Report" и многие другие.
publuc:
TransferFunction();
~TransferFunction();
void Optimize();
};
Краткость - сестра таланта:-)
Захотелось мне удивить преподавателя (в программировании он не особо подкован (впрочем, как и я :-) )) короткой и простой "программой". Оно работало, до определенного момента, когда я попытался вставить ещё один класс... Потом я, конечно, всё переписал, по-человечески структурировав и избавившись от DynamicArray, но эти грабли я запомнил на всю жизнь.
+161
QString sq(int deep, QString table, QString field, bool fin = false){
if(fin) return sq(deep, table, field)+ ";";
if(!deep) return "select min(" + field + ") from " + table;
return "select " + field + " from " + table + " where " + field + " in(" + sq(deep-1, table, field) + ")";
}
Так изнутри клиентского кода двоичным поиском выясняется, какое у БД ограничение на количество вложенных подзапросов.
+162
bool GenerateException(int Code)
{
assert(false);
return false; //WTF??? Нужно перерефакторить.
};
Ещё одно проектное решение...
+165
char *ptr1;
char *ptr2;
//...
try {
throw ptr2 - ptr1;
}
catch (int e) {
std::cout << "exception addr dif" << e << std::endl;
}