Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- #include <math.h>
- double fill_array(double *array);
- double nonzero_geometric_mean(double *array);
- double find_min_value_custom(double *array);
- double sort_min_value_custom(double *array);
- int record_to_file(double *array);
- void main() {
- setlocale(LC_ALL, "Russian");
- unsigned int array_count;
- std::cout<<"Введите кол-во элементов массива: ";
- std::cin>>array_count;
- std::cout<<std::endl;
- double *numbers = new double[array_count];
- numbers[0] = array_count;
- *numbers = fill_array(numbers);
- nonzero_geometric_mean(numbers);
- find_min_value_custom(numbers);
- *numbers = sort_min_value_custom(numbers);
- record_to_file(numbers);
- system("PAUSE");
- }
- double fill_array(double *array) {
- double n = 1.0;
- std::cout<<"Введите n: ";
- std::cin>>n;
- std::cout<<std::endl;
- for(int i=1;i<=array[0];i++){
- array[i] = (sin(5.0*i)+cos(10.0*i))/(tan(n*i)+5);
- }
- return *array;
- }
- double nonzero_geometric_mean(double *array) {
- double mult_numbers = 1.0;
- double nonzero_count = 0.0;
- for(int i=1;i<=array[0];i++){
- if(array[i] != 0.0){
- nonzero_count++;
- mult_numbers*=array[i];
- }
- }
- return pow(mult_numbers, 1/nonzero_count);
- }
- double find_min_value_custom(double *array) {
- double min = 1.0;
- for(int i=2*array[0]/3+1;i<=array[0];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) {
- int done = 0;
- double tmp;
- int max = array[0]-2;
- while(done == 0){
- done = 1;
- for(int i=array[0]-array[0]/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;
- }
- int record_to_file(double *array) {
- FILE *file = fopen("array.txt", "w");
- for(int i=1;i<=array[0];i++){
- fprintf(file, "%.10f\n", array[i]);
- }
- return fclose(file);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement