Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

[Pagabos] su c++ uždaviniais.


Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2722 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki taigi turiu tokia užduotį:

Duotas masyvas A(n). Masyvo elementus pakeiskite taip:

1) jei A<0, pakeiskite 1

2) jei A>=0, pakeiskite 0

O dariau taip, žinau kad neteisingai, bet kur neteisingai nežinau..:

#include <iostream>
using namespace std;


int main()
{
    int i; int n;
    int masyvas[20];
    cout << "Kiek bus masyve bus elementu?" << endl;
    cin >> n;
    cout << endl;
    //duomenu ivedimas
    for (i=0; i<n; i++)
    {
    cout << "Iveskite " << i+1 << "-aji elementa " << endl;
    cin >> masyvas[i];
    }
    //ifas
    if (masyvas[i]<0)
    {
    masyvas[i]=1;
    cout << masyvas[i];
    }
    if (masyvas[i]>=0)
    {
        masyvas[i]=0;
        cout << masyvas[i];
    }
}

 

Nuoroda į komentarą
Dalintis per kitą puslapį

Pirmiausia, nesilaikai kodo stiliaus taisyklių, o tai yra blogai. Dabar tai nekenkia, nes mažai kodo. Bet jei su tokiu stiliaus nesilaikymu parašysi 2000 kodo eilučių dideliame projekte ir tau reikės pagalbos, tada tave pasiųs toli :D. Štai paskaityk apie stilių. Taigi tu inicializuoji masyvo elementus cikle, tai yra teisinga. Vis dėlto, tu bandai tikrinti masyvo elementus be ciklo. Vadinasi tu patikrinti tik vieną (šiuo atveju paskutinį, nes i = n po paskutinės ciklo for iteracijos) masyvo elementą. O su ciklu apeitum visus masyvo elementus. Taigi:

#include <iostream>

// Define'iname maksimalų masyvo elementų skaičių.
#define ARR_MAX 20

// Naudojam standartinį namespace'ą std.
// Be jo reikėtų rašyti std::cout, std::cin ir pnš.
using namespace std;

int main() {
    int n;
    int masyvas[ARR_MAX];

    // Nustatome lietuvišką lokalę.
    setlocale(LC_ALL, "Lithuanian");

    // Tikriname, ar įvestas masyvo dydis yra tinkamas (>0 ir <=ARR_MAX).
    int neteisingiDuomenys = 1;
    do{
        cout << "Masyvo elementų skaičius: ";
        cin >> n;

        if ((n < 1) || (n > ARR_MAX))
            cout << "Norimas masyvo dydis nėra tinkamas, turi būti >0, bet <= "
                 << ARR_MAX << "\n" << endl;  // "\n" reiškia naujos eilutės simbolį.
        else
            neteisingiDuomenys = 0;
    } while(neteisingiDuomenys == 1);
    cout << endl;

    // Masyvo inicializavimas.
    for(int i = 0; i < n; i++) {
        cout << "Įveskite [" << i << "] elementą: ";
        cin >> masyvas[i];
    }

    // Masyvo elementų pakeitimas (pagal uždavinio sąlygą)
    // ir išvedimas į ekraną.
    cout << "Masyvas atrodo taip:" << endl;
    for(int i = 0; i < n; i++) {
        if(masyvas[i] < 0)
            masyvas[i] = 1;
        else if(masyvas[i] >= 0)
            masyvas[i] = 0;

        cout << i << ": " << masyvas[i] << endl;
    }

    return 0;
}
Redaguota , nario Tautedorus
  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

 

Pirmiausia, nesilaikai kodo stiliaus taisyklių, o tai yra blogai. Dabar tai nekenkia, nes mažai kodo. Bet jei su tokiu stiliaus nesilaikymu parašysi 2000 kodo eilučių dideliame projekte ir tau reikės pagalbos, tada tave pasiųs toli :D. Štai paskaityk apie stilių. Taigi tu inicializuoji masyvo elementus cikle, tai yra teisinga. Vis dėlto, tu bandai tikrinti masyvo elementus be ciklo. Vadinasi tu patikrinti tik vieną (šiuo atveju paskutinį, nes i = n po paskutinės ciklo for iteracijos) masyvo elementą. O su ciklu apeitum visus masyvo elementus Taigi:

#include <iostream>

#define ARR_MAX 20

using namespace std;

int main() {
    int n;
    int masyvas[ARR_MAX];

    setlocale(LC_ALL, "Lithuanian");

    cout << "Masyvo elementų skaičius: ";
    cin >> n;
    cout << endl;

    // Masyvo inicializavimas.
    for(int i = 0; i < n; i++) {
        cout << "Įveskite [" << i << "] elementą: ";
        cin >> masyvas[i];
    }

    // Masyvo elementų pakeitimas (pagal uždavinio sąlygą)
    // ir išvedimas į ekraną.
    cout << "Masyvas atrodo taip:" << endl;
    for(int i = 0; i < n; i++) {
        if(masyvas[i] < 0)
            masyvas[i] = 1;
        else if(masyvas[i] >= 0)
            masyvas[i] = 0;

        cout << masyvas [i];
    }

    return 0;
}

Labai tau dėkui, bet mes (12klasei) kaip ir nelabai mokinomės tokių dalykų kaip ARR_MAX(arba pamiršau :D) ar setlocale(LC_ALL, "Lithuanian"); (šitas suprantu ką daro :D).

Nuoroda į komentarą
Dalintis per kitą puslapį

Labai tau dėkui, bet mes (12klasei) kaip ir nelabai mokinomės tokių dalykų kaip ARR_MAX(arba pamiršau :D) ar setlocale(LC_ALL, "Lithuanian"); (šitas suprantu ką daro :D).

Galbūt nemokė jūsų define'int reikšmių ir šiaip turbūt nekalbėjo apie preprocesoriaus makrosus, nes VBE to nereikalauja. Vis dėlto, tai reikia žinoti. Rašyti int numberArray[20] nėra gerai. Kodėl? Įsivaizduok, kad turi maždaug šimtą kodo eilučių, kuriose naudojamas tas maksimalus masyvo dydis, t.y. dvidešimt elementų. O jei reikia pakeisti tą elementų reikšmę iš dvidešimties į trisdešimt? Tada reikia eiti per visą kodą ir keitinėti tą skaičių, o tai užsiknisimas būtų. Dėl to reikia reikšmę define'inti su #define KAZKOKS_PAVADINIMAS 1337. Tada visur naudosi tą define'intą reikšmę. Jei reikės ją keisti, pakeisi tik vieną eilutę, o ne, pavyzdžiui, šimtą eilučių :D. Be to, atnaujinau kodą, įdėjau apsaugą nuo netinkamų masyvo dydžio reikšmių.

Redaguota , nario Tautedorus
  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

Galbūt nemokė jūsų define'int reikšmių ir šiaip turbūt nekalbėjo apie preprocesoriaus makrosus. Rašyti int numberArray[20] nėra gerai. Kodėl? Įsivaizduok, kad turi maždaug šimtą kodo eilučių, kuriose naudojamas tas maksimalus masyvo dydis, t.y. dvidešimt elementų. O jei reikia pakeisti tą elementų reikšmę iš dvidešimties į trisdešimt? Tada reikia eiti per visą kodą ir keitinėti tą skaičių, o tai užsiknisimas būtų. Dėl to reikia reikšmę define'inti su #define KAZKOKS_PAVADINIMAS 1337. Tada visur naudosi tą define'intą reikšmę. Jei reikės ją keisti, pakeisi tik vieną eilutę, o ne, pavyzdžiui, šimtą eilučių :D. Be to, atnaujinau kodą, įdėjau apsaugą nuo netinkamų masyvo dydžio reikšmių.

Turiu dar viena klausimėlį, kokiu tu būdų mokeisi nuo pagrindų iki dabar? Aišku jei ne paslaptis :D

Nuoroda į komentarą
Dalintis per kitą puslapį

Turiu dar viena klausimėlį, kokiu tu būdų mokeisi nuo pagrindų iki dabar? Aišku jei ne paslaptis :D

VBE ruošiausi savarankiškai. Aišku, ir mokytoja padėdavo, kas be ko. Ji duodavo informacijos, bet norint išmokti programuoti reikia pačiam darbuotis. Na, paskiau universitete mokiausi Paskalio, C. Dabar mokausi Assembly ir C++ OOP. Daugiausiai programavimo žinių įgavau universitete, nes mokyklose toks ten ir programavimo mokymas :D. Bet šiaip ar taip, reikia pačiam programuoti, apsigyventi Stack Overflow puslapyje. Pradžioje galima pažiūrėti įvairius vaizdo įrašus internete, jie kartais užveda ant kelio.

  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

A

 

VBE ruošiausi savarankiškai. Aišku, ir mokytoja padėdavo, kas be ko. Ji duodavo informacijos, bet norint išmokti programuoti reikia pačiam darbuotis. Na, paskiau universitete mokiausi Paskalio, C. Dabar mokausi Assembly ir C++ OOP. Daugiausiai programavimo žinių įgavau universitete, nes mokyklose toks ten ir programavimo mokymas :D. Bet šiaip ar taip, reikia pačiam programuoti, apsigyventi Stack Overflow puslapyje. Pradžioje galima pažiūrėti įvairius vaizdo įrašus internete, jie kartais užveda ant kelio.

Ačiū labai už viska :D! Reiks išbandyti viska.

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 3 savaičių...

Galbūt nemokė jūsų define'int reikšmių ir šiaip turbūt nekalbėjo apie preprocesoriaus makrosus, nes VBE to nereikalauja. Vis dėlto, tai reikia žinoti. Rašyti int numberArray[20] nėra gerai. Kodėl? Įsivaizduok, kad turi maždaug šimtą kodo eilučių, kuriose naudojamas tas maksimalus masyvo dydis, t.y. dvidešimt elementų. O jei reikia pakeisti tą elementų reikšmę iš dvidešimties į trisdešimt? Tada reikia eiti per visą kodą ir keitinėti tą skaičių, o tai užsiknisimas būtų. Dėl to reikia reikšmę define'inti su #define KAZKOKS_PAVADINIMAS 1337. Tada visur naudosi tą define'intą reikšmę. Jei reikės ją keisti, pakeisi tik vieną eilutę, o ne, pavyzdžiui, šimtą eilučių :D. Be to, atnaujinau kodą, įdėjau apsaugą nuo netinkamų masyvo dydžio reikšmių.

Kalbant apie define tai galima definint praktiskai betka tai gali buti funkcija, ciklas, siek tiek panasu i include tik ne su failais o su tuo ka paduodi.

Redaguota , nario Amxxl
Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2722 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...