Find a number out of a given Integer array. It can return the closest, smaller and larger number to the integer requested.
find_number.cpp@2:450e31ab4a55, 2017-12-15 (annotated)
- Committer:
- O_Shovah
- Date:
- Fri Dec 15 23:11:02 2017 +0000
- Revision:
- 2:450e31ab4a55
- Child:
- 3:3cc233c5aa00
Simplified function naming. Unified variables.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
O_Shovah | 2:450e31ab4a55 | 1 | /** |
O_Shovah | 2:450e31ab4a55 | 2 | * Includes |
O_Shovah | 2:450e31ab4a55 | 3 | */ |
O_Shovah | 2:450e31ab4a55 | 4 | #include "find_number.h" |
O_Shovah | 2:450e31ab4a55 | 5 | |
O_Shovah | 2:450e31ab4a55 | 6 | Serial pc2(USBTX, USBRX); // tx, rx |
O_Shovah | 2:450e31ab4a55 | 7 | |
O_Shovah | 2:450e31ab4a55 | 8 | |
O_Shovah | 2:450e31ab4a55 | 9 | |
O_Shovah | 2:450e31ab4a55 | 10 | find_number::find_number(int32_t *selectable_values, int32_t cells_in_array) |
O_Shovah | 2:450e31ab4a55 | 11 | { |
O_Shovah | 2:450e31ab4a55 | 12 | selectable_values_array = selectable_values; |
O_Shovah | 2:450e31ab4a55 | 13 | |
O_Shovah | 2:450e31ab4a55 | 14 | searched_array_size = numbers_in_array; |
O_Shovah | 2:450e31ab4a55 | 15 | } |
O_Shovah | 2:450e31ab4a55 | 16 | |
O_Shovah | 2:450e31ab4a55 | 17 | |
O_Shovah | 2:450e31ab4a55 | 18 | int32_t find_number::find_closest(int32_t target_value) |
O_Shovah | 2:450e31ab4a55 | 19 | { |
O_Shovah | 2:450e31ab4a55 | 20 | int32_t difference = abs( target_value - *selectable_values_array); |
O_Shovah | 2:450e31ab4a55 | 21 | int32_t closest_integer = selectable_values_array[0]; |
O_Shovah | 2:450e31ab4a55 | 22 | |
O_Shovah | 2:450e31ab4a55 | 23 | for (int32_t cell = 0; cell < searched_array_size; cell++) { |
O_Shovah | 2:450e31ab4a55 | 24 | if (difference > abs( target_value - selectable_values_array[cell] )) { |
O_Shovah | 2:450e31ab4a55 | 25 | difference = abs( target_value - selectable_values_array[cell]); |
O_Shovah | 2:450e31ab4a55 | 26 | closest_integer = selectable_values_array[cell]; |
O_Shovah | 2:450e31ab4a55 | 27 | } |
O_Shovah | 2:450e31ab4a55 | 28 | } |
O_Shovah | 2:450e31ab4a55 | 29 | return closest_integer; |
O_Shovah | 2:450e31ab4a55 | 30 | } |
O_Shovah | 2:450e31ab4a55 | 31 | |
O_Shovah | 2:450e31ab4a55 | 32 | int32_t find_number::find_larger(int32_t target_value) |
O_Shovah | 2:450e31ab4a55 | 33 | { |
O_Shovah | 2:450e31ab4a55 | 34 | return 0; |
O_Shovah | 2:450e31ab4a55 | 35 | } |
O_Shovah | 2:450e31ab4a55 | 36 | |
O_Shovah | 2:450e31ab4a55 | 37 | int32_t find_number::find_smaller(int32_t target_value) |
O_Shovah | 2:450e31ab4a55 | 38 | { |
O_Shovah | 2:450e31ab4a55 | 39 | return 0; |
O_Shovah | 2:450e31ab4a55 | 40 | } |