On 9/22/2020 5:46 AM, dano none via fpc-pascal wrote:
I have a basic shuffle routine. I put being, end statements in the outer loop for clarification. It ended up producing random results. Commenting out the begin, end combination allows the code to run as expected. My code is below, can someone tell me if the begin, end combination should actually make a difference, or should they be more ornamental in function?
Well, in that code snippet, you have commented out one begin statement and two end statements in a nested comment. As Bart already mentioned, having the first for loop's statements enclosed with a begin/end does not make any functional difference, unless you have somehow unbalanced pairs of begin/end (outside of that code snippet).
Most of the time, this will result in the code not even compiling or throwing some warnings but there can be cases where it accidentally changes the flow of the code. Similar like moving code blocks around in Python with a one-off indentation and all the sudden the flow of that code changes, without complaining...
What editor do you use to write your code? If you are using the Lazarus IDE for example, it show show you/highlight the matching pairs of begin/end and could help to find some stray begins or ends in your code...
Ralf
Thanks! {Let's Shuffle Col1 - routine from: https://www.theproblemsite.com/reference/science/technology/programming/randomizing-an-array } my_base := 0; for i:= 0 to 4 do { Column we are currently working on } { begin } for j:= 0 to 90 do { 20 swaps on the working column } begin index1 := RandomRange(my_base,my_base+14); { a random # = length of the array } index2 := RandomRange(my_base,my_base+14); writeln('index1 ', index1,' ', 'index2 ', index2); while (index1 = index2) do begin index2 := RandomRange(my_base,my_base+14); { avoid swaping on the same square } writeln('index2 trap ',index2); end; my_temp := shuffle_array[i,index1]; { store position to get a random value } shuffle_array[i,index1] := shuffle_array[i,index2]; shuffle_array[i,index2] := my_temp; writeln(shuffle_array[i,index1],' ',shuffle_array[i,index2]); { ok... Index isn't a valid row.. } end; my_base := my_base + 15; writeln('current base ',my_base:2); ch := ReadKey; { end; { end i = column indexer }}
-- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal