eMatematikas.lt Naujienos Kategorijos Nauja tema Nariai Prisijungti Registruotis
       

Kategorijos

Naudingos temos

2011m. VBE Pirmoji - Antroji Praktinės užduotys (Klausimėlis)

Kategorija: Programavimas

peržiūros 319

Sveiki, esu naujokas šitoje svetainėje ir taipogi pradedantysis programuotojas. Sukūriau šį post'ą su klausimu - gal kas netyčia turi 2011m. programavimo praktinių užduočių algoritmus? Skubiai noriu išsispręsti visų metų valstybinius egzaminus ir taipogi juos nusiųsti savo informatikos mokytojui. Jokios prievolės klausimas, tiesiog, jei kas turi ir nesunku čia įmesti būčiau labai dėkingas išsianalizuojant jūsų sprendimus. Ačiū iš anksto tiems, kurie atkreipsit dėmesį.
Bėje, kolkas programuoju Free Pascal'iu, tad būtų labai cool jei sprendimai abiejų praktinių užduočių taipogi tektų šiai programai.

0

Sveikas, pateikiu pirmąją užduotį C++ programavimo kalba.

#include <iostream>
#include <fstream>
#include <cmath>
const char CDfv [] = "duom.txt";
const char CRfv [] = "rez.txt";
const int CMax = 100;
using namespace std;
void Skaityti (int &n, int lyt[], int ranka[], int dyd[]);
int Kiek_Poru (int n, int lyt[], int ranka[], int dyd[], int lytis);
int Kiek_Atliekamu (int n, int lyt[], int ranka[], int dyd[], int lytis);
int main()
{
    ofstream fr (CRfv);
    int n;
    int lyt[CMax], ranka[CMax], dyd[CMax];
    Skaityti(n,lyt,ranka,dyd);
    fr << Kiek_Poru(n,lyt,ranka,dyd,4) << endl;
    fr << Kiek_Poru(n,lyt,ranka,dyd,3) << endl;
    fr << Kiek_Atliekamu(n,lyt,ranka,dyd,4) << endl;
    fr << Kiek_Atliekamu(n,lyt,ranka,dyd,3) << endl;
    fr.close();
    return 0;
}
void Skaityti (int &n, int lyt[], int ranka[], int dyd[])
{
    ifstream fd(CDfv);
    fd >> n;
    for (int i = 0; i < n; i++)
    {
        fd >> lyt[i] >> ranka[i] >> dyd[i];
    }
    fd.close();
}
int Kiek_Poru (int n, int lyt[], int ranka[], int dyd[], int lytis)
{
    int pora = 0;
    int k = dyd[0];

    for (int i = 0; i < n; i++)
    {
        for (int j = i + 1; j < n; j++)
        {
            if (lyt[i] == lytis && lyt[j]== lytis)
            {
                if (dyd[i] == dyd[j])
                {
                    if (ranka[i]+ranka[j] == 3)
                    {
                        if (dyd[i]!=k)
                        {
                            pora++;
                            k = dyd[i];
                        }
                    }
                }

            }
        }

    }
    return pora;
}
int Kiek_Atliekamu (int n, int lyt[], int ranka[], int dyd[], int lytis)
{
    int atliekami = 0;
    for (int i = 0; i < n; i++)
    {
        if (lyt[i] == lytis)
        {
            atliekami++;
        }
    }
    atliekami -= Kiek_Poru(n,lyt,ranka,dyd,lytis)*2;
    return atliekami;
}

Antrojoje užduotyje šokėjų skaičių n pasikeisk į 3 (šokėjų porų skaičių). Tai yra šios užduoties korekcija. Tikiuosi dabar užduotis tapo labiau suprantama.

1

Dėkui, bet čia internetinė versija, norėčiau Free Pascal'io kalbos kodo, jis šiek tiek skiriasi nuo C++.

0

O kokios versijos norėjai ? Dėl Pascal'io padėti negaliu, bet algoritmas yra visiškai identiškas, lieka tik sintaksės ypatumai :)

0

Algortimas identiškas, bet deja nesimokiau nei truputį C ++, tad sintaksės ypatumai čia nepadės.

0

Ačiū, prie to pačio sintaksę pasimokiau c++, labai dėkingas už dvigubą pagalbą.

0

Norėdami rašyti žinutes privalote prisijungti!