eMatematikas Prisijunk Forumas Matematikos testai Pradžia

Programavimas. Klausimai del užduočių, kurių nesuprantu C++.


Nu man veikia nežinau. Kur tu kvieti ta funkciją?. Parodyk. Ir iš esmės aš šita uždavinį daryčiau viska main funkcijoje, bet jei jau taip pradėjai tai galim ir taip užbaigt.

pakeista prieš 9 m

Aš čia skaičiavau dabar nelyginių ir lyginių sumas, bet vis vien spausdina nulius, pasimečiau visai..
#include <fstream>
using namespace std;

int n;
int m;
int X[50], Y[50];
int X1[50], Y1[50];
int lyginiu_suma = 0;
int nelyginiu_suma = 0;


//--------------------------------------------------
int Lyginiainelyginiai();
void skaityk();
void spausdink();
//--------------------------
int main()
{



        Lyginiainelyginiai();
        skaityk();
        spausdink();

        return 0;
}


//--------------------------------------



void skaityk()
{
        ifstream fd("duomenys.txt");
        fd >> n;

        for(int i = 0; i < n; i++)
        {
        fd >> X[i] >> Y[i];

                m++;
                X1[m] = X[i];
                Y1[m] = Y[i];

        }

        fd.close();

}

int Lyginiainelyginiai()
{

    for (int i = 0; i < n; i++)
      {
        if(X[i] % 2 == 0) // jeigu namo numeris dalijasi iš dviejų be liekanos, jis yra lyginis skaičius
                lyginiu_suma = lyginiu_suma + Y[i];
        else // jeigu tai nelyginis namo numeris
                nelyginiu_suma = nelyginiu_suma + Y[i];
}


}




void spausdink()
{
        ofstream fr("rezultatai.txt");
        fr << "Namo nr  " << "Gyventoju sk" << endl;
        fr << "-------" << endl;

      fr << lyginiu_suma << endl;
        fr << nelyginiu_suma << endl;

        for(int i = 1; i <= n; i++)
        fr << X1[i] << "  " << Y1[i] << endl;


        fr.close();
}



pakeista prieš 9 m

Pradedam nuo main funkcijos. Turi atsimint kad eiliškumas programavime svarbus dalykas. Vadovaujantis tavo logiką tai tu iš pradžių apskaičiuoji lyginius ir nelyginius namu gyventojus o tik po to nuskaitai duomenys. Ar tai logiška? Manau ne.

Ir funkcija kuri nėra void turi kažka gražinti. Ir ji gali gražinti tik viena reikšmę. Taigi tau reikia sukurti dvi funkcijas: Kuri apskaičiuoti lyginius, ir kuri apskaičiuotu nelyginius.

almostlowPradedam nuo main funkcijos. Turi atsimint kad eiliškumas programavime svarbus dalykas. Vadovaujantis tavo logiką tai tu iš pradžių apskaičiuoji lyginius ir nelyginius namu gyventojus o tik po to nuskaitai duomenys. Ar tai logiška? Manau ne.

Ir funkcija kuri nėra void turi kažka gražinti. Ir ji gali gražinti tik viena reikšmę. Taigi tau reikia sukurti dvi funkcijas: Kuri apskaičiuoti lyginius, ir kuri apskaičiuotu nelyginius.

Dar daug, daug praktikos man reikia, neseniai pradėjau kažką bandyt, kol kas sekasi tragiškai.. todėl ir nebežinau kaip čia ką toliau daryt. :(
O tai juk tam yra else funkcija, ji juk turi grąžint ir teigiamą ir neigiamą reikšmę.

funkcijoje reikšmę gražina return sakinys.

int Lyg(int X[],int Y[], int n)
{
    int sumal = 0;
    for (int i=0 ; i<n ; i++){
        if (X[i]%2!=0){
            sumal = sumal + Y[i];
        }

    }
    return sumal;
}


int main()
{
        skaityk();
        suml = Lyg(X,Y,n);
        spausdink();
        return 0;
}


Cia kaire namo puse.

pakeista prieš 9 m

Ai žodžiu, vis vien negrąžina rezultato fr << sumal << endl;
ir beje, kodėl tokia eilutė: suml = Lyg(X,Y,n); o ne tokia  Lyg(int X[],int Y[], int n); ar čia tas pats realiai ?

Nors dabar panagrinejus is esmes cia netinka funkcijas daryt nes tau apart to kad reikia gyventoju suma apskaiciuot bet taip pat ir gaut kiek tokiu namu yra. Taip kad gal viska rasyk main funkcijoje, pradžiai taip.

almostlowNors dabar panagrinejus is esmes cia netinka funkcijas daryt nes tau apart to kad reikia gyventoju suma apskaiciuot bet taip pat ir gaut kiek tokiu namu yra. Taip kad gal viska rasyk main funkcijoje, pradžiai taip.


Tai juk lyginius skaičius su nelyginiais sudedi ir viskas.
Man atrodo mano variante buvo teisingai viskas, tik, kad kažko trūksta..

dalampacki
almostlowNors dabar panagrinejus is esmes cia netinka funkcijas daryt nes tau apart to kad reikia gyventoju suma apskaiciuot bet taip pat ir gaut kiek tokiu namu yra. Taip kad gal viska rasyk main funkcijoje, pradžiai taip.


Tai juk lyginius skaičius su nelyginiais sudedi ir viskas.
Man atrodo mano variante buvo teisingai viskas, tik, kad kažko trūksta..


Nu tau reik reik kiek nelyginiu, ir kiek lyginiu yra namu: ty. tai is funkcijos reiks istraukt kelias reiksmes o kaip minėjau tai yra neįmanoma.. O kurti tiek funkciju tokiame nedideliame kode nežinau ar verta.

pakeista prieš 9 m

almostlow
dalampacki
almostlowNors dabar panagrinejus is esmes cia netinka funkcijas daryt nes tau apart to kad reikia gyventoju suma apskaiciuot bet taip pat ir gaut kiek tokiu namu yra. Taip kad gal viska rasyk main funkcijoje, pradžiai taip.


Tai juk lyginius skaičius su nelyginiais sudedi ir viskas.
Man atrodo mano variante buvo teisingai viskas, tik, kad kažko trūksta..


Nu tau reik reik kiek nelyginiu, ir kiek lyginiu yra namu: ty. tai is funkcijos reiks istraukt kelias reiksmes o kaip minėjau tai yra neįmanoma.. O kurti tiek funkciju tokiame nedideliame kode nežinau ar verta.


Na tarkim supratau. :) Palieku ramybėj šį uždavinį nes kaip matau, dar mažai žinių, kad su juo susitvarkyčiau.

Nori sudalyvauti šioje temoje ir parašyti savo pranešimą? Prisijungti »