Difference between revisions of "Octave fun"

From Octave
Jump to navigation Jump to search
(→‎Octave fun scripts: Inline code example and overhaul code.)
Line 5: Line 5:
 
To see this is not true one can look at the samples below:
 
To see this is not true one can look at the samples below:
  
Source code: [[Media:octavetree.m]]
+
Octave tree: [[File:OctaveTree.png|500px]]
  
Octave tree: [[File:OctaveTree.png|500px]]
+
<syntaxhighlight lang="octave">
 +
N = 25;  # Height
 +
H = 7;  # Trunk height
 +
g = 0.2; # Density of decoration (0 <= g <= 1).
 +
 
 +
for i = 1:N
 +
  for j = 1:N-i
 +
    printf (" ");
 +
  endfor
 +
  for j = 1:2*i-1
 +
    z = rand ();
 +
    if (z < g)
 +
      printf ("@");
 +
    else
 +
      printf ("*");
 +
    endif
 +
  endfor
 +
  printf ("\n");
 +
endfor
 +
for i = 1:H
 +
  for j = 1:N-2
 +
    printf (" ");
 +
  endfor
 +
  printf ("***\n");
 +
endfor
 +
i = 0;
 +
printf ("2019");
 +
while (true)
 +
  i = mod (i, 2*N);
 +
  for j = 1:i
 +
    printf (" ");
 +
  endfor
 +
  if (i < 2*N-2)
 +
    printf ("mmmDDD");
 +
  else
 +
    printf ("  2020");
 +
  endif
 +
  pause (0.1)
 +
  printf ("\r2019");
 +
  i++;
 +
endwhile
 +
</syntaxhighlight>
  
 
[[Category:Examples]]
 
[[Category:Examples]]

Revision as of 10:36, 13 June 2019

Octave fun scripts

Writing programs (not only in Octave) is often seen as a boring activity. To see this is not true one can look at the samples below:

Octave tree: OctaveTree.png

N = 25;  # Height
H = 7;   # Trunk height
g = 0.2; # Density of decoration (0 <= g <= 1).

for i = 1:N
  for j = 1:N-i
     printf (" ");
  endfor
  for j = 1:2*i-1
    z = rand ();
     if (z < g)
       printf ("@");
     else
       printf ("*");
     endif
  endfor
  printf ("\n");
endfor
for i = 1:H
  for j = 1:N-2
    printf (" ");
  endfor
  printf ("***\n");
endfor
i = 0;
printf ("2019");
while (true)
  i = mod (i, 2*N);
  for j = 1:i
    printf (" ");
  endfor
  if (i < 2*N-2)
    printf ("mmmDDD");
  else
    printf ("  2020");
  endif
  pause (0.1)
  printf ("\r2019");
  i++;
endwhile