Sponsored Content
Top Forums Programming Code review: recursion in circular array, reduce two functions to one? Post 303014893 by f77hack on Thursday 22nd of March 2018 08:39:50 PM
Old 03-22-2018
Code review: recursion in circular array, reduce two functions to one?

Hello,
I think there's an easier way to do this but can't seem to recall but given an array of animals[0...5] and an initial value is a random index in the array, here it's 3.

3,4,5,4,3,2,1,0,1,2,3,4,5,4,3,2,1,0... inifinite repeat

a quick brute force solution i came up with was two functions, i set a limit of 20 so it doesn't become a memory bomb. there would be some kind of other conditional break point.

Code:
func fwd()
{
  counter += 1
  while(currentRow < (animals.count - 1))
  { currentRow += 1 }
  if counter < 20 { bk() }
}

func bk()
{
  counter += 1
  while(currentRow > 0)
  { currentRow -= 1 }
  if counter < 20 { fwd () }
}

fwd()


Last edited by f77hack; 03-22-2018 at 09:44 PM.. Reason: typos
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Can some review my code would be appreicated?

I am getting an error "ftpNotes.sh: syntax error at line 8 : `<<' unmatched" #!/bin/ksh PATH=/usr/sbin/:/usr/bin:/usr/ucb:/etc:/usr/local/bin:. cd $HOME if ;then if ; then echo 'DSC file already ftp to epm server' else ftp -n epmdev00 <<SCRIPT... (1 Reply)
Discussion started by: sibghat
1 Replies

2. Shell Programming and Scripting

Can someone review my code tell me where I am going wrong?

Started writing my code. my read input is not even asking nor working? And I get a EOF script error. echo "1) aragorn.domain.net" echo "2) marvel.domain.net" echo "3) athena.domain.net" echo "4) gandalf.domain.net" echo "5) griffin.domain.net" echo "What server would you like... (4 Replies)
Discussion started by: chrchcol
4 Replies

3. Shell Programming and Scripting

Tricky array substitution in functions

Hello, Please tell me if there is a better way to get the number of elements from an array that is passed to a function. This is what works on Solaris 8 (ksh) but it looks odd: loop_array() { array_name=$2 b1='\${\#' b2='}' nr_elements=`eval echo... (6 Replies)
Discussion started by: majormark
6 Replies

4. Programming

[ C ] multidemensional array pass to functions

Please excuse my ineptitude for a bit as I've been spoiled for the past few months with only writing perl code instead of C. So ok, I've been thinking about some code to change the crc32 values that are held within central directory headers of zip files. Because I'm lazy I decided to just... (3 Replies)
Discussion started by: VRoemer
3 Replies

5. Shell Programming and Scripting

How to reduce code.....

Hi All, Could some one help me to reduce the code... if then ./plist -m "$queuename" |grep $2|awk '{print $3}' >unlock.log elif then ./plist -m "$queuename" |grep $2|awk '{print $4}' >unlock.log else ./plist -m "$queuename" |grep $2|awk '{print $5}' >unlock.log . . . . ... (1 Reply)
Discussion started by: harshakusam
1 Replies

6. Shell Programming and Scripting

Passing array to functions in ksh script

Let me know if there is a way to pass array to a funtion in ksh script. function isPresent { typeset member member=$1 dbList=$2 echo '$1:' $1 echo '$2' $dbList The array will be at the second position....something like this isPresent 12 <array> if then echo... (3 Replies)
Discussion started by: prasperl
3 Replies

7. Programming

c++ code to check whether a list is circular or not

hi all, i need c++ code to check whether a list is circular or not... please help (8 Replies)
Discussion started by: vidyaj
8 Replies

8. Shell Programming and Scripting

Need help on Assigning a Array variable from Background Functions

I have a question on how can I assign a output of a function to a variable which is executed in background. Here is my example $ cat sample_program.sh #!/bin/ksh exec_func () { sleep 1 v=`expr $1 + 100` print $v } export OUT_ARR date for i in 1 2 do OUT_ARR=`exec_func $i` &... (1 Reply)
Discussion started by: mohan_kumarcs
1 Replies

9. Shell Programming and Scripting

Reduce the number of lines by using Array

I have the following code to count the number of how many times the name occurred in one file. The code is working fine and the output is exactly what I want. The problem is the real code has more than 50 names in function listname which cause function name to have more than 50 case ,and function... (14 Replies)
Discussion started by: samsan
14 Replies
REFCOUNT(9)                                                BSD Kernel Developer's Manual                                               REFCOUNT(9)

NAME
refcount, refcount_init, refcount_acquire, refcount_release -- manage a simple reference counter SYNOPSIS
#include <sys/param.h> #include <sys/refcount.h> void refcount_init(volatile u_int *count, u_int value); void refcount_acquire(volatile u_int *count); int refcount_release(volatile u_int *count); DESCRIPTION
The refcount functions provide an API to manage a simple reference counter. The caller provides the storage for the counter in an unsigned integer. A pointer to this integer is passed via count. Usually the counter is used to manage the lifetime of an object and is stored as a member of the object. The refcount_init() function is used to set the initial value of the counter to value. It is normally used when creating a reference-counted object. The refcount_acquire() function is used to acquire a new reference. The caller is responsible for ensuring that it holds a valid reference while obtaining a new reference. For example, if an object is stored on a list and the list holds a reference on the object, then holding a lock that protects the list provides sufficient protection for acquiring a new reference. The refcount_release() function is used to release an existing reference. The function returns a non-zero value if the reference being released was the last reference; otherwise, it returns zero. Note that these routines do not provide any inter-CPU synchronization, data protection, or memory ordering guarantees except for managing the counter. The caller is responsible for any additional synchronization needed by consumers of any containing objects. In addition, the call- er is also responsible for managing the life cycle of any containing objects including explicitly releasing any resources when the last ref- erence is released. RETURN VALUES
The refcount_release function returns non-zero when releasing the last reference and zero when releasing any other reference. HISTORY
These functions were introduced in FreeBSD 6.0. BSD January 20, 2009 BSD
All times are GMT -4. The time now is 05:04 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy