eMatematikas Prisijunk Forumas Egzaminų užduotys ONLINE testai

2012 egzamino užduotis. Krepšinis. Viso laiko radimas


Sveiki, labai norėčiau paprašyti pagalbos dėl šios užduoties:
Uzduotis:
Krepšinio rungtynių metu sekretoriatas registruoja abiejų komandų kiekvieno krepšininko buvimo aikštelėje ir sėdėjimo ant atsarginių suolelio laikus minutėmis. Vienu metu aikštelėje žaidžia po 5 krepšininkus.
Parašykite programą, kuri nustatytų vienos komandos:
• startinį krepšininkų penketuką numerių didėjimo tvarka;
• krepšininko, kuris daugiausia laiko buvo aikštelėje, numerį ir laiką, o jeigu tokie buvo keli, tai nurodytų vieną, kurio numeris mažiausias;
• krepšininko, kuris daugiausia laiko sėdėjo ant atsarginių suolelio, numerį ir laiką, o jeigu tokie buvo keli, tai nurodytų vieną, kurio numeris mažiausias;
Duomenys
Vienos komandos duomenys yra tekstiniame faile U1.txt:
• Pirmoje eilutėje yra užrašytas krepšininkų skaičius n (6 ≤ n ≤ 12).
• Toliau atskirose eilutėse yra surašyti duomenys apie kiekvieną krepšininką (sveikieji skaičiai):
o pirmas skaičius eilutėje – krepšininko numeris k (4 ≤ k ≤ 99);
o antras skaičius eilutėje – laikų (žaista ir/arba ilsėtasi) skaičius t (1 ≤ t ≤ 40);
o toliau eilutėje surašyti laikai: teigiamas skaičius – kiek minučių būta aikštelėje, neigiamas skaičius – kiek minučių sėdėta ant atsarginių suolelio. Pavyzdžiui: 18 –11 9 –2 reiškia, kad krepšininkas pirmas 18 min. žaidė, po to 11 min. sėdėjo ant atsarginių suolelio, vėl 9 min. žaidė ir likusias iki rungtynių pabaigos 2 min. sėdėjo.
Pastaba. Rungtynių trukmė 40 min.
Rezultatai
Tekstiniame faile U1Rez.txt rezultatus pateikite tokia tvarka:
• pirmoje eilutėje – startinio penketuko krepšininkų numerius didėjančia seka;
• antroje eilutėje – krepšininko, kuris daugiausiai laiko buvo aikštelėje, numerį ir laiką. Jeigu tokie buvo keli, tai nurodykite vieną, kurio numeris mažiausias;
• trečioje eilutėje – krepšininko, kuris daugiausia laiko sėdėjo ant atsarginių suolelio, numerį ir laiką. Jeigu tokie buvo keli, tai nurodykite vieną, kurio numeris mažiausias.
Skaičius eilutėje skirkite vienu tarpo simboliu.
Nurodymai
• Programoje naudokite vienmačius masyvus.
• Parašykite procedūrą1
• Parašykite funkciją, kuri surastų masyve didžiausio elemento indeksą arba reikšmę. duomenims į masyvus skaityti.
• Programoje nevartokite sakinių, skirtų darbui su ekranu.

pradėjau rašyti programą, bet niekaip neišeina surasti kiekvieno žaidėjo viso žaisto laiko. Atrodo suprantu, ką reikia daryti, bet neišeina vis tiek. gal kas galėtų pasakyti ir trumpai paaiškinti kaip daryti šią vietą? Labai ačiū :)

void skaitymas(int&n, int k,int&t, int laikas[], int zaista[])
{
  {      fd>>n;

      for( int i=0; i<n; i++)
      {
        fd>>k>>t;

          for( int j=0; j<t; j++)
          {
              fd>>laikas[j];
          }
      }
}}
void zaistapraleista(int&n, int k,int&t, int laikas[], int zaista[])
{    for( int i=0; i<n; i++)
  {  zaista=0;
      for( int j=0; j<t; j++)
      {
          if(laikas[j]>0)
          {
            zaista[j]+=laikas[j];
            cout<<zaista[j]<<endl;
          }
  }
      }



}
int main ()
{
    int  n, k, t, laikas[40],zaista[40];
{  skaitymas(n, k,t,  laikas,zaista);
    zaistapraleista(n, k,t, laikas, zaista);
}
fd.close();
fr.close();
return 0;
}

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