Considera il programma sottostante, redatto in R (o quello a a lato, redatto in QBasic). Cerca di prevedere che cosa appare sullo schermo alla fine dell'esecuzione. Verifica, poi, la tua previsione battendo e mandando in esecuzione il programma.     
CLS
R = 12 : C = 40
FOR L = 1 TO 20 : FOR i = 1 TO L
  SELECT CASE L - (L \ 4) * 4
  CASE 0
    C = C + 2
  CASE 1
    R = R + 1
  CASE 2
    C = C - 2
  CASE 3
    R = R - 1
  END SELECT
  LOCATE R, C : PRINT "#";
NEXT : NEXT
source("http://macosa.dima.unige.it/r.R")
BF=2.5; HF=2.5; boxN(0,45,0,23)
# ovvero:
# plot(c(0,45),c(0,23),type="n",xlab="",ylab="")
plot(c(0,45),c(0,23),type="n",xlab="",ylab="")
R <- 12; C <- 22
for(L in 1:20) for(i in 1:L) {

  v <- L-floor(L/4)*4;
  if(v==0) C<- C+2 else {if(v==1) R<- R+1 else {if(v==2) C<- C-2 else R<- R-1}};
  text(C,R,"#") }