Pereiti prie turinio

C++ programavimo uzdaviniai


Rekomenduojami pranešimai

C++ nėra lygi matematikai. C++ nėra daugybos su skliaustais, skliaustai reiškia funkcijos (klasės konstruktoriaus, etc.) kvietimą. Daugyba aprašoma operatoriumi

*

.

PABC*(PABC-AB)

Taip pat operatorius

^

NEREIŠKIA kėlimo laipsniu. Tai yra bitwise XOR ir rezultatas nebus toks, kokio tikiesi. Jei keli kvadratu, tiesiog padaugink skaičių iš savęs paties, jei reikia aukštesnių laipsnių – bibliotekos "cmath" funkcija pow().

 

TAIP PAT

if(SABD+SBDC+SADC=SABC)

čia darai priskyrimą, o ne lygini. Viena lygybė – priskyrimas, dvi lygybės – lyginimas. Keisk į

if(SABD+SBDC+SADC==SABC)

 

Žodžiu, turėtum pakartoti C++ pagrindus.

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aciu, viskas pavyko. Yra kita problema, kodel programa nuluzta? http://pastebin.com/R9xdNjmq (Nezinau ar cia verta salyga deti, nes pati ji kaip ir aiski, bet gal jum aiskiau bus kuriu velniu as tuos masyvus kuriausi)

post-80785-0-05801800-1371293086_thumb.jpg

Redagavo mendinskis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aciu, viskas pavyko. Yra kita problema, kodel programa nuluzta? http://pastebin.com/R9xdNjmq (Nezinau ar cia verta salyga deti, nes pati ji kaip ir aiski, bet gal jum aiskiau bus kuriu velniu as tuos masyvus kuriausi)

Sakiau karta, pasakysiu dar karta, eik i -> http://www.cplusplus.com/doc/tutorial/arrays/ ir ismok, kaip reikia dirbt su masyvais, kaip pasiekt elementus, kaip irasyt ka nors i juos.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sakiau karta, pasakysiu dar karta, eik i -> http://www.cplusplus.com/doc/tutorial/arrays/ ir ismok, kaip reikia dirbt su masyvais, kaip pasiekt elementus, kaip irasyt ka nors i juos.

O negaletum paprasciausiai parasyti ka blogai darau? Nelabai suprantu kur ten tas irasymas ir t.t. i masyva.

Redagavo mendinskis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Viska as suprantu. nesuprantu kodel mano kodas luzta, kas negerai su masyvais? (jei nesuprasciau is viso nerasyciau jokiu kodu).

Kaip supranti, jei sakei nesupranti, kur irasymas i masyva? Eik dokumentacija pasiskaitysi, paziuresi kuo skiriasi nuo to, kaip pas tave ir suprasi.

 

 

void Skaitymas(int A[], int B[], int C[], int & Asum, int & Bsum){

int n, Csum=0;

ifstream fd(CD);

fd >> n;

for (int i=0; i<n; i++){

fd >> C[n];

Csum=Csum + C[n];

if(C<0)

fd >> B[n];

Bsum = Bsum + B[n];

if(C>0)

fd >> A[n];

Asum = Asum + A[n];

}

fd.close();

}

 

 

Paaiskink man, kas per velnias tos paryskintos vietos.

Redagavo hafnis1324
Nuoroda į pranešimą
Dalintis kituose puslapiuose



   #include <iostream>
   #include <fstream>
   #include <iomanip>
   using namespace std;
   const int CMax = 100;
   const char CD[]="Duomenys.txt";
   const char CR[]="Rezultatai.txt";
   void Skaitymas(int A[], int B[], int C[], int & Asum, int & Bsum);
   void Spausdinti(int A[], int B[], int & Avid, int & Bvid);
   void Skaiciavimas(int A[], int B[]);
   int main(){
   int n;
   int Asum=0, Bsum=0, Csum=0, Avid=0, Bvid=0, Avis=0, Bvis=0;
   int A[CMax];
   int B[CMax];
   int C[CMax];
   Skaitymas(A, B, C, Asum, Bsum);
   Spausdinti(A, B, Avis, Bvis);
   Skaiciavimas(A, B);
   return 0;
   }
   void Skaitymas(int A[], int B[], int C[], int & Asum, int & Bsum){
       int n, Csum=0;
       ifstream fd(CD);
       fd >> n;
       for (int i=0; i<n; i++){
       fd >> C[n]; // Turi but C[i]
       Csum=Csum + C[n]; // Turi but C[i], kokia prasme sitos eilutes, jei Csum f-joj susikuri per naujo.
       if(C[i]<0)
           fd >> B[n]; // Turi but B[i]
           Bsum = Bsum + B[n]; // Turi but B[i], jeigu IF'e kelios eilutes, turi but skliaustai
       if(C[i]>0)
           fd >> A[n]; // Turi but A[i]
           Asum = Asum + A[n]; // Turi but A[i]
           }
           fd.close();
   }
   void Spausdinti(int A[], int B[], int & Avid, int & Bvid){
       int Asum=0, Bsum=0, Csum=0;
       ofstream fr(CR);
       Skaiciavimas(A, B); // Kam cia ta skaiciavima kvieti, jei pagr. programoj kvieti
       fr << fixed << setprecision(1) << Asum << endl; // Nera is situ triju eiluciu situ prasmes, nes susikurei
       fr << fixed << setprecision(1) << Bsum << endl; // naujus kintamuosius f-joj ir su jais nieko nepadarei
       fr << fixed << setprecision(1) << Csum << endl;
       fr.close();
   }
   void Skaiciavimas (int A[], int B[]){
       int Asum=0, Bsum=0, Csum=0, n;
       int C[CMax];
   Skaitymas(A, B, C, Asum, Bsum); // Kam dar karta skaityma kvieti, jei pagrindinej programoj iskvietei
   Bsum=Bsum/n; // n nepriskirstas niekam, nezinau is ko dalini.
   Asum=Asum/n; 
   Csum=Csum/n;
   }

 

Cia ka greitai paziurejau, sukomentavau.

Redagavo hafnis1324
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aciu, del tu C ir t.t. tai visiskai sutinku. Bet gal gali paaiskinti kodel neturi prasmes? (manyciau, kad main funkcijoje susikuriu Csum=0, bet galiu ir klysti)

Csum=Csum + C[n]; // Turi but C[i], kokia prasme sitos eilutes, jei Csum f-joj susikuri per naujo.

Dar

Skaiciavimas(A, B); // Kam cia ta skaiciavima kvieti, jei pagr. programoj kvieti 

kaip cia suprasti? kodel negaliu iskviesti f-jos? (kvieciau tam, kad galeciau pasiekti Asum, Bsum ir Csum).

fr << fixed << setprecision(1) << Asum << endl; // Nera is situ triju eiluciu situ prasmes, nes susikurei
       fr << fixed << setprecision(1) << Bsum << endl; // naujus kintamuosius f-joj ir su jais nieko nepadarei
       fr << fixed << setprecision(1) << Csum << endl;

Cia butent ir kvieciausi f-ja Skaiciavimas, nes joje yra pdaryti skaiciavimai.

Skaitymas(A, B, C, Asum, Bsum); // Kam dar karta skaityma kvieti, jei pagrindinej programoj iskvietei

Si vieta, jei kvieciausi man f-joje, tai reiskias cia nera butina ja iskviesti?

Aciu uz atsakymus.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aciu, del tu C ir t.t. tai visiskai sutinku. Bet gal gali paaiskinti kodel neturi prasmes? (manyciau, kad main funkcijoje susikuriu Csum=0, bet galiu ir klysti)

Csum=Csum + C[n]; // Turi but C[i], kokia prasme sitos eilutes, jei Csum f-joj susikuri per naujo.

Dar

Skaiciavimas(A, B); // Kam cia ta skaiciavima kvieti, jei pagr. programoj kvieti 

kaip cia suprasti? kodel negaliu iskviesti f-jos? (kvieciau tam, kad galeciau pasiekti Asum, Bsum ir Csum).

fr << fixed << setprecision(1) << Asum << endl; // Nera is situ triju eiluciu situ prasmes, nes susikurei
       fr << fixed << setprecision(1) << Bsum << endl; // naujus kintamuosius f-joj ir su jais nieko nepadarei
       fr << fixed << setprecision(1) << Csum << endl;

Cia butent ir kvieciausi f-ja Skaiciavimas, nes joje yra pdaryti skaiciavimai.

Skaitymas(A, B, C, Asum, Bsum); // Kam dar karta skaityma kvieti, jei pagrindinej programoj iskvietei

Si vieta, jei kvieciausi man f-joje, tai reiskias cia nera butina ja iskviesti?

Aciu uz atsakymus.

 

Jeigu kintamiji susikuri main'e, tai nereiskia, kad jis bus pasiekiamas visur, jei jo niekur neperduodi. Del tu funkciju iskvietimu, pagal taip kaip pas tave padaryta, dabar gaunasi tokia seka: skaitymas -> kreipimasis i spausdinima -> spausdinimo pradzioj kreipimasis i skaiciavima -> skaiciavimo pradzioj vel kreipimasis i skaityma, tada skaiciuoja jau kazka -> galiausiai vel main'e dar karta i skaiciavima, o skaiciavimo pradzioj trecia kart i skaityma. Nu zodzio, be rysio visai.

Redagavo hafnis1324
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Reiktu patarimo del uzduoties susirandu masyvo maksimumo nari ir dabar ka toliau su juo daryti? Manau, kad turiu tikrinti su if. Is viso max ir min nusistatyti mokeciau, o kaip vidurki?

#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
//-------------------------------------------------------------
const int Cmax = 100;
const char CD[]="Duomenys.txt";
const char CR[]="Rezultatai.txt";
//-------------------------------------------------------------
void Skaitymas(int A[], int & n, double & sum, double & viso);
void Didziausias (int A[], int & did, int & n, int & maxx);
int main(){
int A[Cmax], n, maxx, did;
double viso, sum=0;
Skaitymas(A, n, sum, viso);
}
void Skaitymas(int A[], int & n, double & sum, double & viso){
ifstream fd(CD);
fd >> n;
for(int i=0; i<n; i++){
   fd >> A[i];
   sum=(sum+A[i]);
}
viso=sum/n;
cout << viso << endl;
fd.close();
}
void Didziausias (int A[], int & did, int & n, int & maxx){
maxx=A[0];
for(int i=0; i<n; i++){
   if(A[i]>maxx){
       maxx=A[i];

   }
}

}

post-80785-0-86733200-1371388254_thumb.jpg

Redagavo mendinskis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nu tai randi vidutini dydi, pasidarai masyvo kompija, ja issirusiuoji, ikisi i ta masyva savo gauta vidutini dydi, tada pasiimi [x-1] ir [x+1] elementus, patikrini kurio is ju verte artimesne tavo x vertai - turi rezultata. tada is masyvo ieskau maziausios reiksmes.

Kitame forume pasiule kita varianta. Apsiskaiciuoju aritmetini vidurki ir susidarau masyva, kuriu nariai yra svorio ir aritmetinio vidurkio modulis, bet rezultatas nesigauna.

#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
//-------------------------------------------------------------
const int Cmax = 100;
const char CD[]="Duomenys.txt";
const char CR[]="Rezultatai.txt";
//-------------------------------------------------------------
void Skaitymas(int A[], int & n, double & sum, double & viso);
void Vidurinis (int A[], double C[], int & n, double & viso, int & u);
int Tikrinti(double C[], int & minn, int & n);
void Spausdinti (double C[], int & i, int & minn);
int main(){
int A[Cmax], n, i, maxx, did, u, minn=0;
double C[Cmax];
double viso, sum=0;
Skaitymas(A, n, sum, viso);
Vidurinis(A, C, n, viso, u);
Tikrinti (C, minn, n);
Spausdinti(C, i, minn);
return 0;
}
void Skaitymas(int A[], int & n, double & sum, double & viso){
ifstream fd(CD);
fd >> n;
for(int i=0; i<n; i++){
   fd >> A[i];
   sum=sum+A[i];
}
viso=sum/n;
fd.close();
cout << viso << endl;
}
void Vidurinis (int A[], double C[], int & n, double & viso, int & u){
for(int i=0; i<n; i++){
   C[i]=A[i]-viso;
   if(C[i]<0){
   C[i]=-u;
}
else C[i]=u;
cout << C[i] << endl;
}
}
int Tikrinti (double C[], int & minn, int & n){
minn=C[0];
for(int i=0; i<n; i++){
   if(C[i]<minn)
       minn=C[i];
}
}
void Spausdinti (double C[], int & i, int & minn){
ofstream fr(CR);
fr << minn << endl;
fr << i << endl;
fr.close();
}

Redagavo mendinskis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

As nezinau, kas jis isvis per kintamasis ir kaip tu isivaizduoji, kad "naikini minusinius skaicius", tiesiog konstatuoju fakta, kad jam nieko nera priskirta, bet tu ji naudoji aritmetiniuose veiksmuose. Is neigiamio i teigiama pakeist nereik kazkokiu nauju kintamuju, if (x < 0) x = x * (-1);

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...