# $Author: saulius $ # $Revision: 9750 $ # $Date: 2022-02-08 06:24:00 +0000 (Tue, 08 Feb 2022) $ Vektorių daugybos iš skaičiaus programa ======================================= PROGRAMA ======== Parašykite Perl programą, kuri suskaičiuoja duotų vektorių sandaugą iš realaus skaičiaus. Programos vardas: vcoeff Programos iškvietimas: vcoeff 2.0 vektoriai1.dat [vektoriai2.dat ...] Pirmas programos parametras turi būti vienas skaičius -- koeficientas, iš kurio reikia padauginti visus vektorius. Toliau nurodomi įvesties failai. Įvesties failai vektoriaiN.dat yra nebūtini; jei jų nėra, programa turi skaityti iš savo standartinės įvesties. DUOMENŲ FORMATAI ================ Įvesties formatas: - visuose įvesties failuose: -- eilutė, kurios *pirmas simbolis* yra '#' (numerio simbolis, arba "grotelės") reiškia komentarus; tokios eilutės turi būti ignoruojamos; -- tuščios eilutės, t.y. eilutės neturinčios nei vieno simbolio, arba tik "tuščius" simbolius (angl. "whitespace", t.y. tarpo, tabuliacijos arba "\r" simbolius) turi būti tyliai ignoruojamos; -- visos kitos eilutės yra duomenų eilutės; jų formatas nurodomas žemiau. Duomenys pateikiami tokiu formatu: - failai vektoriaiN.dat arba standartinė įvestis: kiekvienoje duomenų eilutėje yra po M slankaus kablelio arba sveikų skaičių, pvz.: # Pirma failo 'vect.dat' eilutė; duomenys: 1 2 3 1 1 0 0 0 # Paskutinė failo 'vect.dat' eilutė. Kiekviena vektorių failo eilutė -- tai vieno vektoriaus koordinatės. Išvesties formatas: duomenys turi būti išvedami į standartinę išvestį tokiu pat formatu, kaip ir duomenys įvesties vektorių failuose. Pirmoji eilutė turi būti komentaras, kuriame užrašytas panaudotos programos SVN (ar kitos versijų kontrolės sistemos) Id: # Id: vcoeff 1 2011-09-28 07:41:19Z author Toliau turi būti pateikiami duomenys. Kiekvienoje eilutėje turi būti vienas vektorius -- atitinkamoje duomenų eilutėje esančio vektoriaus ir duoto koeficiento sandauga. DIAGNOSTIKA =========== Programa turi pranešti apie šias klaidas: - nepateiktas koeficientas, arba pateiktas koeficientas neatitinka Perl skaičiaus sintaksės (NB: skaičius gali būti neigiamas!). - kuriame nors faile pateiktas skaičius neatitinka Perl skaičiaus sintaksės; - nurodyti failai neegzistuoja, negali būti atidaryti, įvyko skaitymo klaida (čia galima pasikliauti Perl 'while(<>) {...' operatoriaus diagnostika). Klaidos pranešimo formatas -- toks, kokį išveda Perl'as savo funkcijomis die() ir warn(). Pranešimuose turi būti nurodytas apdorojamo failo, kuriame rasta klaida, vardas ir klaidinga eilutė.