- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
mTr.StartTransaction;
mdsMaters.DisableControls;
DBGridEh1.SaveBookmark;
try
DBGridEh1.RestoreBookmark;
mdsMaters.EnableControls;
[.... обход датасета ....]
finally
mTr.Commit;
end;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+92.1
mTr.StartTransaction;
mdsMaters.DisableControls;
DBGridEh1.SaveBookmark;
try
DBGridEh1.RestoreBookmark;
mdsMaters.EnableControls;
[.... обход датасета ....]
finally
mTr.Commit;
end;
Как известно, перед обходом датасета нужно делать DisableControls, а главное, не забыть вызвать EnableControls.
Чем раньше - тем лучше :)
+115.9
function TFilesStrings.LastSlash(FileString: string): byte;
{*
Функция для вычисления положения последнего слеша в строке
*}
var
i: byte;
begin
Result := 0;
for i := 1 to Length(FileString) do
if (FileString[i] = #92) then Result := i;
end;
{==============================================================================}
{******************************************************************************}
function TFilesStrings.GetPath(FullFileName: string): string;
{*
Функция возвращает оконечный путь у заданному Файлу
*}
var
SlNum: byte;
begin
Result := '';
SlN um := LastSlash(FullFileName);
Result := Copy(FullFileName, 1, SlNum);
end;
Вот ещё вспомнил... Не мог понять почему у меня не работает функция ExtractFilePath, пришлось писать вручную :)
+92.4
if (a<0) or (a=0)
then ...
Почему в универститах вместо того, чтобы ставить автоматы за такие вещи, не оценивают оптимизацию кода?
Теперь понятно почему когда берёшь чьи-нибудь сорцы, пытаешься час понять логику в 10 строчек.
+92.3
program krestiki_noliki;
var a,b,c,
d,e,f,
g,h,i,
click:char;
cl,cr,count:smallint;
procedure move; forward;
procedure clickproc;
begin
If cr=0
then
begin
cr:=1;
click:='X';
end
else
begin
cr:=0;
click:='O';
end;
end;
procedure restart;
begin
if count<9
then move
else
begin
count:=0;
cr:=0;
cl:=0;
click:='X';
a:='_';
b:='_';
c:='_';
d:='_';
e:='_';
f:='_';
g:='_';
h:='_';
i:='_';
end;
end;
procedure move;
begin
readln(cl);
clickproc;
if (cl=1) and (a='_') then a:=click;
if (cl=2) and (b='_') then b:=click;
if (cl=3) and (c='_') then c:=click;
if (cl=4) and (d='_') then d:=click;
if (cl=5) and (e='_') then e:=click;
if (cl=6) and (f='_') then f:=click;
if (cl=7) and (g='_') then g:=click;
if (cl=8) and (h='_') then h:=click;
if (cl=9) and (i='_') then i:=click;
count:=count+1;
writeln(a,'|',b,'|',c);
writeln(d,'|',e,'|',f);
writeln(g,'|',h,'|',i);
writeln('-----');
restart;
end;
begin
count:=0;
cr:=0;
writeln('1|2|3');
writeln('4|5|6f');
writeln('7|8|9');
writeln('-----');
restart;
end.
навеяло кодом на Visual Basic, подумал что смогу воплотить на Паскале. Зря, не стоило...
(так и не понял, что именно не работает)
+90.9
for i := 0 to 89 do begin
case i of
0:obj[0]:=obj[0]+1
1:obj[1]:=obj[1]+1
2:obj[2]:=obj[2]+1
3:obj[3]:=obj[3]+1
4:obj[4]:=obj[4]+1
5:obj[5]:=obj[5]+1
6:obj[6]:=obj[6]+1
7:obj[7]:=obj[7]+1
8:obj[8]:=obj[8]+1
9:obj[9]:=obj[9]+1
10:obj[10]:=obj[10]+1
11:obj[11]:=obj[11]+1
12:obj[12]:=obj[12]+1
13:obj[13]:=obj[13]+1
14:obj[14]:=obj[14]+1
15:obj[15]:=obj[15]+1
16:obj[16]:=obj[16]+1
17:obj[17]:=obj[17]+1
18:obj[18]:=obj[18]+1
19:obj[19]:=obj[19]+1
20:obj[20]:=obj[20]+1
21:obj[21]:=obj[21]+1
22:obj[22]:=obj[22]+1
23:obj[23]:=obj[23]+1
24:obj[24]:=obj[24]+1
25:obj[25]:=obj[25]+1
26:obj[26]:=obj[26]+1
27:obj[27]:=obj[27]+1
28:obj[28]:=obj[28]+1
29:obj[29]:=obj[29]+1
30:obj[30]:=obj[30]+1
31:obj[31]:=obj[31]+1
32:obj[32]:=obj[32]+1
33:obj[33]:=obj[33]+1
34:obj[34]:=obj[34]+1
35:obj[35]:=obj[35]+1
36:obj[36]:=obj[36]+1
37:obj[37]:=obj[37]+1
38:obj[38]:=obj[38]+1
39:obj[39]:=obj[39]+1
40:obj[40]:=obj[40]+1
41:obj[41]:=obj[41]+1
42:obj[42]:=obj[42]+1
43:obj[43]:=obj[43]+1
44:obj[44]:=obj[44]+1
45:obj[45]:=obj[45]+1
46:obj[46]:=obj[46]+1
47:obj[47]:=obj[47]+1
48:obj[48]:=obj[48]+1
49:obj[49]:=obj[49]+1
50:obj[50]:=obj[50]+1
51:obj[51]:=obj[51]+1
52:obj[52]:=obj[52]+1
53:obj[53]:=obj[53]+1
54:obj[54]:=obj[54]+1
55:obj[55]:=obj[55]+1
56:obj[56]:=obj[56]+1
57:obj[57]:=obj[57]+1
58:obj[58]:=obj[58]+1
59:obj[59]:=obj[59]+1
60:obj[60]:=obj[60]+1
61:obj[61]:=obj[61]+1
62:obj[62]:=obj[62]+1
63:obj[63]:=obj[63]+1
64:obj[64]:=obj[64]+1
65:obj[65]:=obj[65]+1
66:obj[66]:=obj[66]+1
67:obj[67]:=obj[67]+1
68:obj[68]:=obj[68]+1
69:obj[69]:=obj[69]+1
70:obj[70]:=obj[70]+1
71:obj[71]:=obj[71]+1
72:obj[72]:=obj[72]+1
73:obj[73]:=obj[73]+1
74:obj[74]:=obj[74]+1
75:obj[75]:=obj[75]+1
76:obj[76]:=obj[76]+1
77:obj[77]:=obj[77]+1
78:obj[78]:=obj[78]+1
79:obj[79]:=obj[79]+1
80:obj[80]:=obj[80]+1
81:obj[81]:=obj[81]+1
82:obj[82]:=obj[82]+1
83:obj[83]:=obj[83]+1
84:obj[84]:=obj[84]+1
85:obj[85]:=obj[85]+1
86:obj[86]:=obj[86]+1
87:obj[87]:=obj[87]+1
88:obj[88]:=obj[88]+1
89:obj[89]:=obj[89]+1
end;
end;
Надо Добавить единицу ко всем элементам массива
+92.7
unit CelFahKel;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
RadioGroup1: TRadioGroup;
RadioGroup2: TRadioGroup;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
F: Extended;
C: Integer;
begin
if RadioGroup1.ItemIndex=0 then
if RadioGroup2.ItemIndex=0 then
Edit2.Text := Edit1.Text
else if RadioGroup2.ItemIndex=1 then
begin
F := StrToFloat(Edit1.Text) * (9/5) + 32;
Edit2.Text := FloatToStr(F)
end
else if RadioGroup2.ItemIndex=2 then
begin
C := StrToInt(Edit1.Text) + 273;
Edit2.Text := FloatToStr(C);
end;
if RadioGroup1.ItemIndex=1 then
if RadioGroup2.ItemIndex=0 then
begin
F := StrToFloat(Edit1.Text) - 32 * (5/9);
Edit2.Text := FloatToStr(F);
end
else if RadioGroup2.ItemIndex=1 then
Edit2.Text := Edit1.Text
else if RadioGroup2.ItemIndex=2 then
begin
F := StrToFloat(Edit1.Text) - 32 * (5/9) + 273;
Edit2.Text := FloatToStr(F);
end;
if RadioGroup1.ItemIndex=2 then
if RadioGroup2.ItemIndex=0 then
begin
C := StrToInt(Edit1.Text) - 273;
Edit2.Text := IntToStr(C);
end
else if RadioGroup2.ItemIndex=1 then
begin
F := StrToFloat(Edit1.Text) + 32 * (9/5) - 273;
Edit2.Text := FloatToStr(F);
end
else if RadioGroup2.ItemIndex=2 then
Edit2.Text := Edit1.Text
end;
end.
Всего-то навсего перевод градусных величин: Сельсий <-> Фаренгейт <-> Кельвин и вывод в Эдит
+93.3
type
chel = record
name:string;
tag:int64;
end;
procedure go_to_banaj (var obj:chel);
begin
obj.tag:=obj.tag+1;
writeln(obj.name+', Пошел ты в баню')
writeln('Тебя послали в баню '+inttostr(obj.tag)+' Раз')
end;
procedure prolaps;
var
obj:chel;
begin
obj.tag:=0;
readln(obj.name);
//obj.name:='Фyтбалёр';
while 1=1 do
go_to_banaj(obj)
end;
+97.2
{1}
if ((a='AC')or(a='CA')or(a='BD')or(a='DB'))and((b='AC')or(b='CA')or(b='BD')or(b='DB'))then write('YES') else
if ((a='AC')or(a='CA')or(a='BC')or(a='CB'))and((b='AC')or(b='CA')or(b='BC')or(b='CB'))then write('YES') else
if ((a='BC')or(a='CB')or(a='BD')or(a='DB'))and((b='BC')or(b='CB')or(b='BD')or(b='DB'))then write('YES') else
if ((a='AB')or(a='BA')or(a='BD')or(a='DB'))and((b='AB')or(b='BA')or(b='BD')or(b='DB'))then write('YES') else
if ((a='AC')or(a='CA')or(a='AB')or(a='BA'))and((b='AC')or(b='CA')or(b='AB')or(b='BA'))then write('YES') else
if ((a='AC')or(a='CA')or(a='AD')or(a='DA'))and((b='AC')or(b='CA')or(b='AD')or(b='DA'))then write('YES') else
if ((a='AD')or(a='DA')or(a='BD')or(a='DB'))and((b='AD')or(b='DA')or(b='BD')or(b='DB'))then write('YES') else
if ((a='AC')or(a='CA')or(a='CD')or(a='DC'))and((b='AC')or(b='CA')or(b='CD')or(b='DC'))then write('YES') else
if ((a='DC')or(a='CD')or(a='BD')or(a='DB'))and((b='DC')or(b='CD')or(b='BD')or(b='DB'))then write('YES') else
if ((a='BC')or(a='CB')or(a='CD')or(a='DC'))and((b='BC')or(b='CB')or(b='CD')or(b='DC'))then write('YES') else
if ((a='AD')or(a='DA')or(a='CD')or(a='DC'))and((b='AD')or(b='DA')or(b='CD')or(b='DC'))then write('YES') else
if ((a='AB')or(a='BA')or(a='AD')or(a='DA'))and((b='AB')or(b='BA')or(b='DA')or(b='AD'))then write('YES') else
if ((a='AB')or(a='BA')or(a='BC')or(a='CB'))and((b='AB')or(b='BA')or(b='BC')or(b='CB'))then write('YES') else
{2}
if ((a='A1C1')or(a='C1A1')or(a='B1D1')or(a='D1B1'))and((b='A1C1')or(b='C1A1')or(b='B1D1')or(b='D1B1'))then write('YES') else
if ((a='A1C1')or(a='C1A1')or(a='B1C1')or(a='C1B1'))and((b='A1C1')or(b='C1A1')or(b='B1C1')or(b='C1B1'))then write('YES') else
if ((a='B1C1')or(a='C1B1')or(a='B1D1')or(a='D1B1'))and((b='B1C1')or(b='C1B1')or(b='B1D1')or(b='D1B1'))then write('YES') else
if ((a='A1B1')or(a='B1A1')or(a='B1D1')or(a='D1B1'))and((b='A1B1')or(b='B1A1')or(b='B1D1')or(b='D1B1'))then write('YES') else
if ((a='A1C1')or(a='C1A1')or(a='A1B1')or(a='B1A1'))and((b='A1C1')or(b='C1A1')or(b='A1B1')or(b='B1A1'))then write('YES') else
if ((a='A1C1')or(a='C1A1')or(a='A1D1')or(a='D1A1'))and((b='A1C1')or(b='C1A1')or(b='A1D1')or(b='D1A1'))then write('YES') else
if ((a='A1D1')or(a='D1A1')or(a='B1D1')or(a='D1B1'))and((b='A1D1')or(b='D1A1')or(b='B1D1')or(b='D1B1'))then write('YES') else
if ((a='A1C1')or(a='C1A1')or(a='C1D1')or(a='D1C1'))and((b='A1C1')or(b='C1A1')or(b='C1D1')or(b='D1C1'))then write('YES') else
if ((a='D1C1')or(a='C1D1')or(a='B1D1')or(a='D1B1'))and((b='D1C1')or(b='C1D1')or(b='B1D1')or(b='D1B1'))then write('YES') else
if ((a='B1C1')or(a='C1B1')or(a='C1D1')or(a='D1C1'))and((b='B1C1')or(b='C1B1')or(b='C1D1')or(b='D1C1'))then write('YES') else
if ((a='A1D1')or(a='D1A1')or(a='C1D1')or(a='D1C1'))and((b='A1D1')or(b='D1A1')or(b='C1D1')or(b='D1C1'))then write('YES') else
if ((a='A1B1')or(a='B1A1')or(a='A1D1')or(a='D1A1'))and((b='A1B1')or(b='B1A1')or(b='D1A1')or(b='A1D1'))then write('YES') else
if ((a='A1B1')or(a='B1A1')or(a='B1C1')or(a='C1B1'))and((b='A1B1')or(b='B1A1')or(b='B1C1')or(b='C1B1'))then write('YES') else
//оставшуюся часть я опустил из-за ее невместимости в 4000 символов.
writeln('NO');
end.
Этот говнокод (полностью, а не этот говнокусок) по идее должен выискивать пересечения отрезков куба. Мы с другом поспорили, что я смоу написать прогу только с ifами, и олимпиадный сайт accepted ее.Он принял.
+96.4
temp:= min(Mon.VGA,Comp.VGA);
inc(n,temp);
dec(Mon.VGA,temp);
dec(Comp.VGA,temp);
temp:= min(Mon.DVI,Comp.DVI);
inc(n,temp);
dec(Mon.DVI,temp);
dec(Comp.DVI,temp);
temp:= min(Mon.Multi,Comp.Multi);
inc(n,temp);
dec(Mon.Multi,temp);
dec(Comp.Multi,temp);
if Mon.Multi<>0
then
begin
temp:= min(Mon.Multi,Comp.VGA);
inc(n,temp);
dec(Mon.Multi,temp);
dec(Comp.VGA,temp);
temp:= min(Mon.Multi,Comp.DVI);
inc(n,temp);
dec(Mon.Multi,temp);
dec(Comp.DVI,temp);
end;
if Comp.Multi<>0
then
begin
temp:= min(Mon.VGA,Comp.Multi);
inc(n,temp);
dec(Mon.VGA,temp);
dec(Comp.Multi,temp);
temp:= min(Mon.DVI,Comp.Multi);
inc(n,temp);
dec(Mon.DVI,temp);
dec(Comp.Multi,temp);
end;
Из ещё одного решения олимпиадной задачи. Вроде подсчитывает количество компов, которые можно собрать при учёте, что у системников и мониторов может быть интерфейс DVI, VGA или оба сразу (Multi).
+98.5
// Этот говняжный кусочек кода лечит работу козьих шариков.
for iter := 0 to staticSet.fields.Count - 1 do
if staticSet.fields[i].IsNull then
;
// Конец говняжного кусочка кода
Вкратце: staticSet - декоратор (обертка) для ADO Recordset; чтобы синхронизировать обертку и носителя, надо было дернуть любой метод. Автор выбрал R/O property IsNull. Но каков вброс. Комментарии прошу считать частью кода. Если учесть, что плотность комментариев 1 на примерно 60 КБ кода.