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.

       
×

Įspėjimas

JUser: :_load: Nepavyko įkelti nario su id: 7686

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šų