- 1
безысходность
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
безысходность
В начале нулевых миром правил пафосный и сложный интерпрайз. Люди строили многоtierные распределенные системы с кучей ролей и суровыми СУБД, и у них это отлично получалось.
Ярусы (tiers) с бизнес-логикой предоставляли интерфейсы для десктопных и веб клиентов, и для скриптов автоматизации.
Ярусы пронизвала прозрачная аутентификация: сервер приложений мог имперсонировать свой поток под клиента и обратиться от его имени в базу данных.
Единую аутентификацию обеспечивал Kerberos, а каждый объект (будь то таблица или пользователь) обладал ACLем и настраивался отдельно.
Интерфейсы описывались в WSDL или IDL и по ним генерировались прокси-классы, поддающиеся статической валидации.
Отчеты строились на многомерных OLAP кубах позволяя pivotировать и крутить данные на лету.
Бизнес-объекты могли создаваться на удаленных серверах приложений и быть там stateful (dcom, ejb) и жить, пока не кончатся на них ссылки, и они автоматически имели те же креденшелы что и создавший их клиент.
Распределенные системы напоминали системы операционные.
Форматом сериализации был XML: поддающийся валидации с помощью схем, имеющий два вида парсеров в разных средах и с кучей подстандартов вроде xquery, xpath (для указания пути в документе), xslt для преобразования документов итд.
На его же основе сделали язык разметки, и его тоже стало можно валидировать, и программно рассматривать как дерево.
−1
Давайте ругать питон, он мне со своими отступами все мозги выебал.
−3
#include "pch.h"
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int b, c, d;
setlocale(LC_ALL, "rus");
cout << "Игра:Надо бы похавать. )) \nУправление:клавиши 1,2,Ентер. (Мышью ничего не работает!!)\n\n" << endl;
system("pause");
cout << "\n\n\n\nТы просыпаешся в 2 часa дня\n" << "В принципе, ничего нового, ведь ты опять играл в комп допоздна" << endl;
cout << "Понятное дело, что ты проголодался !\n" << "Выбери, куда ты пойдешь покушать:\n\n" << endl;
cout << "1-поесть дома (Готовишь ты хреново!)\n2-пойти в Макдак\n";
cin >> (b);
switch (b) {
case 1:
{
cout << "Ты решил поесть дома, у тебя есть два варианта:\n1-Пожарить яишенку.\n2-Нарезать салат.\n\n";
cin >> (c);
switch (c) {
case 1: {
cout << "Ты скушал яишенку с колбаской,это был не пик вкусности, но ты доволен.\n(ХОРОШАЯ КОНЦОВКА)\n\n\n\n\n" << endl;
break;
}
case 2: {
cout << "Ты нарезал салатик из помидоров,огурцов,сыра и колбасы, сьел это и помер\nпотому что у тебя была алергия на сыр.Врачи ничем не смогли помочь." << endl;
cout << "(ПЛОХАЯ КОНЦОВКА)\n\n\n\n";
break;
}
break;
}
break;
case 2: {
cout << "Ты решил пойти в макдак, что закажешь :\n1-сет из колы,бургера и картошки!\n2-сет из сока,мороженого и твистера!\n\n" << endl;
cin >> (d);
switch (d) {
case 1: {
cout << "Ты вкусно поел, это было очень вкусно, настолько что ты стал чуть ли не каждый\nдень есть эту еду. Спустя год ты умер от Орбидного ожирения!!\n(ПЛОХАЯ КОНЦОВКА)\n\n\n\n\n\n\n";
break;
}
case 2: {
cout << "Ты вкусно поел. когда ты ел к тебе подошла девушка с таким же набором еды\n вы хорошо разговорились, начали общатся. Через время вы начали встречатся!\n(ХОРОШАЯ КОНЦОВКА)\n\n\n\n\n\n" << endl;
break;
}
break;
}
}
}
}
system("pause");
}
Небольшой текстовый квест с 4-мя концовками )) Открой все 4. удачи!!
+1
Где можно посмотреть исходники "PHP" как можно раньшей релизной версии?
−2
def spam(low, up):
for eggs in range(low, up+1):
if str(eggs) in str(eggs**2):
print(str(eggs) + " is in " + str(eggs**2) + ".")
Проверяет, есть ли стринг числа n в стринге числа n**2.
0
Геном человека занимает 3.3 Gb
Геном рыбы "Protopterus aethiopicus" -- 130 Gb
Вопрос: откуда в рыбе столько говна?
0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
/* The "Enter le ..." thing
is left for Шindows compilers.
Don't mind it. */
namespace SoloLearn
{
public class Program
{
public static void Main(string[] args)
{
int a = 0;
int b = 0; //Declare two numbers
string leChar; //Declare the character
int sum; //Declare the place where the result of the expression would be stored
Console.WriteLine("Enter le first number\n");
string c = a.ToString(); //Convert the 1st № to string
c = Console.ReadLine(); //Assign the 1st number
Console.WriteLine("Enter le character\n");
leChar = Console.ReadLine(); //Assign the char
Console.WriteLine("Enter le second number\n");
string d = b.ToString(); //Convert the 2nd № to string
d = Console.ReadLine(); //Assign the second number
a = System.Convert.ToInt16(c);
b = System.Convert.ToInt16(d);
sum = Calculate(a,leChar,b); //Calculate
Console.WriteLine("{0} {1} {2} is {3}", a, leChar, b, sum);
}
public static int Calculate(int x, string z, int y) {
int qwerty = 0;
switch(z) {
case "+": //Case of addition
qwerty = x + y;
break;
case "-": //Case of subtraction
qwerty = x - y;
break;
case "*": //Case of multiplication
qwerty = x * y;
break;
case "/": //Case of division
qwerty = x / y;
break;
}
return qwerty; //If smth = Calculate(parameters), var smth would have the content of this var © Your Captain Obvious
}
}
}
Выдавил из себя где-то месЕц назад. Как я умудрялся делать 2 переменные для просто стринговых версий существующих переменных только для того, чтобы прочитать инпут? Хорошо, что в сисярпе есть гарбаж коллектор. И да, названия переменных во второй функции - прекрасные (посмотрите: x, y, z, qwerty - не прекрасно ли?) говГо.
0
#-*-coding:utf8;-*-
combinators = {
'I': lambda x: x if len(x) <= 1 else calc(x[1:]),
'K': lambda x: x if len(x) <= 2 else calc((x[1],) + x[3:]),
'W': lambda x: x if len(x) <= 2 else calc(x[1:3] + x[2:]),
'S': lambda x: x if len(x) <= 3 else calc((x[1], x[3], (x[2], x[3])) + x[4:]),
'B': lambda x: x if len(x) <= 3 else calc((x[1], (x[2], x[3])) + x[4:]),
'C': lambda x: x if len(x) <= 3 else calc((x[1], x[3], x[2]) + x[4:]),
'U': lambda x: x if len(x) <= 2 else calc((x[2], (x[1], x[1], x[2])) + x[3:]),
'Y': lambda x: x if len(x) <= 1 else calc(('S',('K',('S','I','I')),('S',('S',('K','S'),'K'),('K',('S','I','I')))) + x[2:])
}
def calc(x):
def f(x, top = False):
if type(x) is not tuple or len(x) == 0:
return x
if top:
while type(x[0]) is tuple:
x = x[0] + x[1:]
else:
if type(x[0]) is tuple:
return (calc(x[0]),) + f(x[1:])
print(termrepr(x))
input('Press Enter...')
return combinators.get(x[0], lambda _: (x[0],) + f(x[1:]))(x)
return f(x, True)
def parse(s):
def f(s, n):
res = ()
i = n
while i < len(s):
if s[i] == '(':
t, j = f(s, i + 1)
res += (t,)
i = j - 1
elif s[i] == ')':
return (res, i + 1)
else:
res += (s[i],)
i += 1
return (res, i)
return f(s, 0)[0]
def termrepr(x):
if len(x) == 0:
return ''
if type(x[0]) is tuple:
return '(' + termrepr(x[0]) + ')' + termrepr(x[1:])
else:
return x[0] + termrepr(x[1:])
print('>> ', end = '')
while True:
print(termrepr(calc(parse(input()))))
print('\n>> ', end = '')
Я перепесал #24129:
>> BUGURT
BUGURT
Press Enter...
U(GU)RT
Press Enter...
R((GU)(GU)R)T
Press Enter...
GU(GU)R
Press Enter...
U(GU)R
Press Enter...
R((GU)(GU)R)
Press Enter...
GU(GU)R
Press Enter...
U(GU)R
Press Enter...
0
#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
void test1(void)
{
printf("test1\n");
}
void test2(void)
{
printf("test2\n");
}
void test3(void)
{
printf("test3\n");
}
void test4(void)
{
printf("test4\n");
}
uint8_t func_dist[3] = {(uint8_t)((char *)test2-(char *)test1), (uint8_t)((char *)test3-(char *)test2), (uint8_t)((char *)test4-(char *)test3)};
void callf(uint8_t fn)
{
size_t sum_dis = 0;
for (uint8_t i = 0; i < fn; i++)
{
sum_dis += func_dist[i];
}
( (void(*)(void)) ((char *)test1+sum_dis) ) ();
}
int main(void)
{
callf(0);
callf(1);
callf(2);
callf(3);
return EXIT_SUCCESS;
}
Зожатие указателей. Главное чтоб длины функций не превышали 255 и чтоб функции шли строго подряд, как они объявлены кода
Как сделать чтобы это компилировалось сишкой?
+2
Если Найти(_оинв.Комментарий,"#инвентаризация гсм#")=0 Тогда
_оинв.Комментарий="#инвентаризация гсм#";
Если не Найти(_комментарий,"газ")=0 Тогда
_оинв.Комментарий=_оинв.Комментарий+" газ";
ИначеЕсли не Найти(_оинв.Склад.Наименование,"АГЗС")=0 Тогда
_оинв.Комментарий=_оинв.Комментарий+" газ";
КонецЕсли;
_оинв.Комментарий=_оинв.Комментарий+" "+_комментарий;
ИначеЕсли не Найти(_оинв.Склад.Наименование,"АГЗС")=0 Тогда
Если Найти(_комментарий,"газ")=0 Тогда
_оинв.Комментарий=_оинв.Комментарий+" газ";
ИначеЕсли не Найти(_комментарий," газ газ")=0 Тогда
_оинв.Комментарий=СтрЗаменить(_оинв.Комментарий," газ газ"," газ");
КонецЕсли;
КонецЕсли;
Где "_оинв" это ДокументОбъект Инвентаризация