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

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

Kaldata.com - Форуми

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

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

Добре дошли!

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

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

 

Курсова задача

Featured Replies

преди 8 минути, blodwenn написа:

честно казано накрая съвсем се обърках, написах само това и забих

страшно съм бавен :X

Чеки са. Добави е за добавяне на информация за студентите. Вътре в цикъла декларираш 4 променливи за оценка, 1 променлива за факултетен номер, 1 променлива за години. Може и глобални, както бях ги почнал, но много ще ни стане като глобални толкова много.
Няма защо да пишеш 2 пъти GR[2], защото презаписваш така стойността, която си записал на това място в масива. Правилна операция, но грешна логика.
Редактирах, вкарал съм променливите в цикъла и съм ти извадил broi, за да я ползваш като обхождаш и смяташ средно аритметичните.
----

Какво прави кода
в Мейна имаш меню за избор.
В едната опция на менюто сме сложили да вика функцията за добавяне, като параметърът на функцията "broi" го взимаш от клавиатурата с cin(пишеш го). Така цикълът знае колко пъти да обхожда масива - първите квадратни скоби е това - от 25 места колко студента си вкарал.
Да го обясня.
Switch-а се слага в do..while, Иначе ще се изпълнява само 1 път и ще се затваря програмата.
За средно аритметично може да се използва подобен цикъл.
 

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

  • Автор
преди 5 минути, simtech написа:

 

 

Тъжното е, че преди да постнеш новия мейн си мислих че съм ги разбрал :D сега пак съм в космоса

току-що, blodwenn написа:

Тъжното е, че преди да постнеш новия мейн си мислих че съм ги разбрал :D сега пак съм в космоса

Мейнът е един и същ. Просто вкарах променливите в цикъла, да не са глобални. И изкарах broi, както бях писал - да можеш да я ползваш и за другите функции.

  • Автор
преди 7 минути, simtech написа:

Мейнът е един и същ. Просто вкарах променливите в цикъла, да не са глобални. И изкарах broi, както бях писал - да можеш да я ползваш и за другите функции.

тоест с промените е 

#include<iostream>
#include<cstdlib>
using namespace std;

int GR[25][6];
int dobavi(int mi);
bool menu = true;
int broi;
int main()
{
	do
	{
		int izbor;
		cout << "1. Nov student\n";
		cout << "2. Sreden uspeh \n";
		cout << "3. Sreden uspeh po fakulteten nomer\n";
		cout << "4. Broi studenti nad opredelena vuzrast\n";
		cout << "5. Izvejdane na dannite\n";
		cout << "Vuvedete svoqt izbor i potvurdete s Enter\n";
		cin >> izbor;
		switch (izbor)
		int izbor;
		cin >> izbor;

		switch (izbor)
		{
		case 1:
			cout << "broi studenti \n";
			cin >> broi;
			dobavi(broi);
			break;
		case 2:
			cout << "druga funkciq demonstraciq \n";
			break;
		default:
			cout << "Greshka!\n";
		}
	} while (menu == true);
}
int dobavi(int broi)
{

	for (int i = 0; i<broi; i++)
	{
		int fn;
		cout << "fn";
		cin >> fn;
		int o1;
		cout << "o1";
		cin >> o1;
		int o2;
		cout << "o2";
		cin >> o2;
		GR[i][0] = fn;
		GR[i][1] = o1;
		GR[i][2] = o2;
	}
}

и от switch-a си викам функциите?

 

също - какво е "mi" в 

int dobavi(int mi);

Утре ще стана към 8 да се мъча да оправя нещо (или поне да опитам).Надявам се да помогнеш понеже си ми буквално единствената надежда за някакви точки от тази задача :/

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

преди 23 минути, blodwenn написа:

също - какво е "mi" в 

 


int dobavi(int mi);

Утре ще стана към 8 да се мъча да оправя нещо (или поне да опитам).Надявам се да помогнеш понеже си ми буквално единствената надежда за някакви точки от тази задача :/

Това mi е грешка. Смених името на променливата и не съм го отразил навсякъде.
Ето ти и средно аритметично от оценка o1
Тя се извиква с функция ave, без параметри.

#include<iostream>
#include<cstdlib>
using namespace std;

int GR[3][3];
int dobavi(int mi);
bool menu=true;
int broi;
int ave();
float sum;
int main()
{
    do
    {
        cout<<"izbor: \n";
        cout<<"1.vuvejdane na X studenta\n";
        cout<<"2.sredno aritmetichno po predmet o1 \n";
        int izbor;
        cin>>izbor;

        switch(izbor)
        {
            case 1:
            cout<<"broi studenti \n";
            cin>>broi;
            dobavi(broi);
            break;
            case 2:
            cout<<"sredno aritmetichno po predmet o1\n";
            ave();
            break;
            default:
            cout<<"Greshka!\n";
        }
    }
    while(menu==true);
}
int dobavi(int broi)
{

    for(int i=0; i<broi; i++)
    {
        int fn;
        cout<<"fn:";
        cin>>fn;
        int o1;
        cout<<"o1:";
        cin>>o1;
        int o2;
        cout<<"o2:";
        cin>>o2;
        GR[i][0]=fn;
        GR[i][1]=o1;
        GR[i][2]=o2;
    }
}
int ave()
{
    for(int i=0; i<broi; i++)
    {
        sum+=GR[i][1];
    }
    cout<<sum/broi<<endl;
}

п.п Мразя програмирането. Лека нощ.

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

преди 9 часа, blodwenn написа:

...Утре ще стана към 8 да се мъча да оправя нещо (или поне да опитам).Надявам се да помогнеш понеже си ми буквално единствената надежда за някакви точки от тази задача :/

Взимай задачата.Това е цялата, мисля.
Кодът е малко "мръсен", но ще ти свърши работа. Работи вярно. Написал съм го възможно най-просто(макар така да става "мръсен"). Преди да го предадеш - постарай се нещо да разбереш. А и по принцип. Ще учите програмиране до 4 курс и поне още 3 програмни езика. Стягай се!
п.п Ебаси колегите имаш. Да не ти помогнат поне малко...

#include<iostream>
#include<cstdlib>
using namespace std;

int GR[24][5];
int dobavi(int mi);
bool menu=true;
int broi;
int ave(int pred);
float sum;
int display();
int avestud(int stud, int broi);
int findage(int age);
int main()
{
    do
    {
        cout<<"-----------------"<<endl;
        cout<<"izbor: \n";
        cout<<"1.vuvejdane na X studenta\n";
        cout<<"2.sredno aritmetichno po predmet X \n";
        cout<<"3.spisak sas vsichki studenti\n";
        cout<<"4.sredno aritmetichno za student X\n";
        cout<<"5.namirane na student po godini X\n";
        int izbor;
        cin>>izbor;

        switch(izbor)
        {
            case 1:
            cout<<"broi studenti \n";
            cin>>broi;
            dobavi(broi);
            break;
            case 2:
            cout<<"sredno aritmetichno po predmet \n";
            cout<<"izberete predmet ot 1 do 4\n";
            int pred;
            cin>>pred;
            ave(pred);
            break;
            case 3:
            cout<<"Izobrazqvane na spisak sas studenti\n";
            display();
            break;
            case 4:
            cout<<"Sredno aritmetichno za student X \n";
            int stud;
            cout<<"vuvedete spisachen nomer: \n";
            cin>>stud;
            avestud(stud, broi);
            break;
            case 5:
            cout<<"student na vuzrast X\n";
            cout<<"Vavedete vazrast";
            int age;
            cin>>age;
            findage(age);
            break;
            default:
            cout<<"Greshka!\n";
            break;
        }
    }
    while(menu==true);
}
int dobavi(int broi)
{

    for(int i=0; i<broi; i++)
    {
        cout<<"student "<<i<<" ot spisaka"<<endl;
        int fn;
        cout<<"fn:";
        cin>>fn;
        int p1;
        cout<<"p1:";
        cin>>p1;
        int p2;
        cout<<"p2:";
        cin>>p2;
        int p3;
        cout<<"p3:";
        cin>>p3;
        int p4;
        cout<<"p4:";
        cin>>p4;
        int age;
        cout<<"age:";
        cin>>age;
        GR[i][0]=fn;
        GR[i][1]=p1;
        GR[i][2]=p2;
        GR[i][3]=p3;
        GR[i][4]=p4;
        GR[i][5]=age;

    }
}
int ave(int pred)
{
    for(int i=0; i<broi; i++)
    {
        sum+=GR[i][pred];
    }
    cout<<sum/broi<<endl;
}

int display()
{
    for (int i=0; i<broi; i++)
        {
        cout<<"Fak.nomer: "<<GR[i][0]<<" Ocenka 1: "<<GR[i][1]<<" Ocenka 2: "<<GR[i][2]<<" Ocenka 3: "<<GR[i][3]<<" Ocenka 4: "<<GR[i][4]<<" Vazrast: "<<GR[i][5]<<endl;
        }
}
int avestud(int stud, int broi)
{

    for (int i=0; i<broi; i++)
    {
        if (GR[i][0]==stud)
        {
            for (int j=1; j<4; j++)
            {
           sum+=GR[i][j];
            }
        }
    }
    cout<<"Sredno aritmetichno za studenta: "<<sum/4<<endl;
    sum=0;
}
int findage(int age)
{
    cout<<"Studenti na vazrast: "<<age<<endl;
    for (int i=0; i<broi; i++)
    {
        if (GR[i][5]==age)
        {
            cout<<"Fak nomer: "<<GR[i][0]<<endl;
            cout<<"Ocenka 1: "<<GR[i][1]<<endl;
            cout<<"Ocenka 2: "<<GR[i][2]<<endl;
            cout<<"Ocenka 3: "<<GR[i][3]<<endl;
            cout<<"Ocenka 4: "<<GR[i][4]<<endl;
            cout<<"------------------"<<endl;
        }
    }
}

 

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

  • Автор

 

преди 1 час, simtech написа:

 


 

 

 
 

Нямаш представа колко съм благодарен за всичкия труд и време който хвърли за рандом човек в интернет. А относно това с колегите - преподавателя ни е плачевен, не обяснява абсолютно нищо, като е възможно това да е понеже самият той е некомпетентен.Задавал съм му въпроси и той не е успявал да отговори. Кода му е пълен с грешки и т.н. - абе на кратко - ТУ.

Втория семестър сме с друг, който е доста хвален (в сравнение с колегите си) и се надявам да избутам до тогава, а докато дойде това време, ще опитвам да не изоставам много.

 

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

  • Автор

 

преди 11 часа, simtech написа:

М

Едит: http://prntscr.com/dfzkcq излиза ми тази грешка. Дали да не го направя с void( или просто да слагам ретърн 0 навсякъде)? също масива е [25][6] а не [24][5] но предполагам това е просто мисклик. (или аз нещо не съм разбрал?) също и това  (int mi) в началото което каза че си сгрешил

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

преди 42 минути, blodwenn написа:

Едит: http://prntscr.com/dfzkcq излиза ми тази грешка. Дали да не го направя с void? също масива е [25][6] а не [24][5] но предполагам това е просто мисклик. (или аз нещо не съм разбрал?) също и това  (int mi) в началото което каза че си сгрешил

Изтрий ВСИЧКО до тоя момент, което си взел от написаното от мен. Използвай САМО последното, което съм ти дал.
Масивът ти не е 25,6, a e 24,5 Полетата/клетките в масива започват да се броят от 0, не от 1. Ако искаш да промениш това, трябва още код.
Грешките, че трябва да върне функцията са грешки на компилатора. Явно ползваш друг. Накрая на всяка функция пиши  return 0; или return квото и да е било. При успешно изпълнение функцията връща състояние на изпълнение.
Имаш 4 предмета, 1 възраст, 1 факултетен номер. Това са 6елемента или от 0 до 5-ти ред. имаш 25 човека или от 0 до 24 колони. Двумерният масив е матрица.
Грешките за return value на мен не ми ги дава. Принципно това не е задължителен елемент. Явно ползваш друга версия на компилатора. На каква среда за разработка го пускаш това? Аз ползвам само Core::Blocks

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

  • Автор
преди 2 минути, simtech написа:

Изтрий ВСИЧКО до тоя момент, което си взел от написаното от мен. Използвай САМО последното, което съм ти дал.
Масивът ти не е 25,6, a e 24,5 Полетата/клетките в масива започват да се броят от 0, не от 1. Ако искаш да промениш това, трябва още код.
Грешките, че трябва да върне функцията са грешки на компилатора. Явно ползваш друг. Накрая на всяка функция пиши  return 0; или return квото и да е било. При успешно изпълнение функцията връща състояние на изпълнение.

int dobavi(int mi);

ясно, ще пробвам code::blocks , до сега бях с visual studio 2015, значи да разбирам че горния интежер е верен, след като е в последния ти код?

преди 2 часа, blodwenn написа:

int dobavi(int mi);

ясно, ще пробвам code::blocks , до сега бях с visual studio 2015, значи да разбирам че горния интежер е верен, след като е в последния ти код?

Да, прав си. Не съм го видял. Поправи го на Int dobavi(int broi);
Ето, билдва се при мен и тръгва.
L1481026933441432_1.jpg
Y1481027434447914_1.jpg
п.п Кодът има следните ограничения - половината функции взимат и стойността на помощната променлива broi.
Тя е много важна, защото показва последният запълнен с полезна информация елемент в масива.
Тя се използва и като помощна за изобразяването на брой студенти.
След като се напише броят студенти, това се използва като параметър в цикъла за попълване. Той се изпълнява толкова пъти, колкото е броят на студенти, които се въвеждат. Веднъж влезли в цикъла на функцията за добавяне, не можем да излезем, докато не попълним всички студенти, т.е не мине X пъти и стойността на i не се инкрементира до broi.
Това се вижда в кода. Мене ме мързи и винаги изпълнявам минимума за работа при подобни задачи..
-------------
п.п В кое ТУ си?

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

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

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

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

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

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

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

Профил

Навигация

Търсене

Търсене

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

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