|   |   | 
| 
 | Теорема Бома — Якопини реалистична? или снова про goto | ☑ | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0
    
        MatrosoV AleXXXand_R 28.06.11✎ 15:32 | 
 
        Теорема Бома — Якопини — утверждение о структурном программировании, согласно которому любой исполняемый алгоритм может быть преобразован к структурированному виду, то есть такому виду, когда ход его выполнения определяется только при помощи трёх структур управления: последовательностей (sequence), ветвлений (selection) и повторов (repetition).
  Теорема была сформулирована и доказана итальянскими математиками Коррадо Бомом (англ. Corrado Böhm) и Джузеппе Якопини (Giuseppe Jacopini) в их статье 1966 года[1]. В статье также описывались методы преобразования неструктурированных алгоритмов в структурированные. Публикация теоремы была толчком к началу дебатов о структурном программировании. Спустя 2 года вышла статья Эдсгера Дейкстры «Go To Statement Considered Harmful»[2], в которой он критиковал использование оператора GOTO и высказывался в пользу улучшения стиля программного кода за счёт использования структур управления и отказа от других инструкций, управляющих ходом алгоритма. wiki:Теорема_Бома_—_Якопини А как вы считаете - можно ли обойтись в программировании без GOTO (Перейти)? И считается ли плохим стилем программирования его использование или нет? | |||||||||||||
| 429
    
        Волшебник 07.07.11✎ 11:09 | 
        (427) Так лучше:
  Если ЭтоВася или ЭтоФедя или (ЭтоСтепа и СтепаСогласен()) Тогда | |||||||||||||
| 430
    
        МастерВопросов 07.07.11✎ 11:10 | 
        (427)(429) нифига себе! Заводить отдельную функцию "СтепаСогласен()", в которой еще громоздить кучу кода это вы считаете улучшением читабельности?     | |||||||||||||
| 431
    
        extrim-style 07.07.11✎ 11:17 | 
        обойдусь без GOTOв     Да, GOTO - нельзя использовать | |||||||||||||
| 432
    
        IKSparrow 07.07.11✎ 11:42 | 
        Если ЭтоВася() = Истина Тогда
  Перейти ЭтоВася КонецЕсли; Если ЭтоВася() = Ложь Тогда Перейти ЭтоНеВася; КонецЕсли; Лучше использовать, чем чаще, тем лучше | |||||||||||||
| 433
    
        Ненавижу 1С гуру 07.07.11✎ 11:44 | 
        (430) не надо ничего заводить, это метакод, замени ее своим Вопрос()     | |||||||||||||
| 434
    
        vs84 07.07.11✎ 11:57 | 
        Во всем нужно руководствоваться здравым смыслом, а не догмами.     Другое | |||||||||||||
| 435
    
        МастерВопросов 07.07.11✎ 12:00 | 
        (433) я пробовал так:
  "Если (СокрЛП(глПользователь.Код)="0003") И (Вопрос("Стёпа, хочешь это сделать прямо сейчас?",4)=6) Тогда" Вопрос у каждого юзера вылазит. | |||||||||||||
| 436
    
        Ненавижу 1С гуру 07.07.11✎ 12:07 | 
        (435) в 8-ке нет ))     | |||||||||||||
| 437
    
        Rabbit 07.07.11✎ 12:10 | 
        (425) можно ввести цикл с параметром и брякать его     | |||||||||||||
| 438
    
        Fragster гуру 07.07.11✎ 12:12 | 
        Если НужноЧтотоДелать() Тогда
  // что-то делаем КонецЕсли; и весь свой овнокод в функцию локализовать, чтобы человека, который потом это будет читать - сразу на клавиатуру не вырвало | |||||||||||||
| 439
    
        Reset 07.07.11✎ 12:58 | 
        В (425) не пример использования goto, а пример неумения построить стройные логические конструкции. Каша после такого программиста будет равно нечитаемой как с goto, так и без.     | |||||||||||||
| 440
    
        МастерВопросов 07.07.11✎ 13:01 | 
        (437)(438) вот меня как раз уже тошнит от ваших бесконечных функций и прыганий по ним, а от шедевра:
  Для НомерИтерации=1 П 2 Цикл Если НомерИтерации=1 Тогда ... иначе ... КонецЕсли КонецЦикла материться хочется | |||||||||||||
| 441
    
        Rabbit 07.07.11✎ 13:04 | 
        (440) чо?... а что это у тебя?     | |||||||||||||
| 442
    
        МастерВопросов 07.07.11✎ 13:04 | 
        (439) Задача озвучена.
  Твоё стройное решение в студию... З.Ы.: Обязательным условиям является повышенная читабельность кода | |||||||||||||
| 443
    
        fisher 07.07.11✎ 13:07 | 
        (435) Не понял. А в исходном коде почему тогда не вылазит? Всех троих Стёпой обзывать должно.     | |||||||||||||
| 444
    
        Rabbit 07.07.11✎ 13:11 | 
        (440)
  Пользователи = "0001,0002,0003"; Если Найти(Пользователи,СокрЛП(глПользователь.Код))>0 Тогда Для БудетПрерывание=1 По 1 Цикл // сразу говорит о прерывании Если (СокрЛП(глПользователь.Код)="0003") И (Вопрос("Стёпа, хочешь это сделать прямо сейчас?",4)<>6 Тогда) Тогда Прервать; КонецЕсли; //начало неких действий //... //конец неких действий КонецЦикла; КонецЕсли; | |||||||||||||
| 445
    
        vudo 07.07.11✎ 13:13 | 
        Использовал метки в обработке подключения торгового оборудования. Связано было с тем, что касса свои порты опрашивает в цикле, и если ВК не попадала, то связь не получалась... Также могла отвалится по тайм-ауту и приходилось переподключаться. Метки позволили избежать многократного повторения отдельных участков кода. Я просто накручивал счетчик ошибок и перемещался к нужной метке для следующего процесса подключения. Код стал прост и понятен, несмотря на использования меток, а было черт ногу сломит!     Использовать можно, но в крайнем случае | |||||||||||||
| 446
    
        Reset 07.07.11✎ 13:14 | 
        (442) лол
  СтепаСогласен=Истина; ВходитВСписокТрех=СписокТрех.НайтиПоЗначению(текПользователь); // или как там будет задано правило. Если ВходитВСписокТрех тогда Если текПользователь=Степа тогда СтепаСогласен=Вопрос(блабла); КонецЕсли; КонецЕсли; Если ВходитВСписокТрех И СтепаСогласен тогда /// КонецЕсли; | |||||||||||||
| 447
    
        proger2011 07.07.11✎ 13:15 | 
        Вирите нет? Всю жизнь обхожусь без меток, прервать и продолжить как учили. Когда ваяю код в мысли даже не приходят варианты с этими опереторами.     Да, GOTO - нельзя использовать | |||||||||||||
| 448
    
        smaharbA 07.07.11✎ 13:15 | 
        пингвинофилы есть в ветке ?     | |||||||||||||
| 449
    
        smaharbA 07.07.11✎ 13:17 | 
        именно так     Лучше использовать, чем чаще, тем лучше | |||||||||||||
| 450
    
        Rabbit 07.07.11✎ 13:19 | 
        (446) какой Стёпа на всё согласный))     | |||||||||||||
| 451
    
        Reset 07.07.11✎ 13:20 | 
        Не помню, отвечал или нет на голосовалку.
  При реальной необходимости использовать можно. Но это возникает чрезвычайно редко. Совершенно не помню, когда использовал последний раз, наверное в школе на gw basic (это было Очень давно :) ). Использовать можно, но в крайнем случае | |||||||||||||
| 452
    
        Reset 07.07.11✎ 13:21 | 
        (450) Ну да, получается, в отсутcnвие Степы считаем его согласным на все по дефолту :D     | |||||||||||||
| 453
    
        alxxsssar 07.07.11✎ 13:40 | 
        (451) Точно. Я за 10 лет работы с 1с только 2 или 3 раза пользовал и то можно было обойтись, но код громоздкий получался     | |||||||||||||
| 454
    
        Torquader 07.07.11✎ 13:49 | 
        Если рассматривать язык 1С как язык программирования, то в нём без Goto приходится сильно извращаться, так как:
  - Нет стандартного цикла Do {Тело} Loop While {Условие}, а писать While 1=1 ещё более глупо, чем Goto. - Нет возможности выхода сразу из нескольких циклов. Приходится или писать Goto за пределы цикла (что очень неудобно из-за необходимости вводить метки и задавать им имена) или выносить циклы в отдельную процедуру, чтобы использовать Return (что тоже не всегда удобно и сильно усложняет читаемость). - Возможность повторения кода с начала после устранения ошибки. Тут или Goto или "вечный цикл" и Continue (не знаю, но применение Goto выглядит более понятным, чем цикл). Поэтому, если и используется Goto, то нужно писать комментарий, чтобы было понятно, где у нас находится метка. Использовать можно, но в крайнем случае | |||||||||||||
| 455
    
        Fragster гуру 07.07.11✎ 13:51 | 
        (454) все реализуется подпрограммами     | |||||||||||||
| 456
    
        Rabbit 07.07.11✎ 13:53 | 
        (455) не всегда наглядно     | |||||||||||||
| 457
    
        Найч 07.07.11✎ 13:58 | 
        а что такое GoTo ? =)     | |||||||||||||
| 458
    
        Fragster гуру 07.07.11✎ 13:58 | 
        (456) это да. но у меня, например, при массовом перепроведении и блокировках используется конструкция
  Для СчПопыток = 1 по МаксимумПопыток Цикл Попытка // действия Прервать; Исключение Если НеОшибкаБлокировки(ОписаниеОшибки()) Тогда Прервать; КонецЕсли; глПауза(20); КонецПопытки; КонецЦикла; | |||||||||||||
| 459
    
        Fragster гуру 07.07.11✎ 13:59 | 
        фигово, но с метками - хуже     | |||||||||||||
| 460
    
        Torquader 07.07.11✎ 13:59 | 
        (455) Иногда для понимания алгоритма проще, чтобы был один текст, который занимает два-три экрана, чем пять-шесть экранов процедур, в которые приходится передавать кучу параметров.     | |||||||||||||
| 461
    
        Torquader 07.07.11✎ 14:01 | 
        (459) А если понадобится внутри алгоритма повторить выполнение его сначала (например, поменяли условие), то цикл будет выглядеть ещё более непонятно (особенно, если выход нужно сделать из вложенного цикла) - с метками проще, чем заводить всякие флаги завершения или переключения режима обработки.     | |||||||||||||
| 462
    
        Fragster гуру 07.07.11✎ 14:04 | 
        (461) в (459) и есть "повторение алгоритма сначала"     | |||||||||||||
| 463
    
        Fragster гуру 07.07.11✎ 14:07 | 
        меня бесит только отсутствие конструкции ОбработкаПрерыванияПользователя("ЧтоВыполнятьВСлучаеПрерывания"). ну и лямбда фукнкций вместо "выполнить()"     | |||||||||||||
| 464
    
        МастерВопросов 07.07.11✎ 14:07 | 
        (460) Воооот! Истину глаголишь!
  +мульон и всё такое прыгание по функциям и процедурам весьма весьма за... особо когда один и тот же параметр стописят раз переименовывется от функции к функции | |||||||||||||
| 465
    
        Fragster гуру 07.07.11✎ 14:08 | 
        (464) а ты не переименовывай     | |||||||||||||
| 466
    
        Torquader 07.07.11✎ 14:08 | 
        В (459) Нет вложенных циклов.
  Например: // Начало алгоритма While 1=1 Do // исполняем предварительную часть DoPart1(); // Исполняем какой-то цикл ContinueFlag=0; For i=1 To 10 Do // что-то выполняем DoPart2(); If RepeatCondition()=1 Then // здесь предполагается переход на начало // то есть проще было бы написать Goto ~НачалоИсполнения; ContinueFlag=1; Break; EndIf; EndDo; If ContinueFlag=1 Then Continue;EndIf; EndDo; | |||||||||||||
| 467
    
        Torquader 07.07.11✎ 14:10 | 
        (465) Основная проблема в скорости исполнения, если при каждом вызове функции мы передаём три-четыре параметра.
  Хотя, при достаточном умении можно и вложенные циклы в один загнать. | |||||||||||||
| 468
    
        GoldenDawn 07.07.11✎ 14:10 | 
        наверное когда просят примеры кода прислать они не только сами кодить не умеют на 1С но ещё и ищут GOTO
  всё так серьёзно с этим GOTO | |||||||||||||
| 469
    
        Fragster гуру 07.07.11✎ 14:11 | 
        (466) херня какая-то написана. зачем там флаг - непонятно     | |||||||||||||
| 470
    
        Torquader 07.07.11✎ 14:12 | 
        (469) А как перейти к началу, если мы находимся во внутреннем цикле ?     | |||||||||||||
| 471
    
        Fragster гуру 07.07.11✎ 14:13 | 
        (470) я так понял, что после If ContinueFlag=1 Then Continue;EndIf; ты забыл написать, что там типа еще код есть     | |||||||||||||
| 472
    
        proger2011 07.07.11✎ 14:14 | 
        (470) Пересмотреть алгоритм, сделать по другому. Я не знаю почему но когда я кодидирую мне даже в мысли не приходять break, continue, goto. Я бы точно такое не написал (466)     | |||||||||||||
| 473
    
        Torquader 07.07.11✎ 14:15 | 
        (471) Ну да - предполагается, что условие проверки на повторение в середине вложенного цикла (и проверяется на каждой итерации), а после вложенного цикла могут быть другие вычисления и, в том числе, тоже вложенные циклы.     | |||||||||||||
| 474
    
        Torquader 07.07.11✎ 14:17 | 
        (472) Проще вложенные циклы вынести в отдельные процедуры, которые возвращают код результата, а уже по этому коду и действовать, но, переписывать передачу параметров и не забывать их считать и правильно передать - тоже не так просто.     | |||||||||||||
| 475
    
        Torquader 07.07.11✎ 14:19 | 
        Например, в VbScript или Java (JavaScript) goto нет, но никто от этого не умер.
  А в 1С создатели, видимо, без Goto не справились - и, слава богу, что нельзя использовать GoTo для входа в циклы и условия - то есть "макаронные сопли" исключены. | |||||||||||||
| 476
    
        proger2011 07.07.11✎ 14:19 | 
        У меня может опыта кодирования мало, но я вобще не понимаю где такая конструкция может пригодиться
  While 1=1 Do | |||||||||||||
| 477
    
        Fragster гуру 07.07.11✎ 14:20 | 
        (470) для (458) есть ВызватьИсключение.
  просто так сохраняются логические блоки, а с перейти - предсказать, куда автор эту самую метку поставил - невозможно | |||||||||||||
| 478
    
        Rabbit 07.07.11✎ 14:20 | 
        (476) мало у тебя опыта     | |||||||||||||
| 479
    
        proger2011 07.07.11✎ 14:21 | 
        Или вот это например. Чётко указали что хотим сделать десять шагов и тутже Break. Я так не могу кодить...
  For i=1 To 10 Do // что-то выполняем DoPart2(); If RepeatCondition()=1 Then // здесь предполагается переход на начало // то есть проще было бы написать Goto ~НачалоИсполнения; ContinueFlag=1; Break; EndIf; EndDo; | |||||||||||||
| 480
    
        Reset 07.07.11✎ 14:21 | 
        (466) В даннном конкретном случае - заменить While 1=1 на
  While ContinueFlag Можно еще изобретать конструкции, где goto необходимо. На поверку в 99% случаев окажется, что плохо спроектирован алгоритм. В 1% (или 0.1%) случаев - да, пригодится. У меня за, наверное, с полсотни тысяч строк на 1С, таких случаев не было. | |||||||||||||
| 481
    
        Fragster гуру 07.07.11✎ 14:21 | 
        потому что 1с - филосовский язык:
  Пока Истина... | |||||||||||||
| 482
    
        GoldenDawn 07.07.11✎ 14:24 | 
        вот ниачем ваще спор - сколько раз запускал замер производительности - любая кодова охинея ничто по сравнению с чтением какого-нибудь чего-то
  никто не обязан придерживаться каких-то стандартов читабельность главное, отступы интервалы и имена переменных, а то некоторые пишут как на коленке дыр налезает на пыр как бы там ни было гениально а читать эту срамоту противно | |||||||||||||
| 483
    
        smaharbA 07.07.11✎ 14:31 | 
        (459) тыж истинный пингвинофил, как же тогда это (ведь элементарно без готушек) ?
  
  | |||||||||||||
| 484
    
        ado 07.07.11✎ 15:19 | 
        (425) А так не проще?
  
  | |||||||||||||
| 485
    
        ado 07.07.11✎ 15:23 | 
        +(484) Либо так:
  
  | |||||||||||||
| 486
    
        fisher 07.07.11✎ 15:26 | 
        (476) Нигде. Это просто плохой стиль, который удобно применять, если лень задумываться о читабельности кода.     | |||||||||||||
| 487
    
        ado 07.07.11✎ 15:33 | 
        +(485) На худой конец так:
  
  | |||||||||||||
| 488
    
        ado 07.07.11✎ 15:51 | 
        (484)(485)(486) Но лучше всего так, как преложено в (446), ибо опираться на особенности вычисления 1С-ом логических выражений я бы не стал.     | |||||||||||||
| 489
    
        fisher 07.07.11✎ 17:15 | 
        (488) Тогда так:
  Если ЕстьПраво() Тогда Отказ = Ложь; Если НужноИнтерактивноеПодтверждение Тогда Отказ = НЕ ПолученоИнтерактивноеПодтверждение(); КонецЕсли; Если НЕ Отказ Тогда КонецЕсли; КонецЕсли; | |||||||||||||
| 490
    
        smaharbA 07.07.11✎ 23:27 | 
        пингвинофилы слились ?     | |||||||||||||
| 491
    
        Rabbit 07.07.11✎ 23:29 | 
        (490) боюсь что я не они а они молчат     | |||||||||||||
| 492
    
        МуМу 07.07.11✎ 23:31 | 
        Не читал все. Мое мнение, если бюджет ограничен(цель оправдывает средства) - это оправдано. Сами используем.Но это не стратигичесткое и не управляемое решение.     | |||||||||||||
| 493
    
        smaharbA 07.07.11✎ 23:36 | 
        "бонзы" подтянулися ))     | |||||||||||||
| 494
    
        Rabbit 07.07.11✎ 23:38 | 
        (493) давай, клевещи))     | |||||||||||||
| 495
    
        Torquader 08.07.11✎ 00:51 | 
        Кто бы что ни говорил, но написать алгоритм вида "клеточный автомат" без меток достаточно непросто, кроме того теряется изящность и читаемость кода.
  В остальных случаях использование меток серьёзных преимуществ не даёт. P.S. лучше бы в 1С грамотно реализовали вызов исключений, чем goto (реализация goto - очень простая задача). | |||||||||||||
| 496
    
        Ахиллес 12.07.11✎ 11:12 | 
        (492) Софтпоинт занимается оптимизацией 1С с помощью гоуту? :-) 
  А в связке с "если бюджет ограничен" очень двусмысленно читается. -Щас мы вам тут задёшево наоптимизируем, хренак, хренак, нафтыкали гоуту. ВСЁ! Работа сделана! :-) | |||||||||||||
| 497
    
        ado 12.07.11✎ 11:20 | 
        (496) Гы. Внезапно :)     | |||||||||||||
| 498
    
        palpetrovich 12.07.11✎ 11:33 | 
        пипец, 5 страниц из-за goto ...ивращенцы :)     | |||||||||||||
| 499
    
        ado 12.07.11✎ 11:36 | 
        (495) Чушь.     | |||||||||||||
| 500
    
        Ненавижу 1С гуру 12.07.11✎ 11:36 | 
        500     | |||||||||||||
| 501
    
        ado 12.07.11✎ 11:37 | 
        (500) Ты во всех ветках караулишь? Или бота написал? :-)     | |||||||||||||
| 502
    
        Ненавижу 1С гуру 12.07.11✎ 11:38 | 
        (501) нет, просто по случаю стреляю иногда     | |||||||||||||
| 503
    
        ЗлобнийМальчик 12.07.11✎ 12:06 | 
        мало что ли способов по другому усложнить код     Да, GOTO - нельзя использовать | |||||||||||||
| 504
    
        GANR 12.07.11✎ 14:01 | 
        За каким ???     Да, GOTO - нельзя использовать | |||||||||||||
| 505
    
        Rabbit 12.07.11✎ 15:12 | 
        только из классовой ненависти к гоутуненавистникам     Лучше использовать, чем чаще, тем лучше | |||||||||||||
| 506
    
        NS 12.07.11✎ 15:17 | 
        (505) Если человек не умеет использовать (допустим без потери читабельности текста) все возможности языка программирования, то он по определению ущербен. Это как шахматист, который "не играет конями".     | |||||||||||||
| 507
    
        wladimir90 12.07.11✎ 15:50 | 
        Любой код можно написать без использования GOTO, но иногда ставя всего лишь одну метку можно избавится от головной боли и существенно уменьшить размер кода, количество условий и прочее. Так что иногда можно и ставить метку. Но именно иногда и обязательно её комментируя.     | |||||||||||||
| 508
    
        wladimir90 12.07.11✎ 16:01 | 
        (506) Если ДлинаЛогина <= 2 Тогда 
  Сообщить("человек по определению ущербен"); КонецЕсли; | |||||||||||||
| 509
    
        NS 12.07.11✎ 16:14 | 
        (508) Бегом марш в википедию, читать определение ущербности.     | |||||||||||||
| 510
    
        Rabbit 12.07.11✎ 16:14 | 
        (508) сочувствую     | |||||||||||||
| 511
    
        wladimir90 12.07.11✎ 16:21 | 
        (509) Зачем? Ты тоже дал прекрасное определение, записав более чем 39%(по последним данным опроса) программистов в ущербные.     | |||||||||||||
| 512
    
        NS 12.07.11✎ 16:22 | 
        (511) Я не давал определение ущербности, учись читать.     | |||||||||||||
| 513
    
        wladimir90 12.07.11✎ 16:23 | 
        (512) отмазки левые.     | |||||||||||||
| 514
    
        NS 12.07.11✎ 16:29 | 
        (513) Ссылку на данное мной определение приведешь?
  Или кроме значения слова "ущербный", ты в придачу не знаешь и значения слова "определение"? Что такое "ссылка" знаешь? :) | |||||||||||||
| 515
    
        wladimir90 12.07.11✎ 17:29 | 
        (514) Конечно дам! вот она - (506)
  Признай уже что ступил. ПС Человек человеку волк, а зомби зомби зомби. | |||||||||||||
| 516
    
        NS 12.07.11✎ 18:06 | 
        (515) Точно, значение слова "определение" ты естественно не знаешь.
  Там написано "по определению", но самого определения нет, ибо мне казалось что все знают определение (и значения) этого слова. | |||||||||||||
| 517
    
        360i 12.07.11✎ 19:02 | Да, GOTO - нельзя использовать | |||||||||||||
| 518
    
        wladimir90 13.07.11✎ 17:23 | 
        (516) ПоОпределению(<Определение в озвучании писателя>). Читай СП РусЯза!     | |||||||||||||
| 519
    
        NS 13.07.11✎ 17:27 | 
        (518) Ну ты тормоз.
  Использующий не в полной мере называется неполноценным, а неполноценный - синоним ущербного. Вот определение. Которого я в своем посте конечно-же не давал. | |||||||||||||
| 520
    
        wladimir90 13.07.11✎ 17:31 | 
        (519) Перечитываю твой пост 506 и сравниваю с постом 519 - один в один твое "определение", тока заменил один синоним другим.     | |||||||||||||
| 521
    
        NS 13.07.11✎ 17:36 | 
        (520) Я умываю руки, чему сейчас в школе учат?
  Поколение пепси уже не отличает определение от его использования... | |||||||||||||
| 522
    
        Ms Test 13.07.11✎ 17:44 | 
        (506) +1 :)     Использовать можно, но в крайнем случае | |||||||||||||
| 523
    
        NS 13.07.11✎ 17:48 | 
        (520) (521) Виноват. 90-ый это уже не поколение пепси.     | |||||||||||||
| 524
    
        wladimir90 13.07.11✎ 17:57 | 
        (523) Скорее поколение Виндовс XP     | |||||||||||||
| 525
    
        wladimir90 13.07.11✎ 17:58 | 
        Может поспорим что считать поколением? :)     | |||||||||||||
| 526
    
        NS 13.07.11✎ 18:07 | 
        "современная Яга-школота, она же «поколение Next», поколение гламура и Камеди клаб. 
  Стоит отметить высер быдла, что «хуже Поколения Пепси не будет ничего». Оказалось будет. Поколение Яги тому пример. Даже сами поцреоты таки это признают." :) (с) Лукморе. http://lurkmore.ru/index.php?title=Поколение_Пепси&stable=1 | |||||||||||||
| 527
    
        Господин ПЖ 13.07.11✎ 18:25 | 
        я один раз использовал - доктор, я буду жить?     Использовать можно, но в крайнем случае | |||||||||||||
| 528
    
        wladimir90 13.07.11✎ 18:31 | 
        (526) Дааа. В наше время такого не было. Все девочки были целочки до 30 лет, а парни ходили в армию на 10 лет.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |