- 1
- 2
Is there PHP mysql_real_escape_string for postgresql?
pg_escape_string
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−9
Is there PHP mysql_real_escape_string for postgresql?
pg_escape_string
https://www.php.net/manual/en/function.pg-escape-string.php
−8
Program print_numbers_twice;
Procedure give(p: pptrint);
begin
if pptrint(p^) <> nil then begin
give(pptrint(p^));
writeln((p-1)^)
end
end;
Procedure take;
var n: ptrint;
begin
if not SeekEof then begin
read(n);
take
end else begin
n := (pptrint(@n)+1)^;
give(pptrint(n));
give(pptrint(n))
end
end;
Begin
take
End.
На входе программа получает неизвестное заранее количество целых чисел, разделенных пробельными символами, а затем выводит их два раза в том же порядке по одному числу в строке.
Очень простая и короткая программа. Я думаю, вам не составит труда понять, как она работает. Пишите в комментариях!
−8
interface ReturnVal {
something(): void;
}
function run(options: { something?(): void }, val: ReturnVal) {
const something = options.something ?? val.something;
something();
}
function main()
{
run ( { something() { print("something"); } }, null );
}
новая кул-фича... аналог ?. но для двух разных данных. если первое не null тогда бери его иначе второе.
−7
let x = 0.1;
let y = 0.2;
let z = x + y
чему равно?
−8
class C
{
val: number;
constructor()
{
this.val = 2;
}
}
function o(val? : C)
{
print(val?.val);
}
function main()
{
o(new C());
o(null);
o();
}
Новый говнокод подоспел.... а как тебе такое слабый ужасный С/C++ ... ты так умеешь?
Результат работы:
C:\temp>C:\dev\TypeScriptCompiler\__build\tsc\bin\tsc.exe --emit=jit --opt --shared-libs=C:\dev\TypeScriptCompiler\__build\tsc\bin\TypeScriptRuntime.dll C:\temp\1.ts
2
0
0
−8
.MODEL small ;отводим под стек и под данные по 64Кб код занимает 1 сегмент, данные и стек обьеденены в одну группу
.STACK 100h ;отмечаем начало сегмента стека
.DATA ;отмечаем начало сегмента данных
_STDOUT_ equ 1 ; из синтаксического описания видно, что с помощью equ идентификатору
;можно ставить в соответствие как числовые выражения, так и текстовые строки,
;а псевдооператор “=” может использоваться только с числовыми выражениями;
vivod db 0Dh, 0Ah, '$' ; $-кон. стр.
String db 82 dup(?); выделение памяти для строки
PosLen db 14 dup(?); выделение памяти для строки (числа)
Pos dw ? ; память для первого числа
Len dw ? ; для второго
.CODE ;отмечаем начало сегмента кодов
preob proc ; процедура преобразования из строки в число
xor ax, ax
mov bx, ax
mov cx, 10 ; для реализации цикла
_repeat:
mov bl, [si] ; помещаем в bl символ строки
inc si ; в si переходим к ячейке следующего символа
sub bl, '0'; преобразуем ASCII код в число
jb _break ; если SF = 1 то выходим из процедуры(указывает, что между числами стоит пробел, числовой код пробела меньше числового кода нуля)
cmp bl, 9 ; сравниваем, если число больше 9 - то это символ - идём на выход
ja _break
mul cx
add ax, bx ;прибавляет в регистр ax нужное число
jmp _repeat
_break:
ret ; возврат в в главный код
preob endp
main PROC
;инициализация сегментного регистра ds адресом сегмента данных
mov ax, @data
mov ds, ax
;ввод строки
mov [String], byte ptr 80
mov ah, 0Ah
lea dx, [String]
int 21h
;ввод строки чисел
mov al,10 ; перенос строки
int 29h ; быстрый вывод символов на экр(экон байт)
mov [PosLen], byte ptr 14
mov ah, 0Ah
lea dx, [PosLen]
int 21h
;преобразование строки в первое число
lea si, [PosLen+2]
call preob
mov [Pos], ax
call preob
mov [Len], ax
mov al,10 ; перенос строки
int 29h ; быстрый вывод символов на экр(экон байт)
mov ah, 40h ;номер функции помещается в ah
mov bx, _STDOUT_ ;в bx хранится дескриптор стандартного выходного потока
mov cx, [Len] ; кол-во выводимых символов
lea dx, [String+1] ; адрес буфера вывода
add dx, [Pos] ; берем 1 сим. и добавляем число, чтобы перейти к нужному нам символу
int 21h
;завершение программы
xor ax,ax
int 16h
mov ax,4c00h
int 21h
MAIN ENDP
END MAIN
Помогите разобраться в коде, понять логику
Задание: Ввести с клавиатуры строку и строку из двух чисел. Первое число ука- зывает начало подстроки для ввода на экран, второе количество символов из пер- вой строки, которое необходимо вывести на экран.
−7
keys := make([]keyType, 0, len(myMap))
values := make([]valueType, 0, len(myMap))
for k, v := range myMap {
keys = append(keys, k)
values = append(values, v)
}
Как в "Go" у карты взять keys(), и values()?
Нужно написать цикл.
−7
// @strict: true
interface IFace {
cond0: boolean;
cond1?: boolean;
}
function main() {
const a : IFace = { cond0: true };
print (a.cond0);
print (a.cond1 == undefined);
print (a.cond1);
// a.cond1?.value
print("done.");
}
я вам принес новую фичу. называется опциональные поля в interface-ах. а твой с++ умеет так?
−1
template distance(b1, b2: AstronomicalBody): float64 = dist(b1.pos, b2.pos)
proc attractionForce(body_1, body_2: AstronomicalBody): DVec3 =
let r = distance(body_1, body_2)
let module = (body_1.m * body_2.m) / (r.pow(2))
return normalize(body_2.pos - body_1.pos) * module
proc updateForce(body: var AstronomicalBody, bodies: seq[AstronomicalBody]) =
body.F = dvec3(0, 0, 0)
for other_body in bodies:
if other_body != body:
body.F += attractionForce(body, other_body)
template acceleration(body: AstronomicalBody): float64 = body.F / body.m
template updateAcceleration(body: var AstronomicalBody) = body.a = acceleration(body)
template velocity(body: AstronomicalBody, dt: float64) = body.V + body.F.normalize * body.a * dt
template updateVelocity(body: var AstronomicalBody, dt: float64) = body.V = velocity(body, dt)
template updatePosition(body: var AstronomicalBody, dt: float64) = body.pos += (body.V * dt)
proc updateProperties(body: var AstronomicalBody, bodies: seq[AstronomicalBody], dt: float64) =
body.updateForce(bodies)
body.updateAcceleration()
body.updateVelocity(dt)
body.updatePosition(dt)
Как же "Nim" хорош, как же "Nim" красив, изящен и элегантен!
0
#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
#include <stdbool.h>
struct two_val
{
const int32_t a[2];
};
struct two_val_and_status
{
const bool is_swap;
const struct two_val t_v;
};
struct array
{
const int32_t a[10];
};
struct array_and_status
{
const bool is_swap;
const size_t pos;
const struct array arr;
};
// Эта суперфункцональная функция сортировки двух элементов не просто сортирует два элемента
// но и еще сообщает о том, нужно ли было для этого обменивать два значения
struct two_val_and_status sort2(const struct two_val a)
{
return (a.a[0] > a.a[1]) ? (struct two_val_and_status){true, {{a.a[1], a.a[0]}}} : (struct two_val_and_status){false, a};
}
struct two_val read_two_val(const struct array arr, const size_t pos)
{
return (struct two_val){{arr.a[pos], arr.a[pos+1]}};
}
struct array store_val(const struct array arr, const int32_t val, size_t pos)
{
return (struct array) // Царский анролл
{{
pos != 0 ? arr.a[0] : val,
pos != 1 ? arr.a[1] : val,
pos != 2 ? arr.a[2] : val,
pos != 3 ? arr.a[3] : val,
pos != 4 ? arr.a[4] : val,
pos != 5 ? arr.a[5] : val,
pos != 6 ? arr.a[6] : val,
pos != 7 ? arr.a[7] : val,
pos != 8 ? arr.a[8] : val,
pos != 9 ? arr.a[9] : val
}};
}
struct array store_two_val(const struct array arr, const struct two_val val, const size_t pos)
{
return store_val(store_val(arr,val.a[0],pos),val.a[1],pos+1);
}
// суперохуительная рекурсивная функция сортировки пузырьком
struct array_and_status bubble_sort_rec(struct array_and_status state)
{
if (state.pos == 9)
{
if (state.is_swap == false) // Ура! Сортировка пузырьком завершена!
{
return state;
}
else
{ // а иначе нам надо по-новой сортировать!
return bubble_sort_rec((struct array_and_status){.is_swap = false, .pos=0, .arr = state.arr});
}
}
else
{
const struct two_val_and_status tmp = sort2(read_two_val(state.arr, state.pos));
return bubble_sort_rec(
(struct array_and_status)
{
.is_swap = tmp.is_swap || state.is_swap,
.pos=state.pos+1,
.arr = store_two_val(state.arr, tmp.t_v, state.pos)
}
);
}
}
int main(void)
{
const struct array_and_status a = {.is_swap = false, .pos = 0, .arr = {{8,2,4,1,3,5,7,0,6,9}} };
const struct array_and_status a_sort = bubble_sort_rec(a);
for(size_t i = 0; i < 10; i++) // ох уж это убогое императивное программирование!!!
{
printf("%" PRIu32 ", ", a_sort.arr.a[i]);
}
return EXIT_SUCCESS;
}
Функциональная сортировка пузырьком
https://wandbox.org/permlink/dGyvo82lgQGInD0Y