Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
find_number.cpp
00001 /** 00002 * Includes 00003 */ 00004 #include "find_number.h" 00005 00006 00007 00008 find_number::find_number(int32_t *selectable_values, int32_t cells_in_array) 00009 { 00010 selectable_values_array = selectable_values; 00011 00012 searched_array_size = cells_in_array; 00013 } 00014 00015 find_number::find_number() {}; 00016 00017 00018 00019 int32_t find_number::find_closest(int32_t target_value) 00020 { 00021 int32_t difference = abs( target_value - selectable_values_array[0]); 00022 int32_t closest_integer = selectable_values_array[0]; 00023 00024 for (int32_t cell = 0; cell < searched_array_size; cell++) { 00025 if (difference > abs( target_value - selectable_values_array[cell] )) { 00026 difference = abs( target_value - selectable_values_array[cell]); 00027 closest_integer = selectable_values_array[cell]; 00028 } 00029 } 00030 return closest_integer; 00031 } 00032 00033 int32_t find_number::find_larger(int32_t target_value) 00034 { 00035 int32_t larger_integer = 0; 00036 00037 for (int32_t cell=0; cell<searched_array_size; cell++) { 00038 00039 for (int32_t next_cell = cell+1; next_cell < searched_array_size; next_cell++) { 00040 00041 if (selectable_values_array[cell] <= target_value && target_value <= selectable_values_array[next_cell]) { 00042 00043 larger_integer = selectable_values_array[next_cell]; 00044 00045 if(selectable_values_array[next_cell] > larger_integer) larger_integer = selectable_values_array[next_cell]; 00046 00047 if(selectable_values_array[cell] > larger_integer) larger_integer = selectable_values_array[cell]; 00048 00049 if(selectable_values_array[cell] == target_value) larger_integer = selectable_values_array[cell]; 00050 00051 if(selectable_values_array[next_cell] == target_value) larger_integer = selectable_values_array[next_cell]; 00052 00053 break; 00054 } 00055 00056 if(selectable_values_array[0] > target_value) larger_integer = selectable_values_array[0]; 00057 } 00058 00059 } 00060 return larger_integer; 00061 } 00062 00063 00064 int32_t find_number::find_smaller(int32_t target_value) 00065 { 00066 int32_t smaller_integer = 0; 00067 00068 for (int32_t cell=0; cell<searched_array_size; cell++) { 00069 00070 for (int32_t next_cell = cell+1; next_cell < searched_array_size; next_cell++) { 00071 00072 if (selectable_values_array[cell] <= target_value && target_value <= selectable_values_array[next_cell]) { 00073 00074 smaller_integer = selectable_values_array[cell]; 00075 00076 if(selectable_values_array[cell] < smaller_integer ) smaller_integer = selectable_values_array[cell]; 00077 00078 if(selectable_values_array[next_cell] < smaller_integer) smaller_integer = selectable_values_array[next_cell]; 00079 00080 if(selectable_values_array[cell] == target_value) smaller_integer = selectable_values_array[cell]; 00081 00082 if(selectable_values_array[next_cell] == target_value) smaller_integer = selectable_values_array[next_cell]; 00083 00084 break; 00085 } 00086 } 00087 00088 } 00089 return smaller_integer; 00090 }
Generated on Sat Jul 16 2022 00:46:58 by
1.7.2