СПЕШНО - Курсова работа по програмиране, С++ !

  • 2 803
  • 13
  •   1
Отговори
  • Мнения: 6
Да се напише програма, която въвежда от клавиатурата цяло число n и редица от цели числа а0, а1, а2, ....., аn-1. Програмата да извежда:
 а) сумата от елементите, които са нечетни
 б) елементите, които са едновременно положителни и четни

 Дефиниране на необходимите променливи
 Въвеждане броя на елементите
 Въвеждане на елементите
 Обхождане елементите на масива с проверка дали поредния елемент е нечетно число
 Сумиране на нечетните елементи в редицата
 Извеждане на сумата
 Обхождане елементите на масива с проверка дали поредния елемент е четно и положително число
 Извеждане положителните и четни числа на масива

# 1
  • София
  • Мнения: 3 824
Дай някакъв код, до който си стигнал и ще помагаме Simple Smile

Написал ли си основните неща, като въвеждането на елементите от масива и обхождането?

# 2
  • Мнения: 71
Код:
#include <iostream>
using namespace std;
int n, Ai, A[1000000], sumodd, count_even_positive, i=1;
int main(){
  for (cin>>n; n; n--){
    cin >> Ai;
    if (Ai%2) sumodd+=Ai;
    else if (Ai>0) A[count_even_positive++]=Ai;
  }
  cout<<sumodd<<endl;
  if (count_even_positive){
    for (cout<<A[0];i<count_even_positive;cout<<", "<<A[i++]);
    cout<<endl;
  }
  return 0;
}

# 3
  • Мнения: 6
Дай някакъв код, до който си стигнал и ще помагаме Simple Smile

Написал ли си основните неща, като въвеждането на елементите от масива и обхождането?


Да тези съм ги въвел, но извеждането не ми се получава.
Трябва да се получи ето такова:
Примерен вход
n=7
arr[0]=2
arr[1]=7
arr[2]=9
arr[3]=-3
arr[4]=4
arr[5]=-5
arr[6]=-12
Примерен изход:
suma=8
----------------
2
4

# 4
  • София
  • Мнения: 3 824
OK419e ти написа програмата, виж по-нагоре.
Но ако имаш някакви конкретни въпроси, питай Simple Smile

# 5
  • Мнения: 6
OK419e ти написа програмата, виж по-нагоре.
Но ако имаш някакви конкретни въпроси, питай Simple Smile


Няма как така да го представя, защото повечето работи от тези не сме ги учили, а и трябва след това да направя презентация като обясня кое, какво, закакво. Ако може да е на по прост алгоритмичен език ще е най-добре! Благодаря

# 6
  • Мнения: 6
Код:
#include <iostream>
using namespace std;
int n, Ai, A[1000000], sumodd, count_even_positive, i=1;
int main(){
  for (cin>>n; n; n--){
    cin >> Ai;
    if (Ai%2) sumodd+=Ai;
    else if (Ai>0) A[count_even_positive++]=Ai;
  }
  cout<<sumodd<<endl;
  if (count_even_positive){
    for (cout<<A[0];i<count_even_positive;cout<<", "<<A[i++]);
    cout<<endl;
  }
  return 0;
}


Благодаря, но повечето от тези работи не сме ги учили и незнам как да го обясна след това. На мен ми трябва на по-прост алгоритмичен език.

# 7
  • Мнения: 939
Няма как така да го представя, защото повечето работи от тези не сме ги учили, а и трябва след това да направя презентация като обясня кое, какво, закакво. Ако може да е на по прост алгоритмичен език ще е най-добре! Благодаря

Е, то и без това OK419e не постъпи особено педагогично с постването на готов код, сега остава и да го преразкаже с думи прости  Mr. Green

Не става така. Кодът е прост като за петокласник. Набери го, ако трябва го debug-вай и си обясни какво става. Само така ще има смисъл от цялото упражнение. Успех.  Peace

# 8
  • София
  • Мнения: 3 824
Ето я програмата на OK419e в подробен и прост за разбиране вариант. Би трябвало да разбираш всичко.

Код:
#include <iostream>
using namespace std;

int main()
{
    int n, Ai, sumodd, count_even_positive, i;
    cin>>n;
    int A[n];
    sumodd = 0;
    count_even_positive = 0;
    for (n; n>0; n--)
    {
        cin >> Ai;
        if (Ai%2 != 0)
        {
            sumodd = sumodd + Ai;
        }
        else if (Ai>0)
        {
            count_even_positive = count_even_positive + 1;
            A[count_even_positive]=Ai;
        }
    }
    cout<<"Suma:"<<sumodd<<endl;

    if (count_even_positive > 0)
    {
        for (i=1; i<=count_even_positive; i++)
        {
            cout<<A[i]<<" ";
        }
        cout<<endl;
    }
    return 0;
}

# 9
  • Мнения: 6
Ето я програмата на OK419e в подробен и прост за разбиране вариант. Би трябвало да разбираш всичко.

Код:
#include <iostream>
using namespace std;

int main()
{
    int n, Ai, sumodd, count_even_positive, i;
    cin>>n;
    int A[n];
    sumodd = 0;
    count_even_positive = 0;
    for (n; n>0; n--)
    {
        cin >> Ai;
        if (Ai%2 != 0)
        {
            sumodd = sumodd + Ai;
        }
        else if (Ai>0)
        {
            count_even_positive = count_even_positive + 1;
            A[count_even_positive]=Ai;
        }
    }
    cout<<"Suma:"<<sumodd<<endl;

    if (count_even_positive > 0)
    {
        for (i=1; i<=count_even_positive; i++)
        {
            cout<<A[i]<<" ";
        }
        cout<<endl;
    }
    return 0;
}

Благодаря много! Точно това е което ми трябва!

# 10
  • Мнения: 71
Я каква полемика тук Grinning

Елл, много благодаря за трансформацията на кода ми   bouquet

the_sport_boy
, преди да предадете курсовата работа, коригирайте един ред от предложения вариант от Елл:
Декларирането на масива
Код:
int A[n];
трябва да е с един елемент повече, понеже във варианта на Елл се прилага "човешко" броене, а не както в моя вариант - броене в C++ нотация (т.е. от 0). Ако декларацията не се промени на
Код:
int A[n+1];
програмата би се крашвала в ситуации, когато всички елементи от входния виртуален масив са положителни и четни.

# 11
  • София
  • Мнения: 3 824
Верно, и аз благодаря за корекцията   bouquet
Дано се върне да погледне темата младежа.

# 12
  • Мнения: 6
Я каква полемика тук Grinning

Елл, много благодаря за трансформацията на кода ми   bouquet

the_sport_boy
, преди да предадете курсовата работа, коригирайте един ред от предложения вариант от Елл:
Декларирането на масива
Код:
int A[n];
трябва да е с един елемент повече, понеже във варианта на Елл се прилага "човешко" броене, а не както в моя вариант - броене в C++ нотация (т.е. от 0). Ако декларацията не се промени на
Код:
int A[n+1];
програмата би се крашвала в ситуации, когато всички елементи от входния виртуален масив са положителни и четни.


Благодаря и на двамата - Елл и OK419e !

# 13
  • Мнения: 1
Здравеите имам курсова работа по С++ но немога да се справя

Общи условия

Активация на акаунт