Neprihlásený používateľ |

Špecifikácia zadania

Zadanie 0 má len testovací charakter a slúži na oboznámenie sa s odovzdávacím systémom. Získané body sú len virtuálne, t.j. nezapisujú sa do AIS. Ďakujeme za pochopenie.

Toto zadanie nie je bodované. Slúži predovšetkým na to, aby ste nadobudli základné programátorské návyky v jazyku C (predovšetkým prechod z jazyka Python, ktorý bol obsahom PROG-1), ktoré budete potrebovať na úspešné vypracovanie budúcich, komplexnejších programov, ktoré vás v priebehu semestra čakajú.

Rovnako je potrebné čas určený na vypracovanie tohto zadania využiť na oboznámenie sa s odovzdávacím web systémom a spôsobom automatizovaného hodnotenia vašich zadaní, aby ste v budúcnosti zbytočne neprichádzali o body. Systém je v testovacej prevádzke, preto budeme vďační za nahlásenie akýchkoľvek chýb/nejasností, ktoré si všimnete. Takisto privítame rozumné návrhy na vylepšenie/rozšírenie funkcionality. Svoje postrehy a pripomienky posielajte do Discordu alebo priamo e-mailom na pavol.marak@stuba.sk.

Príprava

Nasledujúce zdroje vám môžu pomôcť pri riešení zadania. Odporúčame si tieto zdroje pozrieť/preštudovať. Na prístup k niektorým zdrojom potrebujete byť prihlásení vo vašom Google G-Suite STU konte.

Prednášky

Jazyk C

Základné informácie

Napíšte funkciu primeFactors, ktorá vypíše všetky unikátne prvočíselné delitele vstupného čísla a (parameter funkcie). Parameter m určuje maximálny počet vypísaných prvočíselných deliteľov (čítaj ďalej). Funkciu primeFactors otestujte v rámci vášho programu vo funkcii main podľa nižšie uvedených pokynov.

// hlavicka funkcie
void primeFactors(int a, int m);

Vstup

  • int a - celé číslo, ktorého prvočíselné delitele ideme vypísať, musí platiť, že a>1
  • int m - ľubovoľné nezáporné celé číslo, ktoré určuje maximálny počet vypísaných prvočíselných deliteľov
Ošetrenie vstupu

Treba ošetriť len parameter a. Ak je zadaný neplatný vstup, t.j. ak nebude platiť podmienka a>1, váš program vypíše na štandardný výstup len text ERROR a skončí štandardným spôsobom.

Parameter m netreba ošetrovať. Očakáva sa, že používateľ ho zadá vždy nezáporný. Automatizovane testované budú len nezáporné hodnoty parametra m.

Výstup

Funkcia vypíše postupnosť prvočíselných deliteľov parametra a. Každý prvočíselný deliteľ musí byť vypísaný na samostatnom riadku (žiadny iný vypísaný text na riadku okrem prvočíselného deliteľa nebude akceptovaný). Maximálny počet vypísaných prvočíslených deliteľov je daný parametrom m. Na konci výstupu (za posledný deliteľom) je tolerovaný max. 1 prázdny riadok.

Dôležité zásady formátovania výstupu (základný predpoklad udelenia bodov):
  • Postupnosť musí obsahovať len kladné čísla, zoradené od najmenšieho po najväčšie.
  • V postupnosti sa nesmú opakovať čísla.
  • Postupnosť neobsahuje žiadne iné výpisy.

Testovací program

Vo vašom zadaní je potrebné funkciu primeFactors zavolať z hlavnej funkcie main. Postup je nasledovný:

  1. Po spustení programu používateľ zadá na štandardný vstup čísla a a m, oddelené ľubovoľným počtom medzier. Nesmú sa vypisovať žiadne pomocné sprievodné texty typu: Zadajte cislo: a pod.
  2. Následne sa zavolá funkcia primeFactors, do ktorej sa ako parametre odovzdajú načítané čísla a a m.
  3. Program skončí štandardným spôsobom (návratom z funkcie main).

Hodnotenie zadania

Testovacie scenáre
Oblasť A: Základná funkcionalita Spolu 9.0 b
Scenár A1 Parameter a má len 1 prvočíselný deliteľ. Rôzne hodnoty m. 1.0 b
Scenár A2 Parameter a je veľké číslo. Parameter m má hodnotu vyššiu ako je počet prvočíselných deliteľov parametra a. 2.0 b
Scenár A3 Parameter a je veľké číslo. Parameter m má hodnotu nižšiu ako je počet prvočíselnych deliteľov parametra a. 2.0 b
Scenár A4 Parameter a je malé číslo. Parameter m má hodnotu vyššiu ako je počet prvočíselných deliteľov parametra a. 2.0 b
Scenár A5 Parameter a je malé číslo. Parameter m má hodnotu nižšiu ako je počet prvočíselných deliteľov parametra a. 2.0 b
Oblasť B: Chybové situácie Spolu 1.0 b
Scenár B1 Ošetrenie neplatnej hodnoty parametra a. 1.0 b
Súčet 10 b

Video

Video ukážka spustenia programu
Záznam zo seminára č. 1 (15. február 2022)

Testovacie príklady

1. príklad
Vstupy: a=409, m=5

Vypísaná postupnosť:

409
2. príklad
Vstupy: a=167, m=0

Vypísaná postupnosť: program nič nevypíše.

3. príklad
Vstupy: a=747714, m=10

Vypísaná postupnosť:

2
3
11
11329
4. príklad
Vstupy: a=15002194, m=2

Vypísaná postupnosť:

2
17
5. príklad
Vstupy: a=4890, m=20

Vypísaná postupnosť:

2
3
5
163
6. príklad
Vstupy: a=3759, m=2

Vypísaná postupnosť:

3
7
7. príklad
Vstupy: a=-4, m=1

Výpis:

ERROR

Zdroje

  1. Prime Factorization Calculator. Pomocný nástroj na zistenie prvočíselných deliteľov.
  2. Prime Factorization Calculator 2. Ďalší pomocný nástroj na zistenie prvočíselných deliteľov.
Copyright © 2022, Pavol Marák, ÚIM FEI STU.
Vyrobené pomocou Django a Spectre.css.
Videá prehrávame pomocou Plyr prehrávača.
Responzívny dizajn testujeme pomocou Responsive Viewer.