[Scilab-users] Stepping through a script with graphics
Claus Futtrup
cfuttrup at gmail.com
Wed Nov 30 21:13:05 CET 2016
Hi
Stepping through a script would be a wonderful (debugging) feature to be
added to SciNotes.
Many years ago when I was programming Turbo Pascal 7, inserting a
breakpoint and then stepping through a section of the code while
monitoring variables, was a good way to study the logic and debug code.
Best regards,
Claus
On 30-11-2016 10:44, Jens Simon Strom wrote:
> Hi,
> I would like to share a function with the community which supports
> stepping through a script:
>
> function!XCLICK()//Stops a script and offers restart options by pressing a key
> //Helpful for presenting a sequence of graphics or print results
> step-by-step
> //Call: !XCLICK(), always without arguments
> //First figure must be clicked on focus.
> //key SPACE returns to the calling function (for next plot or script
> section)
> //key a aborts execution
> //key b sets the global variable GLOB=%t (default: %f).
> // This can e.g. be used to break a while loop.
> // In this case GLOB must be paired in the calling script and
> // >>if GLOB, break,end<<has to follow >>!XCLICK()<<.
> // Without loop key b is equivalent to key SPACE. A figure is created
> automatically.
> //key i prints key options
> //Rotate and Zoom options of graphics are maintained.
> global GLOB
> GLOB=%f
> [ib,x,y]= xclick()
> if ib==32 then//SPACE, returns to calling function
> return
> elseif ib==97//a, ends execution
> disp('Script aborted.')
> xdel();
> abort
> elseif ib==105//i, shows key options
> disp(['KEY OPTIONS';
> 'space: return to calling function';
> 'b: set GLOB=%t';
> 'a: terminate execution';
> 'i: show key options'])
> !XCLICK()
> elseif ib==98//b
> GLOB=%t
> return
> else
> !XCLICK()
> end
> endfunction//!XCLICK() //Here is how I tested the function: xdel();
> global GLOB
> n=5;
> for i=1:n;
> plot([1 2*i])
> !XCLICK(), if GLOB, break, end
> end
> surf()
> !XCLICK()
> clf();
> plot3d()
> !XCLICK()
> clf();
> histplot();
> !XCLICK()
> xdel()
> while %t
> disp('Terminate infinite loop by pressing b.')
> !XCLICK(), if GLOB ,break, end
> end
> If the benefits of the function are easier to get please advise; flaws
> also please.
> Cheers
> Jens
>
>
> _______________________________________________
> users mailing list
> users at lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20161130/3b3a03c2/attachment.htm>
More information about the users
mailing list