Народ, помогите составить алгоритм решения задачи ** языке С ++,можете пожалуйста...

0 голосов
17 просмотров

Народ, помогите составить алгоритм решения задачи на языке С ++,можете пожалуйста пояснить.честно говоря даже условие самой задачи не понял.В массиве Х (N) найти S1 - сумму положительных элементов массива в первой половине массива и S2 - сумму отрицательных элементов массива во второй половине массива.


Информатика (12 баллов) | 17 просмотров
0

2 или 3 курс?

0

Уно моменто, все просто

Дано ответов: 2
0 голосов

Если на скорую руку, то так, должно скомпилится :)
#include
#include
#include
using namespace std;

const int n = 10;
mt19937 gen(time(0));
uniform_int_distribution<> uid(-50, 50);

int main()
{
int x[n], s1, s2;
s1 = s2 = 0;
for (int i = 0; i < n; ++i) {
x[i] = uid(gen);
cout << x[i] << " ";<br>}
for (int i = 0; i < (n / 2); ++i) {
if (x[i] > 0) {
s1 += x[i];
}
}
for (int i = (n/2); i < n; ++i) {
if (x[i] < 0) {
s2 += x[i];
}
}
cout << endl;<br>cout << "S1= " << s1 << endl;<br>cout << "S2= " << s2 << endl;<br>
return 0;
}

(4.2k баллов)
0 голосов
#include//библиотекапотоковввода/вывода#include//библиотека"вектор",этообертканаддинамическиммассивомusingnamespacestd;/**пространствоимен,безнегокомпиляторнепоймет,*чтозафункциитыхочешьиспользоватьичтозаобъекты*создавать,тоестьбиблиотеки,*чтоподключилимывыше-незаведутсябезнего.*/
//этафункциясчитаетсуммупозитивныхелементовввекторе(массиве),отидо//указанногоиндекса,всепараметрыпередаемпоссылкевоизбежаниикопирования
//-----------------------------------------------------------------------------doublegetSumOfPositivElements(constvector<</span>double>&array,constint&indexFrom,constint&indexTo)//-----------------------------------------------------------------------------{doublesumOfPositivElements=0;//переменная,чтохранитсуммуfor(inti=indexFrom;i<</span>indexTo;++i)//циклотидоуказанногоиндекса{if(0<</span>array[i])//условие,еслиелементбольшенуля{sumOfPositivElements+=array[i];//топриплюсоватьего}}returnsumOfPositivElements;//вернутьполученныйрезультатсуммы}
//работаетаналогично,сразницейлишчтосуммируетотрицательныеелементы
//-----------------------------------------------------------------------------doublegetSumOfNegativElements(constvector<</span>double>&array,constint&indexFrom,constint&indexTo)//-----------------------------------------------------------------------------{doublesumOfNegativElements=0;for(inti=indexFrom;i<</span>indexTo;++i){if(0>array[i]){sumOfNegativElements+=array[i];}}returnsumOfNegativElements;}
//основнаяфункцияпрограммы
//-----------------------------------------------------------------------------intmain()//-----------------------------------------------------------------------------{vector<</span>double>myArray;//создаемвектор(массив),чтохранитзначениятипаdoubledoublearraySize;//переменная,чтохранитразмервводимогомассиваintelementBuf;//вэтойпеременнойбудемхранитьвводимыйелементintarrayMiddlePosition;//индекссерединымассива
cout<<</span>"Enterarraysize:";cin>>arraySize;//вводимразмермассива
arrayMiddlePosition=arraySize/2;//определяемегосередину
myArray.reserve(arraySize);//резервируемразмерподкол-воелементов
for(inti=0;i<</span>arraySize;++i)//циклинициализациивектора{cout<<</span>"Enterelement:";cin>>elementBuf;//вводимтекущийелементmyArray.push_back(elementBuf);//вставляемеговвекторcout<<</span>"Elementsleft:"<<</span>arraySize-(i+1);//расчитываемкол-вооставшихсяелементовcout<<</span>endl<<</span>endl;}
cout<<</span>endl;cout<<</span>"Sumofpositivelementsinfirstarrayhalf:";//выводимсуммуположительныхелементоввпервойполовинемассиваcout<<</span>getSumOfPositivElements(myArray,0,arrayMiddlePosition);cout<<</span>endl;
cout<<</span>"Sumofnegativelementsinfir
(1.4k баллов)
0

//эта функция считает сумму позитивных елементов в векторе(массиве), от и до
//указанного индекса, все параметры передаем по ссылке во избежании копирования

//-----------------------------------------------------------------------------
double getSumOfPositivElements(const vector& array,
const int& indexFrom, const int& indexTo)
//-----------------------------------------------------------------------------

0

{
double sumOfPositivElements = 0; //переменная, что хранит сумму
for (int i = indexFrom; i < indexTo; ++i) //цикл от и до указанного индекса
{
if (0 < array[i]) //условие, если елемент больше нуля
{
sumOfPositivElements += array[i]; //то приплюсовать его
}
}
return sumOfPositivElements; //вернуть полученный результат суммы
}

0

//работает аналогично, с разницей лиш что суммирует отрицательные елементы

//-----------------------------------------------------------------------------
double getSumOfNegativElements(const vector& array,
const int& indexFrom, const int& indexTo)
//-----------------------------------------------------------------------------

0

{
double sumOfNegativElements = 0;
for (int i = indexFrom; i < indexTo; ++i)
{
if (0 > array[i])
{
sumOfNegativElements += array[i];
}
}
return sumOfNegativElements;
}

0

//-----------------------------------------------------------------------------
int main()
//-----------------------------------------------------------------------------
{
vector myArray; //создаем вектор(массив), что хранит значения типа double
double arraySize; //переменная, что хранит размер вводимого массива
int elementBuf; //в этой переменной будем хранить вводимый елемент
int arrayMiddlePosition; //индекс середины массива

0

cout << "Enter array size: ";<br> cin >> arraySize; //вводим размер массива

arrayMiddlePosition = arraySize / 2; //определяем его середину

myArray.reserve(arraySize); //резервируем размер под кол-во елементов

0

for (int i = 0; i < arraySize; ++i) //цикл инициализации вектора
{
cout << "Enter element: ";<br> cin >> elementBuf; //вводим текущий елемент
myArray.push_back(elementBuf); //вставляем его в вектор
cout << "Elements left: " << arraySize - (i + 1); //расчитываем кол-во оставшихся елементов<br> cout << endl << endl;<br> }

0

cout << endl;<br>
cout << "Sum of positiv elements in first array half: ";<br> //выводим сумму положительных елементов в первой половине массива
cout << getSumOfPositivElements(myArray, 0, arrayMiddlePosition);<br> cout << endl;

0

cout << "Sum of negativ elements in first array half: ";<br> //выводим сумму отрицательных елементов в второй половине массива
cout << getSumOfNegativElements(myArray, arrayMiddlePosition, myArray.size());<br> cout << endl;<br>
//останавливаем выполнение программы, что бы посмотреть результат
system("pause");
//возращаем значение '0', что значит для системы, что программа завершила работу успешно (без ошибок)
return 0;
}

0

Естественно компилится, работает.