Вычислить сумму квадратов тех чисел, модуль которых превышает значение 2.5

Уровень сложности:

Дан одномерный массив, длину массива задаёт пользователь. Вычислить сумму квадратов тех чисел, модуль которых превышает значение 2,5.

Если вы ещё не знакомы с массивами, воспользуйтесь нашей статьей — организация массивов в С++. В любом случае работа с массивами подразумевает знание циклов в С++, если вы ещё не умеете пользоваться циклами, обратитесь к следующим статьям: цикл for, цикл с постусловием do while, цикл с предусловием while.

Кроме всего этого, наверное у вас возникает вопрос: «Как в С++ вычислить модуль числа?». Справедливый вопрос, ответ на который вы можете найти, изучив функцию fabs для вещественных чисел и функцию abs — для целочисленных значений. Результат работы программы показан ниже:

// sum_squares.cpp: определяет точку входа для консольного приложения.

#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;

int main(int argc, char* argv[])
{
    srand(time(NULL));
    setlocale(LC_ALL, "rus");
    unsigned length_array = 0; // длинна массива

    cout << "Введите длинну массива: ";
    cin >> length_array;

    // объявление одномерного динамического массива на 10 элементов:
    float *ptrarray = new float [length_array];
    float sum = 0; // сумма квадратов чисел

    for (unsigned counter = 0; counter < length_array; counter++)
    {
        ptrarray[counter] = (float)(rand() % 100) / (rand() % 100 + 1); // заполняем массив случайными числами в диапазоне [0;99]
        cout << fixed << setprecision(2) << ptrarray[counter] << "  ";
    }
    cout << endl;

    for (unsigned counter = 0; counter < length_array; counter++)
        if (abs(ptrarray[counter]) > 2.5)
            sum += pow(ptrarray[counter],2);

    // высвобождение памяти отводимой под одномерный динамический массив:
    delete [] ptrarray;

    cout << "Сумма = " << sum << endl;
    system("pause");
    return 0;
}

Пример работы программы:

CppStudio.com

Введите длинну массива: 10
1.09 0.24 0.96 0.86 1.40 1.01 3.00 0.97 19.00 5.80
Сумма = 403.64

Следующие статьи помогут вам в решении данной задачи:
Автор: admin
Дата: 11.09.2012
Поделиться:

Комментарии

  1. sscys

    Решение без массива

    #include <iostream>
    #include <cmath>
    #include <ctime>
    using namespace std;
    
    int main()
    {
    	setlocale (LC_ALL, "rus");
    	srand(time(NULL));
    
    	double d_size,//размер массива. вводится пользователем
    		   d_number,//генерируемая переменная
    		   d_summ(0); //сумма 
    
    	cout << "\tВведите количество членов массива ";
    	cin >> d_size;
    	cout << endl;
    
    	cout << "\tСгенерированная последовательность \n";
    
    	for (int i = 0; i < d_size; i++){
    		
    		d_number = (-50 + rand () % 100) / 10.0;// генератор дробных чисел в диапазоне  от - 5 до 5 
    
    		cout << " " << d_number <<  " |"; //вывод на экран последовательности сгенерированных чисел
    
    			if (fabs (d_number) > 2.5) // если модуль числа больше 2.5
    					d_summ += pow (d_number,2); 
    	}
    	
    	cout << endl;
    
    	cout << "\tСумма квадратов чисел, модуль которых превышает значение 2,5   = " << d_summ; // вывод на печать
    
    	cout << endl;
    
    return 0;
    }
  2. sscys

    /*Дан одномерный массив, длину массива задаёт пользователь.
    Вычислить сумму квадратов тех чисел, модуль которых превышает значение 2,5.*/
    
    #include <iostream>
    #include <cmath>
    #include <vector>
    #include <ctime>
    using namespace std;
    
    
    void print(vector <double> vd_arrage1, double d_summ1); //фунция вывода на печать
    
    int main()
    {
    	setlocale (LC_ALL, "rus");
    	srand(time(NULL));
    
    	double d_size,//размер массива. вводится пользователем
    		   d_number,//генерируемая переменная
    		   d_summ(0); //сумма 
    	vector<double> vd_arrage;//массив в который заносятся квадраты чисел
    
    
    	cout << "\tВведите количество членов массива ";
    	cin >> d_size;
    	cout << endl;
    
    	cout << "\tСгенерированная последовательность \n";
    
    	for (int i = 0; i < d_size; i++){
    		
    		d_number = (-50 + rand () % 100) / 10.0;// генератор дробных чисел в диапазоне  от - 5 до 5 
    
    		cout << " " << d_number <<  " |"; //вывод на экран последовательности сгенерированных чисел
    
    			if (fabs (d_number) > 2.5){ // если модуль числа больше 2.5
    				
    				d_number *= d_number; // вычисление квадрата
    				
    				vd_arrage.push_back (d_number);// добавление в массив
    				
    				d_summ += d_number; 
    			}
    
    	}
    	
    	cout << endl;
    
    	print( vd_arrage,d_summ); // вывод на печать
    
    return 0;
    }
    void print(vector <double> vd_arrage1, double d_summ1)
    {
    		cout << "\tМассив квадратов чисел, модуль которых превышает значение 2,5 \n";
    
    	for (int i = 0; i < vd_arrage1.size(); i++)
    		cout << " " << vd_arrage1[i] <<  " |";
    
    	cout << endl;
    		
    	cout << "\tСумма квадратов чисел, модуль которых превышает значение 2,5   = " << d_summ1;
    
    	cout << endl;
    
    
    }

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.