-
−110
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
columns.each do |c|
case c
when 'Device'
h << c
when 'Usage'
h << c
when 'Status'
h << c
when 'Battery'
h << c
when 'GPS status'
h << c
when 'Wi-Fi status'
h << c
when 'Temperature'
h << c
when 'Alerts'
h << c
end
end
случайно вот родил )
Dreamfall,
23 Декабря 2010
-
+133
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
<form action="/admin.php?action=edit_category&name=razdel1" method="post">
<table>
<tr>
<td>
<input type="image" src="views/admin/i/save.png" value="Сохранить" />
</td>
</tr>
<tr>
<td>
Название раздела:
<input type="text" name="name" value="Раздел1" size="41" maxlength="128" />
</td>
</tr>
</table>
</form>
"Имею большой опыт в области веб-программирования" говорите? Вот кусок творения нашего прославившегося клована Мишустика. Пруф для лулзов будет ниже в комменте.
Викинул лишнее и отформатировал для простоты понимания.
Как можно догадаться, редактирование раздела производится по идентификатору в параметре name, передаваемому методом GET. Название же раздела передается в одноименном параметре, только методом POST. Оригинально, да?
А как же задается идентификатор раздела? Обычным транслитом из названия!
Изменяем название с "Раздел1" на "Раздел2" - Сохранить - "Название раздела изменено!" Ок. Остаемся в этой же форме и пробуем изменить название обратно, сохраняем... А хрен вам - "Раздела не существует!"
Ну правильно, че! Идентификатор раздела в базе изменился на "razdel2", а форма по прежнему работает с "razdel1".
Вот такая вот реализация ЧПУ. Из этих идентификаторов потом строится адрес страницы а-ля http://test.soft-oskol.ru/razdel1/index.html
Uchkuma,
23 Декабря 2010
-
+166
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
<?php
switch(func_num_args())
{
case 1:
$$class = new $class(func_get_arg(0));
break;
# ....
case 7:
$$class = new $class(func_get_arg(0), func_get_arg(1), func_get_arg(2), func_get_arg(3), func_get_arg(4), func_get_arg(5), func_get_arg(6));
break;
default:
$$class = new $class();
break;
}
?>
Боюсь подумать о 10 и более передаваемых переменных в конструктор класса
MoLe-X,
23 Декабря 2010
-
+99
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
Procedure MakeChain(x: real; var a: array of word); (* Процедура раскладывает вещественное число в цепную дробь *)
var
i: byte;
begin
i:=0;
Repeat
a[i]:=Int(x); x:=1/(x-a[i]); i:=i+1
Until (abs(1/x) < epsilon) or (Int(x) = 0) (* NB! *)
end;
Procedure MakeFrac(a: array of word; var AN, BN: word); (* Процедура собирает обыкновенную дробь из цепной дроби *)
var
i: byte; AP, BP: word; temp: word;
begin
AN:=1; AP:=0; BN:=a[1]; BP:=1; i:=2;
Repeat
temp:=AN; AN:=AN*a[i]+AP; AP:=temp;
temp:=BN; BN:=BN*a[i]+BP; BP:=temp;
i:=i+1
Until a[i] = 0 (* NB! *)
end;
Function PowerInt(x: real; p: longint): real; (* возведение числа в целую степень *)
var
R: real;
begin
R:=1; if p<0 then x:=1/x; p:=abs(p);
Repeat
if p and 1 = 1 then R:=R*x;
p:=p shr 1;
if p<>0 then x:=sqr(x)
Until p=0;
PowerInt:=R
end;
Function Power(x: real; p: real): real;
var
y: real;
z: array[0..16000 div sizeof(word)] of word;
a, b: word;
begin
y:=PowerInt(x, Trunc(p)) * exp(Frac(p) * ln(abs(x)));
if x<0 then
begin
MakeChain(Frac(p), z);
MakeFrac(z, a, b);
if Odd(b) then
begin
if Odd(a) then y:=-y (* если числитель и знаменатель показателя степени нечётные, меняем знак результата *)
end
else
begin
(* NB! В случае чётного знаменателя показателя степени результат комплексный. Забьём на это *)
end
end;
Power:=y
end;
Инновационный алгоритм, написанный мной лет 12 тому назад, позволяющий возводить отрицательные числа в дробную степень.
Жанру сайта вполне соответствует, то есть не без говнокода.
inkanus-gray,
23 Декабря 2010
-
+141
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
void array_random_input(int *array, unsigned int *array_size)
{
unsigned register int i, j;
for(i=0; i<(*array_size); i++)
for(j=0; j<(*array_size); j++)
*(array + (*array_size) * i + j) = rand()%100;
}
void array_recombination(int *array, unsigned int *array_size)
{
unsigned register int i, j, tmp;
for(i=0; i<(*array_size)/2; i++)
for(j=0; j<(*array_size)/2; j++)
{
tmp = *(array + (*array_size) * i + j);
*(array + (*array_size) * i + j) = *(array + (*array_size) * ((*array_size)/2 + i) + ((*array_size)/2 + j));
*(array + (*array_size) * ((*array_size)/2 + i) + ((*array_size)/2 + j)) = tmp;
}
for(i=0; i<(*array_size)/2; i++)
for(j=(*array_size)/2; j<(*array_size); j++)
{
tmp = *(array + (*array_size) * i + j);
*(array + (*array_size) * i + j) = *(array + (*array_size) * ((*array_size)/2 + i) + (j - (*array_size)/2));
*(array + (*array_size) * ((*array_size)/2 + i) + (j - (*array_size)/2)) = tmp;
}
}
//ardent greetings to my teacher F.S.V.! :)
Условие задачи: необходимо создать динамический двумерный массив размерностью 2n и сделать перестановку крест накрест его четвертей. В качестве параметров все функции принимают указатели. Для пущего brainfuck'а доступ к элементам массива осуществлялся с использованием одномерной адресации (по другому никак не получалось :)
Для сокращения привожу только функции наполнения массива случайными значениями и перестановки элементов.
mr_visor,
23 Декабря 2010
-
+110
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
protected void Page_Load(object sender, EventArgs e)
{
Common.CheckAuthorization(Response, Session);
string uniqueID = Request["__EVENTTARGET"];
if (uniqueID != null)
{
UpdatePanel.ContentTemplateContainer.Controls.Clear();
string controlPath;
Control control = GetViewControlOnEvent(uniqueID, out controlPath);
if (control != null)
{
UpdatePanel.ContentTemplateContainer.Controls.Add(control);
Helpers.SetKeyInSession(Common.CATALOG_KEYS.CONTROL_PATH, controlPath, Session);
}
else
{
UpdatePanel.ContentTemplateContainer.Controls.Add(
GetViewControlOnSession());
}
}
else
{
if (ControlParam == null)
Helpers.SetKeyInSession(Common.CATALOG_KEYS.CONTROL_PATH, Common.PATHS.USER_CONTROLS.MAIN_CONTROL, Session);
UpdatePanel.ContentTemplateContainer.Controls.Add(
GetViewControlOnSession());
}
TreeViewState.SaveTreeView(treeCatalogs, this.GetType().ToString());
this.PreRender += OnPreRender;
}
Nigma143,
22 Декабря 2010
-
+145
- 1
for(rptr=0;rptr<10;rptr++) // пока очередь не опустела
выборка элементов из FIFO =D
resettik,
22 Декабря 2010
-
+167
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
T toPower(T base, int exponent)
{
//cout << "++++++++Start template+++++++++++++" << endl;
T result = base;
if(exponent == 0) return (T)1;
if(exponent < 0) return (T)0;
while(--exponent)
result *= base;
//cout << "++++++++Finish template++++++++++++" << endl;
return result;
}
1_and_0,
22 Декабря 2010
-
+106
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
function IsRunningWithAdminPrivs: Boolean;
begin
var
List: TStringList;
begin
List := TStringList.Create;
try
try
List.Text := 'Sample';
// Use SHGetFolder path to retreive the program files folder
// here is hardcoded for the sake of the example
List.SaveToFile('C:\program files\test.txt');
Result := True;
except
Result := False;
end;
finally
List.Free;
DeleteFile('C:\program files\test.txt');
end;
end;
Нуфф Саид
bugmenot,
22 Декабря 2010
-
+145
- 1
- 2
- 3
- 4
- 5
if(blya_check($baba_id))
{
mysql_query("update {$prefX}actions set `count`=`count`+1 where id='{$baba_id}'");
blya_log($baba_id);
}
De-Luxis,
22 Декабря 2010