eMatematikas Prisijunk Forumas Egzaminų užduotys ONLINE testai

Uždavinys c++ kalba iš 2011 informatikos egzamino (Pirštinės)


http://www.nec.lt/failai/2062_IT-VBE-1_2011.pdf    (16 psl)

Sveiki.
Gal kas galit pasakyti, dėl ko prastai suskaičiuoja poras?


#include <iostream>
#include  <fstream>

using namespace std;

void Skaitymas (int &n, int MKpirst[], int MDpirst[],  int VKpirst[], int VDpirst[]);
int Poros ( int Kaire[], int Desine[]);
void Isvedimas (int n, int MKpirst[], int MDpirst[],  int VKpirst[], int VDpirst[] );

int main()
{
    int n, MKpirst[100], MDpirst[100],  VKpirst[100], VDpirst[100];
    Skaitymas (n, MKpirst, MDpirst, VKpirst, VDpirst);
    Isvedimas (n, MKpirst, MDpirst,  VKpirst, VDpirst );
    return 0;
}

void Skaitymas (int &n, int MKpirst[], int MDpirst[],  int VKpirst[], int VDpirst[])
{
    int a, b, c;
    ifstream bs ("u1.txt");

    for (int i=0; i<100; i++)
    {
        MKpirst[i]=0;
        MDpirst[i]=0;
        VKpirst[i]=0;
        VDpirst[i]=0;
    }
    bs>>n;

    for (int i=0; i<n; i++)
    {
        bs>>a>>b>>c;
        if(a==3 && b==1)
            VKpirst[c]+=1;
        if(a==3 && b==2)
            VDpirst[c]+=1;
        if(a==4 && b==1)
            MKpirst[c]+=1;
        if(a==4 && b==2)
            MDpirst[c]+=1;
    }

    bs.close();
}

int Poros ( int Kaire[], int Desine[])
{
    int pora=0;

    for(int i=0; i<100; i++)
    {
        if ((Kaire[i]!=0 && Desine[i]!=0)&&(Kaire[i]>Desine[i]))
            pora+=Desine[i];
        if ((Kaire[i]!=0 && Desine[i]!=0)&&(Kaire[i]<Desine[i]))
            pora+=Kaire[i];
    }

    return pora;
}

void Isvedimas (int n, int MKpirst[], int MDpirst[], int VKpirst[], int VDpirst[] )
{
    ofstream br ("rez.txt");
    br<<"Moteriškų pirštinių porų yra: "<<Poros(MKpirst, MDpirst)<<endl;
    br<<"Vyriškų pirštinių porų yra: " <<Poros(VKpirst, VDpirst);

    br.close();
}

Integer Poros pamiršai prirašyti if sąlygą, kas įvyks jeigu dešinių pirštinių bus tiek pat, kiek kairių.
PVZ:
        if ((Kaire[i]!=0 && Desine[i]!=0)&&(Kaire[i]==Desine[i])) {
            pora+=Kaire[i];
        }

Ačiū labai, passenger.

Čia įkėliau jau galutinai pabaigtą užduotį. Gal kam prireiks :))


#include <iostream>
#include  <fstream>

using namespace std;

void Skaitymas (int &n, int MKpirst[], int MDpirst[],  int VKpirst[], int VDpirst[]);
int Poros ( int Kaire[], int Desine[]);
int Liekana (int Kaire[], int Desine[]);
void Isvedimas (int n, int MKpirst[], int MDpirst[],  int VKpirst[], int VDpirst[] );

int main()
{
    int n, MKpirst[100], MDpirst[100],  VKpirst[100], VDpirst[100];
    Skaitymas (n, MKpirst, MDpirst, VKpirst, VDpirst);
    Isvedimas (n, MKpirst, MDpirst,  VKpirst, VDpirst );
    return 0;
}

void Skaitymas (int &n, int MKpirst[], int MDpirst[],  int VKpirst[], int VDpirst[])
{
    int a, b, c;
    ifstream bs ("u1.txt");

    for (int i=0; i<100; i++)
    {
        MKpirst[i]=0;
        MDpirst[i]=0;
        VKpirst[i]=0;
        VDpirst[i]=0;
    }
    bs>>n;

    for (int i=0; i<n; i++)
    {
        bs>>a>>b>>c;
        if(a==3 && b==1)
            VKpirst[c]+=1;
        if(a==3 && b==2)
            VDpirst[c]+=1;
        if(a==4 && b==1)
            MKpirst[c]+=1;
        if(a==4 && b==2)
            MDpirst[c]+=1;
    }

    bs.close();
}

int Poros ( int Kaire[], int Desine[])
{
    int pora=0;

    for(int i=0; i<100; i++)
    {
        if ((Kaire[i]!=0 && Desine[i]!=0)&&(Kaire[i]>Desine[i]))
            pora+=Desine[i];
        if ((Kaire[i]!=0 && Desine[i]!=0)&&(Kaire[i]<Desine[i]))
            pora+=Kaire[i];
        if ((Kaire[i]!=0 && Desine[i]!=0)&&(Kaire[i]==Desine[i]))
            pora+=Kaire[i];
    }

    return pora;
}
int Liekana (int Kaire[], int Desine[])
{
    int likutis=0;

    for (int i=0; i<100; i++)
    {
        if (Kaire[i]>Desine[i])
            likutis+=Kaire[i]-Desine[i];
        if (Kaire[i]<Desine[i])
            likutis+=Desine[i]-Kaire[i];
    }
    return likutis;
}

void Isvedimas (int n, int MKpirst[], int MDpirst[], int VKpirst[], int VDpirst[] )
{
    ofstream br ("rez.txt");
    if(Poros(MKpirst, MDpirst)>0)
        br<<"Moteriškų pirštinių porų yra: "<<Poros(MKpirst, MDpirst)<<endl;
    else
        br<<0;

    if(Poros(VKpirst, VDpirst)>0)
        br<<"Vyriškų pirštinių porų yra: " <<Poros(VKpirst, VDpirst)<<endl;
    else
        br<<0;

    if(Liekana(MKpirst, MDpirst)>0)
        br<<"Atliekamų moteriškų pirštinių yra: "<<Liekana(MKpirst, MDpirst)<<endl;
    else
        br<<0;

    if(Liekana(VKpirst, VDpirst)>0)
        br<<"Atliekamų vyriškų pirštinių yra: "<<Liekana(VKpirst, VDpirst)<<endl;
    else
        br<<0;

    br.close();
}

Nori sudalyvauti šioje temoje ir parašyti savo pranešimą? Prisijungti »