Skip to content

Releases

v1.0 release

Choose a tag to compare

@nojusta nojusta released this 18 Mar 20:04
b9473c2

v1.0

Diegimo instrukcija

  • Atsisiųskite projekto kodą iš GitHub naudodami git clone komandą su projekto URL:
git clone https://github.com/nojusta/LabDarbas_nr1
  • Pereikite į projekto katalogą naudodami cd komandą. Pavyzdžiui:
cd *projekto vieta kompiuteryje*
  • Sukurkite Makefile su reikiamomis taisyklėmis. Jūsų Makefile turėtų atrodyti maždaug taip (Unix OS atveju):
# Kompiliatorius
CXX = g++

# Kompiliatoriaus parametrai
CXXFLAGS = -std=c++14

# Vykdymo failo pavadinimas
TARGET = v1

# Šaltinio failai
SRCS = main.cpp functionality.cpp input.cpp calculations.cpp

# Objektų failai
OBJS = $(SRCS:.cpp=.o)

# Taisyklė programa susieti
$(TARGET): $(OBJS)
    $(CXX) $(CXXFLAGS) -o $(TARGET) $(OBJS)

# Taisyklė kompiliuoti šaltinio failus
.cpp.o:
    $(CXX) $(CXXFLAGS) -c $<  -o $@

# Taisyklė išvalyti tarpinius failus
clean:
    $(RM) $(OBJS)

# Taisyklė išvalyti viską
distclean: clean
    $(RM) $(TARGET)
  • Sukompiliuokite programą naudodami make komandą:
make

Tada gausite tokį rezultatą:

make_terminal

  • Paleiskite programą naudodami šią komandą:
./v1

Valymo instrukcija

  • Jei norite išvalyti sukompiliuotus failus, galite naudoti šias make komandas:
make clean
make distclean

Naudojimosi instrukcija

  • Paleiskite programą naudodami šią komandą:
./v1
  • Programa pateiks meniu su įvairiomis funkcijomis. Pasirinkite funkciją įvedę atitinkamą numerį ir spauskite Enter.

Menu

Programos funkcijos:

  • Nuskaito duomenis iš naudotojo arba failo ir patikrina ar jie yra teisingi (naudojant išimčių valdymą).
  • Duoda naudotojui galimybė pasirinkti du galutinio balo skaičiavimo būdus - skaičiuojant vidurkį ar medianą.
  • Leidžia pasirinkti 5 skirtingus būdus įvesti, nuskaityti ar sugeneruoti duomenis.
  • Dinamiškai paskiria atmintį pagal įvesta / nuskaitytą duomenų kiekį.
  • Atidaro testavimo failus ir apskaičiuoja laiką, kurį praleidžia apdorojant duomenis iš failų.
  • Visi pranešimai išvedami lietuvių kalbą.
  • Projektas išskaidytas į kelis failus (.h ir .cpp).
  • Generuoja penkis atsitiktinius studentų sąrašų failus, sudarytus iš: 1 000, 10 000, 100 000, 1 000 000, 10 000 000 įrašų
  • Atlieka tyrimus / testavimus su sugeneruotais failais.
  • Surūšiuoja studentus ir išveda į du naujus failus.
  • Yra 3 skirtingi konteinerio tipo pasirinkimai testavimui - vector, deque, list.
  • Yra 3 skirtingos strategijos duomenų skirstymui.
  • Norėdami baigti darbą su programa, pasirinkite atitinkamą skaičių.

Konteinerių testavimas

Testavimo sistemos parametrai:

  • Saugykla: 256 GB, Integruota NVMe SSD
  • Atmintis: 8 GB RAM
  • Procesorius: Apple M1

1 strategija

Naudojant Vector tipo konteinerius:

Failo dydis Skaitymo laikas Rūšiavimo laikas Skirstymo laikas Veikimo laikas
1 000 0.023s 0.004s 0.005s 0.033s
10 000 0.113s 0.018s 0.023s 0.155s
100 000 0.763s 0.188s 0.237s 1.189s
1 000 000 7.448s 2.105s 2.673s 12.227s
10 000 000 74.810s 24.911s 31.783s 131.505s
peržiūrėti

Vector_1

Naudojant Deque tipo konteinerius:

Failo dydis Skaitymo laikas Rūšiavimo laikas Skirstymo laikas Veikimo laikas
1 000 0.023s 0.004s 0.005s 0.034s
10 000 0.093s 0.019s 0.023s 0.136s
100 000 0.766s 0.193s 0.239s 1.198s
1 000 000 7.312s 2.160s 2.638s 12.111s
10 000 000 73.857s 25.580s 30.620s 130.058s
peržiūrėti

Deque_1

Naudojant List tipo konteinerius:

Failo dydis Skaitymo laikas Rūšiavimo laikas Skirstymo laikas Veikimo laikas
1 000 0.023s 0.003s 0.004s 0.031s
10 000 0.112s 0.018s 0.023s 0.154s
100 000 0.761s 0.247s 0.296s 1.305s
1 000 000 7.352s 3.322s 3.818s 14.493s
10 000 000 73.862s 42.406s 47.849s 164.118s
peržiūrėti

List_1

2 strategija

Naudojant Vector tipo konteinerius:

Failo dydis Skaitymo laikas Rūšiavimo laikas Skirstymo laikas Veikimo laikas
1 000 0.024s 0.004s 0.035s 0.064s
10 000 0.112s 0.018s 1.879s 2.010s
100 000 0.762s 0.184s 184.637s 184.637s
peržiūrėti

Vector_2

  • Rezultatų su 1 000 000 ir 10 000 000 nėra, nes per ilgai trunka skaičiavimai (>10min).

Naudojant Deque tipo konteinerius:

Failo dydis Skaitymo laikas Rūšiavimo laikas Skirstymo laikas Veikimo laikas
1 000 0.021s 0.004s 0.006s 0.032s
10 000 0.114s 0.019s 0.025s 0.158s
100 000 0.765s 0.192s 0.252s 1.210s
1 000 000 7.337s 2.128s 2.772s 12.238s
peržiūrėti

Deque_2

  • Rezultatų su 10 000 000 nėra, nes per ilgai trunka skaičiavimai (>10min).

Naudojant List tipo konteinerius:

Failo dydis Skaitymo laikas Rūšiavimo laikas Skirstymo laikas Veikimo laikas
1 000 0.023s 0.003s 0.001s 0.028s
10 000 0.113s 0.018s 0.005s 0.137s
100 000 0.761s 0.239s 0.061s 1.062s
1 000 000 7.433s 3.324s 0.668s 11.344s
10 000 000 72.891s 42.406s 8.586s 123.646s
peržiūrėti

List_2

3 strategija

Naudojant Vector tipo konteinerius:

Failo dydis Skaitymo laikas Rūšiavimo laikas Skirstymo laikas Veikimo laikas
1 000 0.023s 0.004s 0.001s 0.033s
10 000 0.112s 0.019s 0.005s 0.155s
100 000 0.758s 0.191s 0.051s 1.189s
1 000 000 7.303s 2.263s 0.622s 12.227s
10 000 000 73.373s 24.204s 8.597s 131.505s
peržiūrėti

Vector_3

Išvados

Remiantis atliktų testų rezultatais, galime padaryti keletą išvadų:

  1. Vector tipo konteineriai: Vector tipo konteineriai parodė geriausius rezultatus su mažesniais failais. Tačiau, kai studentų kiekis padidėjo iki 1 000 000 ir 10 000 000, Vector tipo konteinerių veikimo laikas žymiai padidėjo, naudojant antrąją strategiją, kuri yra neefektyvi su šiuo konteineriu tipu. Pirmoji ir trečioji strategija parodė greičiausius rezultatus.

  2. Deque tipo konteineriai: Deque tipo konteineriai parodė panašius rezultatus kaip ir Vector tipo konteineriai. Tačiau, jie buvo šiek tiek greitesni su didesniais failų dydžiais. Kaip ir su vektoriais, antroji strategija buvo neefektyvi.

  3. List tipo konteineriai: List tipo konteineriai parodė geriausius rezultatus su didesniais failų dydžiais. Jie buvo ypač efektyvūs naudojant antrąją strategiją.

Bendra išvada yra, kad konteinerio tipo ir strategijos pasirinkimas gali turėti didelę įtaką programos veikimo laikui, ypač dirbant su didelėmis duomenų apimtimis.

Senesnių versijų aprašymai

  • v.pradinė: Pradinė versija. Nuskaito vartotojo įvestį, patikrina ją, leidžia vartotojui pasirinkti tarp dviejų galutinio balo skaičiavimo būdų (vidurkis ar mediana), ir išveda duomenis ekrane.

  • v0.1: Prideda galimy...

Read more

v1.0_pradine

Choose a tag to compare

@nojusta nojusta released this 17 Mar 19:44
7c451fd

v1.0_pradinė

Laboratinio darbo nr. 1 v1.0_pradinė versija

  1. Nuskaito duomenis iš naudotojo arba failo ir patikrina ar jie yra teisingi (naudojant išimčių valdymą).
  2. Duoda naudotojui galimybė pasirinkti du galutinio balo skaičiavimo būdus - skaičiuojant vidurkį ar medianą.
  3. Leidžia pasirinkti 5 skirtingus būdus įvesti, nuskaityti ar sugeneruoti duomenis.
  4. Dinamiškai paskiria atmintį pagal įvesta / nuskaitytą duomenų kiekį.
  5. Atidaro testavimo failus ir apskaičiuoja laiką, kurį praleidžia apdorojant duomenis iš failų.
  6. Visi pranešimai išvedami lietuvių kalbą.
  7. Projektas išskaidytas į kelis failus (.h ir .cpp).
  8. Generuoja penkis atsitiktinius studentų sąrašų failus, sudarytus iš: 1 000, 10 000, 100 000, 1 000 000, 10 000 000 įrašų
  9. Atlieka tyrimus / testavimus su sugeneruotais failais.
  10. Surūšiuoja studentus ir išveda į du naujus failus.
  11. Yra 3 skirtingi konteinerio tipo pasirinkimai testavimui - vector, deque, list.

Konteinerių testavimas

Naudojant Vector tipo konteinerius:

Failo dydis Skaitymo laikas Rūšiavimo laikas Skirstymo laikas Veikimo laikas
1 000 0.023s 0.004s 0.005s 0.033s
10 000 0.113s 0.018s 0.023s 0.155s
100 000 0.763s 0.188s 0.237s 1.189s
1 000 000 7.448s 2.105s 2.673s 12.227s
10 000 000 74.810s 24.911s 31.783s 131.505s

Vector_pradine

Naudojant Deque tipo konteinerius:

Failo dydis Skaitymo laikas Rūšiavimo laikas Skirstymo laikas Veikimo laikas
1 000 0.023s 0.004s 0.005s 0.034s
10 000 0.093s 0.019s 0.023s 0.136s
100 000 0.766s 0.193s 0.239s 1.198s
1 000 000 7.312s 2.160s 2.638s 12.111s
10 000 000 73.857s 25.580s 30.620s 130.058s

Deque_pradine

Naudojant List tipo konteinerius:

Failo dydis Skaitymo laikas Rūšiavimo laikas Skirstymo laikas Veikimo laikas
1 000 0.023s 0.003s 0.004s 0.031s
10 000 0.112s 0.018s 0.023s 0.154s
100 000 0.761s 0.247s 0.296s 1.305s
1 000 000 7.352s 3.322s 3.818s 14.493s
10 000 000 73.862s 42.406s 47.849s 164.118s

List_pradine

v0.4

v0.4 Pre-release
Pre-release

Choose a tag to compare

@nojusta nojusta released this 05 Mar 21:01
879c3b5

v0.4

Laboratinio darbo nr. 1 v.0.4 versija

  1. Nuskaito duomenis iš naudotojo arba failo ir patikrina ar jie yra teisingi (naudojant išimčių valdymą).
  2. Duoda naudotojui galimybė pasirinkti du galutinio balo skaičiavimo būdus - skaičiuojant vidurkį ar medianą.
  3. Leidžia pasirinkti 5 skirtingus būdus įvesti, nuskaityti ar sugeneruoti duomenis.
  4. Dinamiškai paskiria atmintį pagal įvesta / nuskaitytą duomenų kiekį.
  5. Atidaro testavimo failus ir apskaičiuoja laiką, kurį praleidžia apdorojant duomenis iš failų.
  6. Visi pranešimai išvedami lietuvių kalbą.
  7. Projektas išskaidytas į kelis failus (.h ir .cpp).
  8. Generuoja penkis atsitiktinius studentų sąrašų failus, sudarytus iš: 1 000, 10 000, 100 000, 1 000 000, 10 000 000 įrašų
  9. Atlieka tyrimus / testavimus su sugeneruotais failais.
  10. Surūšiuoja studentus ir išvesda į du naujus failus.

Tyrimo rezultatai

Failo dydis Skaitymo laikas Rūšiavimo laikas Išvedimo laikas
1 000 0.002s 0.001s 0.001s
10 000 0.085s 0.024s 0.019s
100 000 0.837s 0.243s 0.195s
1 000 000 8.395s 2.657s 1.940s
10 000 000 86.659s 33.528s 20.298s

v0.3

v0.3 Pre-release
Pre-release

Choose a tag to compare

@nojusta nojusta released this 27 Feb 10:12
35609fb

v0.3

Laboratinio darbo nr. 1 v.0.3 versija

  1. Nuskaito duomenis iš naudotojo arba failo ir patikrina ar jie yra teisingi (naudojant išimčių valdymą).
  2. Duoda naudotojui galimybė pasirinkti du galutinio balo skaičiavimo būdus - skaičiuojant vidurkį ar medianą.
  3. Leidžia pasirinkti 5 skirtingus būdus įvesti, nuskaityti ar sugeneruoti duomenis.
  4. Dinamiškai paskiria atmintį pagal įvesta / nuskaitytą duomenų kiekį.
  5. Atidaro testavimo failus ir apskaičiuoja laiką, kurį praleidžia apdorojant duomenis iš failų.
  6. Visi pranešimai išvedami lietuvių kalbą.
  7. Projektas išskaidytas į kelis failus (.h ir .cpp).
  8. Išveda duomenys pasirinktinai į ekraną arba į failą.

v0.2

v0.2 Pre-release
Pre-release

Choose a tag to compare

@nojusta nojusta released this 25 Feb 14:47
0bd4702

v0.2

Laboratinio darbo nr. 1 v.0.2 versija

  1. Nuskaito duomenis iš naudotojo arba failo ir patikrina ar jie yra teisingi
  2. Duoda naudotojui galimybė pasirinkti du galutinio balo skaičiavimo būdus - skaičiuojant vidurkį ar medianą.
  3. Leidžia pasirinkti 5 skirtingus būdus įvesti, nuskaityti ar sugeneruoti duomenis.
  4. Dinamiškai paskiria atmintį pagal įvesta / nuskaitytą duomenų kiekį.
  5. Atidaro testavimo failus ir apskaičiuoja laiką, kurį praleidžia apdorojant duomenis iš failų.
  6. Išveda duomenys pasirinktinai į ekraną arba į failą.

v.pradinė

v.pradinė Pre-release
Pre-release

Choose a tag to compare

@nojusta nojusta released this 14 Feb 07:19
8a9259d

v.pradinė

Laboratinio darbo nr. 1 v.pradinė versija

  1. Nuskaito duomenis iš naudotojo ir patikrina ar jie yra teisingi
  2. Duoda naudotojui galimybė pasirinkti du galutinio balo skaičiavimo būdus - skaičiuojant vidurkį ar medianą.
  3. Išveda duomenys į ekraną

v0.1

v0.1 Pre-release
Pre-release

Choose a tag to compare

@nojusta nojusta released this 14 Feb 15:37
b1a6cbc

v0.1

Laboratinio darbo nr. 1 v.0.1 versija

  1. Nuskaito duomenis iš naudotojo ir patikrina ar jie yra teisingi
  2. Duoda naudotojui galimybė pasirinkti du galutinio balo skaičiavimo būdus - skaičiuojant vidurkį ar medianą.
  3. Leidžia pasirinkti 4 skirtingus būdus įvesti ar sugeneruoti duomenis / užbaigti programą.
  4. Dinamiškai paskiria atmintį pagal įvesta duomenų kiekį.
  5. Išveda duomenys į ekraną