Pereiti prie turinio

Rekomenduojami pranešimai

Nenaudok jokiu mapu ar listu, univere pirmuose kursuose ziuri i algoritimzavima, o ne puiku klasiu zinojima ir ju panaudojima.

Algoritmas kuri siulau as:

  1. Iš matricos stulpelio kur yra banku pavadinimai, išrink unikalius pavadinimus ir sudėk į naują vienmatį masyvą.
  2. Tada suki ciklą cikle, pirmas ciklas tiek kiek vienmačiame masyve yra įrašų, o antras ciklas per visas matricos eilutes eina, jai sutinka banku pavadinimai - spausdini.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nenaudok jokiu mapu ar listu, univere pirmuose kursuose ziuri i algoritimzavima, o ne puiku klasiu zinojima ir ju panaudojima.

Algoritmas kuri siulau as:

  1. Iš matricos stulpelio kur yra banku pavadinimai, išrink unikalius pavadinimus ir sudėk į naują vienmatį masyvą.
  2. Tada suki ciklą cikle, pirmas ciklas tiek kiek vienmačiame masyve yra įrašų, o antras ciklas per visas matricos eilutes eina, jai sutinka banku pavadinimai - spausdini.

Kadangi mums yra privaloma salyga klase as nieko negaliu padaryti. Pats ju tikrai nenaudociau jei nebutu privaloma. Siaip labai keista kad skaiciavimo algoritma kuris yra sudetingesnis nei si problema sutalpinau i 20 eil., o va sito cia ir nepadarau. hafnio variantas labai geras, tik kazkodel mano programa luzta... Jei butu imanoma naudociau savo sugalvota algoritma, bet musu destytojas labai ptksta kai atnesi baisini griozdiska algoritma :D hafnio variantas labai geras, nes jis nera ilgas, o va mano tai.... :D

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kadangi mums yra privaloma salyga klase as nieko negaliu padaryti. Pats ju tikrai nenaudociau jei nebutu privaloma. Siaip labai keista kad skaiciavimo algoritma kuris yra sudetingesnis nei si problema sutalpinau i 20 eil., o va sito cia ir nepadarau. hafnio variantas labai geras, tik kazkodel mano programa luzta... Jei butu imanoma naudociau savo sugalvota algoritma, bet musu destytojas labai ptksta kai atnesi baisini griozdiska algoritma :D hafnio variantas labai geras, nes jis nera ilgas, o va mano tai.... :D

Tokie pastebejimai. Pirma, funkcijos ArYra (ta, kur as parasiau) prototipa pasirasyk. Antra, funkcijoj AtrenkamSkirtingus n = 0; turetu but, o ne n = 6. Taip pat ArYra funkcijoj ciklas turi eiti iki n. Tas n rodo, kiek yra skirtingu banku, o pradzioje ju yra 0, tiesa? O siaip tai turetu veikt kaip ir viskas, tik spausdinima dar pasirasyt. Nezinau koki ten errora apie undifined kintamaji gauni, galetum visa nukopijuot gal?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Taip, imesiu screenshot'a P.S jei n rodo banku skaiciu, tai pas mane jis yra M.ImtiBankai()

n rodo masyvo bankai dydi, t.y. to masyvo, kuris laiko visus skirtingus bankus. Pradzioje jis turi buti lygus 0. O siaip del erroro, tai probably persoki kazkur tai rezius masyvo kazkokio. Susitvarkyk ka parasiau auksciau ir patestuok.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

n rodo masyvo bankai dydi, t.y. to masyvo, kuris laiko visus skirtingus bankus. Pradzioje jis turi buti lygus 0. O siaip del erroro, tai probably persoki kazkur tai rezius masyvo kazkokio. Susitvarkyk ka parasiau auksciau ir patestuok.

hafni, ziauriai tau aciu radau klaida :)

void TikSp(Matrica M, string bankai[], int n){
for(int i=0; i<n; i++){
	cout << bankai[i] << ": ";
	for(int j=0; j<M.ImtiSK(); i++){ // is iprocio pliusinau i......
		if(bankai[i] == M.ImtiBankas(j)){
			cout << M.ImtiVardas(j) << " " << M.ImtiNr(j) << endl;
		}
	}
}
}

Gal tu kartais is kauno? :D Jei taip tai susisiekiam pica pavaisinciau! :) Dekui dar karta ;)

Redagavo deividas707
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kadangi mums yra privaloma salyga klase as nieko negaliu padaryti. Pats ju tikrai nenaudociau jei nebutu privaloma. Siaip labai keista kad skaiciavimo algoritma kuris yra sudetingesnis nei si problema sutalpinau i 20 eil., o va sito cia ir nepadarau. hafnio variantas labai geras, tik kazkodel mano programa luzta... Jei butu imanoma naudociau savo sugalvota algoritma, bet musu destytojas labai ptksta kai atnesi baisini griozdiska algoritma :D hafnio variantas labai geras, nes jis nera ilgas, o va mano tai.... :D

 

As galvoje turejau nenaudoti gatavu klasiu tokiu kaip map, list, vector, nes destytojas iskarto kabinsis,o savo kurtas tai zinoma, kad butina naudoti.

 

Parasiau as tau algortima kuris isrenka unikalius irasus http://pastebin.com/zFA6xh26, na ir kai issirinksi kita jau baika, tada kaip sakiau begi per visas eilutes matricos kur sutinka pavadinimas spausdini ir viskas ^_^

Nuoroda į pranešimą
Dalintis kituose puslapiuose

As galvoje turejau nenaudoti gatavu klasiu tokiu kaip map, list, vector, nes destytojas iskarto kabinsis,o savo kurtas tai zinoma, kad butina naudoti.

 

Parasiau as tau algortima kuris isrenka unikalius irasus http://pastebin.com/zFA6xh26, na ir kai issirinksi kita jau baika, tada kaip sakiau begi per visas eilutes matricos kur sutinka pavadinimas spausdini ir viskas ^_^

Dekui, siaip idomus pavadinimai tavo. Pasiziuresiu ir tavo varianta jis dar trumpesnis atrodo. Tik galia kad tokiu dalyku kaip compare nezinau :/

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dekui, siaip idomus pavadinimai tavo. Pasiziuresiu ir tavo varianta jis dar trumpesnis atrodo. Tik galia kad tokiu dalyku kaip compare nezinau :/

Trumpiau cia nieko nera is tikruju, nei tam, kur as daviau, tik tiek, kad cia kaip ir viena funkcija, o pas mane vidinis ciklas iskeltas i atskira funkcija :) O veikimo principas tai galima sakyti analogiskas. Vizualiai tik atrodo, kad maziau kodo.

Redagavo hafnis1324
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nedirbu su C ar C++, bet mano variantas, gal bus naudos :lol:

 

// reading a text file
#include <algorithm>
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>
using namespace std;

int main (int argc, const char * argv[])
{
ifstream file ( "t.txt" );
string sLine, sValue;

vector<string> banks;
vector< vector<string> > data;

while ( file.good() )
{
   	getline ( file, sLine );

   	// ce laikom eilute
   	istringstream fLine( sLine );

   	// prapleciam vektoriu ( 1-a dimensija ... data[] )
   	data.push_back( vector<string>() );

   	// eilute kapojam per kableli
   	while ( getline(fLine, sValue, ',') )
   	{
   		// triminam whitespaca is kaires
   		sValue.erase( 0, sValue.find_first_not_of(' ') );
   		// stumiam duomenis i antra dim vektoriu ... data[][] = sValue
       	data.back().push_back(sValue);
   	}

}


// gimdom banks vektoriu
for (int i = 0; i < data.size(); ++i) {
	banks.push_back( data[i][1]);
}

// salinam dvinukus, trinukus ir t.t
sort( banks.begin(), banks.end() );
banks.erase( unique( banks.begin(), banks.end() ), banks.end() );

// mappinam - outputinam
for (int i = 0; i < banks.size(); ++i) {

	// bankas
	cout << '\n' << banks[i] << '\n' << '\n';

	// duomenis
	for (int j = 0; j < data.size(); ++j)
	{
		if ( banks [ i ] == data [ j ] [1] )
		{
			cout << data [ j ] [ 0 ];
			cout << ", " << data [ j ] [ 2 ];
			cout << ", " << data [ j ] [ 3 ];
			cout << '\n';
		}
	}
}

return 0;
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kitas sprendimas, gal kam ir bus naudinga ;)


#include <iostream>
#include <fstream>
#include <string>
using namespace std;

const int maxb = 15;
const int maxkl = 1000;


struct veilute
{
   string vardas, saskaita, suma;
};

struct bankai
{
   string bankas;
   veilute eil [maxkl];
   int skk;
};

bankai z[maxb];

int i, j, sk, maxk, mk;
bool nauja = 0;

string vardasp, bankas, saskaita, suma;

int main(int argc, const char * argv[])
{
   for (i = 0; i++; i < maxk) z[i].skk = 0;

   mk = 0; maxk = 1000;
   ifstream file ( "/Users/dariusb/Documents/d.txt" );

   while ( file.good() )
   {

       getline ( file, vardasp, ',');
       getline (file, bankas, ',');
       getline (file, saskaita, ',');
       getline (file, suma);

       z[0].eil[0].vardas = vardasp;
       z[0].bankas = bankas;
       z[0].eil[0].saskaita = saskaita;
       z[0].eil[0].suma = suma;

       nauja = false;
       for (j = 1; j <= mk; j++)
           {
               sk = z[j].skk;
               if (z[0].bankas == z[j].bankas)
                   {
                       z [j].eil[sk+1].vardas = z[0].eil[0].vardas;
                       z [j].eil[sk+1].saskaita = z[0].eil[0].saskaita;
                       z [j].eil[sk+1].suma = z[0].eil[0].suma;
                       z [j].skk++;
                       nauja = true;

                   };
               };

       if (!nauja)
           {
               mk++;
               z[mk].bankas = z[0].bankas;
               z[mk].skk = 1;
               z [mk].eil[1].vardas = z[0].eil[0].vardas;
               z [mk].eil[1].saskaita = z[0].eil[0].saskaita;
               z [mk].eil[1].suma = z[0].eil[0].suma;
           };



       };

   for (i = 1; i<=mk; i++)
   {
       cout << "Bankas " << z[i].bankas << "\n";
       for (j = 1; j <= z[i].skk; j++)
           {
               cout << z [i].eil[j].vardas << ", "
                    << z [i].eil[j].saskaita << ", "
                    << z [i].eil[j].suma << " \n";
           };
   };
   return 0;
}

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ą...