eMatematikas Prisijunk Forumas Egzaminų užduotys Matematikos testai Pradžia

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


https://www.ematematikas.lt/upload/uploads/40000/4000/44268/thumb/p17t4dop3c1hs516nhikr2801qdg1.JPGLukai, aciu. Perrasiau programa, bet kazkas ne taip (ji labai ilga http://pastebin.com/sGnys7dc todel pereisiu prie pacios esmes).
Niekaip nesumastau kur padariau klaida. Labiausiai neramina tas i does not name a type. Kauip cia suprasti, lyg viska teisingai padariau. Gal kas turit minciu? Visa kita bandysiu pats kapstytis.

pakeista prieš 12 m

Kaip suprantu, B pas tave berniukų ūgių masyvas, M - mergaičių ūgių masyvas. Ar ne?

lukasmKaip suprantu, B pas tave berniukų ūgių masyvas, M - mergaičių ūgių masyvas. Ar ne?

taip. Bet ka tik radau klaida viena. Neapskliaudziau void Tikrinti. pabandysiu taisytis.

cia ziuriu as tikriausiai vienintelis senamadis, su pascaliu egza laikysiu ;D

Na va klaidu nors ir maziau bet yrahttps://www.ematematikas.lt/upload/uploads/40000/4000/44272/thumb/p17t4e29ci1ce0bc8rp834tf3g1.JPG

Iš pradžių ištaisyk skaitymo funkciją - ji vis dar neteisinga. Jau rašiau, kas ten blogai:

lukasmŠitoks sakinys reiškia: jei masyvo C i-tasis narys teigiamas, tai iš tekstinio failo nuskaityti i-tąjį masyvo B narį. Dėl to i-tajam masyvo B nariui priskirs jau ne i-tąją masyvo C reikšmę, tačiau reikšmę, tekstiniame faile einančią po i-tosios masyvo C reikšmės.
Pavyzdžiui, jei tekstiniame faile duoti skaičiai 1, -1, 5, -3, tai pagal tavo parašytą sąlygą C[0]=1, B[0]=-1, C[1]=5, B[1]=-3.

Jei kompiuteris nuskaito neigiamą reikšmę, į masyvą reikia įrašyt ją be minuso. Kodėl į masyvą vistiek rašai neigiamas reikšmes?..

pakeista prieš 12 m

Erniscia ziuriu as tikriausiai vienintelis senamadis, su pascaliu egza laikysiu ;D

Nieko cia ziauraus. Su paskaliu dar paprasciau daug kas sako, bet studijuojant visai nauja kalba teks mokintis :D

lukasmIš pradžių ištaisyk skaitymo funkciją - ji vis dar neteisinga. Jau rašiau, kas ten blogai.
Jei kompiuteris nuskaito neigiamą reikšmę, į masyvą reikia įrašyt ją be minuso. Kodėl į masyvą vistiek rašai neigiamas reikšmes?..

Nelabai supratau as ten. Beje jei visu berniuku ugis yra minusinis, tai paprasciausiai irasius fr >> -(bugis) netiktu? Bet cia su masyvais toks dalykas netinka....

Aš dariau tokią skaitymo funkciją:
void input(int & n, double u, int & j, int & k, double M[], double B[], double U[])
{
    ifstream fd(CDfv);
    j=0;
    k=0;
    fd>>n;
    for (int i=0; i<n; i++)
    {
        fd>>u;
        if (u>0)
        {
            U[i]=u;
            M[j]=u;
            j=j+1;
        }
        else
        {
            U[i]=-u;
            B[k]=-u;
            k=k+1;
        }
    }
    fd.close();
}

Gal tai ir ne vienintelis būdas, nesakau, kad ir pats geriausias.
Tavo sudaryta skaitymo funkcija klaidinga:
void Skaityti(int A[], int B[], int C[], int & n, double & msum, double & bsum){
ifstream fd(CDfv);
fd >> n;
for(int i=0; i<n; i++){
    fd >> C[i];  // čia į masyvą įrašai tokį skaičių, koks jis yra tekstiniame faile, tačiau tau reikia įrašyti to skaičiaus modulį
    if(C[i]<0){
        fd >> B[i];  // čia nuskaitai jau tolimesnį skaičių iš tekstino failo. Turėtum rašyti B[i]=C[i]
        bsum=bsum+B[i];
        }
        else
        fd >> A[i];    // tas pats ir čia
        msum=msum+A[i];
    }
    fd.close();
}

pakeista prieš 12 m

o ka tie j ir k reiskia?

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