Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- #include <math.h>
- const int array_size = 60;
- using namespace std;
- double fill_array(double array[array_size]);
- double nonzero_geometric_mean(double array[array_size]);
- double find_min_value_custom(double array[array_size]);
- double sort_min_value_custom(double array[array_size]);
- int record_to_file(double array[array_size]);
- void main() {
- setlocale(LC_ALL, "Russian");
- double numbers[array_size];
- numbers[array_size] = fill_array(numbers);
- cout<<endl<<"Массив после заполнения:"<<endl<<endl;
- for(int i=0;i<array_size;i++){
- cout<<i<<"\t"<<numbers[i]<<endl;
- }
- cout<<endl<<"Среднегеометрическое значение ненулевых элементов всего массива: ";
- cout<<nonzero_geometric_mean(numbers);
- cout<<endl<<endl;
- cout<<endl<<"Наименьший элемент среди нечетных по значению элементов последней трети массива: ";
- cout<<find_min_value_custom(numbers);
- cout<<endl<<endl;
- numbers[array_size] = sort_min_value_custom(numbers);
- cout<<endl<<"Сортировка нечётных по номеру элементов последней четверти массива по убыванию квадратов значений:"<<endl<<endl;
- for(int i=0;i<array_size;i++){
- cout<<i<<"\t"<<numbers[i]<<endl;
- }
- record_to_file(numbers);
- system("PAUSE");
- }
- double fill_array(double array[array_size]) {
- double n = 12.0;
- for(int i=0;i<array_size;i++){
- array[i] = (sin(5.0*i)+cos(10.0*i))/(tan(n*i)+5);
- }
- return array[array_size];
- }
- double nonzero_geometric_mean(double array[array_size]) {
- double mult_numbers = 1.0;
- double nonzero_count = 0.0;
- for(int i=0;i<array_size;i++){
- if(array[i] >= 0.0){
- nonzero_count+=1.0;
- mult_numbers*=array[i];
- }
- }
- return pow(mult_numbers, 1/nonzero_count);
- }
- double find_min_value_custom(double array[array_size]) {
- double min = 1.0;
- for(int i=2*array_size/3;i<array_size;i++) {
- if(fmod(i, 2.0) != 0){
- if(min == 1.0)min = array[i];
- if(array[i] < min)min = array[i];
- }
- }
- return min;
- }
- double sort_min_value_custom(double array[array_size]) {
- int done = 0;
- double tmp;
- int max = array_size-2;
- while(done == 0){
- done = 1;
- for(int i=array_size-array_size/4+1;i<max;i++) {
- if(fmod(i, 2.0) != 0){
- if(pow(array[i], 2.0) < pow(array[i+2], 2.0)){
- tmp = array[i];
- array[i] = array[i+2];
- array[i+2] = tmp;
- tmp = 0.0;
- done = 0;
- }
- }
- }
- }
- return array[array_size];
- }
- int record_to_file(double array[array_size]) {
- FILE *file = fopen("array.txt", "w");
- for(int i=0;i<array_size;i++){
- fprintf(file, "%.10f\n", array[i]);
- }
- return fclose(file);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement