Войти
ФлеймФорумПрограммирование

Задачка-2

Страницы: 1 2 344 45 Следующая »
#0
13:30, 5 июня 2017

Я давно так не ржал, как над темой "Задачка".

Хочу продолжить игру.

Есть простенькая программка. Конечно, старый BASIC мало кто помнит, но суть-то, надеюсь, понятна? Кто сможет переписать на современном языке? И самое главное - красивее переписать.

10 OPTION BASE 1: DIM D$(1025): D$(1)="ЭТО КОТ": I=1: ON ERROR GOTO 80
20 PRINT D$(I);: INPUT O$: O$=LEFT$(O$,1)
30 IF I<512 THEN IF D$(I*2)<>"" GOTO 70
40 IF O$="Д" OR O$="д" THEN PRINT "УРРА-А!": I=1: GOTO 20
50 D$(I*2+1)=D$(I): INPUT "А КТО ЭТО";O$: D$(I*2)="ЭТО "+O$
60 INPUT "ЧЕМ ОТЛИЧАЕТСЯ";D$(I): I=1: GOTO 20
70 IF O$="Д" OR O$="д" THEN I=I*2: GOTO 20: ELSE I=I*2+1: GOTO 20
80 PRINT "НЕ ХВАТАЕТ МОЗГОВ!": END


#1
13:48, 5 июня 2017

gudleifr
> Конечно, старый BASIC мало кто помнит
Или вообще не знают

#2
14:05, 5 июня 2017

endeavour_pr
> Или вообще не знают
Ну "вообще не знать" BASIC невозможно. Практически все слова в нем очевидны. Тем более, для программиста.

#3
14:16, 5 июня 2017

gudleifr
> И самое главное - красивее переписать
красивее это как? у форме картинки?
типа такого:

  #include   /*recall-the\    /-good--old-\    /IOCCC-days!\    */<unistd.h>
   typedef  unsigned/*int*/  short U;U(main)  [32768],n,r[8];  __attribute__((
  # define  R(x)       A(r[  7-(n       >>x&  7)],       (n>>  x>>3       )%8)
  #define   C(x)       (U*)  ((/*             |IO|             -dpd
  */char*)  main       +(x)  )/*|             |CC|             ll*/
  # define  A(v,       i)(i  ?i<2             ?C(v             ):i\
  -4?v+=2,  C(i-       6?v-  2:v+       *C(v  -2))       :C(v  -=2)       :&v)
  /*lian*/  constructor))U(  x)(){for(;;*r+=  2,*r+=!n?_exit(  write(2,"Illeg"
  "al ins"   "truction ;-"    "(\n",24)),0:     n>>8==001?(      signed char




                 )n*2   :548==n>>    6&&usleep     /**/(10
                 )+n%  64==   4?0*  write  (r[7   /**/],C(
                 *C(*  r)),   *C(*  r+2)   )+4:  /**/ n>>9
                 ==63   &&--r[7-n/   64%8]?n%+  /**/  64*-
                 2:0,         n>>6  ==47   ?*R( 0):n>>12==1?
                 *R(0  )=*R   (+6)  :n>>  12==+       14?*
                 R(0)   -=*R(2*3)    :0)n=*C(*        r);}
или такого
               #include\
          <stdio.h>//
        #define Y(\
      _)_##char
    #define \
   _ [9<<9],
  #define j\
 L;fread(&\
 L,4,1,f);u
 #define P\
 &4**(int*\
 )"   ")% \
 3901%31///
  #define q\
   Z[F++]=*E
    #define $\
      for("IOCCC"
          #include\
              <stdlib.h>










int   *Q,u,i,c,k,B,r=0,w,n,F=0,x,J,u,m,p,s=0,v,e,r,L,a,z,y,D,o,g;   Y(       )*
                                                                    Z=      "Vn"
  "-S"                                                             "xR9Q"   "[$s"
"Zd&o+"                                                            "pf^cM"  "cbac\
J_VHMF_"                                                           "BkaEg^" "x`i_i\
us%d]oWG:"                                                          "r`IZ.6_]H3ec]_\
bWW_^Ej2i[r"                                                         "ZZnJjW[bK`hZakb\
_l]gL3X]d_#$eK"                             "[G3 d[Xe][:V`4Z]Z"      "VfX^]V:X%b]N,ma-j"
"^m57c!`O.qP8lTc^"                    "gm,Um;m`m^^`5n_nci<Wf[h<t+e$%" "]Lha&=l Umc>m#_mdp"
   "h/codZ#i`,''mbb(fh"          ")h)(^uV9b7dcZq`^d`/*3`#ko`lj;^idad/]0ffxP*]??bff$h`@(Zgtcn"
       "k10t<A6mYZNh!g&a2^j" "!^hOZb!&]bd(]TuqI]#iepZc/XdX(Z X4a!dgpc>0q;]^7p`q*AtqC1j,'#_on tp"
             "on e !1+tA6`db`qciq`'=?ui]'`_`dk`!kx_%]bu]cZX8u_)Z=8@ghg$mlp`a>D_o2_eb)sb)sa0g@f-h"
                  "1bl_DeblFsa&Dt^t4*X *mCC^5Y",M _ A _ G _ I _ C _ K[]="',b}q}a9\"],)'(cDDJr4"
               "Ab,:sdtd/E*#2eXkZ7cPthkq`(stnhct!a:>A;A+jA9>A;A+js",*E=I;FILE*f;main
           (int d,Y()**t){$;!t;s=c=-D){$,t=v=D?k:J;v++-d;){$,o=L=z=0,s=D?J:k;s+++d
        -B-F;)(o&&(e=m),y=*Q!=(m=Q[u*i+(D?v-u*s:s-u*v)]))^o&&(G[z++]=s-L>20,L=s,o=y);$,
      s=z,o=0;s--;o+=G[s]^s[A]);$;z^w||o;z=w){$,o=1;o&&!--o*D-~-~-w|1[A]|v-a>28&&w^4|1[A]|
    3[A]|!2[A      ]|v-a>5;)$;I[g[I]=2,++g]=-1,-s<w;I[~-g]=A[-s--]);$,a=v,w=z;z--;A[z]=z[G]);
  }}$,v=a        =o;(Z=C+!D*734)[z=a]                         ^3;d=0){$;!~I[v];a=z,v=o=0)$,M[L
 ++]+=          Z[z]^4?-42:o;                                      Z[z++]^4;);      $;~z&&2>(s=I
 [v           ])&4<Z[z]                                                |Z[z]==s         ;)++z,s^2?
             d++,++                                                       v:v&&(o           +=d,a=z,
            z=-1                             );$;v++[                       I]^2;)             ;}}$;d
            ;d                             =c){$,p=*Z;F++                     [I]=                *++
                                        Z%p,*Z;);$,Z=C;x=F                     ,F=
                                        r,s=2,p---7;Q=E,E=Z
                                       ,Z=Q)$;s%x;p^(c=s++[E
                       ])?q*0+c:(q++,  q--));$;K[F];K[F++]-=p
                    );c=fseek((f=fopen(*++t,"rb"))?f:(exit(1)
                   ,f),10,r);j;n=j=j=j;i=j;F=a=fseek(f,n,c);
                  Q=calloc(z=i--*u,4);$;a^z;fread(a+++Q,L>>
                  19,1,f));$;F++<i;r=n){$,n=0,B=u;B;n|=*Q^Q
                  [u*(i-F)+--B]);$,n&&Y(!r&&(D=F-J,J=F);
                 !n&&r;r=x=!put)(10))$;B^u;B++,c=p){$,p=
                0,s=J;s^F;p|=*Q^Q[B+u*(i-s++)]);$;p&&!c;
              )$;++Y        (c*F-J<<1<5*((k=B)-x);put)(32
             ),++c);          $;!p&&c;x=B){$,F-J<<1<Y(D&&
              put)(           10),D=95;D--;D[M]=0);$;main(
               ++D?B:           F,w=a=g=0),!D;);$;x=K[o++]-
                 27;M             [x]*M[K[o++]    -27]>0&&(M
                                    [x]=s));$;     ++c^L;M[c]
                                      >s&&(s=M[       x=c]));$;
                                       3^d||printf      (K+--o,(
                                          *Q P,(e P),      D*!(c+~x);
                                               w++)$,o=     '~';-~o;)$
                                                 [w]Y(^--     o||put)(D=
                                                   o);0;);c     =Y(~o&&!
                                                    put)(*K+     x);}}}}}
#4
14:19, 5 июня 2017

Zegalur
> красивее это как?
Когда
1. программа хорошо ложиться на язык программирования и
2. код легко обозрим и управляем

#5
14:27, 5 июня 2017

gudleifr
> 2. код легко обозрим и управляем
а, то есть чтоб код влез на один экран?

+ Показать
#6
14:30, 5 июня 2017

Zegalur
> а, то есть чтоб код влез на один экран?
Ну, по крайней мере, каждая из подпрограмм (или другая логически завершенная конструкция влезала в экран).
В идеале же программа должна реализовывать некий проблемно-ориентированный язык, на котором задача описывается и решается очевидно.

#7
14:33, 5 июня 2017

gudleifr
> И самое главное - красивее переписать.

Тут челлендж будет если задаться целью написать еще более некрасиво.
Тут уже потребуется ассемблер привлекать. PDP-11 какой-нибудь.

#8
14:48, 5 июня 2017

=A=L=X=
> Тут челлендж будет если задаться целью написать еще более некрасиво.
Слова, слова...

=A=L=X=
> ассемблер привлекать. PDP-11 какой-нибудь.
... и незнание матчасти. Язык ассемблера PDP-11 очень красив. Особенно, по сравнению с убогим Intel (разве что, Intel-4004 был прекрасно-уродлив).

#9
14:57, 5 июня 2017

Господа, не уходите от темы. Задача в том чтобы написать убийцу акинатора на современном языке, чтобы выглядел не хуже чем на бейсике.

#10
14:59, 5 июня 2017

kipar
> чтобы выглядел не хуже чем на бейсике.

А разве на бейсике он выглядит не хуже любого структурированного варианта?

#11
15:01, 5 июня 2017

Хотя я ставлю на хаскель. Вряд ли где-нибудь получится короче.

#12
15:04, 5 июня 2017

=A=L=X=
> А разве на бейсике он выглядит не хуже любого структурированного варианта?
Открою великий секрет программирования. Структурное программирование без системы предикатов, предложенных Дейкстрой, есть разновидность злостного быдлокодинга.

#13
15:05, 5 июня 2017

=A=L=X=
> Хотя я ставлю на хаскель.
Не вижу кода.

#14
15:06, 5 июня 2017

=A=L=X=
> А разве на бейсике он выглядит не хуже любого структурированного варианта?
Пока никаких структурированных вариантов никто не предложил. А так да, любой вариант по-моему будет лучше лапши из гото на бейсике.

Страницы: 1 2 344 45 Следующая »
ФлеймФорумПрограммирование

Тема в архиве.