Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 182 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

(redaguota)

 

Tokia c++ užduotis

Jovaro gimnazijoje mokslo metų pabaigoje vyksta sporto šventė. Stadione yra aštuoni bègimo takeliai.

Norinčių begti 800 metrų užsiregistravo n (8 < n < 16) bègikų. Jie buvo paskirstyti į du pogrupius taip, kad viename bėgime varžytųsi ne mažiau kaip du bėgikai. Reikia parašyti programą, kuri atrinktų finaliniam bègimui

puse geriausiyjų pirmojo ir pusę geriausiyjų antrojo bègimo dalyvių ir paskirtų jiems bègimo takelius. Jeigu

bėgikų grupėje buvo nelyginis skaičius, pries atranką reikia atmesti bėgiką, kurio rezultatas buvo blogiausias.

Takeliai skiriami tokia tvarka: blogiausiam bėgikui - pirmasis takelis, iš likusiyjų blogiausiam - antrasis takelis

ir t. t. Geriausio rezultato savininkui skiriamas paskutinis is eilės dar laisvas takelis, pavyzdžiui, jeigu finale bus

6 mokiniai, tai geriausias bėgs šeštuoju takeliu. [ rezultatų failą reikia lentele išvesti finalinio bėgimo dalyvius,

surikiuotus didėjančiai pagal atrankos bėgimuose parodytą laiką, ir greta nurodyti finalinio begimo takelio

numerj.

Pirmojo atrankos bėgimo rezultatai įrašyti į vieną pradinių duomenų failą, antrojo - įkitą. Pirmoje failo eilu-

tēje yra bėgikų skaičius. Toliau kiekvienoje eilutėje yra bėgiko duomenys: vardas, pavardè ir rezultatas (laikas

minutėmis ir sekundėmis).

 

Kas galit padet 

Cia kodo dalis

const char Cdfva[] = "Duomenys16a.txt";

const char Cdfvb[] = "Duomenys16b.txt";

const char CRfv[] = "Rezultatai16.txt";

const int CMax = 30;

const int CPav = 20;

 

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

struct Sportininkas {

    string pav; // vardas ir pavardė

    int laikas; // laikas sekundėmis

};

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

 

void Skaityti(const char fv[], Sportininkas A[], int & n);

void Spausdinti(Sportininkas A[], int n);

void Rikiuoti(Sportininkas A[], int n);

void Atrinkti(Sportininkas A[], int n, Sportininkas B[], int & m);

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

 

int main() {

    Sportininkas A[CMax]; int n; // masyvas pradiniams duomenims laikyti

    Sportininkas B[CMax]; int m = 0; // sąrašas iš pradžių turi būti tuščias (m = 0)

 

    Skaityti(Cdfva, A, n);

    Rikiuoti(A, n);

    Atrinkti(A, n, B, m);

 

    Skaityti(Cdfvb, A, n);

    Rikiuoti(A, n);

    Atrinkti(A, n, B, m);

    

    Rikiuoti(B, m);

    Spausdinti(B, m);

 

    return 0;

}

 

Niekur nerandu pvz

Screenshot_20241025_102338_Samsung Notes.jpg

Redaguota , nario MinistRe

ChatGPT:

 

#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
#include <algorithm>

using namespace std;

const char Cdfva[] = "Duomenys16a.txt";
const char Cdfvb[] = "Duomenys16b.txt";
const char CRfv[] = "Rezultatai16.txt";

const int CMax = 30;

struct Sportininkas {
    string pav; // vardas ir pavardė
    int laikas; // laikas sekundėmis
};

// Funkcija skaito bėgikų duomenis iš failo
void Skaityti(const char fv[], Sportininkas A[], int & n) {
    ifstream fd(fv);
    fd >> n;
    for (int i = 0; i < n; i++) {
        string vardas, pavarde;
        int min, sek;
        fd >> vardas >> pavarde >> min >> sek;
        A[i].pav = vardas + " " + pavarde;
        A[i].laikas = min * 60 + sek; // laikas sekundėmis
    }
    fd.close();
}

// Funkcija spausdina bėgikų sąrašą į failą
void Spausdinti(Sportininkas A[], int n) {
    ofstream fr(CRfv);
    fr << "Vardas Pavarde\tRezultatas\tTakelis\n";
    for (int i = 0; i < n; i++) {
        fr << setw(15) << left << A[i].pav << "\t";
        fr << A[i].laikas / 60 << " min " << A[i].laikas % 60 << " s\t";
        fr << i + 1 << "\n";
    }
    fr.close();
}

// Funkcija surikiuoja bėgikus pagal laiką (mažėjimo tvarka)
void Rikiuoti(Sportininkas A[], int n) {
    sort(A, A + n, [](Sportininkas & a, Sportininkas & b) {
        return a.laikas < b.laikas;
    });
}

// Funkcija atrenka geriausius bėgikus finalui
void Atrinkti(Sportininkas A[], int n, Sportininkas B[], int & m) {
    if (n % 2 != 0) n--; // jei nelyginis skaičius, atmetam blogiausią
    int pusė = n / 2;
    for (int i = 0; i < pusė; i++) {
        B[m++] = A[i];
    }
}

int main() {
    Sportininkas A[CMax]; // masyvas pradiniams duomenims laikyti
    Sportininkas B[CMax]; // finalinių dalyvių sąrašas
    int n, m = 0;

    // Nuskaitome pirmo pogrupio duomenis, rikiuojame ir atrenkame
    Skaityti(Cdfva, A, n);
    Rikiuoti(A, n);
    Atrinkti(A, n, B, m);

    // Nuskaitome antro pogrupio duomenis, rikiuojame ir atrenkame
    Skaityti(Cdfvb, A, n);
    Rikiuoti(A, n);
    Atrinkti(A, n, B, m);

    // Surikiuojame finalinių bėgikų sąrašą ir paskiriame takelius
    Rikiuoti(B, m);
    Spausdinti(B, m);

    return 0;
}

 

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 182 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai



×
×
  • Sukurti naują...