* Egzamino užduotis rasite čia.

Teorinės dalies galimus atsakymus pateikė Kauno KTU gimnazijos informacinių technologijų mokytoja Kristina Serapinaitė.

Norime akcentuoti, kad tai yra tik preliminarūs atsakymai, oficialius vertinimus pateiks vertintojai, kuomet vertins kandidatų atsakymų lapus.

ATSAKYMAI

I DALIS. Saugus ir teisėtas informacijos ir interneto naudojimas

Maksimalus vertinimas – 10 taškų

1. Dauguma šiuo metu internete paslaugas teikiančių svetainių naudoja slapukus (angl. cookies). Kas yra slapukas?

C Duomenų rinkinys, kurį sukuria svetainė ir įrašo į lankytojo įrenginį

2. Kuri iš pateiktų priemonių padeda neprarasti duomenų dėl aparatinės įrangos gedimų?

D Atsarginės kopijos

3. Pastaruoju metu ypač populiaru prekes ir paslaugas užsisakyti internetu. Patvirtinant užsakymą ir atsiskaitant, patogu naudoti elektroninį parašą. Nurodykite dar vieną tikslą, kuriuo naudojamas elektroninis parašas.

Elektroninių dokumentų pasirašymui

4. Kaip vadinami nepageidaujami elektroniniai laiškai, kurie paprastai siunčiami daugeliui adresatų ir neturi nieko bendra su gavėjo interesais arba naujienų grupės tematika?

Brukalas (šlamštas, spam)

5. Vienas iš saugaus elgesio internete patarimų – viešai skelbiamą savo elektroninio pašto adresą užrašyti žodžiais (pvz.: jonas eta gmail taškas com, jonas+eta+gmail+taškas+com, jonasgmail.com ar kt.) arba pateikti paveikslu.

Paaiškinkite, kodėl taip pateikta informacija gali padėti apsaugoti vartotojo duomenis.

Tam, kad pašto šiukšlintojų robotai negalėtų automatiškai atpažinti elektroninio adreso.

6. Jolita iš interneto atsisiuntė kompiuterių programą. Šios programos licencijos taisyklėse nurodyta, kad ja bus galima nemokamai naudotis vieną mėnesį. Po to nemokamas naudojimasis programa baigsis ir, norint jį pratęsti, reikės įsigyti programos licenciją.

6.1. Nurodykite dar vieną ribojimą, kuris gali būti pateikiamas tokios rūšies kompiuterių programinės įrangos licencijoje.

6.2. Kaip vadinama tokios rūšies kompiuterių programinė įranga?

6.1 paleidimų skaičius

6.2 laikinai nemokama

7. Socialinio tinklo paslaugas teikianti interneto svetainė tam tikrais atvejais gali pašalinti naudotojo publikuotą turinį, pavyzdžiui, komentarą. Nurodykite du tokius atvejus.

7.1. Grasinantis susidorojimu ar kurstantys neapykantą

7.2. Jei komentaras pažeidžia tos svetainės turinio politiką

8. Kaip vadinama paveiksle pateikta informacija apie kiškį?

 

Asmens duomenys

IV DALIS. Programavimo praktinės užduotys 

Programavimo užduotis išsprendė Panevėžio J.Balčikonio gimnazijos informacinių technologijų mokytoja Renata Burbaitė. Mokytoja akcentuoja, jog galimi keli sprendimo variantai. Antrai užduočiai ji pateikia du galimus sprendimo variantus. Šių metų užduotys jai pasirodė dėkingos tuo, kad suteikia daugiau pasirinkimo laisvės jas sprendžiant.

Pirma užduotis. Bėgimas

//Bėgimas

#include

#include

#include

#include

 

using namespace std;

 

const char CD[] = "U1.txt";

const char CR[] = "U1rez.txt";

//-------------------------------------------------------------------------

struct Diena {

    int diena;

    int laikas;

};

//-------------------------------------------------------------------------

bool TikrintiLaika(int pradzia_valanda, int pradzia_minute, int pabaiga_valanda, int pabaiga_minute);

int SkaiciuotiLaika(int pradzia_valanda, int pradzia_minute, int pabaiga_valanda, int pabaiga_minute);

void Skaityti(Diena D[], int & d);

int MaziausiasLaikas(Diena D[], int d);

void Rasyti(Diena D[], int d, int maziausias_laikas);

//-------------------------------------------------------------------------

int main(){

    Diena D[50]; int d;

 

    Skaityti(D, d);

    int maziausias_laikas = MaziausiasLaikas(D, d);

    Rasyti(D, d, maziausias_laikas);

 

   return 0;

}

//-------------------------------------------------------------------------

bool TikrintiLaika (int pradzia_valanda, int pradzia_minute, int pabaiga_valanda, int pabaiga_minute){

 

    return (pradzia_valanda != 0 || pradzia_minute != 0 || pabaiga_valanda != 0 || pabaiga_minute != 0);

}

//-------------------------------------------------------------------------

int SkaiciuotiLaika(int pradzia_valanda, int pradzia_minute, int pabaiga_valanda, int pabaiga_minute){

 

    return (pabaiga_valanda * 60 + pabaiga_minute - pradzia_valanda * 60 - pradzia_minute);

}

//-------------------------------------------------------------------------

//Į struktūrų masyvą bus dedami tik tinkami įrašai, t.y. kai bėgo rytą ir vakare

//-------------------------------------------------------------------------

void Skaityti(Diena D[], int & d){

 

    ifstream fd(CD);

 

    d = 0; //Pradinė reikšmė

    int n; //Iš viso įrašų faile

    int diena; //Dienos numeris

    int rytas_pr_val, rytas_pr_min, rytas_pb_val, rytas_pb_min, vakaras_pr_val, vakaras_pr_min, vakaras_pb_val, vakaras_pb_min;

 

    fd >> n;

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

        fd >> diena >> rytas_pr_val >> rytas_pr_min >> rytas_pb_val >> rytas_pb_min

           >> vakaras_pr_val >> vakaras_pr_min >> vakaras_pb_val >> vakaras_pb_min;

        if (TikrintiLaika(rytas_pr_val, rytas_pr_min, rytas_pb_val, rytas_pb_min)

            && TikrintiLaika(vakaras_pr_val, vakaras_pr_min, vakaras_pb_val, vakaras_pb_min))

                {

                    D[d].diena = diena;

                    D[d].laikas = SkaiciuotiLaika(rytas_pr_val, rytas_pr_min, rytas_pb_val, rytas_pb_min)

                                  + SkaiciuotiLaika(vakaras_pr_val, vakaras_pr_min, vakaras_pb_val, vakaras_pb_min);

                    d++; //Paruošiama vieta naujam struktūrų masyvo elementui

                }

    }

    fd.close();

}

//-------------------------------------------------------------------------

int MaziausiasLaikas(Diena D[], int d){

    int maziausio_vieta = 0;

    for (int i = 0; i < d; i++)

        if (D[i].laikas < D[maziausio_vieta].laikas) maziausio_vieta = i;

    return maziausio_vieta;

}

//-------------------------------------------------------------------------

void Rasyti(Diena D[], int d, int maziausias_laikas){

    ofstream fr(CR);

    fr << "Minimalus laikas" << endl;

    fr << D[maziausias_laikas].laikas << endl;

    fr << "Dienos" << endl;

    for (int i = 0; i < d; i++)

        if (D[i].laikas == D[maziausias_laikas].laikas) fr << D[i].diena << " ";

    fr << endl;

    fr.close();

}

Antra užduotis. Apklausa

I būdas

//Apklausa

#include

#include

#include

#include

 

using namespace std;

 

const char CD[] = "U2.txt";

const char CR[] = "U2rez.txt";

//------------------------------------------------------------------------------------------------

struct Mokinys {

    string vardas;

};

 

struct Dalykas {

    string pavadinimas;

    Mokinys M[100];

    int kiek_mokiniu;

};

//-------------------------------------------------------------------------

void RastiDalyka(Dalykas D[], int d, string dalyko_pavadinimas, bool & yra, int & kelintas);

void Skaityti(Dalykas D[], int & d);

double Vidurkis(int P[], int p);

void Rikiuoti(Dalykas D[], int d);

void Rasyti(Dalykas D[], int d);

//-------------------------------------------------------------------------

int main(){

    Dalykas D[100]; int d;

    Skaityti(D, d);

    Rikiuoti(D, d);

    Rasyti(D, d);

 

   return 0;

}

//-------------------------------------------------------------------------

void RastiDalyka(Dalykas D[], int d, string dalyko_pavadinimas, bool & yra, int & kelintas) {

    yra = false; kelintas = -1;

    for (int i = 0; i < d; i++)

    if (D[i].pavadinimas == dalyko_pavadinimas){

        yra = true;

        kelintas = i;

        break;

    }

}

//-------------------------------------------------------------------------

void Skaityti(Dalykas D[], int & d){

    ifstream fd(CD);

 

    d = 0; //Apibrëþiama pradinë reikðmë

 

    int m; //Apklaustų mokinių skaičius faile

    string vardas, dalyko_pavadinimas;

    int p; //Pažymių skaičius

    int P[100]; //Pažymių masyvas, nenurodyta kiek pažymių, tai remdamiesi logika pasirenkam patys masyvo dydį

 

    fd >> m;

    //Iš pradžių apibrėžam pradinius dalyką pasirinkusių mokinių kiekius

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

        D[i].kiek_mokiniu = 0;

    }

    for (int i = 1; i <= m; i++){

        fd >> vardas >> dalyko_pavadinimas >> p;

 

        for (int j = 0; j < p; j++){

            fd >> P[j];

        }

        if (Vidurkis(P, p) >= 9){

            bool yra; int kelintas;

            RastiDalyka(D, d, dalyko_pavadinimas, yra, kelintas);

            if (yra){

                int mokinio_vieta = D[kelintas].kiek_mokiniu;

                D[kelintas].M[mokinio_vieta].vardas = vardas;

                D[kelintas].kiek_mokiniu++;

            }

            else {

                D[d].pavadinimas = dalyko_pavadinimas;

                int mokinio_vieta = D[d].kiek_mokiniu;

                D[d].M[mokinio_vieta].vardas = vardas;

                D[d].kiek_mokiniu++;

                d++;

        }

    }

}

fd.close();

}

//-------------------------------------------------------------------------

double Vidurkis(int P[], int p){

    int suma = 0;

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

        suma += P[i];

    }

    return (double) suma / p;

}

//-------------------------------------------------------------------------

void Rikiuoti(Dalykas D[], int d){

    int m;

    for (int i = 0; i < d - 1; i++){

        m = i;

        for (int j = i + 1; j < d; j++){

            if ((D[j].kiek_mokiniu > D[m].kiek_mokiniu) ||

                ((D[j].kiek_mokiniu == D[m].kiek_mokiniu) && (D[j].pavadinimas < D[m].pavadinimas))) m = j;

        }

    swap(D[i], D[m]);

    }

}

//-------------------------------------------------------------------------

void Rasyti(Dalykas D[], int d){

    ofstream fr(CR);

    if (d == 0) fr << "Neatitinka vidurkis" << endl;

    else {

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

            fr << D[i].pavadinimas << " " << D[i].kiek_mokiniu << endl;

            for (int j = 0; j < D[i].kiek_mokiniu; j++){

                fr << D[i].M[j].vardas << endl;

            }

        }

    }

    fr.close();

}

II būdas

//Apklausa

#include <iostream>

#include <fstream>

#include <iomanip>

#include <cmath>

 

using namespace std;

 

const char CD[] = "U2.txt";

const char CR[] = "U2rez.txt";

//-------------------------------------------------------------------------

struct Mokinys {

    string vardas;

    string dalykas;

    double vidurkis;

};

 

struct Dalykas {

    string pavadinimas;

    string Vardai[100];

    int kiek_mokiniu;

};

//-------------------------------------------------------------------------

void Skaityti(Mokinys M[], int & m);

double Vidurkis(int P[], int p);

void SalintiViena(Mokinys M[], int kuris, int & n);

void SalintiNetinkamus( Mokinys M[], int & m);

void SurastiDalykus(Mokinys M[], int m, Dalykas D[], int & d);

void Rikiuoti(Dalykas D[], int d);

void Rasyti(Dalykas D[], int d);

 

int main(){

    Mokinys M[100]; int m;

    Dalykas D[100]; int d;

    Skaityti(M, m);

    SalintiNetinkamus(M, m);

    SurastiDalykus(M, m, D, d);

    Rikiuoti(D, d);

    Rasyti(D, d);

 

   return 0;

}

//-------------------------------------------------------------------------

void Skaityti(Mokinys M[], int & m){

    ifstream fd(CD);

 

    int p;

    int P[100];

 

    fd >> m;

 

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

        fd >> M[i].vardas >> M[i].dalykas >> p;

        for (int j = 0; j < p; j++){

            fd >> P[j];

        }

        M[i].vidurkis = Vidurkis(P, p);

    }

fd.close();

}

//-------------------------------------------------------------------------

double Vidurkis(int P[], int p){

    int suma = 0;

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

        suma += P[i];

    }

    return (double) suma / p;

}

//-------------------------------------------------------------------------

void SalintiViena(Mokinys M[], int kuris, int & n){

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

        M[i] = M[i+1];

    }

    n--;

}

//-------------------------------------------------------------------------

void SalintiNetinkamus( Mokinys M[], int & m){

    int i = 0;

    while (i < m){

        if (M[i].vidurkis < 9) SalintiViena(M, i, m);

        else i++;

    }

}

//-------------------------------------------------------------------------

void SurastiDalykus(Mokinys M[], int m, Dalykas D[], int & d){

 

    d = 0;

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

        D[i].kiek_mokiniu = 0;

    }

    int i = 0;

    while (i < m){

            D[d].pavadinimas = M[i].dalykas;

            int kelintas_mokinys = D[d].kiek_mokiniu;

            D[d].Vardai[kelintas_mokinys] = M[i].vardas;

            D[d].kiek_mokiniu++;

            int j = i + 1;

            while (j < m){

            if (M[j].dalykas == M[i].dalykas){

                    int kelintas_mokinys = D[d].kiek_mokiniu;

                    D[d].Vardai[kelintas_mokinys] = M[j].vardas;

                    D[d].kiek_mokiniu++;

                    SalintiViena(M, j, m);

            }

            else j++;

        }

        i++;

        d++;

    }

}

//-------------------------------------------------------------------------

void Rikiuoti(Dalykas D[], int d){

    int m;

    for (int i = 0; i < d - 1; i++){

        m = i;

        for (int j = i + 1; j < d; j++){

            if ((D[j].kiek_mokiniu > D[m].kiek_mokiniu) ||

                ((D[j].kiek_mokiniu == D[m].kiek_mokiniu) && (D[j].pavadinimas < D[m].pavadinimas))) m = j;

        }

    swap(D[i], D[m]);

    }

}

//-------------------------------------------------------------------------

void Rasyti(Dalykas D[], int d){

    ofstream fr(CR);

    if (d == 0) fr << "Neatitinka vidurkis" << endl;

    else {

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

            fr << D[i].pavadinimas << " " << D[i].kiek_mokiniu << endl;

            for (int j = 0; j < D[i].kiek_mokiniu; j++){

                fr << D[i].Vardai[j] << endl;

            }

        }

    }

    fr.close();

}

 

* * *

Pagrindinė brandos egzaminų sesija šiemet vyksta nuo birželio 7 d. iki liepos 2 d.

Pilną pagrindinės sesijos brandos egzaminų tvarkaraštį rasite čia:

Kur stoti | Paskelbtas 2021 metų brandos egzaminų tvarkaraštis

Detalų priėmimo į aukštąsias mokyklas tvarkaraštį rasite čia:

Kur stoti | LAMA BPO paskelbė detalų priėmimo į aukštąsias mokyklas tvarkaraštį

* * *

Straipsnį parengė: Aistė Borjas

El.paštas: aiste.borjas@gmail.com