- 1
Немного богословия.
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
Немного богословия.
In the beginning was the word; and version of this Word was 1.0
+1
// https://quuxplusone.github.io/blog/2021/01/13/conversion-operator-lookup/
struct A {
using T = T1;
using U = U1;
operator U1 T1::*();
operator U1 T2::*();
operator U2 T1::*();
operator U2 T2::*();
};
inline auto which(U1 T1::*) { return "gcc"; }
inline auto which(U1 T2::*) { return "icc"; }
inline auto which(U2 T1::*) { return "msvc"; }
inline auto which(U2 T2::*) { return "clang"; }
int main() {
A a;
using T = T2;
using U = U2;
puts(which(a.operator U T::*()));
}
> As of this writing (but perhaps not for very much longer!) the four mainstream compilers on Godbolt Compiler Explorer give four different answers for this simple C++ program:
> According to the current draft standard, it sounds like the conforming answer is “they should both be looked up in the scope of A”; i.e., GCC’s answer is correct and the others are wrong in three different ways.
Какой багор )))
+1
void testToken(const char *value, size_t tokenExpected)
{
antlr4::ANTLRInputStream input(value);
typescript::TypeScriptLexerANTLR lexer(&input);
auto tokens = lexer.getAllTokens();
printTokens(lexer, tokens);
auto token = tokens.front().get();
std::ostringstream stringStream;
stringStream << "Expecting: [" << lexer.getTokenNames()[tokenExpected] << "] \"" << value << "\" but get: [" << lexer.getTokenNames()[token->getType()] << "] \"" << token->getText() << "\".";
auto msg = stringStream.str();
ASSERT_EQUAL_MSG(token->getType(), tokenExpected, msg);
ASSERT_THROW_MSG(token->getText().compare(value) == 0, msg);
}
void testOctalIntegerLiteral()
{
testToken("01", l::OctalIntegerLiteral);
}
Мой расказ о том как жизни было нехрен делать и я начал писать копилятор для TypeScript. как это "пинание х..я" кончиться я не знаю. но вот начал с простого. собрал минимум для разработки это LLVM и ANTLR4. И уже написал свой первый (ну не совсем) lexer.
вот тут можно посмотреть на убогость говнокода.
https://github.com/ASDAlexander77/TypeScriptCompiler
+1
board = [" ", " ", " "], \
[" ", " ", " "], \
[" ", " ", " "]
i = 1
win = True
place_chek = True
def show():
print("---------")
print("|" + board[0][0] + " " + board[0][1] + " " + board[0][2] + "|")
print("|" + board[1][0] + " " + board[1][1] + " " + board[1][2] + "|")
print("|" + board[2][0] + " " + board[2][1] + " " + board[2][2] + "|")
print("---------")
def move(i):
if i % 2 == 0:
return "X"
else:
return "0"
def choise(x, y):
board[x][y] = move(i)
def repeat(x, y):
global i
global place_chek
if board[x][y] == "0":
print()
print("Choose another location")
print()
place_chek = False
elif board[x][y] == "X":
print()
print("Choose another location")
print()
place_chek = False
elif board[x][y] == " ":
i = i + 1
place_chek = True
def win_check():
global win
if board[0][0] == board[0][1] == board[0][2] == "X" or \
board[1][0] == board[1][1] == board[1][2] == "X" or \
board[2][0] == board[2][1] == board[2][2] == "X" or \
board[0][0] == board[1][0] == board[2][0] == "X" or \
board[0][1] == board[1][1] == board[2][1] == "X" or \
board[0][2] == board[1][2] == board[2][2] == "X" or \
board[0][0] == board[1][1] == board[2][2] == "X" or \
board[0][2] == board[1][1] == board[2][0] == "X":
print("X won")
win = False
elif board[0][0] == board[0][1] == board[0][2] == "0" or \
board[1][0] == board[1][1] == board[1][2] == "0" or \
board[2][0] == board[2][1] == board[2][2] == "0" or \
board[0][0] == board[1][0] == board[2][0] == "0" or \
board[0][1] == board[1][1] == board[2][1] == "0" or \
board[0][2] == board[1][2] == board[2][2] == "0" or \
board[0][0] == board[1][1] == board[2][2] == "0" or \
board[0][2] == board[1][1] == board[2][0] == "0":
print("0 won")
win = False
show() # first time show
while win:
x, y = input("Enter the coordinates: ").split()
repeat(int(x) - 1, int(y) - 1)
if place_chek:
choise(int(x) - 1, int(y) - 1)
show()
win_check()
Крестики нолики на питоне. Самый большой позор это способ определение победы, не смог ничего придумать и сделал такой позор
+1
#include <iostream>
#include <cmath>
#include "govno.h"
using namespace std;
class SqrtQual {
const string not_kor = "Нет корней!\n";
struct ABC {
long double kA;
long double kB;
long double kC;
} gABC;
long double diskrim(long double a, long double b, long double c);
void diskrim_zero(long double a, long double b);
void diskrim_bolshe(long double a, long double b, long double d);
void vspomog();
void konez();
void m_bx_plus_c();
public:
void hello();
} obj;
int main() {
obj.hello();
}
void SqrtQual::hello() {
cout << "\nПрограмма вычисления корней квадратного уравнения по формуле: ";
cout << "aX^2 + bX + c = 0\n";
Govnokod obj;
gABC.kA = obj.opros('a');
gABC.kB = obj.opros('b');
gABC.kC = obj.opros('c');
cout << endl;
konez();
}
long double SqrtQual::diskrim(long double a, long double b, long double c) {
long double ac4 = 4*a*c;
long double bkv = pow(b, 2);
long double d = bkv - ac4;
cout << "Дискриминант = " << d << endl;
return d;
}
void SqrtQual::diskrim_zero(long double a, long double b) {
if (a == 0)
cout << not_kor;
else {
long double x = -b/(2*a);
cout << "X = " << x;
}
}
void SqrtQual::diskrim_bolshe(long double a, long double b, long double d) {
if (a == 0)
cout << not_kor;
else {
long double dsqrt = sqrt(d);
long double a2 = a * 2;
long double x1 = (-b + dsqrt) / a2;
long double x2 = (-b - dsqrt) / a2;
cout << "X1 = " << x1 << endl;
cout << "X2 = " << x2 << endl;
}
}
void SqrtQual::m_bx_plus_c() {
long double x = -gABC.kC/gABC.kB;
cout << "X = " << x << endl;
}
void SqrtQual::vspomog() {
long double D = diskrim(gABC.kA, gABC.kB, gABC.kC);
if (D < 0)
cout << not_kor;
else if (D == 0)
diskrim_zero(gABC.kA, gABC.kB);
else
diskrim_bolshe(gABC.kA, gABC.kB, D);
}
void SqrtQual::konez() {
bool any_digit = ((gABC.kA == 0) and
(gABC.kB == 0) and
(gABC.kC == 0));
bool not_equal_zero = ((gABC.kA == 0) and
(gABC.kB == 0) and
(gABC.kC != 0));
bool equal_zero_v1 = ((gABC.kA == 0) and
(gABC.kB != 0) and
(gABC.kC == 0));
bool equal_zero_v2 = ((gABC.kA != 0) and
(gABC.kB == 0) and
(gABC.kC == 0));
bool equal_zero = equal_zero_v1 or equal_zero_v2;
bool bx_plus_c = ((gABC.kA == 0) and (gABC.kB != 0));
if (any_digit)
cout << "X -- любое число.";
else if (not_equal_zero) {
cout << gABC.kC << " -- Не равно нулю!";
cout << not_kor; }
else if (equal_zero)
cout << "X = 0";
else if (bx_plus_c)
m_bx_plus_c();
else vspomog();
}
Вот для этой проги я писал предыдущие говнокоды. Тут нет решений для множества комплексных чисел пока что.
+1
let array = [-2, 4, -10, 8];
let count = 0;
for (let i = 0; i < array.length; i++) {
if (!String(array[i]).startsWith("-")) {
count += array[i]
}
}
console.log(count) // 12
Пробовался в speed'кодинге, получил задачу: "написать код для нахождения суммы всех положительных элементов массива", ну и наскоро получилось такое xD
+1
async vkt(e) {
const {
core: {
state: t,
webRequestManager: {
onBeforeRedirect: s
}
},
options: {
oauth: r
}
} = this;
if (!r || !e) return;
const n = (await In.get("https://oauth.vk.com/authorize", r).then(e => e.text())).match(/[^"]+\?act=grant_access&[^"]+/),
i = n && n[0];
if (!i) return;
const o = new ze,
a = e => {
const {
details: {
url: t,
redirectUrl: r
}
} = e;
if (t !== i) return;
const n = r.match(/#access_token=([a-z0-9]+)/),
c = n && n[1];
o.resolve(c), s.removeListener(a)
};
s.addListener(a), await In.get(i);
const c = await o;
c && (await t.set("vkt", c), this.pushData({
id: e,
token: c
}))
}
https://habr.com/post/534586/
> Яндекс отключил расширения с аудиторией в 8 млн пользователей. Объясняем, почему мы пошли на такой шаг
tl;dr: Бесплатный VPN/прокси («Frigate Light», «Frigate CDN» и примкнувший к ним «SaveFrom.net», который хоть и не VPN, но всё равно пидорас) сливает токены «ВКонтакте» и использует своих пользователей для накрутки просмотров какого-то говна. Какая неожиданность )))
+1
Если ЗначениеЗаполнено(Подразделение.Родитель.Родитель.Родитель) Тогда
ВышестоящееПодразделение = Подразделение.Родитель.Родитель.Родитель;
ИначеЕсли ЗначениеЗаполнено(Подразделение.Родитель.Родитель) Тогда
ВышестоящееПодразделение = Подразделение.Родитель.Родитель;
ИначеЕсли ЗначениеЗаполнено(Подразделение.Родитель) Тогда
ВышестоящееПодразделение = Подразделение.Родитель;
Иначе ВышестоящееПодразделение = Подразделение;
КонецЕсли;
Найдем максимально вышестоящее подразделение, ну, до поры - до времени максимальное..
+1
val users = listOf("foo", "bar")
println(users.joinToString{","})
+1
from playsound import *
import tkinter
from tkinter import *
import tkinter as tk
from tkinter import ttk
import getpass
import sys
import os
import os.path
import pyautogui
from time import sleep
https://habr.com/post/532684/
> Написание WinLocker'а на Python
> И всем привет братва, с вами я, Геймер Дисклеймер. Как вы думаете, чем я занимался 2 дня подряд? Нет, я не в доту рубился (и вам не советую, раз уж вы себя программистами называете). Я подготавливал материал для Хабра. А точнее, создавал винлокер. И нет, я его не скоммуниздил украл у кого-то, а сам создавал его с нуля. И сегодня я научу вас его создавать. И да, если вы дисклеймер так и не прочитали, то ни в коем случае не используйте этот код во вред другим! Ну ладно, без лишних слов, погнали!