Ввод и вывод массива, а также три пункта задания оформить в виде функций, глобальные переменные не использовать. Размерности массивов вводить в основной функции. Первый массив описать статически (размерность задать константой), второй динамически Все результаты данных функций выводятся в основной функции. Задание Ввести и обработать два одномерных массива, содержащие соответственно п целых и m вещественных компонентов. Вычислить: 1) количество элементов массива, лежащих в диапазоне от А до В; 2) сумму элементов массива, расположенных после максимального элемента. 3) Упорядочить элементы массива по убыванию модулей элементов.
//void Random(float *arr, size_t size); void Out(float *arr, size_t size); void In(float *arr, size_t size); int Z1(float *arr, size_t size, int a, int b); int SAM(float *arr, size_t size); void Sort(float *arr, size_t size); //прототипы функций(сами функции внизу) int main() {
int N; //размерность массива int a,b; //переменные задания 1 cout<<"size array:= "; cin>>N; //вводим размерность массива float brr[N]; //массив cout<<"!!!a<b!!!"<<endl; cout<<"a= ";cin>>a; cout<<"b= ";cin>>b; //ввод переменных для 1 задания
In(brr,N); //вызов функции ввода массива cout<<endl; Out(brr,N); //функция вывода массива cout<<"from a to b number: "<<Z1(brr,N,a,b)<<" element"<<endl; //функция 1 задания cout<<"sum after maximal element = "<<SAM(brr,N)<<endl; //функция задания 2 Sort(brr,N); //вызов функции 3 задания Out(brr,N); //вызов функции вывода массива // С массивом , заданным динамически закончено, теперь с массивом заданным статически (размерность задать константой) int m; m=6; //задаем размерность статически, переменной m int a1, b1; //те же самые а и b, только для второго массива cout<<"size array:= "<<m<<endl; float crr[m]; //массив
cout<<"!!!a<b!!!"<<endl; cout<<"a= ";cin>>a1; cout<<"b= ";cin>>b1; //ввод границ а и b In(crr,m); //вызов функции ввода массива cout<<endl; Out(crr,m); //вызов функции вывода массива
cout<<"from a to b number: "<<Z1(crr,m,a1,b1)<<" element"<<endl; //вызов функции 1 задания cout<<"sum after maximal element = "<<SAM(crr,m)<<endl; //вызов функции задания 2 Sort(crr,m); //вызов функции 3 задания Out(crr,m); //вызов функции вывода массива system("pause"); return 0; } ////////////////////////////////////////////////////////////////// /* void Random(float *arr, size_t size) {
srand(static_cast<unsigned int>(time(NULL))); //организовываем инициализацию генератора рандомных чисел for (int i=0; i< size ; i++) //перебор значений от 0 до N {
arr [i]= rand() %10 *1560; //организовываем инициализацию генератора рандомных чисел cout<<"arr["<<i<<"]: "<<arr[i]<<" "<<endl; //вывод на экран всех членов массива с номером } cout<<endl; //заполнение массива рандомом. } */ //////////////////////////////////////////////////////////////////////////////////////////////// void Out(float *arr, size_t size) //функция вывода массива {
for (int i=0; i< size; i++) //перебор значений от 0 до N {
cout<<"arr["<<i<<"]: "<<arr[i]<<" "<<endl; //вывод на экран всех членов массива с номером } cout<<endl; } //////////////////////////////////////////////////////////////////////////////////////////////////// void In(float *arr, size_t size) //функция ввода в масив {
for(int i=0; i< size;i++) {
cout<<"arr["<<i<<"]: "; cin>>arr[i]; } } //////////////////////////////////////////////////////////////////////////////////////////////////////////// int Z1(float *arr, size_t size, int a, int b) //функция ищет количество элементов массива, лежащих в диапазоне от А до В; { int j; j=0; for(int i=0; i< size;i++) { if(arr[i]>=a && arr[i]<=b) { j++; } } return j; } //////////////////////////////////////////////////////////////////////////////////////////////////////// int SAM(float *arr, size_t size) //функция считает сумму элементов массива, расположенных после максимального элемента. { int maxpos=0; int sum=0; float tekmax=0; for(int i=0; i< size; i++) //перебор значений от 0 до N { if(arr[i]>tekmax) //если текущий элемент массива больше 0, то переменной tekmax присваевается это значние, а вторая переменная maxpos запоминает номер эл-та, таким образом мы находим максимальный элемент и его номер { tekmax = arr[i]; maxpos = i; } } for(int i=maxpos+1; i< size; i++) { sum+= arr[i]; }
return sum; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////// void Sort(float *arr, size_t size) //функция сортировка по убыванию { for(int i=0;i<size;i++) for(int j=size-1;j>i;j--) if (abs(arr[j-1])<abs(arr[j])) { int x=arr[j-1]; arr[j-1]=arr[j]; arr[j]=x; } } //////////////////////////////////////////////////////////////////////////////////////////////