C#:Using an Accumulator
From Progzoo
When using an accumulating variable there are three stages:
- Initialise
- We declare our accumulator and set it to an initial values.
- Update
- Inside the loop we update the accumulator - we take into account the current data item.
- Output/use
-
After the loop our accumulator contains the required value. We use it
or output it.
Contents
Using an accumulator to add
Print the total of all of the numbers
- We initialise to 0.
- We add to the accumulator.
- The value printed is the sum 0+2+7+1+1.
[Font] [Default] [Show] [Resize] [History] [Profile]Using an accumulator to count
Print the number of items in the list.
- We initialise to 0.
- We increment the accumulator.
- The value printed is the count: 0+1+1+1+1.
[Font] [Default] [Show] [Resize] [History] [Profile]Using an accumulator to count on a condition
Count the number of 1s in the list
- We initialise to 0.
- We increment the accumulator only if the current value equals 1.
[Font] [Default] [Show] [Resize] [History] [Profile]Using an accumulator to multiply
Print the product of the numbers.
- We initialise to 1. (If you initialise to 0 then the result will always be 0.)
- We multiply the accumulator.
- The value printed is the product: 1*2*7*1*1
[Font] [Default] [Show] [Resize] [History] [Profile]Using an accumulator to find the maximum
Print the largest number in the list.
- We initialise to 0.
- We take the max.
- The value printed is the largest:
At each stage the accumulator stays the same or gets bigger (set to the current value).
max(max(max(max(0,2),7),1),1)
[Font] [Default] [Show] [Resize] [History] [Profile]Using an accumulator to concatenate
Concatenate all items in the list
Notice that we are using a list of strings this time.
- We initialise to the empty string "".
- We concatenate the next value (stick at the end).
WARNING - Using an accumulator like this can use a great deal of memory. You will find using a C#:StringBuilder is more efficient.
System.Text.StringBuilder acc = new System.Text.StringBuilder(); foreach (String i in new String[] {"two","seven","one","one"}) { acc.Append(i); } Console.WriteLine(acc);Also you can use the method String.Join for this operation.
[Font] [Default] [Show] [Resize] [History] [Profile]Using two accumulators to find the mean
Print the mean of all items in the list.
- We initialise both
sumandcountto 0. - We add to the sum and increment the count.
- We divide the sum by the count to get the average.
[Font] [Default] [Show] [Resize] [History] [Profile]
