Pereiti prie turinio

C++ programavimo uzdaviniai


Rekomenduojami pranešimai

Tiksliai... aciu. P.S tada taip iseitu, kad galima 17 eiluteje rasyti suma=suma+uzdarbis?

 

Nu jei masyvo neindeksuosi tai bus klaida, tai taip iseina kad tau reikia rasyti uzdarbis. Nors tu pagalvok kam tau to masyvo, jeigu tu jo apart to kart kai nuskaitai daugiau niekada nebenaudosi.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nu kaip as tau sakiau, naudoji kintamojo dydzio masyvu visu pirma, o visu antra, tai tu net neapibrezti to i, pagal kurio dydi darai masyva, gali buti kad tas i neigiamas, todel ir luzta.

O kaip ji reiktu absibrezti? Bandziau kaip anksciau rodei #define max 100. Tas pats... P.S. fiksuoto dydzio masyvas kas tai? Gal galit pavyzdi numesti?

 

Darykis fiksuoto dydžio masyvą ir nereiks jaudintis. Šiaip jau jei užduotis būtų su masyvais, tai būtų nurodyti maksimalūs duomenų kiekiai. (pvz. ne daugiau 1000).

Fiksuoto dydzio masyvas kas tai? Kaip ji reiketu rasyti?

Redagavo mendinskis
Nuoroda į pranešimą
Dalintis kituose puslapiuose


dabar tu darai:

int i; // apsibreziai i, o tai reiskia tik tiek, kad atmintyje kazkokiu adresu buvo uzzymeta "stai cia stovi i", o tos vietos turinys paliktas, todel ten gali buti belekokie bitukai, kurie automatiskai is to i padaro kazkoki integeri.
double masyvas[i];


/////////////////////

blogiausiu atveju darai:

int i = 10;
double masyvas[i];

siuo atveju i yra kintamasis, todel cia yra "variable size array";

///////////////////////////

ka tau reiketu daryti

#define max 100

int main() {
double masyvas[max];
}


Arba gali koki:

const int max = 100;

int main() {
double masyvas[max];
}



Nuoroda į pranešimą
Dalintis kituose puslapiuose

#define max 100

 

tai yra preprocesoriaus komanda ir ji tau ta 100 tiesiog ihardcodina, o

 

const int max = 100

 

tai tau dinamiskai ikelia tai 100, bet is esmes tai jos daro ta pati.

 

O konstanta tai siaip apibrezia, kad tas tavo daiktas yra pastovaus dydzio ir nekis (nu nieko naujo is matematikos nepadaryta cia), yra dalyku kurie paremti tuo, kad kazkuri ju dalis yra pastovaus dyziu.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

#include <iostream>
#include <fstream>
#include <cmath>
#define max 1000

const char CDfd[] = "Duomenys.txt";
const char CRfr[] = "Rezultatai.txt";
//-------------------------------------------------------------
using namespace std;
int main() {
int n; //
double uzdarbis[max], suma=0;
fstream fd(CDfd);
fd >> n;
for (int i=1; i<=n; i++)
{
   fd >> uzdarbis[max];
   suma = suma + uzdarbis[max];
}

fd.close();
ofstream fr(CRfr);
fr << suma;

fr.close();

}

Skaiciau daug teorijos ir pamaciau, kad cin (ka as buvau parases) yra naudojamas tik kai duomenys ivedami kliavetura, todel rasiau fd >> uzdarbis[max]; (fd, o ne cin) taciau tada man nuskaito tik pirmaja eilute. Greciausiai toliau blogai.

Redagavo mendinskis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Siulau internete kur nors pasiskaityt isviso kas per daiktas tas masyvas, kaip viskas veikia, kaip pasiekt elementus, o jau tada daryt kazka.

http://www.cplusplus.com/doc/tutorial/arrays/

 

Del masyvu indeksavimo, kas negerai?

uzdarbis o ne uzdarbis[max] cikle.

Redagavo hafnis1324
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Siulau internete kur nors pasiskaityt isviso kas per daiktas tas masyvas, kaip viskas veikia, kaip pasiekt elementus, o jau tada daryt kazka.

http://www.cplusplus.com/doc/tutorial/arrays/

 

 

uzdarbis o ne uzdarbis[max] cikle.

Aciu, skaitau is lietuvisko vadovelio. Bet daug kas sia svetaine internete gyre, tai teks pasiskaitineti.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aciu, skaitau is lietuvisko vadovelio. Bet daug kas sia svetaine internete gyre, tai teks pasiskaitineti.

Is to vadovelio kur mokaisi tai kiekvienoj temoj yra pavyzdine programa ir paaiskinta gana neblogai, tai siulau isanalizuot pirma visad ja, nes tikrai jei butum suprates ja, tai zinotum ir kaip masyvas apsiraso, ir kaip indeksuojamas. O del puslapio, kazin ar yra kas geriau uz c++ dokumentacija :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Is to vadovelio kur mokaisi tai kiekvienoj temoj yra pavyzdine programa ir paaiskinta gana neblogai, tai siulau isanalizuot pirma visad ja, nes tikrai jei butum suprates ja, tai zinotum ir kaip masyvas apsiraso, ir kaip indeksuojamas. O del puslapio, kazin ar yra kas geriau uz c++ dokumentacija :)

Dabar as sprendziu uzdavinius, kuriuose masyvo galim ir nenaudoti. Bet kazkaip idomiau man su jais, nors ir daug daugiau darbo. Sitam uzdavini nebuvo butina zaisti su masyvais :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Vel naujas uzdavinys. Butu smagu suzinoti del 1 vietos.

Stai mano kodas

#include <iostream>
#include <fstream>

const char CDfd[] = "Duomenys.txt";
const char CRfr[] = "Rezultatai.txt";
//-------------------------------------------------------------
using namespace std;
int main(){
   int k; // porciju parduota per pirma diena
   int m; // porciju daugiau nei buvusia
   int vk = 0; // kiek is viso pardave porciju ledu
   int n; // kelias dienas prekiauta ledais

   ifstream fd(CDfd);
   fd >> k >> m >> n;
   for (int i = 2; i <= n; i++){   // Jau cia nelabai aisku. kadangi pradine reiksme 170, o mums reikia kad ta 170 pridetu prie vk, tai tikrinti reiktu nuo 2 taip?
       fd >> k;
       vk = k + m;
       }
   fd.close();
   ofstream fr(CRfr);
   fr << vk;
   fr.close();
}

post-80785-0-83108000-1370809998_thumb.jpg

Redagavo mendinskis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Padariau. Atsakyma gaunu gera, bet nezinau ar pati logika ir sprendimas teisingas.

#include <iostream>
#include <fstream>

const char CDfd[] = "Duomenys.txt";
const char CRfr[] = "Rezultatai.txt";
//-------------------------------------------------------------
using namespace std;
int main(){
   int k, i=1; // porciju parduota per pirma diena
   int m; // porciju daugiau nei buvusia
   int vk = 0; // kiek is viso pardave porciju ledu
   int n; // kelias dienas prekiauta ledais

   ifstream fd(CDfd);
   fd >> k >> m >> n;
   while (i <= n){
       fd >> k;
       vk = vk + k + m;
       fd >> m;
       i++;
       }
   fd.close();
   ofstream fr(CRfr);
   fr << vk;
   fr.close();
}

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.

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