- 1
- 2
- 3
void AfterWorks(const int& WorkID)
{
assert(&WorkID!=nullptr);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+167
void AfterWorks(const int& WorkID)
{
assert(&WorkID!=nullptr);
+165
void ArrayClass::SetSize(int aSize)
{
iMaxLength = aSize;
}
void ArrayClass::SetElement(int aPos, unsigned char aChar)
{
if(aPos >= 0 && aPos < iMaxLength)
{
iRawArray[aPos] = aChar;
}
}
+162
void Processing( void )
{
while ( moreToDo )
{
CData* temp = new CData;
GetData( temp );
ProcessData( temp );
delete temp;
}
}
+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, но эти грабли я запомнил на всю жизнь.