Programavimo pamokėlės

pamokelesm

Mokymų ciklas „Programavimo pamokėlės" skirtos visiems, kurie nori išmokti programuoti.

IT galvosūkiai

itgalvosukiai

Konkurso tikslas – skatinti moksleivius domėtis IT sprendžiant įvairiausius galvosūkius.

Informikas

informikasm

Konkurso tikslas – supažindinti moksleivius su menu informacinėse technologijose ir mūsų talismanu.

Dr. J. P. Kazicko konkursai

kkonkursai

Žemaitijos, Aukštaitijos, Suvalkijos ir Dzūkijos regionuose vykdomas IT konkursas.

       

Užduotis

Mobiliojo telefono ryšio tiekėjo klientai, kurie per mėnesį neviršija plano, kitą mėnesį gauna nuolaidas. Bendrovė kiekvieną mėnesį išrenka yra n (2 ≤ n ≤ 30) klientų, kurie pretenduoja į nuolaidas. Iš išrinktųjų, du klientai, kurių plane numatyto ir prakalbėto laiko skirtumai yra mažiausi, gauna nuolaidas. Pradinių duomenų failo telefonai_data.txt pirmoje eilutėje įrašytas išrinktų klientų skaičius n ir plane numatytas pokalbiams skirtas laikas m minutėmis. Tolesnėse n eilučių įrašyta informacija apie kiekvieną klientą: vardas ir pavardė (skiriamos 25 pozicijos) ir dar du sveikieji skaičiai – kiek valandų ir minučių klientas skyrė pokalbiams (klientų, kurie kalbėjo vienodai laiko, nebuvo).

Parašykite programą, kuri:

  • apskaičiuotų kiekvieno kliento plane numatyto ir realiai prakalbėto laiko skirtumo absoliutinį didumą;
  • apskaičiuotų vidutinį kliento prakalbėtą laiką minutėmis (sveikasis skaičius, skaičiuodami atskirkite sveikąją dalį). Vidutinis laikas skaičiuojamas pagal formulę:

vidutinis laikas = visų klientų pokalbių laikas  / klientų skaičius;

  • išrinktų du klientus, kuriems bus suteiktos nuolaidos;

Rezultatų faile telefonai_res.txt turi būti išspausdinta:

  • pirmose n eilučių – po 2 sveikuosius skaičius, atskirtus tarpais: kliento vardas ir pavardė ir plane numatyto ir realiai prakalbėto laiko skirtumo absoliutinis didumas;
  • tolesnėse eilutėse:
  • dviejų nuolaidas gausiančių klientų vardai ir pavardės, atskirti kabliataškiais, pirmasis –  kliento, kurio realių pokalbių ir plane numatytas laikas skiriasi mažiausiai, vardas ir pavardė, antrasis – antro pagal laikų skirtumą kliento vardas ir pavardė;
  • vidutinė kliento pokalbio trukmė minutėmis (sveikasis skaičius).

 

telefonai_data.txt telefonai_res.txt

5 180

Vardenis Pavardenis1      3 20

Vardenis Pavardenis2      1 05

Vardenis Pavardenis3      2 25

Vardenis Pavardenis4      3 45

Vardenis Pavardenis5      2 45

Vardenis Pavardenis1      20

Vardenis Pavardenis2      115

Vardenis Pavardenis3      35

Vardenis Pavardenis4      45

Vardenis Pavardenis5      15

Vardenis Pavardenis5; Vardenis Pavardenis1

160

Reikalavimai

  • Naudokite struktūrų masyvus.
  • Parašykite pradinių duomenų skaitymo funkciją void.
  • Parašykite funkciją, per funkcijos vardą grąžinančią apskaičiuotą vieno kliento plane numatyto ir realiai prakalbėto laiko skirtumo absoliutinį didumą.
  • Parašykite funkciją, skirtą visų klientų laikų sumos skaičiavimui, grąžinančią apskaičiuotą reikšmę per funkcijos vardą.
  • Parašykite funkciją, surandančią klientą, kurio laikų skirtumo absoliutinis dydis yra mažiausias. Funkcija grąžina apskaičiuotą reikšmę per funkcijos vardą. Funkciją panaudokite ieškodami pirmo ir antro kliento.
  • Parašykite rezultatų rašymo funkciją void.

 

Papildoma informacija

  • Lygis: 3
  • Taškai: 100
Į viršų