Pereiti prie turinio

Rekomenduojami pranešimai

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

int main()
{
   int n, m,suma; //kintamieji
   suma=0;
   ifstream viesbuciai;
   viesbuciai.open("viesbuciai1.txt");
   viesbuciai>>n;//irasomas eiluciu skaicius(kiek bus vertinama viesbuciu)
   viesbuciai>>m;//irasomas stulpeliu skaicius(ivertinimu skaicius)
   m+=1;
   int masyvas[n][m];//dvimatis masyvas 5stulpeliai po 6 eilutes
   for(int i=0; i<n; i++)
   {
       for(int j=0; j<m;j++)
       {
           viesbuciai>>masyvas[i][j];//irasomi duomenys
       }
   }

   for(int i=0; i<n;i++)//isvedami turimi duomenys i ekrana
   {
       for(int j=0; j<m;j++)
       {
           cout<<masyvas[i][j]<<" ";
       }
       cout<<endl;
   }

   int ivertinimai[n];//sukuriamas naujas masyvas kuriame bus laikomi galutiniai ivertinamai bus atliktas rusiavimas

   cout<<endl;

   for(int i=0;i<n;i++)//sudedame visus ivertinimus
   {
       suma=0;
       int didziausias=masyvas[0][0];//min ir max reiksmes paieska
       int maziausias=masyvas[0][0];
       for(int j=1; j<m;j++)//pirmas skaiciuos bus [0;1] nes [x;0] yra viesbucio kodai
       {


           if(masyvas[i][j]<maziausias)//cia klaida maziausias isvedamas visada kaip 2
           {
               maziausias=masyvas[i][j];
           }


           if(masyvas[i][j]>didziausias)//veikia gerai
           {
               didziausias=masyvas[i][j];
           }


           suma+=masyvas[i][j];
           ivertinimai[i]=suma-didziausias;//kol kas is sumos atemame tik diziausiaji skaiciu



       }


           cout<<"Max:"<<didziausias<<" ";
           cout<<"Min:"<<maziausias<<" ";

           cout<<"Suma "<<suma-didziausias<<" ";
           cout<<endl;

   }

   cout<<endl;

     for(int j=0; j<n;j++)
     {
     cout<<"Viesbucio Kodas "<<masyvas[j][0]<<"  "<<"Ivertinimas "<<ivertinimai[j]<<endl;//kiek payvko atlikti


   }


}


5 6
2 2 5 6 6 5 2
1 5 8 8 7 7 7
4 4 5 5 7 7 6
3 5 5 5 5 3 2
3 7 8 8 7 7 6

 

2 2 5 6 6 5 2
1 5 8 8 7 7 7
4 4 5 5 7 7 6
3 5 5 5 5 3 2
3 7 8 8 7 7 6

Max:6 Min:2 Suma 20
Max:8 Min:2 Suma 34
Max:7 Min:2 Suma 27
Max:5 Min:2 Suma 20
Max:8 Min:2 Suma 35

Viesbucio Kodas 2  Ivertinimas 20
Viesbucio Kodas 1  Ivertinimas 34
Viesbucio Kodas 4  Ivertinimas 27
Viesbucio Kodas 3  Ivertinimas 20
Viesbucio Kodas 3  Ivertinimas 35

Kažkodėl, tai vos pakeitus nelygybės ženklą, kad rastų mažiausią skaičių masyve atkartoja tą patį dvejetą nors yra neteisinga, o ieškant didesnio viskas viekia.

Dar noriu paklausti, kaip naudojama void funkcija failo atidarymui ir kokie turi buti parametrai? Ar void funkcija tik jau atidaryto failo duomenu nuskaitymui ?

Redagavo haomao
Nuoroda į pranešimą
Dalintis kituose puslapiuose

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

int main()
{
   int n, m,suma; //kintamieji
   suma=0;
   ifstream viesbuciai;
   viesbuciai.open("viesbuciai1.txt");
   viesbuciai>>n;//irasomas eiluciu skaicius(kiek bus vertinama viesbuciu)
   viesbuciai>>m;//irasomas stulpeliu skaicius(ivertinimu skaicius)
   m+=1;
   int masyvas[n][m];//dvimatis masyvas 5stulpeliai po 6 eilutes
   for(int i=0; i<n; i++)
   {
       for(int j=0; j<m;j++)
       {
           viesbuciai>>masyvas[i][j];//irasomi duomenys
       }
   }

   for(int i=0; i<n;i++)//isvedami turimi duomenys i ekrana
   {
       for(int j=0; j<m;j++)
       {
           cout<<masyvas[i][j]<<" ";
       }
       cout<<endl;
   }

   int ivertinimai[n];//sukuriamas naujas masyvas kuriame bus laikomi galutiniai ivertinamai bus atliktas rusiavimas

   cout<<endl;

   for(int i=0;i<n;i++)//sudedame visus ivertinimus
   {
       suma=0;
       int didziausias=masyvas[0][0];//min ir max reiksmes paieska
       int maziausias=masyvas[0][0];
       for(int j=1; j<m;j++)//pirmas skaiciuos bus [0;1] nes [x;0] yra viesbucio kodai
       {


           if(masyvas[i][j]<maziausias)//cia klaida maziausias isvedamas visada kaip 2
           {
               maziausias=masyvas[i][j];
           }


           if(masyvas[i][j]>didziausias)//veikia gerai
           {
               didziausias=masyvas[i][j];
           }


           suma+=masyvas[i][j];
           ivertinimai[i]=suma-didziausias;//kol kas is sumos atemame tik diziausiaji skaiciu



       }


           cout<<"Max:"<<didziausias<<" ";
           cout<<"Min:"<<maziausias<<" ";

           cout<<"Suma "<<suma-didziausias<<" ";
           cout<<endl;

   }

   cout<<endl;

     for(int j=0; j<n;j++)
     {
     cout<<"Viesbucio Kodas "<<masyvas[j][0]<<"  "<<"Ivertinimas "<<ivertinimai[j]<<endl;//kiek payvko atlikti


   }


}


5 6
2 2 5 6 6 5 2
1 5 8 8 7 7 7
4 4 5 5 7 7 6
3 5 5 5 5 3 2
3 7 8 8 7 7 6

 

2 2 5 6 6 5 2
1 5 8 8 7 7 7
4 4 5 5 7 7 6
3 5 5 5 5 3 2
3 7 8 8 7 7 6

Max:6 Min:2 Suma 20
Max:8 Min:2 Suma 34
Max:7 Min:2 Suma 27
Max:5 Min:2 Suma 20
Max:8 Min:2 Suma 35

Viesbucio Kodas 2  Ivertinimas 20
Viesbucio Kodas 1  Ivertinimas 34
Viesbucio Kodas 4  Ivertinimas 27
Viesbucio Kodas 3  Ivertinimas 20
Viesbucio Kodas 3  Ivertinimas 35

Kažkodėl, tai vos pakeitus nelygybės ženklą, kad rastų mažiausią skaičių masyve atkartoja tą patį dvejetą nors yra neteisinga, o ieškant didesnio viskas viekia.

Dar noriu paklausti, kaip naudojama void funkcija failo atidarymui ir kokie turi buti parametrai? Ar void funkcija tik jau atidaryto failo duomenu nuskaitymui ?

Nes tokiu budu int maziausias=masyvas[0][0]; tu pasiimi pirmaji elementa is masyvo, kuris yra 2 ir po to bandai ieskoti skaiciaus, kuris yra mazesnis uz 2. Pabandyk maziausias=99; O toliau tai nelabai supratau ka tu nori paklaust.

Redagavo mAnaXi
Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 3 savaičių...

Atsiskaitymuose būna ribojamos galimybės ir nurodoma ką galima naudot, o ko ne. :)

#include <iostream>

#include <fstream>

using namespace std;

 

Tai čia gaunasi, kad gali naudoti kažką iš std, bet kai ko iš std naudoti jau nebegali? Na iš dalies kažkiek keista. :) Kaip tik, sakyčiau, reikėtų leisti naudoti kuo paprastesnius interfeisus problemų sprendimams realizuoti. Dar galiu suprasti draudimą naudoti kažką iš <algorithm> (nes ten jau surikiavimas sueina, o iš IT mokinuko kaip ir norėtųsi pamatyti, kaip jis mąsto apie rikiavimą, kaip jis pats tai implementuoja).

 

Tad kas keistai atrodo, tai tas, jog gali neleisti naudoti std::vector, kas yra abstrakcija visiems tiems plain masyvams. Ar tikrai mokinukui reikia žinoti apie masyvus, jų internal'us ir visa kita? Nemanau. Na jeigu tokie ribojimai yra, tai pas mus dirba totalūs "darmaėdai". :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

#include <iostream>

#include <fstream>

using namespace std;

 

Tai čia gaunasi, kad gali naudoti kažką iš std, bet kai ko iš std naudoti jau nebegali? Na iš dalies kažkiek keista. :) Kaip tik, sakyčiau, reikėtų leisti naudoti kuo paprastesnius interfeisus problemų sprendimams realizuoti. Dar galiu suprasti draudimą naudoti kažką iš <algorithm> (nes ten jau surikiavimas sueina, o iš IT mokinuko kaip ir norėtųsi pamatyti, kaip jis mąsto apie rikiavimą, kaip jis pats tai implementuoja).

 

Tad kas keistai atrodo, tai tas, jog gali neleisti naudoti std::vector, kas yra abstrakcija visiems tiems plain masyvams. Ar tikrai mokinukui reikia žinoti apie masyvus, jų internal'us ir visa kita? Nemanau. Na jeigu tokie ribojimai yra, tai pas mus dirba totalūs "darmaėdai". :)

 

Tokia jau ta švietimo sistema. Šiaip gal ir gerai, išmoksti kas ir su kuo valgoma ir kaip daroma. O realiam darbui jau žiūri kas patogiau ir paprasčiau. :D

Nuoroda į pranešimą
Dalintis kituose puslapiuose

O kodėl jūs nenorite naudoti tiesiog std::vector? Juk paprasčiau būtų.

Tai kad šiuo atveju std::vector beveik jokios naudos nesuteikia. Šiam uždaviniui spręsti dinaminio dydžio masyvai visiškai nereikalingi, kas būtent ir yra vektorius. Žinoma, std::vector turi visokių metodų ir konstruktorių bei size(), bet ir be jų kodas normaliai atrodo.

Redagavo wi_lius
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai kad šiuo atveju std::vector beveik jokios naudos nesuteikia. Šiam uždaviniui spręsti dinaminio dydžio masyvai visiškai nereikalingi, kas būtent ir yra vektorius. Žinoma, std::vector turi visokių metodų ir konstruktorių bei size(), bet ir be jų kodas normaliai atrodo.

Šiuo konkrečiu atveju tas vektorius naudos turėtų minimalios arba greičiau jokios. Bet jeigu kalbant apie uždavinių klasę, skiriamą abiturientams, tai vektorių naudojimas leistų duoti sudėtingesnius uždavinius, kuriuose input'o dimensijos žinomos nebūtinai iš anksto. Kitaip sakant, galima tada kalbėti daugiau ne apie pačią technologiją, o apie programavimą kaip mąstymo procesą, kas, manau, ir turėtų būti labiau akcentuojama mokyklose ir netgi didesne dalimi universitete. Technologinius aspektus visada spės išnagrinėti programuotojas darbe, o iki to geriau jau išlavinti teisingą ir kryptingą mąstymą, kas ir yra efektyvaus programavimo pagrindas. Kai moki mąstyti teisingai, gali programuoti absoliučiai bet kuo, o naujus dalykus išmokti itin greitai (dėl šios priežasties programavimas - puikus pavyzdys, kaip "mokymasis visą gyvenimą" realizuojamas praktiškai).

 

Tiesiog, kas kvailai atrodo egzamininiuose uždaviniuose, tai visada nurodomos tikslios input'o dimensijos. Sakyčiau, tai yra perteklinis dalykas, netgi trukdantis geriau įsigilinti į programavimą. O pačiam nuostaba kilo, nes pats egzaminą laikiau gan seniai, tad maniau, jog tas kažkiek pasikeitė. O, pasirodo, nė trupučio, pažiūrėjus į VBE IT uždavinius. :D

 

O toliau paskaitai egzamino reikalavimus ir tenka giliai nuliųsti: http://www.nec.lt/failai/5817_IT_BE_programa_patvirtinta_2016_m_sausio_7_d..pdf

 

Iš vienos pusės, kaip ir yra sudėtingesnių dalykų. Pavyzdžiui, rikiavimas. Bet ar abiturientą tikrai reikėtų versti mokėti rikiuoti duomenis? Juk jis tikrai nesupras, kad elementų palyginimu paremtas rikiavimo algoritmas geriausiu atveju duomenis surikiuos O(N*log(N)) asimptotiškai. Šiuo atveju visgi, manau, reikėtų leisti naudoti <algorithm> lib'ą (kas praktiškai itin dažnai taikoma, beje), o ne liepti išradinėti savo rikiavimo algoritmą, kuris greičiausiai nebus efektyvesnis nei O(N^2). Čia skamba panašiai kaip tikimybių teorijos kišimas į matematikos egzaminą. Mokytojai turi problemų tai išaiškinti, nes patys jie to nelabai supranta iki galo, o abiturientai tiesiog bukai taiko iškaltas atmintinai formules, kas nė kiek neparodo abituriento potencialo. Net mano buvusi matematikos mokytoja, kuri paruošė ne vieną ir ne du olimpiadų laimėtojus, tarp kurių ir pats buvau, sakė, kad nesupranta tikimybių teorijos ir nemato reikalo to dėti į egzaminą.

 

Sutinku, kad VBE tikslas - patikrinti, ką abiturientas naudingo nuveikė per 12 metų. Bet rikiavimo algoritmo išradinėjimu per IT egzaminą, tikimybių teorija per matematikos egzaminą to tikrai nepatikrinsi. O patikrinti galima kiek paprasčiau - duoti sudėtingesnius žodinius uždavinius ir stebėti, kaip abiturientas tai sugeba konvertuoti tokį uždavinį į tai, ką jis mokėsi mokykloje.

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