Sponsored Content
Top Forums Programming Code review: recursion in circular array, reduce two functions to one? Post 303014909 by rbatte1 on Friday 23rd of March 2018 07:32:41 AM
Old 03-23-2018
Maybe you could have an adjustment value that you would always add. When the counter gets high, you set the adjustment value to -1. When it gets back to zero, you set it to 1. That way, you only have one function plus a decision to make about if you need to change the adjustment value:-
Code:
adjval=1
counter=0
currentRow=0

function adjust_it ()
{
 ((counter=$counter+1))
 ((currentRow=$currentRow+$adjval))
 [ $currentRow -le 0 ] && adjval=1                # We set it to count up
 [ $currentRow -ge 5 ] && adjval=-1               # We set it to count down
 echo "Counter is $counter ; CurrentRow is $currentRow ; Adjustment value is $adjval"
}

Then, a simple loop will illustrate it:-
Code:
$ while :
> do
> adjust_it
> sleep 1
> done
Counter is 1 ; CurrentRow is 1 ; Adjustment value is 1
Counter is 2 ; CurrentRow is 2 ; Adjustment value is 1
Counter is 3 ; CurrentRow is 3 ; Adjustment value is 1
Counter is 4 ; CurrentRow is 4 ; Adjustment value is 1
Counter is 5 ; CurrentRow is 5 ; Adjustment value is -1
Counter is 6 ; CurrentRow is 4 ; Adjustment value is -1
Counter is 7 ; CurrentRow is 3 ; Adjustment value is -1
Counter is 8 ; CurrentRow is 2 ; Adjustment value is -1
Counter is 9 ; CurrentRow is 1 ; Adjustment value is -1
Counter is 10 ; CurrentRow is 0 ; Adjustment value is 1
Counter is 11 ; CurrentRow is 1 ; Adjustment value is 1
Counter is 12 ; CurrentRow is 2 ; Adjustment value is 1
Counter is 13 ; CurrentRow is 3 ; Adjustment value is 1
Counter is 14 ; CurrentRow is 4 ; Adjustment value is 1
Counter is 15 ; CurrentRow is 5 ; Adjustment value is -1
Counter is 16 ; CurrentRow is 4 ; Adjustment value is -1
Counter is 17 ; CurrentRow is 3 ; Adjustment value is -1
Counter is 18 ; CurrentRow is 2 ; Adjustment value is -1
Counter is 19 ; CurrentRow is 1 ; Adjustment value is -1
Counter is 20 ; CurrentRow is 0 ; Adjustment value is 1
Counter is 21 ; CurrentRow is 1 ; Adjustment value is 1
Counter is 22 ; CurrentRow is 2 ; Adjustment value is 1
Counter is 23 ; CurrentRow is 3 ; Adjustment value is 1
Counter is 24 ; CurrentRow is 4 ; Adjustment value is 1
Counter is 25 ; CurrentRow is 5 ; Adjustment value is -1
Counter is 26 ; CurrentRow is 4 ; Adjustment value is -1
Counter is 27 ; CurrentRow is 3 ; Adjustment value is -1
Counter is 28 ; CurrentRow is 2 ; Adjustment value is -1
Counter is 29 ; CurrentRow is 1 ; Adjustment value is -1



Does that help, or have I missed the point?
Robin
This User Gave Thanks to rbatte1 For This Post:
 

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
Moose::Meta::Attribute::Native::Trait::Counter(3)	User Contributed Perl Documentation	 Moose::Meta::Attribute::Native::Trait::Counter(3)

NAME
Moose::Meta::Attribute::Native::Trait::Counter - Helper trait for Int attributes which represent counters VERSION
version 2.0604 SYNOPSIS
package MyHomePage; use Moose; has 'counter' => ( traits => ['Counter'], is => 'ro', isa => 'Num', default => 0, handles => { inc_counter => 'inc', dec_counter => 'dec', reset_counter => 'reset', }, ); my $page = MyHomePage->new(); $page->inc_counter; # same as $page->counter( $page->counter + 1 ); $page->dec_counter; # same as $page->counter( $page->counter - 1 ); my $count_by_twos = 2; $page->inc_counter($count_by_twos); DESCRIPTION
This trait provides native delegation methods for counters. A counter can be any sort of number (integer or not). The delegation methods allow you to increment, decrement, or reset the value. DEFAULT TYPE
If you don't provide an "isa" value for your attribute, it will default to "Num". PROVIDED METHODS
o set($value) Sets the counter to the specified value and returns the new value. This method requires a single argument. o inc o inc($arg) Increases the attribute value by the amount of the argument, or by 1 if no argument is given. This method returns the new value. This method accepts a single argument. o dec o dec($arg) Decreases the attribute value by the amount of the argument, or by 1 if no argument is given. This method returns the new value. This method accepts a single argument. o reset Resets the value stored in this slot to its default value, and returns the new value. BUGS
See "BUGS" in Moose for details on reporting bugs. AUTHOR
Moose is maintained by the Moose Cabal, along with the help of many contributors. See "CABAL" in Moose and "CONTRIBUTORS" in Moose for details. COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Infinity Interactive, Inc.. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.16.2 2012-09-19 Moose::Meta::Attribute::Native::Trait::Counter(3)
All times are GMT -4. The time now is 01:37 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy