Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Помощ C++ задача

Featured Replies

Да се напише програма ,която намира и извежда сумата от положителните  и произведението на отрицателните елементи на редица от реални числа a0 , a1 … an-1

        (1<=n<=30)

Здравейте това ми е задание на задача , знам ,че за вас може да е лесна , но аз се затруднявам ,тъй като съм много в началото , а ми изискват тази програма да направя, ако някой може да ми обясни как се прави , ще бъда много благодарен!

преди 17 часа, blacknoob написа:

Да се напише програма ,която намира и извежда сумата от положителните  и произведението на отрицателните елементи на редица от реални числа a0 , a1 … an-1

        (1<=n<=30)

Здравейте това ми е задание на задача , знам ,че за вас може да е лесна , но аз се затруднявам ,тъй като съм много в началото , а ми изискват тази програма да направя, ако някой може да ми обясни как се прави , ще бъда много благодарен!

Това, че си в началото е разбираемо - всеки е минал оттам. Ама хайде, започни някак - нали не си стигнал само до името на езика?

  • дефиниране на ... ;
  • въвеждане на елементите;
  • разделяне - положителни на една страна, отрицателни - на друга;
  • сумиране на едните, умножаване на другите;
  • извеждане на резултатите ...

Ние ще помагаме при отстраняване на грешките.

  • Автор

#include <iostream>
using namespace std;

int array [] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29};
int inter = sizeof(array) / sizeof(int);
int exist = 0;
int i;

int main ()
{
    long double proizvedenie=1;

    for(i = 0; i < inter; i++) {
        if(array<0) {
           proizvedenie*=array;
           exist = 1 ;
        }
    }
   if(exist > 0) {
      cout<< "Proizvedenieto ot otricatelnite chisla ot masiva e:" << proizvedenie;
   } else {
      cout<< "Nqma otricatelni chisla";
   }
   long double sumirane=1;
for(i = 0; i>=0; i++) {
        if(array>0) {
             sumirane+=array;
        exist = 1;
        }
}
if(exist<0) {
        cout<< "Sumiraneto ot polojitelni  chisla ot masiva e:"<<sumirane; 
} else { 
cout<< "greshka v sistemata";
}
   cin.get();
   return 0;
}

Как е ? Много ли е зле?

Редактирано от blacknoob (преглед на промените)

 

Така поне си започнал. Набързо сякой неща. Първо - свикни да си пишеш коментари - така и ти, и друг като ти чете кода - ще е ясно какво се прави на даденото място. Ред с коментар започва с "//" - пример

#include <iostream>
using namespace std;

// това е коментар
// програма за намиране и извеждане ...

Сега по твоя код

преди 3 часа, blacknoob написа:

int array [] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29}; // защо дефинираш инициализиран масив?
int inter = sizeof(array) / sizeof(int);                         щом вече си го инициализирал - какво му смяташ?

// щом всички променливи са един и същ тип  - можещ да ги дефинираш на един ред. Пример - int array[30], exist = 0, i;
long double proizvedenie=1;     прекалено много място заделяш за proizvedenie. Тип long - от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 808. Тип int ще ти квърши работа - диапазон от -2 147 483 648 до 2 147 483 648.

if(array<0)      array е масив  - няма как да е по-голямо, по-малко или равно на 0. Отделен елемент от масива - array - има целочисленна стойност и може да сравняваш.
proizvedenie*=array;   смесваш типовете данни
exist = 1;    тази променлива, колкото и пъти за минаваш оттук, все ще е 1

Ето ти един вариант, не е супер - но работи. Разгледай го

#include <iostream>
using namespace std;

int main()
{
// "дефиниране на променливите
    int Num[30],Poz[30],Neg[30],i,p=0,n=0,S=0,M;  // Num - изходния масив, Poz - масив за положителните, Neg - за отрицатерните, i,p,n - служебни променливи, S - сума, M - приозведение
// въвеждане на елементите
    cout<<"Моля въведете до 30 положителни и отрицателни цели числа.\n";
    for(i=0;i<9;i++){
        cout<<"Число["<< i << "]= ";
        cin>>Num[i];
        }
// разделяне - положителни на една страна, отрицателни - на друга
    for(i=0;i<30;i++)
    {
        if(Num[i]>0){             //  проверка дали е положително или отрицателно
           Poz[p]=Num[i];         //  отделяме положителните
           p++;                   //  броим положителните
           }
        else{
            Neg[n]=Num[i];         //  отделяме отрицателните
            n++;                   //  броим отрицателните
            }
    }
// сумиране на положителните, умножаване на отрицателните;
    for(i=0;i<p;i++){
        S=S+Poz[i];
        }
    M=Neg[0];
    for(i=1;i<n;i++){
        M=M*Neg[i];
        }
// извеждане на резултатите
    if(p>0){
        cout<<"Сумата на положителните елементи е "<<S<<"\n";}
    else{
        cout<<"Няма положителни елементи\n";
    }
    if(n>0){
        cout<<"Произведението на отрицателните елементи е "<<M<<"\n";}
    else{
        cout<<"Няма отрицателни елементи\n";
    }
    return 0;
}

 

Редактирано от jhoro (преглед на промените)

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.