Find a number out of a given Integer array. It can return the closest, smaller and larger number to the integer requested.

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?

UserRevisionLine numberNew 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 }