Г-н Фаршеклоакин (spamsink) wrote,
Г-н Фаршеклоакин
spamsink

Старинные подписи к картинкам

У розы из предыдущего поста, как было модно с 1980 года, должно было быть имя. Его можно было задавать явно, а если оно не было задано, генерировалось случайное. Например, такие (считайте игрек буквой У):
EKOTЬBAБ ЛЯBECЫXП EMOCИEBE EБЩATИPC TCЫKOГИЧ ЫKOCЛЯOH
OMYШAHИM HИPCTЫKO ЛИPИXПOP ИTTЫBAXC ECЯЗЫKOC ИИЯXПOTC
ПCTHЫИTЬ AHTEHOДO EБOПPИTA ИPEHЫKYД OTBACЫИC CTИTCПPO
HЫTCИЯЗO EИOЛГPOБ YЛЬOBCЫK CEMYЛЬKИ EБOTCOПЫ AДOЗATHИ
COOBOTИM HИЙCЯECT AKEИEИTE ИФOГPCTЬ ПOTTOPИФ BATEДEBA

Особо отмечу "омушаним" и "соовотим", "семульки" (превед Лему) и "ватедева" (звучит по-санскритски; так и оказалось, Dewaté-dewa = great god of gods, говорят нам гуглобуки). А Потториф (Pottorif) - реальная фамилия, говорит нам гугл.

Делалось это следующей процедурой
СОNSТ VL=85;SVL=510;
VAR Z: ARRAY[1..VL] of ALFA; (* packed array [1..6] of char *)
PROCEDURE ФИМЯ(VAR M:ARRAY [1:8] OF CHAR);
LABEL 33;
VAR К,L,N,Р:INТEGER;
    С:ARRAY [1..6] OF CHAR;
    G,R:СНАR;
_(
  33:L:=ТRUNС(RАNDОМ*SVL);
  N:=L DIV 6; 
  L:=L-N*6+1;
  UNРСК(С[1],Z[N+1]);
  М[1]:=С[L];
  G:=C[L];
  IF G=’Ь’ ТНЕN GОТО 33;
  FОR Р:=2 ТО 8 DО _(
    L:=ТRUNС(RАNDОМ*SVL);
    N:=L_DIV 6;
    L:=L-N*6+1;
    N:=N+1;
    UNРСК(С[1],Z[N]);
    RЕРЕАТ
      R:=С[L];
      L:=L+1;
      IF L=7 ТНЕN _(
        L:=1;
        N:=N+1;
        IF N>VL ТНЕN N:=1;
        UNРСК(С[1],Z[N])
      _)
    UNТIL R=G;
    IF L<7 ТНЕN
      G:=С[L]
    ЕLSЕ _(
      IF N>VL ТНЕN N:=1;
      UNРСК(С[1],Z[N]);
      G:=С[1]
    _);
    М[Р]:=G
  _);
  FОR N:=2 ТО 7 DО
    IF (М[N-1]=М[N])∧(М[N]=М[N+1]) ТНЕN GОТО 33; 
_);

Обратите внимание, что словная архитектура машины заставляет прибегать к трюкам, т.к. прямые обращения к элементам упакованных массивов по 6 байт в слове довольно медленные. Эти трюки не должны помешать вам понять, что происходит. Замечу, что делаются специальные проверки, чтобы имя не начиналось с мягкого знака и не содержало трех одинаковых букв подряд.

А теперь гвоздь программы: текст из 510 символов, на основе которого генерируются случайные "имена", таков:


ОБУЧЕНИИ ОПЫТНЫХ ПРОГРАММИСТОВ ТАКЖЕ ИМЕЮТСЯ СИНТАКСИЧЕСКИЕ СЕМАНТИЧЕСКИЕ АСПЕКТЫ КУРСЯ РАЗРАБОТКЕ АЛГОРИТМОВ СОСРЕДОТОЧЕНЫ ЗНАНИЯХ ПОДРОБНОСТИ НИХ СТАРАЮТСЯ ВЫДЕЛИТЬ ОТДЕЛЬНЫЕ ОБСУЖДЕНИЯ ВООБЩЕ ОПУСТИТЬ КУРСАХ ОБУЧЕНИЯ ВТОРОМУ ТРЕТЬЕМУ ЯЗЫКУ ПРОГРАММИРОВАНИЯ ОСНОВНОЕ ВНИМАНИЕ УДЕЛЯЕТСЯ ЭКВИВАЛЕНТАМ ИЗВЕСТНЫХ СЛУШАТЕЛЯМ ПОНЯТИЙ СОЧЛИ ТРЕБОВАНИЕ ИСПЫТУЕМЫМ ЗАДАВАТЬ ВОПРОСЫ ТАКОМ ОГРАНИЧЕННОМ ФОРМАТЕ ПОЗВОЛЯЕТ ИЗМЕРИТЬ СПОСОБНОСТИ РЕШАТЬ ЗАДАЧИ ФОРМУЛИРУЯ ЗАПРОСЫ ИССЛЕДОВАТЬ СИСТЕМЫ ЕСТЕСТВЕННЫМ ЯЗЫКОМ СЛЕДУЕТ ТЩАТЕЛЬНО УЧИТЫВАЯ ПСИХОЛОГИЧЕСКИЕ ПРИНЦИПЫ ПОЛЬЗОВАТЕ

Tags: retrocomputing
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 17 comments