- 1
- 2
- 3
- 4
- 5
- 6
std::string response;
...
char* result = new char[response.size() + 1];
memcpy(&result[0], &response.c_str()[0], response.size());
result[response.size()] = 0;
return result;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+16
std::string response;
...
char* result = new char[response.size() + 1];
memcpy(&result[0], &response.c_str()[0], response.size());
result[response.size()] = 0;
return result;
Сам метод возвращает char * (при этом никто не запрещал использовать непосредственно std::string).
ЗЫ жаль что весь проект запостить нельзя. Он весь достоин.
+129
#include <stdio.h>
#include <stdint.h>
#define ARR_L 11
#define INS_P (arr[0])
#define MOD_L(a) ((a) % ARR_L)
#define INS_P_M (MOD_L(INS_P))
#define ARR_ACS(a) (arr[MOD_L(a)]) //access to arr
void foo (uint8_t *arr)
{
ARR_ACS(3) = INS_P * ARR_ACS(INS_P);
ARR_ACS( MOD_L( INS_P_M + 1 ) ) = ((INS_P * INS_P) * 2);
if (INS_P != 0) {ARR_ACS(INS_P_M)++;};
INS_P = INS_P_M + 1;
// tut voobche lubaya fignya, kotoraya chtoby izmenyala
// figny v massive v zavisimosti ot sostoyania massiva
}
int main(void) {
uint8_t arr[ARR_L] = {0,2,6,3,2,62,7,113,0,26,13};
for (size_t a = 0; a < 10000; a++)
{
foo(arr);
printf
(
"%.3u %.3u %.3u %.3u %.3u "
"%.3u %.3u %.3u %.3u %.3u %.3u\n",
INS_P,arr[1],arr[2],arr[3],arr[4],
arr[5],arr[6],arr[7],arr[8],arr[9],arr[10]);
}
return 0;
}
Машина Тьюринга с лентой конечной длины - конечный автомат. Состояние обязательно зациклится, какие бы правила преобразования над конечным алфавитом мы не вводили и каким бы ни было начальное состояние ленты.
В сишке есть возможности вменяемо сделать вывод чисел из массива подряд для N-ного количества аргументов?
Цикл не предлагать
+140
define('SECOND', 1);
define('MINUTE', SECOND*60);
define('HOUR', MINUTE*60);
// ...
количество секунд в секунде — это определённо что-то новое.
+124
samples = [(1,14),(2,-66),(3,-414),(4,-1180),(5,-2370),(6,-3726),(7,-4606),(8,-3864),(9,270)]
-- Бесконечная система уравнений для МНК
system s = zip (matrix s) (column s) where
matrix = iterate tail . foldr1 (zipWith (+)) . map (\(x,y) -> iterate (*x) 1)
column = foldr1 (zipWith (+)) . map (\(x,y) -> iterate (*x) y)
-- Сведение бесконечной системы к треугольному виду (первый шаг гаусса)
triangle (eq:eqs) = (eq : triangle (map (sub eq) eqs)) where
sub eq1@(a1:as, ae) eq2@(b1:bs, be) = (zipWith f as bs, f ae be) where
f a b = b - a * b1 / a1
-- Вычисление иксов (второй шаг гаусса)
calcX n = foldr calc [] . take n where
calc (a:as, b) xs = ((b - sum (zipWith (*) as xs)) / a : xs)
-- метод наименьших квадратов
mnk n = reverse . calcX n . triangle . system
Метод наименьших квадратов.
http://ideone.com/CsD0ku
+67
function IntToHex(N: integer): string;
const
S = '0123456789ABCDEF';
var
i: integer;
begin
SetLength(Result, 8);
for i := 0 to 7 do Result[8 - i] := S[N shr (i shl 2) and $0F + 1];
end;
Носки менял, ноги мыл, все равно воняет хаккирством.
И оно почему-то в модуле WinAPI.pas у Тараса лежит о_О
+125
happy_numbers = [ tos (a,b,c,d,e,f a b c d e) | a <- [0..9], b <- [0..9], c <- [0..9], d <- [0..9], e <- [0..9], f a b c d e <= 9, f a b c d e >= 0 ]
where
tos (a,b,c,d,e,f) = show a ++ show b ++ show c ++ show d ++ show e ++ show f
f a b c d e = a + b + c - d - e
main = mapM print $ happy_numbers
+124
data Trivalent = TriFalse | TriUnknown | TriTrue deriving (Show, Eq, Ord)
(&) :: Trivalent -> Trivalent -> Trivalent -- &&
(!) :: Trivalent -> Trivalent -> Trivalent -- ||
nt :: Trivalent -> Trivalent -- not
В хасскеле нет класса для логических значений. А значит хрен переопределишь операторы &&, || и функцию not
+140
int next_id() {
static int id = 0;
__sync_add_and_fetch(&id, 1);
return id;
}
"Атомарная" раздача айдишек.
+131
> Как удалить smoke1 из массива fx
delete fx+2;
http://www.gamedev.ru/code/forum/?id=165389
+55
<?php
/**
* Определение знака зодиака
* автор: Nc_Soft
* 12.01.09
*/
//массив для сравнений
$zodiak=array(
'Oven'=>'Овен',
'Taurus'=>'Телец',
'Gemini'=>'Близнецы',
'Cancer'=>'Рак',
'Leo'=>'Лев',
'Virgo'=>'Дева',
'Libra'=>'Весы',
'Scorpion'=>'Скорпион',
'Sagittarius'=>'Стрелец',
'Capricorn'=>'Козерог',
'Aquarius'=>'Водолей',
'Fish'=>'Рыбы'
);
//функция опеределения
function zodiak($d,$m) {
$d=sprintf('%02d',$d);
$m=sprintf('%02d',$m);
if (($m=='03' AND $d>20) OR ($m=='04' AND $d<21)) return 'Oven';
if (($m=='04' AND $d>20) OR ($m=='05' AND $d<22)) return 'Taurus';
if (($m=='05' AND $d>21) OR ($m=='06' AND $d<22)) return 'Gemini';
if (($m=='06' AND $d>21) OR ($m=='07' AND $d<23)) return 'Cancer';
if (($m=='07' AND $d>22) OR ($m=='08' AND $d<24)) return 'Leo';
if (($m=='08' AND $d>23) OR ($m=='09' AND $d<24)) return 'Virgo';
if (($m=='09' AND $d>23) OR ($m=='10' AND $d<24)) return 'Libra';
if (($m=='10' AND $d>23) OR ($m=='11' AND $d<23)) return 'Scorpion';
if (($m=='11' AND $d>22) OR ($m=='12' AND $d<22)) return 'Sagittarius';
if (($m=='12' AND $d>21) OR ($m=='01' AND $d<19)) return 'Capricorn';
if (($m=='01' AND $d>20) OR ($m=='02' AND $d<19)) return 'Aquarius';
if (($m=='02' AND $d>18) OR ($m=='03' AND $d<21)) return 'Fish';
return null;
}
//тестирование (пример для 3 декабря)
echo $zodiak[zodiak(3,12)]; //Стрелец
?>